Aujourd'hui, je vais vous partager un petit retour d'expérience de mon passage de la certification Confluent Certified Developer for Apache Kafka.
Encore un retour de certification ? Mais ce ne sont pas toutes les mêmes ?
Si vous n’êtes pas du domaine du développement informatique, je peux comprendre cette question. La réponse, en bref, est :
Chaque certification atteste que son porteur possède une certaine maîtrise de l’outil pour lequel il est certifié. Il y a donc (presque) autant de certifications que d’outils utilisés dans le monde de l’IT professionnel… c’est-à-dire énormément !
Pour revenir à notre sujet phare du jour, Apache Kafka est un outil puissant vous permettant de centraliser et de redistribuer de manière robuste des données extrêmement variées entre plusieurs applications. Véritable pièce maîtresse pour les sociétés Data-driven, nous vous partageons ici sa définition exacte.
Dans un monde où la donnée est variée, nombreuse et de plus en plus rapide, il est nécessaire pour un informaticien de connaître les différents outils permettant de la produire, transmettre, traiter et stocker tout au long de son cycle de vie.
Et c’est avec Apache Kafka que j’ai décidé de continuer mon voyage vers le monde de la donnée.
En quoi cela consiste ?
La certification Confluent Certified Developer for Apache Kafka est organisée par la société Confluent fondée par les créateurs d’Apache Kafka qui propose, entre autres choses, des services commerciaux autour de ce projet open source.
En résumé, cette certification c’est :
Acronyme | CCDAK |
---|---|
Nombre de questions | 60 |
Type de questions | Questions à choix multiple |
Durée | 90 minutes |
Seuil de réussite | Inconnu |
Prix | 150 $ |
Non, ce n’est pas une erreur : le seuil de réussite est inconnu. Confluent ne communique pas le seuil de réussite de cette certification, ce qui lui permet de l’ajuster au fil du temps. Personnellement, je l’ai obtenue avec un score de 81 %.
Ce qu’il faut étudier et où
Plongeons au coeur de l’enjeu : à quoi ressemblent les questions de la certification ?
Le format des questions
Des questions à choix simple ou multiple. Notez que si une réponse est à choix multiple, Confluent indiquera dans la question le nombre de bonnes réponses à choisir ! Cela vous aidera à choisir les réponses les plus probables en cas de doute.
Les thèmes et sujets couverts
Ce point est en réalité le plus difficile. Contrairement à d’autres organismes certifiants, Confluent ne donne pas beaucoup d’informations (précises) concernant ce qui est couvert ou non par l’examen. Le but étant de démontrer une certaine maîtrise, pas de bachoter.
Sur la plateforme https://training.confluent.io vous pourrez suivre gratuitement le module Confluent Certified Bootcamp: Developer qui vous donnera un grand nombre de liens vers des articles précis ainsi que vers les documentations officielles des différents outils à connaître. Cependant, ces documentations étant très complètes, il n’y a en pratique pas de borne supérieure à votre étude.
Pour tracer un contour, je dirais qu’en 2024, la certification Kafka englobe les thèmes suivants :
- Apache Kafka en soi (design, architecture et configuration)
- Interagir directement avec Apache Kafka
- Interagir avec les outils de la suite Kafka (Connect, REST Proxy, Stream & KSQL)
En théorie, cela couvre les sujets suivants :
Apache Kafka en soi :
- Architecture et design de Kafka (topic, partition, replica, etc.).
- Concepts généraux de ce qu’est un modèle pub-sub ainsi que la notion de streaming
- Utiliser les outils en lignes de commandes pour interagir avec Kafka
- Apache Kafka API, configuration et métriques
- Metadata design
- Métriques des systèmes autour de Kafka (l’OS, les producers, les consumers)
- La sécurité avec Apache Kafka (authentification, autorisation, chiffrement, etc.)
Interagir directement avec Apache Kafka :
- Écrire un Producer en Java
- Utiliser l’API REST pour écrire un Producer
- Écrire un Consumer en Java
- Utiliser l’API REST pour écrire un Consumer
- La manipulation des offsets, les différents callback implémentables en cas de rebalance dans un consumer group, etc.
- Utilisation des schémas et du Confluent Schema Registry
Interagir avec les outils de la suite Kafka :
- Sécuriser et tester Kafka et nos interactions avec lui
- Monitorer et diagnostiquer des problèmes au sein d’un producer ou d’un consumer
- Optimiser les programmes clients
- Développer et tester des applications Kafka Streams
- Développer et tester des applications Confluent KSQL
- Notions relatives à Kafka Connect
- Notions relatives au Confluent REST Proxy
Pas de panique !
Durant l’examen, il ne vous sera pas demandé de coder. L’axe d’évaluation de cette certification sera majoritairement la compréhension des concepts fondamentaux d’Apache Kafka et de leurs impacts dans certaines situations concrètes.
En pratique, je vous donne ci-dessous 👇 où trouver les informations à étudier.
Pour ce qui concerne Apache Kafka et comment interagir directement avec, je recommande l’étude du livre Kafka: The Definitive Guide Real-Time Data and Stream Processing at Scale, deuxième édition.
Sur les 14 chapitres, seuls les chapitres 10 et 12 ne sont pas couverts par l’examen. Après une lecture approfondie des 12 chapitres restants, les chapitres 3 à 8 ainsi que 11 et 13 seront à étudier particulièrement sérieusement.
Pour les éléments restants, à savoir les sujets concernant les outils de la “suite” Kafka : Streams, KSQL & Connect, je recommande de suivre les pages de documentation conseillées par Confluent dans son module Confluent Certified Bootcamp: Developer.
SFEIR étant une société partenaire de Confluent, j’ai eu l’opportunité d’avoir accès à un ensemble étendu de modules de formation. Si vous avez vous aussi l’occasion de suivre des modules dédiés à ces outils, je ne peux que vous conseiller de le faire et de vous attarder particulièrement sur les Hands-On.
En effet, certaines questions porteront sur les types de données, la syntaxe des requêtes ou les opérateurs de ces différents outils (comme through pour Kafka Streams). Or, le livre présenté plus tôt commençant à dater, il est préférable de se frotter à la documentation la plus récente et de pratiquer soi-même.
En bref, ce que je conseille :
- S’enregistrer sur la plateforme https://training.confluent.io
- Suivre le cours Confluent Certified Bootcamp: Developer et le cours lié Apache Kafka Fundamentals pour acquérir une vision d’ensemble des éléments qui sont liés à la certification.
- Étudier le livre Kafka: The Definitive Guide, 2ème édition.
- Compléter l’étude des outils plus spécifiques via des modules dédiés ou la documentation officielle en consolidant avec quelques exercices pratiques.
- Passer la Confluent Fundamentals Accreditation pour avoir un avant-goût d’un examen “à blanc”.
Les examens blancs étant rares, ne partez pas à leur recherche mais privilégiez les flashcards qui vous permettent de consolider votre étude … ou de vous aider à identifier les éléments à réviser plus profondément.
Pour ma part, je n’ai pas fait le 4ème point en pensant que les points abordés dans le livre seraient suffisants et cela n’a pas été le cas, ce qui m'a mené à perdre des points “faciles”.
Enfin, une expérience pratique est évidemment un bonus de grande valeur car elle vous aidera à mieux aborder les questions de “diagnostic” où l’on vous demandera quelle action est la plus pertinente à prendre en cas de lenteur du programme X configuré d’une façon donnée.
Comment se passe (psychologiquement) la préparation d’une certification Kafka ?
Si vous êtes à cette partie de l'article, c'est que vous vous êtes préparé à passer l'examen de certification... ou tout du moins, grâce aux infos ci-dessus, vous êtes préparé à vous préparer. Découvrons à présent les étapes qui nous attendent.
Cette certification étant la troisième que j’ai eu l’occasion de préparer depuis mon arrivée chez SFEIR il y a un an, je vous répondrais comme tout bon informaticien affrontant un problème plus de deux fois : en faisant une abstraction.
En effet, de ma première certification (dont j’ai décrit le ressenti dans un article dédié), à cette certification Kafka, les étapes psychologiques communes étaient les suivantes.
- Motivation initiale & déni : C’est parti ! On est chaud et motivé ! En plus, en une première séance, on a déjà lu 10 % du livre ! Waw, ça va être rapide et facile. Tout cela en étant dans le déni du fait qu’on a passé (mais comptabilisé) les pages liminaires.
- Réalisation du travail à accomplir : Lorsqu’on ne peut plus ignorer que la difficulté croissante rend notre lecture/apprentissage plus lent en termes de nombre de pages. Mais ça va aller, on va tenir le planning. .. Ah ?! Comment ça il y a du matériel pédagogique additionnel ? 😱
- Motivation fluctuante : Entre le travail quotidien, les obligations familiales et … "oh une idée d’un article pour sfeir.dev", on se retrouve vite dans la situation de l’étudiant en blocus qui se découvre une passion grandissante pour le rangement de sa chambre au fur et à mesure que l’examen approche.
- Le deuxième souffle : Allez, c’est parti ! Outre le fait qu’on se lasse de voir cette ligne dans notre TODO, ça fait depuis janvier qu’on dit à nos collègues “je passe l’examen le mois prochain” … et on est déjà en avril !
- La course de fond : Chaque trajet en train, chaque soir, c’est de la révision. Entre motivation constante et crainte grandissante au fil des examens blancs ratés, on se plonge profondément dans la matière et on ne lâche RIEN.
- Stress et regrets : Ah flûte ! Pourquoi n’ai-je pas fait cela aussi dans le cadre de ma préparation ! Bon, au pire, ça fera un article sfeir dev sur “Comment rater sa certification Kafka”. Pareillement, les quelques heures avant le passage de l’examen sont souvent très fertiles quand il s’agit de s’inventer des regrets et des scénarios alternatifs.
- 3 … 2… 1… On claque les dents, on serre les fesses et c’est parti !
- Soulagement et plénitude : Pffiiiiouuuu. Que l’on croie directement ou non à l’annonce de réussite sur l’écran, nous sommes allégés d’un poids qui devenait de plus en plus pesant au fil des jours.
- La récupération : 10h de sommeil pour récupérer de l’effort constant des jours précédents. Rappel : les enfants se lèvent d’autant plus tôt que vous voulez dormir tard. Pensez à leur faire passer la certification en même temps que vous.
Comment se passe (concrètement) le passage d’une certification Kafka ?
Après avoir obtenu un “voucher”, vous pourrez vous inscrire et réserver un créneau pour passer votre examen. Il est possible de passer l’examen en présentiel ou en distanciel. De préférence, privilégiez le présentiel dans un centre d’examen. Vous découvrirez pourquoi dans cette section. ;)
Une fois le créneau de passage réservé pour l’examen, vous recevrez un mail vous en donnant les consignes :
- Check-in 30 minutes avant
- Préparer 2 pièces d’identité distinctes
- Installer un logiciel de navigation sécurisé anti-fraude
- Dans une pièce où votre bureau est vide, les fenêtres occultées et l’ensemble de votre décoration déplacée.
C’est parti … enfin presque
Je me connecte en lançant l’application dédiée, donne les identifiants relatifs à cet examen et … j’attends.
J’attends qu’un examinateur humain valide mon environnement avant de lancer l’examen.
Donc … j’attends. Cette attente pouvant aller jusqu’à une dizaine de minutes où vous ne pourrez pas quitter le champ de votre webcam ni traîner sur votre téléphone va vous paraître trèèèèèès longue ;-)
Ah, c’est parti !
Et là, premier couac. Le son de mon ordinateur est coupé et vu que je suis dans le logiciel sécurisé anti-triche … aucun moyen de remonter le son ni par l'interface ni par les raccourcis clavier !
Au revoir monsieur, je reviens de suite. Bref, petit conseil, montez le son avant de lancer le logiciel !
Après ce faux départ, votre examinateur d’environnement va consciencieusement vérifier s’il vous est impossible de tricher soit via des moyens technologiques soit humains. J’ai dû :
- Prendre mon PC portable et faire le tour de la pièce afin de la filmer avec ma webcam;
- Filmer également les plafonds afin de vérifier que je n’y avais pas collé d’antisèches;
- Retourner les poches de mon pantalon afin de prouver qu’il n’y avait rien dedans;
- Montrer mes oreilles (au cas où il y aurait une oreillette);
- Montrer les verres et les montures de mes lunettes (pour contrer les smart glasses);
- Mettre mon PC au niveau du sol pour filmer le bas de la table;
- Retourner ma chaise afin de montrer le bas de ma chaise et donc l’absence de copions;
- Décrocher des cadres et photos afin de les déposer retournés face contre sol dans un coin de la pièce.
... tout cela après avoir montré ma carte d’identité et l’avoir jetée à plus de 5 mètres de ma chaise. Bref, ça ne rigole pas !
Si vous voulez passer votre examen sans cette fouille complète, je vous recommande de prendre rendez-vous dans un centre d’examen reconnu. Vous éviterez cette gymnastique qui a cependant le mérite de vous changer les idées juste avant votre test.
Ca commence … bientôt
Une fois l’environnement validé, un deuxième examinateur va vous reposer quelques questions par chat et vous informer une dernière fois de vos obligations durant le test et notamment :
- ne pas quitter la zone filmée par votre webcam
- ne pas parler (un examinateur entend plusieurs candidats)
- ne pas jurer ou s’énerver (de loin le plus difficile)
Après une validation d’usage, c’est enfin le moment de passer sur le grill !
75 minutes plus tard ... Ouf ! J’ai répondu à tout !
Il me reste 15 minutes pour parcourir les questions que j’avais mises de côté. Une seule réponse change. En effet, une question survenue plus loin donne la réponse (ou en tout cas un sérieux indice) à une question survenue au début de l’examen. Je change, je revérifie les questions que j’ai marquées car ayant un doute, je finis par ne rien changer d’autre et je valide.
Un froid “Result: PASSED” s’affiche sur l’écran mais qu’importe. Comme une course de fond préparée depuis plusieurs mois, on est juste satisfait que cela soit terminé et de récupérer du temps de l’espace mental… pour préparer la prochaine.
Conclusion
Que vous ayez réussi ou raté, cela importe peu. Si réussir une certification est une étape valorisante dans un parcours d'apprentissage, ce n’est cependant pas un objectif en soi. L’essentiel est plus simple encore : continuer à apprendre de nouvelles choses dans des domaines variés, explorer de nouveaux horizons et s’émerveiller dans sa vie professionnelle et personnelle.
Comme vous le dirait Thibaut dans son article, c’est grâce à SFEIR que j’ai pu sortir de ma zone de confort et prendre conscience de ces nouveaux horizons.
Merci à tout ceux qui rendent cela possible.