Publié par

Il y a 1 mois -

Temps de lecture 17 minutes

Kafka Summit San Francisco 2019: Streaming platforms at massive scale

Kafka Summit, c’est l’événement où se réunissent les contributeurs, utilisateurs et passionnés d’Apache Kafka. Je vous en avais déjà parlé dans mon article sur l’édition européenne de 2019. J’ai eu la chance d’assister à cette dernière qui se tenait à Londres (merci @XebiaFr =P). Je pensais donc avoir eu mon compte pour l’année. C’était sans compter l’acceptation d’une de mes propositions par le comité de sélection de la conférence. J’attrape donc mon passeport, je ramasse mon laptop et file jusqu’à San Francisco pour mettre en scène une situation classique avec Kafka Streams, rencontrée chez quelques clients. Une expérience intense et exceptionnelle mais qui m’a aussi permis d’assister à quelques conférences comme les 2000 passionnés qui m’entouraient.

Dans cet article je vous propose un teaser des présentations que j’ai eu la chance de voir en espérant que cela vous motivera à aller regarder les vidéos du summit.

Lundi

333 O’Farrell Street! C’est au Hilton d’Union Square qu’a eu lieu l’ultime Kafka Summit de 2019. Comme d’habitude, la conférence offre 4 tracks (Core, Event Driven, Stream Processing et Use Case). On démarre la journée au 2ème étage qui offre une salle assez grande pour les plénières. Le soir même cette salle se transformera en dancefloor pour l’incontournable Kafka Summit Party.

Apache Kafka Past, Present and Future by Jun Rao

Jun Rao, co-créateur d’Apache Kafka et co-fondateur de Confluent ouvre le bal avec la première keynote. Il prend du recul sur l’histoire de Kafka et explique le succès de la plate-forme avec deux constats réalisés chez Linkedin. Le premier, c’est l’importance bien plus grande des événements par rapport aux états. Le second, c’est la quantité réduite des données transactionnelles (profil, contacts, etc…) sous forme d’états par rapport au reste de la donnée. La question qui se pose, est de savoir si nos bases de données sont toujours adaptées au traitement de ces données sous forme d’événements et sans caractère transactionnel. Jun continue son discours pour montrer que ce n’est pas le cas, et que Kafka a pris une place qui était vacante dans nos écosystèmes. Je ne vais pas plus loin car la conférence a bénéficié d’un livestream. La vidéo de Apache Kafka Past, Present and Future 🎞est donc déjà disponible.

Vous y retrouverez le chemin parcouru par la plate-forme open source, de la file de messages géante jusqu’au centre nerveux des entreprises grâce à connect et streams. Avec en addition, les chantiers à venir, comme le retrait de zookeeper qui a reçu des applaudissements de toute la salle.

Il sera finalement rejoint par Chris Kasten de Walmart pour une interview en tant qu’utilisateur Kafka et Confluent. Walmart c’est plus de 11 milliards d’événements par jour sur plus de 8500 noeuds. Une infrastructure qui rend possible plusieurs services, comme celui de retrait en magasin, représenté par la publicité: No matter what you drive (visionnée lors de la plénière). De quoi faire rêver l’assistance.

Kafka Cluster Federation at Uber

A Kafka Core talk by Yupeng Fu and Xiaoman Dong

Yupeng et Xiaoman, ingénieurs logiciel à Uber livrent quelques pratiques autour de leur utilisation d’Apache Kafka. Un incident ne prévient jamais et la plate-forme supporte déjà un bon nombre de services. Pour ces raisons leurs équipes sont prêtes à faire face à des pannes machine en ayant de multiples clusters Kafka avec une réplication en place. L’objectif est de pouvoir rétablir (le plus facilement possible) les services liés à la plate-forme après un incident, exercice de “disaster recovery”. Une réplication est en place sous un modèle dit « actif / actif ».

Mais ils vont plus loin que ça, en étendant l’automatisation de la remise en service des applications et de différents consommateurs / producteurs de flux de données. Le but est d’atteindre le minimum d’interruption pour une qualité de service que nous constatons tous déjà derrière nos mobiles. Pour se faire, au lieu de considérer un énorme cluster, ils managent des clusters de clusters. Alors cela change quoi? Les clients s’adressent à un proxy avant d’accéder aux brokers. Un service de méta data synchronise les informations comme les propriétés des topics, l’extension des partitions ou encore le quota. La réplication est assurée encore une fois par un produit de leur propre confection, mais qui cette fois ci est open source, le déjà célèbre uReplicator. Enfin les offsets doivent également être synchronisés. Toutes ces mesures leur apportent plus de disponibilité et flexibilité dans le sens où elles diminuent la création de clusters gigantesques.

