Objectifs
- Comprendre le fonctionnement de l'écosystème Kafka
- Être en mesure de développer, dans tout son cycle de vie, une application de streaming, depuis la création du projet jusqu'au suivi en production
Public visé
Développeur souhaitant découvrir le monde des applications de streaming avec Kafka en vue de :
- comprendre l'architecture des applications de streaming
- comprendre les enjeux des applications de streaming
- mettre en place des applications de streaming
Pré-requis
Des connaissances de bases en Java et / ou Scala.
Poste de travail avec :
- Un IDE (type IntelliJ)
- Docker
- Pas de restriction réseau vers Maven Central & Docker Hub
Déroulé
> 1ère journée
Introduction au monde des applications de streaming
- Qu'est-ce que le temps réel ?
- Streaming vs Batch
- UseCase : Micro Services
- UseCase : Event Sourcing
Architecture de Kafka
- Intro
- Concepts de base de Kafka : brokers, topics, records, ...
- Les distributions de Kafka
- Concepts de base des clients Kafka : producers et consumers
- Cas pratique :
- installation d'un cluster sur le poste de travail
- découverte des applications installées
- création de topics
Les différents clients Kafka
- Client CLI
- Cas pratique : manipulation des client en CLI
- API Bas niveau
- Cas pratique : manipulation de l'API bas niveau
- Kafka Connect
- Cas pratique : configuration d'un connecteur Kafka
- Kafka Streams
- KSQL
- Développer une application en temps réel avec Kafka 3
- Autres clients
Kafka Streams : Applications Stateless
- Concepts de base de Kafka Streams : topologies, processeurs et streams
- Opérateurs : lecture et écriture dans des topics
- Opérateurs : transformation stateless
- Opérateurs : structures conditionnelles
- Cas pratique : création d'une application Stateless
> 2ème journée
Kafka Streams : Donnée structurée avec Avro
- Avro vs plain text
- Schema Registry
- Schema evolution
- GenericRecord et SpecificRecord
- Cas pratique : ajouter des schémas dans l'application stateless
Kafka Streams : Applications Statefull
- Concept de base de Kafka Streams : l'état
- La dualité Stream-Table
- Opérateurs : agrégats
- Opérateurs : jointures et fenêtrages
- Cas pratique : création d'une application Statefull
Kafka Streams : concepts avancés
- Processing guaranties
- Gestion de la taille des topics : suppression et compaction
- Gestion d'erreur : la pilule empoisonnée
- Développer une application en temps réel avec Kafka 4
- Accès à un système externe
Kafka Streams : Tester son application
- Comment tester une application de streaming ?
- Kafka Streams Test Utils
- Mocked Streams : spécial Scala
- Cas pratique : ajout de tests sur les applications stateless et statefull
KSQL
- Architecture d'une application KSQL
- Cas pratique : création d'une application Stateless avec KSQL
Une application de streaming en production
- Gestion des logs
- JMX et métriques
- Les outils : gestion de cluster
- Les outils : solutions de monitoring
- Les outils : debug
- Cas pratique : explorer un dashboard Grafana et ajouter une métrique business
Sécurité
- Chiffrement
- Authentification
- Gestion des autorisations avec des ACL
Formateur
Sylvain Lequeux
Prix HT
1 500€
Dates des prochaines sessions
15 au 16 mars 2021
24 et 25 mai 2021
6 et 7 septembre 2021
6 et 7 décembre 2021
Pour vous inscire ou en savoir plus sur cette formation, veuillez nous envoyer un message via le formulaire de contact.