How I prepare for CCDAK and CCAAK Exams

Si vuestro buscador favorito ha tenido a bien traeros hasta aquí, es porque tenéis en mente afrontar alguna de las dos certificaciones que actualmente Confluent oferta, ya sea la Confluent Certified Developer for Apache Kafka (a partir de ahora CCDAK) o la Confluent Certified Administrator for Apache Kafka (a partir de ahora CCAAK), y queréis conocer más detalles de primera mano. No os preocupéis, estáis en el lugar correcto.

Así, en el presente artículo se pretende describir en que consisten estas certificaciones, los tópicos que abarcan, así como el proceso de preparación seguido para poder superar los tan temidos exámenes.

Confluent Certified Developer for Apache Kafka

Tal y como señala la página oficial de Confluent, CCDAK evalúa los conocimientos y habilidades para publicar y suscribirse a datos de un cluster de Apache Kafka, para lo que se debe comprender el papel de desempeña como plataforma de streaming de eventos y poder discutir acerca de los conceptos arquitectónicos sobre los que se sustenta.

En concreto, los candidatos deben dominar los siguientes tópicos distribuidos en 3 categorías:

Diseño de aplicaciones

  • Herramientas de línea de comandos de Kafka
  • Pub/Sub y Streaming
  • Arquitectura y diseño general de Apache Kafka
  • API, configuración y métricas de Apache Kafka
  • Metadatos de los mensajes
  • Métricas del sistema
  • Selección de clave para los mensajes de Kafka (opciones y factores)
  • Gestión de esquemas de los mensajes

Desarrollo

  • Clientes de Kafka: Productor y Consumidor, conceptos y funciones
  • Troubleshooting/debugging del cliente
  • Rendimiento, throughput, latencia y escalado
  • Garantía en el orden y envío de los mensajes
  • Serialización/deserialización
  • Selección de estrategia de particionado del productor
  • Gestión del offset del consumidor
  • Grupos de consumidores, asignación de particiones, rebalanceo de particiones
  • Estrategias de retención de datos y sus implicaciones
  • Particionado de los tópicos

Despliegue/Testing/Monitorización

  • Opciones de despliegue de las aplicaciones
  • Securización de los datos
  • Monitorización y resolución de problemas del cliente
  • Tunning del cliente
  • Funciones y casos de uso de Kafka Streams
    • Componentes esenciales de las aplicaciones de Kafka Streams
  • Funciones y casos de uso de KSQL/ksqlDB
    • Elementos esenciales de un entorno KSQL/ksqlDB

La siguiente tabla muestra la distribución de las preguntas en función de la categoría:

Ambito% de distribución
Diseño de aplicaciones40%
Desarrollo30%
Despliegue/Testing/Monitorización30%

A pesar de que en secciones posteriores se ahondará más en la tipología del examen, se trata de un test teórico en el que se mezclan preguntas tanto de definición de conceptos, como de resolución de pequeños casos de uso.

Destacar que no está permitido el uso de ningún de tipo de documentación durante toda la prueba, por lo que es imprescindible comprender y dominar bien los conceptos previamente listados. Y no, memorizar definiciones no os servirá de ayuda.

Confluent Certified Administrator for Apache Kafka

Tal y como señala la página oficial de Confluent, CCAAK evalúa los conocimientos y habilidades para construir, monitorizar y gestionar un cluster de Apache Kafka, para lo que también se debe comprender el papel de desempeña como plataforma de streaming de eventos y poder discutir acerca de los conceptos arquitectónicos sobre los que se sustenta.

En concreto, los candidatos deben dominar los siguientes tópicos distribuidos en 4 categorías:

Fundamentos de Kafka

  • Arquitectura, principios de diseño y propósitos de Apache Kafka
  • Sistemas distribuidos: escalabilidad, tolerancia a fallos, alta disponibilidad
  • Funciones principales del productor, consumidor y broker
  • Significado de un log “inmutable”
  • Significado de “commited”
  • Topicos, particiones
  • Servicios esenciales de Apache Zookeeper
  • Replicación, líderes, seguidores
  • Mensajes de Kafka, estructura, composición, metadatos
  • Controlador de Kafka
  • Semántica “exactly once”

