Skip to content

Latest commit

 

History

History
265 lines (189 loc) · 10.7 KB

20201201_StarTECH_Confluent.adoc

File metadata and controls

265 lines (189 loc) · 10.7 KB

2020/12/01 - Confluent : architectures Event Driven sur base de Kafka par Confluent

Présentation technique des architectures Event Driven par Confluent durant la réunion mensuelle StarTECH de décembre

Teaser

Pour la réunion StarTECH de décembre, nous accueillerons Confluent (https://www.confluent.fr/), qui viendra nous parler d'architectures Event Driven (philosophie, use cases), et de comment leur stack, basée sur Kafka, nous permet de les implémenter.

Depuis maintenant plusieurs années, Apache Kafka règne en maître dans la catégorie des messages brokers, à laquelle appartiennent également ActiveMQ et RabbitMQ.
Cela est d’autant plus vrai dans le monde de la Data, du fait de ses excellentes performances en termes de vélocité.
Confluent a développé tout un écosystème autour de ce dernier (Kafka Connect, Kafka Streams, Schema Registry, etc.) afin d’en étendre le scope et les usages.
Cette stack est de plus en plus utilisée, en connaître les briques et le fonctionnement est un vrai plus, et sera d’ici peu une obligation (si ce n’est pas déjà le cas 😉)

La présentation aura lieu le mardi 01/12, de 19h à 20h30 (créneau habituel de réunion de la communauté StarTECH).

Nous aurons la chance de recevoir 3 experts Confluent pour nous en parler : Florent RAMIERE, Olivier LAPLACE et Rémi FOREST.
Les contributeurs StarTECH doivent se souvenir de Rémi, qui était venu nous présenter mi-2018 la distro Hadoop MapR (éditeur chez qui il travaillait à l’époque).
Après une 1ere partie théorique, nous enchaînerons sur une démo, suivie d’une séance de questions / réponses.

De nouveau, c’est une belle occasion de faire sa veille techno directement avec l’éditeur, donc VENEZ NOMBREUX ! 😃

Draft notes

  • Eric ORTIZ: 2 ans chez Confluent, Partners Manager SEMEA

  • Olivier LAPLACE : architecte avant-vente chez Confluent, va nous faire la prez

  • Florent RAMIERE : architecte, répondra aux questions du chat

  • Rémi FOREST : manage les pré-sales côté SEMEA

2 démos de prévues : Confluent platform et Concluent Cloud

Titre du talk par Confluent : Event Driven 101 & Demo

De nos jours, l’importance est donnée aux données fraîches, à l'immédiateté.

Plan du talk :

  • Event

  • Event Driven

  • Event Driven architecture

  • Evens streaming plateforme

  • Points d’attention

  • Demo CP & CC

  • Events vs State : analogie à une partie d’échecs, séquence de coups joués (events) vs état "simple" de la partie à l’instant "t" (state)

  • Gartner : en 2020 80% des besoins digitaux seront traités en event driven avec pour cible le temps réel

Real time with historical context : Contextual

  • Event-Driven App : pizza acheté le 15/10

  • CONTEXTUAL Event-Driven App : vous avez acheté 2 pizzas la journée du 15/10. 2 pizza ?! Est-ce normal ?

    • permet donc la détection de comportements anormaux

20201201 startech confluent kafka 01

Kafka, quels intérêts :

  • lets you publish and subscribe to events

  • lets you store events for as long as you want

  • let your process and analyse events

Kafka facilite le découplage des technos.

Anatomy of a Kafka Topic

20201201 startech confluent kafka 02

📎
Rappels rapides sur Kafka lui-même
  • notion de Producteur → Topic → Partition → Consumer dans Kafka

    • garantie de l’ordre par partition

  • Kafka : commit log, immutable, append-only

Push vs Pull queries

20201201 startech confluent kafka 03

Kafka + Kafka Connect + Kafka Streams

20201201 startech confluent kafka 04

La plateforme Confluent

20201201 startech confluent kafka 05

  • Confluent (pas Kafka, Confluent) comme un backbone d’évènements, le système nerveux de transfert d’évènements

    • passer du spaghetti aux lasagnes → ce que permet ce backbone unifié

Confluent platform 6.0

20201201 startech confluent kafka 06

Quelles sont les questions qui font sens pour passer sur à une architecture Event Driven ?

20201201 startech confluent kafka 07

Est-ce facile de passer à ce type d’architecture ?

20201201 startech confluent kafka 08

→ Pas si simple que cela, comme pour tout système distribué au final.

  • Mise en place de la gouvernance dès le début du projet : bien penser au Schema Registry

Ressource conseillée : Designing Event-Driven Systems de Ben Stopford (ancien de Confluent ?)

20201201 startech confluent kafka 09

DEMO

20201201 startech confluent kafka 10 20201201 startech confluent kafka 11

20201201 startech confluent kafka 12
  • développement d’un petit canon à Tweets pour les besoins de la démo

  • Florent : KSQLDB est une surcouche de Kafka Stream

    • si vous n’arrivez pas a exprimer votre métier dans ksqldb, il ne faut pas hesiter a utiliser un outil de plus bas niveau …​ en l’occurence kafka Streams

  • de multiples connecteurs disponibles :

    • Snowflake pour de l’analytics

    • Couchbase pour du In Memory

    • MongoDB

Florent : Au final, cette démo :

  • choper de la data en live

  • la transformer en live

  • la dépiler en live dans ES

  • le tout dans un seul déploiement

Chat

📎

Le chat a été très actif, et on y a tapé à toute vitesse…​
Ne prêtez donc attention ni style ni aux fautes 😁😅

  • différences entre Kafka et RabbitMQ / ActiveMQ

    • Florent : en somme, rabbit est un excellent pub/sub, kafka est une plateforme de streaming

  • Alessandro pose une question sur le max de partitions

    • Florent : bon, en gros il y a 2 règles : pas plus de 5000 partitions par broker, et moins de 200 000 partition par cluster

  • Florent : ajouter un element dans un consumer group pour aller plus vite, ne demande AUCUNE config.
    c’est natif a kafka, ca s’appelle le consumer group protocol
    en revanche, le vecteur de scalabilité est lié au nombre de partitions

  • Florent : ouaip, agréger les logs dans kafka c’est un super cas d’usage pour débuter
    j’ai commencé kafka chez BNP en faisant ca
    J’avais plus de 4To compressé avec un cluster ES d’un PETA (la misère)
    grosso modo, ca permet de gérer la back pressure
    → sans kafka cela aurait explosé

  • Florent : à l’arrache, tu vas sortir les données de Kafka quasi à la vitesse de ton réseau

  • tiens, concernant le KSQL, il se situe comment par rapport au SQL ANSI ?

    • Florent :

      good question
      non c'est PAS du sql
      ksqldb n'est PAS une base de données
      c'est pour processer au fil de l'eau les évènements
      l'usage du dsl sql est pour l'utilisabilité
      si t'as besoin de trucs plus riches --> utilise une vraie base 
  • Florent : sur le terrain, si on enlève le marketing, on fait des choses souvent très simples
    3 joins, 2 aggregate, et un 1 agrégat temporel, et t’es déjà MEGA HYPER avancé :)

  • Florent : Le clien confluent .Net est moins riche que celui de java (surtout sur le K-streams) les aggregations sont possibles avec le client java mais pas le client .Net

  • Florent : pour ksql, j’ai l’habitude de dire, si c’est trivial, et que t’as testé et que t’as pas galéré 3h, c’est good.
    Sinon c’est Kafka Streams

    on fera probablement jamais le port de Kafka Stream sur .Net, ni sur python, ni sur Go, ni sur C++, etc etc.
  • quel est le meilleur moyen pour tester le fonctionnement/perfs de kafka?

  • Florent : il y a des certifications "officielles" sur Kafka Confluent : https://www.confluent.io/certification/

  • Pour "apprendre Kafka" : voir https://developer.confluent.io/

  • FLorent : NE LAISSEZ JAMAIS PARTIR VOS CLIENTS EN PROD SANS SUPERVISION BO***EL!

    • Control Center est l’interface de supervision

    • compression native dans le protocol ! → UTILISEZ LA

      • moins de réseau pour envoyer, moins de stockage, moins de réseau pour répliquer, moins de réseau pour consommer

  • Florent : on peut avoir un cluster on premise, et un cluster dans le cloud, et les faire communiquer

Séance de questions / réponses

  • Voir le Chat !

  • Pourrons-nous avoir les slides de la présentation ?

ROTI du talk

Pouvez-vous donner votre retour sur cette présentation ?

  1. Excellente : Ça valait bien plus que le temps qu’on y a passé

  2. Bonne : J’ai gagné plus que le temps que j’y ai passé

  3. Juste Moyenne : Je n’ai pas perdu mon temps, sans plus

  4. Utile mais…​ : ça ne valait pas à 100% le temps que j’y ai passé

  5. Inutile : Je n’ai rien gagné, rien appris

20201201 startech confluent kafka 14

→ ROTI très positif ! Minimum 4, moyenne 4.6 👍

Ressources

Ressources par Confluent :

20201201 startech confluent kafka 13