Using Kafka to Discover Events Hidden in your Database

An Event Driven talk by Anna McDonald

La conférence a pour sujet Kafka, mais traite de manière plus large l’idée d’applications event stream. Mais pour différentes raisons techniques, il peut être difficile d’atteindre ce status pour une application. Des facteurs comme des couplages forts avec d’autres services, la dépendance avec des batch lourds ou un nombre trop grand de consommateurs d’une même base de données peuvent être à l’origine de ces blocages. On se retrouve alors avec une donnée statique pour laquelle on ne profite pas des changements unitaires, ce qui représente un grand manque à gagner. Pour ces raisons, Anna, principal engineer chez SAS s’appuie sur son expérience pour partager avec nous comment Apache Kafka peut permettre d’aller chercher ces évènements au coeur de nos systèmes d’information.

Après une simple définition, elle scinde les évènements en deux classes, les primaires et les dérivés. Les évènements dérivés étant les plus difficiles à détecter, ce sont ceux qui vont nous intéresser. Avant de partir à la chasse aux évènements qui vont enrichir nos applications, il faut se préparer. Pour Anna, cela passe par deux grandes étapes. Premièrement « know your business », réalisez des exercices d’event storming pour détecter quels sont les évènements qui ont le plus de valeurs mais qui pourtant se matérialisent comme des mises à jour ou suppressions sans déclencher plus d’interactions. Deuxièmement « Know your systems », apportez une tasse de café à ceux qui maintiennent les systèmes historiques, prenez des nouvelles de vos AS/400. Enfin pour traiter ces évènements Anna décrit l’exercice de Derivative Event Sourcing. Avec un cas pratique, une transaction contenant trois items (comment l’observer, la traiter, assurer sa complétude). Ajoutez à cela quelques exemples avec Kafka Streams dans le repository jbfletch/kstreams-des-demo. En somme, une présentation qui avait beaucoup à apporter à ceux qui ont déjà Kafka en place sans pour autant être totalement event driven. Les slides de Using Kafka to Discover Events Hidden in your Database sont en ligne.

Being an Apache Kafka Developer Hero in the World of Cloud

An Event Driven talk by Ricardo Ferreira

Ricardo, dévelopeur advocate chez Confluent, nous présente Being an Apache Kafka Developer Hero in the World of Cloud dont les slides sont déjà en ligne. Mais elles ne vous aideront en rien. En effet, après un support très succinct sur le principe de dev advocate, Ricardo se lance dans une démonstration vertigineuse. L’objectif, le déploiement d’un pipeline de stream processing complet. Il héberge une réplique du jeu Pac-Man en javascript qu’il utilise pour faire interagir tout le publique dans sa démo. Au final, affichage des scores en temps réel et des cadeaux pour les meilleurs joueurs. Mais détaillons un peu ce qui est fait en live (attention buzzword alert).

Il utilise d’abord Terraform pour provisioner la machine hébergeant le jeu en lui même sur AWS. Il a appliqué de légères modifications au jeu pour réaliser des appels à un serveur lorsque l’envoi d’un évènement est pertinent. Ce serveur recevant les appels est le déjà bien connu Kafka Rest Proxy. Notre speaker réalise donc en live le provisioning de sa machine, le setup et lancement du service. Pour stocker la donnée on fera appel à Confluent Cloud qui fourni Apache Kafka as a Service. Et pour le traitement des scores, c’est directement avec KSQL qu’il sera réalisé (disponible en preview dans Confluent Cloud). Au final, c’est une vraie démonstration de force qui est réalisée. Plusieurs pratiques, outils, services sont présentés pour combattre un même problème : la difficulté d’opération de cette stream data platform qui est assez jeune.

Mardi

Entre les t-shirts imprimés à la demande et la dédicace de livres, les pauses des participants sont bien remplies. Les macarons, M&M’s et cookies portent tous le K, logo de la plate-forme pour amuser le publique. Les sponsors rivalisent d’inventivité sur les lots à gagner. Mais ce ne sont pas des raisons pour être en retard aux séances, donc on y retourne =D !

Databases are only half done by Jay Krepes