Administrar, configurar y optimizar un clúster para maximizar el rendimiento

  • Secuencia de arranque; dependencias entre componentes
  • ¿Número de particiones? Compensaciones
  • Factores de escalabilidad
  • Herramientas de monitorización; Visualización de métricas
  • InSyncReplicas (ISR); Fully, Under replicated,y offline
  • Lag del consumidor, consumo insuficiente/excesivo
  • Fallo, detección y recuperación del broker
  • Procesamiento batch y su impacto/consecuencias
  • Determinar y resolver desequilibrios en la distribución datos entre los brokers
  • Impactos del tamaño de los mensajes
  • Cuotas

Seguridad de Kafka

  • Autenticación y autorización (significados y métodos)
  • Cifrado en transito: dónde y cómo
  • Cifrado en reposo: estrategias
  • Almacén de claves SSL/TLS
  • Resolución de problemas relacionados con la autenticación y autorización
  • Listas de control de acceso (ACL): dónde y cómo se usan

Diseño, resolución de problemas e integración de sistemas

  • Brokers y Zookeeper
  • CPU, RAM, red, consideraciones de almacenamiento o Número de nodos
  • Rack awareness
  • Kafka Connect
  • Source and Sink Connectors
  • Escalabilidad y alta disponibilidad
  • Continuidad del negocio/DR
  • Retención de datos

La siguiente tabla muestra la distribución de las preguntas en función de la categoría:

Ambito% de distribución
Fundamentos de Kafka15%
Administrar, configurar y optimizar un clúster para maximizar el rendimiento30%
Seguridad de Kafka15%
Diseño, resolución de problemas e integración de sistemas40%

Al igual que CCDAK, se trata de un test teórico en el que se mezclan preguntas tanto de definición de conceptos, como de resolución de pequeños casos de uso, en el que no esta permitido el uso de ningún de tipo de documentación durante toda la prueba.

Exam Preparation

Antes de describir el proceso de preparación empleado para tratar de superar los exámenes, comentar que un servidor disponía de un conocimiento previo, tanto teórico como practico, sobre Kafka. ¿Supone esto un factor diferencial a la hora de prepararlas? En este caso diría que sí y prueba de ello es que desde Confluent recomiendan disponer de 6 a 12 meses de experiencia con sus productos.

Es decir, los exámenes requieren de un conocimiento avanzado tanto teórico como practico de Kafka, que permitan diseñar la mejor solución para cada caso de uso y configurarla para obtener un rendimiento optimo en cada escenario. Para ello es vital conocer cómo funciona internamente y saber determinar qué esta ocurriendo en cada momento. Por lo tanto, el haber trabajado previamente con el ayuda a todos los niveles, especialmente cuando entran en juego parámetros de configuración avanzados.

Dicho esto, mi preparación se fundamentó principalmente en el libro Kafka: The Definitive Guide, el cual abarca absolutamente todos los tópicos de los exámenes, con explicaciones detalladas y casos de uso reales que te ayudan a entender las decisiones a tomar en función de la situación. Merece la pena leerlo aunque solo sea por puro entretenimiento, y lo mejor de todo es que es completamente gratuito.

Un momento…¿El mismo libro para las dos certificaciones? Eso es. De hecho, es el principal motivo por él se engloban ambas en un mismo post. Y no, no es necesario memorizarlo, tan solo disfrutarlo y comprender bien los conceptos que se presentan.

Una simple y estupida aclaración, el poder utilizar el mismo medio no implica que el temario sea el mismo ni mucho menos, como bien se ha descrito en la anterior sección, si bien es cierto que hay partes comunes. Por lo general CCDAK hace un mayor hincapié en la parte de Kafka Connect y Kafka Stream, mientras CCAAK se focaliza mas en como configurar los consumidores, productores o los brokers para obtener el mejor resultado en función del caso de uso.

Una vez leído el libro, opté por comprar dos practise tests por certificación en Udemy, que me ayudaran a hacerme a la idea del estilo de preguntas que plantea cada examen y poder poner en foco en aquellos tópicos que no dominara tan bien como debería. De nuevo, no perdáis el tiempo memorizando preguntas, ya que de poco o nada os servirá. Lo importante es conocer el por qué de cada respuesta y por lo general, todos los cursos lo explican de forma más o menos acertada.

