HACK A BOSS
FormaciónEvaluacionesPerfil
Volver
  • En directo

Apache Kafka avanzado

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Apache Kafka

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a ingenieros que operan Kafka en entornos de producción y necesitan dominar los patrones más exigentes de la plataforma: procesamiento stateful con Kafka Streams, evolución de schemas con Schema Registry y Avro, optimización cuantitativa de throughput y latencia, arquitecturas multi-cluster con MirrorMaker 2, despliegue como operador en Kubernetes con Strimzi, definición de alertas de producción con Prometheus y planificación de migraciones críticas como el salto de ZooKeeper a KRaft. El curso combina diseño de arquitecturas con implementación técnica y análisis de trade-offs, y requiere diez horas para cubrir con profundidad los siete dominios avanzados. Al finalizar, el participante será capaz de tomar decisiones de arquitectura justificadas, instrumentar un cluster para producción y ejecutar operaciones complejas con plan de rollback.

Al finalizar el curso, el participante será capaz de:

  • Construir un pipeline Kafka Streams stateful que aplique filtrado, transformación y agregación en ventanas de tiempo, verificando que el estado se recupera correctamente tras un reinicio del procesador
  • Diseñar la evolución de un schema Avro registrado en Schema Registry aplicando un cambio compatible con la política BACKWARD y verificando que los consumers con el schema antiguo siguen deserializando mensajes nuevos
  • Optimizar el throughput y la latencia de un pipeline Kafka usando kafka-producer-perf-test.sh, identificando el parámetro limitante y ajustando linger.ms, batch.size, fetch.min.bytes o compression.type
  • Evaluar una arquitectura multi-cluster con MirrorMaker 2, identificando los riesgos del offset mapping entre clusters y definiendo el procedimiento de failover con criterios de RPO y RTO
  • Automatizar el despliegue de un cluster Kafka en Kubernetes usando Strimzi, definiendo el recurso Kafka con almacenamiento persistente y creando topics con el recurso KafkaTopic
  • Definir reglas de alerta en Prometheus para las métricas críticas de un cluster Kafka en producción (consumer lag, UnderReplicatedPartitions, broker offline, throughput anómalo) e integrarlas con Alertmanager
  • Planificar y ejecutar la migración de un cluster Kafka de ZooKeeper a KRaft usando el bridge mode, definiendo los criterios de rollback y las verificaciones de estado previas a desconectar ZooKeeper
  1. Kafka Streams: procesamiento stateful y ventanas temporales Diferencia entre operaciones stateless y stateful; state stores en RocksDB y changelog topics como mecanismo de durabilidad; construcción de una topología con StreamsBuilder; ventanas temporales con TimeWindows y grace periods; recuperación de estado tras reinicio; verificación del changelog topic y su política de compactación
  2. Schema Registry y evolución de schemas con Avro Registro de schemas en Schema Registry; políticas de compatibilidad BACKWARD, FORWARD y FULL; definición de campos opcionales con tipos union ["null", "type"] en Avro; verificación de compatibilidad con el endpoint /compatibility antes de registrar; resolución writer/reader schema en el KafkaAvroDeserializer
  3. Optimización de throughput y latencia Benchmarking con kafka-producer-perf-test.sh y kafka-consumer-perf-test.sh; interpretación de métricas de throughput, latencia media y percentil 99; ajuste de batch.size y linger.ms para batching eficiente; fetch.min.bytes y fetch.max.wait.ms en el consumer; compression.type (lz4, snappy, zstd) y trade-off CPU vs red
  4. Arquitecturas multi-cluster: MirrorMaker 2 y failover Topologías activo-pasivo y activo-activo; replicación de topics y sincronización de offsets con sync.group.offsets.enabled; riesgos del offset mapping entre clusters y uso de RemoteClusterUtils.translateOffsets(); configuración de replication.factor y tasks.max en función del RPO; procedimiento de failover paso a paso
  5. Kafka en Kubernetes con Strimzi Rol del operador Kubernetes y los CRDs de Strimzi (Kafka, KafkaTopic, KafkaUser); despliegue del cluster con replicas y storage.type: persistent-claim; verificación del estado Ready con kubectl wait; gestión de topics con KafkaTopic y el label strimzi.io/cluster; Entity Operator para gestión declarativa de topics y usuarios
  6. Producción: alertas y migración ZooKeeper → KRaft Métricas clave de Kafka en Prometheus: kafka_server_replicamanager_underreplicatedpartitions, kafka_consumergroup_lag, kafka_brokers; sintaxis de reglas de alerta con expr, for y severity; enrutamiento en Alertmanager por severity a PagerDuty y Slack; fases de la migración ZooKeeper → KRaft con bridge mode; criterios de rollback y verificaciones de estado previas a desconectar ZooKeeper
  • Java 17 o superior y Maven o Gradle para el desarrollo de aplicaciones Kafka Streams
  • Docker Desktop 4.x o superior para ejecutar Kafka, Schema Registry y entornos de test
  • Confluent Schema Registry (imagen Docker confluentinc/cp-schema-registry) para ejercicios de evolución de schemas
  • Kubernetes local con kind 0.20 o superior o minikube 1.32 o superior
  • Helm 3.x para instalar el operador Strimzi en el cluster Kubernetes local
  • Prometheus y Grafana (via Docker Compose o Helm) para ejercicios de alertas
  • kubectl configurado para el cluster Kubernetes local
  • Python 3.11 o superior con confluent-kafka para ejercicios de benchmarking y cliente

→ KFK02 — Apache Kafka intermedio (Intermedio, 8h)

  • Diseñar la topología de topics con requisitos de ordenación, paralelismo y retención
  • Configurar consumer groups y verificar el rebalanceo con kafka-consumer-groups.sh
  • Configurar políticas de retención (delete) y compactación (compact) según el caso de uso
  • Integrar fuentes de datos externas con Kafka Connect y verificar el estado del conector
  • Monitorizar el consumer lag e identificar la causa de un lag creciente
  • Depurar mensajes perdidos o duplicados analizando la semántica de entrega (acks, commit de offset)
  • Configurar replicación multi-broker y verificar la tolerancia a fallos ante la caída del broker líder