L'architecture événementielle avec Apache Kafka

Description de la formation

Dans le contexte de la modernisation numérique, l’usage de l’architecture événementielle propulsée en autre par Apache Kafka est de plus en plus fort dans les entreprises.

Le but de cette formation est d’acquérir des bases solides dans la compréhension du fonctionnement de l'architecture événementielle en concevant des Producers, Consumers et Kafka Streams en Java, ainsi que savoir utiliser les outils utiles pour leurs manipulations.

Cette formation permettra aux participants de comprendre les aspects essentiels de Apache Kafka. Des cas d’usages seront présentés en guise d’exercices pratiques pour valider la bonne compréhension tout au long de la formation.

Objectifs pédagogiques

À la fin de cette formation, vous serez en mesure de :

  • Comprendre les concepts de l’architecture événementielle
  • Avoir une compréhension intermédiaire (vision développeur) de Apache Kafka
  • Concevoir des flux de données avec Apache Kafka avec notamment le calcul de throughput et du sizing du cluster Kafka
  • Développer des applications en Java avec un Producer, Consumer et un KStreams
  • Comprendre le fonctionnement du Schema Registry ainsi que les avantages et enjeux reliés à son usage
  • Comprendre comment anticiper et résoudre les erreurs les plus communes
  • Comprendre les éléments clés à surveiller pour l’opérationnalisation

Méthodologie

Plusieurs méthodes d’apprentissage permettant de mesurer votre progrès et votre intégration des concepts sont utilisés tout au long de la formation :


Exposé interactif (60 %), exercices théoriques et pratiques (40 %)

Clientèle visée

Développeur ou Devops avec une connaissance de Java ayant un intérêt pour l'architecture événementielle et/ou Apache Kafka

Particularité

Vous devez installer/ou télécharger sur votre ordinateur : Java JDK, un IDE (NetBeans, Eclipse ou intelliJ), Maven/gradle, Docker / Docker Compose, Apache Kafka (pour le CLI) une connection Internet non bridée par un firewall

    Architecture orientée événements

    • Objectifs
    • Définition d’un événement et d’un flux d’événements
    • Event Sourcing versus Event Stream Processing

    Cas d’usage de l’architecture événementielle

    • Calcul du throughput
    • Sensibilisation au format de données et à son impact
    • Sémantiques de garantie de livraison
    • Ordre des événements

    Apache Kafka - les fondamentaux

    • L’architecture de Apache Kafka
    • Broker
    • Topic / partition / segment / offset
    • Producer, compréhension de l'acknowledgment des messages, anatomie d’un message et sérialisation
    • Consumer, désérialisation, stratégie de commit
    • Consumer group
    • Bases sur la sécurité avec Apache Kafka
    • Utilisation du Kafka CLI (exercices pratiques)
    • Développer son premier Producer / Consumer (exercices pratiques)

    Apache Kafka - notions avancées

    • Rétention et compaction des messages
    • Lien entre la réplication, le min insync replicas et le acks
    • Impacts de la réplication
    • Nombre de partitions : comment le déterminer
    • Producer : équilibre entre throughput et latence
    • Consumer et ses principales configurations
    • Modification des configurations pour voir les impacts (exercices pratiques)

    Schema Registry

    • Présentation globale et explications sur Avro
    • Développement d’un Producer et d’un Consumer avec un schéma (exercices pratiques)
    • Dead Letter Queue et Poison Pill (exercices pratiques)

    Kafka Streams

    • Fonctionnement général (Topology, DSL, KStream, KTable, GlobalKTable)
    • Agrégation de données sur le temps (Windowing)
    • Développement de KStreams (stateless, stateful et avec windowing)

    Opérationnalisation, monitoring et alerting

    • Métriques Broker, Producer, Consumer, KStreams
    • Usage des commandes CLI pour le monitoring et cas d’usage courants (exercices pratiques)