Pour cette deuxième plénière, c’est Jay Krepes, autre membre du trio de créateurs de Kafka qui ouvre la journée. Il commence par une réflexion sur les entreprises et leur rapport aux logiciels. Deux relations se dégagent. Une entreprise peut utiliser simplement des logiciels, ou devenir elle même logiciel. Dans le premier cas, tout ce que l’entreprise fera c’est utiliser différents logiciels comme des outils. Les applications sont donc là pour faciliter le travail d’un opérateur (pour qu’il soit plus productif) et elles interviennent dans des processus plus grands qui sont semi automatiques, une alternance d’étapes numériques et d’interventions humaines. Il oppose cette vision a l’idée d’une entreprise qui devient elle même logiciel, en supprimant les interventions humaines qui sont inutiles et construisant des services plutôt que des applications. L’utilisateur derrière une application est donc de plus en plus un service plutôt qu’un humain. Ce dernier est une porte ouverte pour les applications event stream. Comme pour les keynotes du lundi, un livestream était disponible. La vidéo de Databases are only half done 🎞est donc déjà en ligne!

Vous verrez comment Confluent essaie de traiter ce sujet et de le simplifier à l’aide KSQL. Le moteur SQL streaming continue de s’enrichir de fonctionnalités pour simplifier l’accès à ce status d’entreprise logiciel. Sont cités, l’intégration des connecteurs Kafka Connect (KLIP-7) et la possibilité d’interroger les états internes des applications (KLIP-8).

Jay est ensuite rejoint par Devendra Tagare, Engineer Manager chez Lyft. Ils traitent ensemble de l’approche event driven chez Lyft, de leur adoption des services managés et de leurs besoins de très faible latences. Il est aussi question des cas d’usages, qui tournent principalement autour de la localisation et que Dev résumera par la punchline: « The Little car that moves on your screen ?! Kafka powers that car »

Eventing Things – A Netflix Original!

An Use Case talk by Nitin Sharma

Pourquoi démarrer en douceur?? Dès la fin des keynotes, Nitin, Ingénieur Logiciel Senior chez Netflix s’est dit qu’il pouvait être amusant de secouer l’audience avec des chiffres qui font perdre la tête. Alors voilà, pour info Bird Box c’est 45 millions de visionnages la première semaine! Stranger Things saison 3?! c’est 40.7 millions de visionnages le premier jour. Je vous laisse compter les différents évènements, triggers et updates qui découlent de cette activé… bon courage. Pourtant dans cette présentation ce n’est pas le passage à l’échelle qui intéresse notre speaker. Non, si vous connaissez ces deux titres, vous savez probablement que ce sont des productions originales de Netflix. Dans cette présentation de type use case Nitin présente l’approche qui permet de suivre les différents changements de cap dans la production de contenus et leurs impacts financier. Le produit de leur équipe c’est la : Content Finance Infrastructure. Le budget pour la création de nouveaux contenus de 2018 c’est 8 milliards. Il peut être difficile avec tous ces films et toutes les étapes de production possibles de prendre les bonnes décisions au bon moment. Les systèmes liés à la programmation, la création, la contractualisation, la production, la post-production et le lancement peuvent tous émettre des informations qui influencent le budget des films en cours ou des prochains films. Dans cette présentation on a un aperçu de comment Kafka s’agence des jobs Flink et des data stores comme Elasticsearch dans une architecture qui supporte les rapports financiers d’un producteur de la taille de Netflix.

Kafka 102: Streams and Tables All the Way Down

A Stream Processing talk by Michael Noll

Dans une présentation de niveau intermédiaire, Michael Noll, Technologist à Confluent, livre un cours sur la matérialisation des streams et tables avec Apache Kafka. On peut le voir comme un approfondissement de sa présentation Introduction to Streams. Il démarre par une partie « A first look » où il établit le lien entre streams et tables. Ils sont respectivement, l’un pour l’autre, un changelog et une agrégation. Il existe donc une dualité entre les deux structures. Cette dualité est décrite dans le papier blanc: Streams and Tables, Two Sides of the Same Coin. Puis dans une deuxième partie, « The storage foundation » on y voit ce que cela implique au niveau de Kafka Core. Michael y parle de partitionnement, rappelle que c’est la base de l’élasticité et de la tolérance aux pannes des clients Kafka et que ce sont les producteurs de données qui orientent les messages dans les bonnes partitions. Par défaut, ce partitionnement est basé sur la clef. Les partitionneurs personnalisés sont à manipuler avec précaution.