Los practise tests adquiridos fueron los siguientes:

Dado que se tratan de exámenes teóricos en los que se mezclan preguntas con una o múltiples respuestas a escoger (no tiene perdida, en cada caso esta perfectamente delimitado), no había entorno alguno con el que familiares, por lo que solo quedaba llevar a cabo el examen.

Finalmente, no puedo sino recomendar el siguiente enlace en el que se resumen de forma concisa todos los aspectos clave de Kafka, ideal para calmar los nervios que puedan surgir a última hora. Al igual que en cualquier otra certificación, tampoco esta de más leerse el Frequently Asked Questions, si bien es algo que probablemente deberías haber hecho ya.

Exam Experience

Tal y como se ha ido comentado a lo largo del artículo, se trata de un examen teórico de 90 minutos de duración en el que se deben completar 60 (CCDAK) o 40 (CCAAK) preguntas. En ambos casos se mezclan cuestiones tanto de definición de conceptos, como de resolución de pequeños casos de uso, con una o múltiples respuestas a escoger, si bien en cada caso está perfectamente delimitado el número a seleccionar.

Los exámenes se llevan a cabo como tantas otras certificaciones, en una pestaña de vuestro navegador favorito a través de Examity. La parte positiva es que esta plataforma permite agendar una fecha a pocos minutos vista, es decir, que si una tarde te encuentras confiado puedes probar fortuna en caliente. La parte negativa es que un servidor tuvo que hablar con el equipo de soporte las dos veces que se inscribió, ya que no aparecían disponibles en la web para comenzarlos. Estos problemas a 20 minutos de examinarse no ayudan precisamente a calmar los nervios.

En lo que a la experiencia personal de los exámenes se refiere, nada destacable respecto a otras certificaciones. Al inicio, el supervisor me solicitó una identificación emitida por el gobierno no vencida, que incluyese una foto y una firma. Posteriormente, una vista de 360 ​​grados de la habitación para verificar que no hubiese nadie más en la misma, ni ningún elemento prohibido sobre la mesa de trabajo: móvil, tablet, papeles, bolígrafos… En mi caso, llevé a cabo los exámenes haciendo uso de un ordenador portátil, sin ningún tipo de dispositivo externo conectado (teclado, ratón, segunda pantalla). Todas las interacciones con el instructor se llevaron a cabo por voz, lo cual es bastante más ágil que el clásico chat de texto empleado en otras plataformas.

A pesar de comenzar algo nervioso, pude completar las pruebas, revisando las respuestas con detenimiento, en algo menos de una hora, por lo que podéis estar seguros de que el tiempo no es un problema. En esta ocasión, no había opción de tomarse un descanso para comer/beber algo rápido o ir al baño, por lo que aseguraos de estar en óptimas condiciones antes de iniciar la prueba.

Una vez entregado el examen, se nos comunica instantáneamente el resultado del mismo, si bien no se especifica la calificación obtenida. Por desgracia, se desconoce cuál es el resultado mínimo que debe obtenerse para aprobar, ya que desde Confluent se reservan el derecho a cambiar sin previo aviso tanto las preguntas del examen como la puntuación mínima requerida para superarlo.

Conclusiones

En conclusión, Confluent Certified Developer for Apache Kafka y Confluent Certified Administrator for Apache son dos certificaciones exigentes que buscan evaluar los conocimientos y habilidades para publicar y suscribirse a datos de un cluster de Apache Kafka y construir, monitorizar y gestionar un cluster de Apache Kafka respectivamente.

A nivel personal he disfrutado mucho con el proceso de preparación de la misma y es que el libro Kafka: The Definitive Guide es entretenido por sí solo y lo mejor de todo es que es completamente gratuito.

Espero que el artículo os haya servidor de ayuda, mucha suerte a todos aquellos que vayas a intentarlo y si tenéis alguna duda, dejadla en los comentarios.

Referencias

Se recomienda encarecidamente leer los siguientes artículos que han servido de base para el escrito:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s