Je profite ce matin d’un peu de temps pour partager avec vous mon expérience sur la certification « Lightbend Reactive Architecte ». Comment se préparer ? A quoi sert une certification ? Que contiennent les cours ? Pourquoi suivre une formation et la certification ? Vous en saurez plus à la fin de la lecture de cet article.
Lightbend propose sur le site Lightbend Academy le parcours et la formation pour préparer la certification « Reactive Architecte« . Lightbend c’est l’entreprise qui offre un support professionnel pour des produits comme Akka, le langage Scala, ou le logiciel Lagom. Un jeu vidéo comme Fortnite génère environ 54 milliards d’événements de jeux par jour et utilise entre autre Akka, l’une des technologies de Lightbend. Vous imaginez bien qu’il faut des serveurs, mais aussi des logiciels à même de répondre aux fortes demandes des joueurs. Il faut des machines, des logiciels, et enfin surtout une architecture pour construire ces solutions.
En 2014 plusieurs acteurs de notre métier se sont regroupés pour écrire le « Reactive Manifesto« . Partant du constat que les applications sont de plus en plus amenées à gérer de fort volumes, à devoir rester résiliente en cas de panne, le Manifeste Réactif pose 4 caractéristiques des systèmes dit « réactifs ». C’est la base de la formation et de la certification proposée par Lightbend, dont nous allons parler un petit peu ensemble. Au passage, programmation réactive et système réactif sont 2 sujets différents.
Introduction
Lundi 14 décembre : panne chez Google en Europe. En quelques minutes, une partie des services de Google ne fonctionnent plus, mais vous avez constaté qu’une grande partie continuait à fonctionner sans problèmes. C’est la composante « Résilience » d’une architecture Réactive. En cas d’erreurs, le système continuera à fonctionner de façon dégradé, en isolant les erreurs, et en dupliquant les données pour que le système global continue à répondre. Une fois la panne corrigée, il a fallut gérer l’immense afflux d’utilisateurs Google, inquiet de savoir que « YouTube ne fonctionnait plus« . En fait YouTube marchait toujours. L’authentification pour mettre en ligne une vidéo de ta voiture de sport ne fonctionnait pas pendant 47 mn. Cela veut dire que ce service de Google a une disponibilité de 99,99% par année (soit une interruption d’au plus 52,56 minutes). Sur une année entière, le service a été disponible 99,99% du temps… c’est fou non ?
Ces systèmes dit « réactifs » suivent un ensemble de pratiques et d’architecture logiciel : l’élasticité, la résilience, les messages asynchrones, pour rester disponible, même en cas de panne partiel. C’est le développeur(.se) qui, en suivant des recettes de cuisines, pourra rendre « réactif » son logiciel. Les formations et la certification qualifient votre aptitude à construire une solution informatique réactive.
Si le sujet vous intéresse, je vous proposerai un article sur le sujet de l’architecture logicielle réactive. Mettez un pouce bleu et un commentaire en dessous…
La certification et le passage de l’examen
Avant de parler des formations, je vais expliquer comment se déroule la certification elle-même. Elle dure 120 minutes (et pas 90mn comme indiqué sur le site), vous avez 150 questions sur 3 grands thèmes :
- Domain Driven Design avec 30 questions
- Reactive Microservices avec 108 questions
- Software Architecture avec 12 questions
La certification dure donc 2h, sous la forme d’un QCM via une plate-forme. Une fois la session lancée, vous ne devez pas basculer dans un autre onglet, ou ouvrir un document sur votre ordinateur pour tricher, au risque sinon d’arrêter la session. Vous avez donc moins d’une minute par question, ce qui ne laisse pas le temps de tergiverser. Il faut vraiment aller vite. Certaines questions sont ardues ou ambigues et je recommande de ne pas perdre trop de temps dessus. Vous pouvez aussi marquer une question pour y revenir plus tard. Mais sincérement, ne perdez pas 5mn à comprendre, vous n’aurez pas le temps de terminer.
La certification elle-même est payante (comptez 250 USD), mais les modules de formation sont gratuits et disponibles sur le site Academy de Lightbend. Cette certification est valable 3 ans. Enfin, vous devez obtenir 80% de bonnes réponses pour être certifié, et vous avez le droit de retenter une fois l’examen.
J’ajoute que Lunatech dans le cadre de son partenariat avec Lightbend, permet à ses employés de passer la certification gratuitement. Merci à Lunatech donc pour cette possibilité.
Les formations du cycle Reactive Architecte
C’est la 4ème révision de la formation, et de la certification. Il y a eu des mises à jour et la prise en compte de retours, ce qui rend cette certification très d’actualité. Concernant la partie Event Sourcing/CQRS, la formation insiste sur les anti-patterns et vous sensibilise correctement sur les cas où il ne faut pas utiliser cette approche. De même, la partie micro-service est assez balancée, et ne se transforme pas en « mettez des micro-services partout« . Loin de là.
Que faut-il faire donc pour être prêt pour la certification ?
Tout d’abord je recommande de suivre chacun des 6 modules de la formation « Reactive Architecte ». Formations qui sont toutes gratuites, en ligne et à votre rythme.
Sur le contenu, vous allez apprendre des pratiques et des patterns. Un petit aperçu de ce que couvre les formations :
- Introduction to Reactive Systems : les 4 principes, différence avec la programmation réactive. durée 3h, c’est une bonne intro indispensable pour poser le vocabulaire
- Domain Driven Design : DDD ? Domain, Commands, Events, Queries, Value Object, Entities, Aggregate Roots, Services, Repositories, Architecture Ports and Adapters. Très intéressant. Demande au moins 10h de travail
- Reactive Microservices : c’est quoi un micro-service ? Avantage/inconvénient par rapport à un monolithe. Principe d’isolation (state, space, time and failure). Techniques d’isolations (bulkhead, circuit breaker, message driven, gateway service). Permet de comprendre réellement l’approche micro-service. Comptez 5h à 7h.
- Building Scalable System : Consistency, Availability et Scalability. Performance vs Scalability. Comprendre Eventual consistency vs Strong Consistency. CAP theorem. Partition. Sharding pour la Consistency. CRDTs pour l’Availability. Choix de l’un ou l’autre. Amdahl et Gunther’s laws. Permet de connaître la théorie derrière une architecture réactive. Comptez 10h car celle-ci est musclée.
- Distributed Messaging System : le problème des 2 Généraux et comprendre qu’est-ce qu’une architecture orientée messages. Synchrone/asynchrone. Le pattern Saga pour couvrir l’approche transactionnelle sur un système distribué. Architecture Point à Point ou Publish-Subscribe. Cette partie est moins intéressante, mais indispensable pour la certification. Comptez 5h pour la traiter.
- CQRS et Event-Sourcing : présentation, utilité et cas pratiques. Explication de l’approche classique dite « state-based persistence » et approche « event sourcing ». Présentation aussi de « command sourcing ». Ensuite CQRS : lorsque le modèle pour écrire et le modèle pour lire ont intérêt à être traité différemment. L’impact de CQRS avec les micro-services. Impact de CQRS sur Consistency, Availability, Scalability de votre système. Le coût d’une architecture CQRS/ES et les inconvénients que cela peut représenter. Comptez 7 à 8h pour celle-ci, qui est assez complète, et pas trop biaisé. On peut faire du CQRS sans faire nécessairement de l’Event Sourcing.
Au final donc, environ 40h de formations, sans compter différents articles que vous pourrez lire pour aller plus loin. Chaque cours propose en effet des liens à découvrir, lorsqu’un sujet vous intéresse particulièrement. Le contenu académique est très sérieux, et cite les sources.
Organisation et temps
A raison d’1h chaque matin et quelques heures le week-end, comptez 3 semaines pour suivre chacune des formations. C’est très intéressant. J’ai beaucoup aimé la formation DDD et la formation 4 « Building Scalable System ». Chaque formation comprend une partie théorique avec des vidéos présentées par Wade Waldron. Le ton est clair, l’anglais est facile à suivre car la transcription accompagne la présentation de l’orateur. Vous pouvez simplement lire, quoique personnellement je mémorise plus en écoutant.
Après la partie théorique, vous aurez des études de cas, avec le fameux « Reactive BBQ », un restaurant qui voit son activité bouleversée, pour répondre aux nouvelles demandes d’une clientèle en forte croissance. Les études se terminent par des QCM de tests. Parfois des questions à choix multiples, parfois des questions à choix simple. Vous avez une 2ème chance pour répondre lorsque vous vous êtes trompé. L’intérêt étant de vous amener à relire/ré-écouter un passage pour répondre correctement. A la fin de chaque formation, vous aurez un examen d’1 heure. Ce petit examen vous demandera plus d’efforts car il faudra saisir des mots dans des champs de texte. Là encore vous avez le droit de relire les cours pour trouver la bonne réponse. L’intérêt de cette partie étant de vous faire acquérir les connaissances.
Après 3 semaines donc, j’ai complété tous les modules. Certains étaient plus intéressants que d’autres. La formation globlalement parle assez peu des solutions de Lightbend. Oui, on vous rappelera que le framework Akka, ou que la solution Lagom permettent de répondre à ces soucis. Mais cela reste léger. Pour une formation qui est gratuite, je trouve que le niveau est très correct.
Est-ce que cette formation s’adresse à des débutants ? Selon moi, vous apprecierez plus cette formation avec une expérience de développement. Les cas présentés seront plus parlant si vous avez été confronté aux exemples présentés. Pour avoir déjà suivi la formation DDD d’Eric Evans, j’ai trouvé que le module DDD de Lightbend était plutôt bien fait. Lors de l’examen, j’ai eu plus de mal sur les tournures de phrases, et certaines parties cependant sont restées un peu cryptique. Il faut bien comprendre la notion de Bounded Context.
Par exemple,
Which of the following should be considered when selecting an Aggregate Root?
- Is it identified by a single identity ?
- Does it have more than three sub-elements?
- Is it involved in most of the operations in the bounded context?
- Can you delete the entity?
Vous pouvez sélectionner de 0 à 4 réponses à la question. Je ne vous dirai pas quelle(s) est(sont) la(les) bonne(s) réponse(s). Si vous voulez creuser le sujet, la formation DDD répondra à cette question.
Bilan personnel
En conclusion, j’ai apprecié cette formation, et je la recommande les yeux fermés. Elle vous permettra de comprendre l’intérêt de l’architecture réactive. Elle répondra à vos questions sur les micro-services, en s’appuyant sur des exemples simples à comprendre. J’ai passé et obtenu ensuite la Certification « Reactive Architecte » le 9 décembre 2020.
Voilà, j’espère que cet article vous aidera à vous lancer, tout se fait sur le site Academy de Lightbend.
Commentaires récents