StreamThoughts
REMOTE

Kafka Streams

Compétences avancées pour le développement d'applications de streaming

Prix : 1980€ H.T. - par participant

Pour plus d'informations sur cette formation, veuillez contacter :
training@streamthoughts.io

Description

Ce cours de 3 jours apprend aux participants à utiliser les API avancées de Kafka Streams, à monitorer et à administrer des applications en production. Il traite aussi les meilleures pratiques de développement.

Objectifs du cours

Ce cours permet aux participants d'acquerir les compétences suivante :

  • Comprendre le fonctionnement des APIs DSL et Processor de Kafka Streams.
  • Créer des topologies de traitement de flux de données.
  • Implémenter des applications stateful à travers les mécanismes de State Stores.
  • Monitorer une application Kafka Streams.
  • Optimiser les performances d'une application Kafka Streams.

Pédagogie

50% théorie, 50% pratique

Qui Peut Participer ?

Ce cours est destiné aux Développeurs d'applications, aux Architectes et aux Data Ingénieurs qui ont besoin de créer et de déployer des applications de streaming pour enrichir, transformer, joindre et interroger des données diffusées, en temps réel, à travers Apache Kafka.

Durée

3 Jours

Pré-requis

Les participants doivent être familiarisés avec le développement en Java. Une connaissance des concepts de base d’Apache Kafka est fortement recommandée mais pas obligatoire.

Programme de formation

Module 1 : Retour aux fondamentaux

  • Broker, Message, Topic & Partitions
  • Principes de bases des Producers
  • Consumers & Consumer Groups
  • Réplication et tolérance à la panne
  • Rétention et compression des données
  • Comprendre les rôles de zookeeper
  • Comprendre les performances de Kafka

Module 2 : Introduction à Kafka Streams

  • Pourquoi Kafka Streams ?
  • Les cas d’usages et caractéristiques clés
  • Les niveaux d’abstraction
  • Les Concepts de Streams et de Tables
  • Construire une topologie simple via l’API Streams DSL
  • L’API Processor
  • Sous-topologies et topics de repartitionnement
  • Configurations de base

Module 3 : Modèle d’Architecture et de Parallélisation

  • Streams Tasks
  • Streams Threads
  • États d’exécution
  • Modèle de consommation et de traitement
  • Assignation des partitions

Module 4 : L’API Processor

  • Aperçu de l’API
  • Accès au contexte d’un processeur
  • Tranférer des messages entre les processeurs
  • Construire une topologie
  • Manipuler des états locaux
  • Ponctuer des opérations (API Punctuator)
  • Les opérations de repartitionnement

Module 5 : L’API DSL Streams et Les Opérations Stateful

  • Aperçu de l’API
  • Les abstractions & Operations
  • Les opérations sans états
  • Les fonctions d’agrégation
  • Comment combiner les APIs Streams DSL et Processor (Transformateur)
  • Streams DSL vs Processor

Module 6 : Les opérations fenêtrées et les sémantiques des jointures

  • Les notions de temps
  • Les opérations fenêtrées
  • Manipulation du Temps (TimestampExtractor)
  • Gestion des messages en retard
  • Suppression des agrégats intermédiaires
  • Les jointures - Sémantiques et opérations

Module 7 : Comprendre les mécanismes de stockage d’états

  • Implémentations et rôle des Stores
  • Comprendre le chemin de lecture d’un KeyValueStore
  • Comprendre le chemin d’écriture d’un KeyValueStore
  • Les réplicas passifs et la récupération d’états

Module 8 : RocksDB

  • Introduction à RocksDB
  • Concepts et architecture
  • Gestion de la mémoire
  • Métriques et configurations disponibles

Module 9 : Gestion des erreurs

  • Les types d’erreurs
  • Comment gérer les exceptions de désérialisation
  • Comment gérer les exceptions de production de messages
  • Quelles stratégies de gestion des erreurs choisir ?

Module 10 : Tester une application Kafka Streams

  • Tester une topologie en utilisant l’API TestTopologyDriver
  • Comment écrire des tests d’intégration avec Kafka Embedded et Dockers

Module 11 : Concepts et fonctionnalités avancés

  • La sémantique “Exactly-Onces”
  • Optimisation d’une topologie
  • Nommer les opérations d’une topologie
  • Le rejeux des données
  • Les “Interactive Queries”

Module 12 : Gestion d’une application Kafka Streams en production

Module 13 : Recommandations infrastructure

Module 14 : Conclusion

The Author's Avatar
formateur référent

Florian travaille depuis plus de 8 ans dans le conseil, il est co-fondateur et CEO de StreamThoughts. Au cours de sa carrière, il a travaillé sur divers projets impliquant la mise en oeuvre de plateformes d’intégration et de traitement de la data à travers les mondes technologiques de Hadoop et de Spark. Passionné par les systèmes distribués, il se spécialise dans les technologies d’event-streaming comme Apache Kafka, Apache Pulsar. Aujourd’hui, il accompagne les entreprises dans leur transition vers les architectures orientées streaming d’événements. Florian est certifié Confluent Administrator & Developer pour Apache Kafka. Il est nommé deux années consécutive (2019 et 2020) “Confluent Community Catalyst” pour ses contributions sur le projet Apache Kafka Streams et son implication dans la communauté open-source. Il fait partie des organisateurs du Paris Apache Kafka Meetup.