Enfin dans la partie « Working with streams and table » on voit les abstractions présentes au sein de Kafka Streams pour mettre à notre disposition toutes les notions préscédentes. Sont abordés : le fonctionnement des groupes de consommation, le broadcasting avec GlobalKtable, les jointures entre streams et tables et les notions de co-partitioning. On dit d’un flux qu’il est co-partitionné si ses éléments ont le même schéma de clef, le même nombre de partitions et utilisent le partitionneur par défaut. Cette propriété est nécessaire pour réaliser des jointures avec Kafka Streams. Puis on va encore un peu plus loin, avec le stockage des tables en mémoire, leur backup dans des topics de changelog et la migration des états qui est facilitée par les standby replicas. Finalement, c’est une présentation qui contient pas mal de descriptions et de best practices sur le fonctionnement de vos applications Kafka Streams. Vous pouvez déjà retrouver en ligne les slides de la présentation : Kafka 102: Streams and Tables All the Way Down.

Mon talk

A Stream Processing talk by Loïc Divad

Donc vous êtes arrivé jusqu’ici et vous pensiez vraiment que j’allais résumer mon propre talkIl va falloir aller voir les vidéos. A la place j’aimerais plutôt parler de l’experience de speaker au Kafka Summit. Beaucoup de participants parmi ceux que j’ai rencontrés, m’ont posé la même question : Comment fait-on pour se retrouver là ? Certains venaient pourtant de grandes boites tech. Pour moi c’était une évidence mais en voyant le nombre de fois où la question revenait je me suis dit que vous pourriez aussi apprécier mon vécu de speaker.

Tout commence par une réponse au Call for Paper. Il s’agit d’entrer dans un formulaire le titre et le descriptif de votre présentation. Un exercice loin d’être évident pour la première fois. Pour ma part, j’ai l’habitude de réaliser ce type d’exercice sur mon temps libre et de me faire corriger par mes collègues Xebians. Je suis aussi exposé à une serie de pitchs tous les mois lorsque j’assiste à notre conférence interne mensuelle, le XKE. Les organisateurs du Kafka Summit savent que ce n’est pas inné, et apportent une aide à tous ceux qui voudraient participer au travers des Office Hours : des créneaux et un channel slack (#summit-office-hours) sont dédiés pour soutenir les nouveaux speakers. Puis des références vous seront demandées. Par exemple, je n’ai pas ajouté de vidéo de moi car je n’en avais aucune en anglais. En revanche, j’ai pris l’habitude de réaliser mes slides en anglais, j’ai donc ajouté mon speakerdeck complet.

Après deux ou trois mois, juste le temps que vous puissiez oublier que vous avez fait une proposition, les réponses arrivent. Si vous n’êtes pas pris vous aurez un code promo, d’où l’importance de soumettre une idée quand on en a une. Si vous êtes sélectionné, vous avez gagné votre place gratuite (~$900, ça fait toujours plaisir) et le droit de commencer à faire vos slides. J’ai trouvé qu’il n’y avait pas trop de pression par rapport à un événement de cette taille. Deux deadlines uniquement pour une relecture des slides et un envoi en PDF la veille.

Puis vous aurez des répétitions à faire. Trouvez vous des cobayes avec des niveaux de maitrise du sujet variés. C’est 10 fois plus efficace de se préparer avec un public. Avant cet évènement j’avais sous estimé l’importance d’enregistrer (écran et son) sa répétition. Cela a été d’une grande aide. Une fois sur scène, ne faites pas comme moi : inspirez un grand coup, détendez vous et profitez. S’il y a bien une chose à retenir de l’expérience de speaker au Kafka Summit c’est qu’elle est à l’image de la communauté Kafka, accueillante et bienveillante. Je vous encourage vivement à soumettre vos plus belles histoires avec Kafka aux prochaines éditions.

Fermeture

Pour terminer je vous partage la liste des conférences que je n’ai pas eu l’occasion de voir, mais que je vais m’empresser de regarder dès la sortie des vidéos. Elle est ordonnée par mon niveau d’enthousiasme =P:

Vous retrouverez très bientôt les présentations sur confluent.io

LOLO WILL RETURN…

Enfin je vous laisse sur une petite sélection des tweets / photos de l’évènement.

Presentation photo by Garth Pratt on Unsplash

Publié par

Publié par Loic Divad

Loïc est Data Engineer chez Xebia. Il intervient sur des problématiques liées au Big Data comme l’acquisition, le traitement et le stockage des données. Il travaille avec des outils comme Scala, Spark et Kafka.

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.