Dans l'environnement actuel en évolution constante, les plateformes de streaming de données sont devenues incontournables. Elles sont au cœur de nombreux processus modernes, permettant par exemple aux retailers d'optimiser la gestion de leurs stocks et d'éviter les ruptures, aux néo-banques de développer des solutions innovantes qui révolutionnent le paysage bancaire traditionnel, ou encore au secteur public de répondre efficacement aux besoins des citoyens.
Le temps d'une journée, nous allons découvrir de nombreux témoignages d'entreprises et d'acteurs qui se sont tournés vers le streaming de données autour de l'écosystème d'Apache Kafka et plus particulièrement la plateforme Confluent Cloud.
Keynote Forrester : "The Streaming Data Platform Imperative"
Mike Gualtieri, VP, Principal Analyst, Forrester
L'émergence de nombreux cas d'utilisation pour les événements en temps réel a propulsé le streaming de données au cœur des stratégies d'entreprise. Les domaines clés impactés incluent la latence, la gouvernance, les outils de développement et l'implémentation de l'intelligence artificielle. Parmi les cas d'utilisation les plus exigeants, on trouve la publicité ciblée, l'analyse en temps réel et les recommandations clients, qui requièrent des latences inférieures à une milliseconde.
Cette évolution marque un changement de paradigme significatif. Alors qu'auparavant le streaming en temps réel était réservé à des cas d'utilisation spécifiques, les entreprises architecturent désormais l'ensemble de leurs systèmes d'information autour de ces technologies. Cette approche holistique permet une réactivité accrue et une meilleure adaptation aux fluctuations du marché.
L'évaluation des fournisseurs de plateformes de streaming réalisée par Forrester fin 2023 offre un éclairage précieux sur l'état actuel du marché. Selon cette analyse, le paysage se divise en trois catégories :
- Les Leaders : Microsoft, Google et Confluent se distinguent par leur offre complète et innovante.
- Les Performeurs : AWS, Oracle, SAS et Hazelcast proposent des solutions solides et compétitives.
- Les Challengers : Aiven, IBM et d'autres acteurs apportent de nouvelles approches au marché.
Cette classification reflète la maturité croissante du secteur et la diversité des solutions disponibles pour les entreprises, quelle que soit leur taille ou leur secteur d'activité.
L'adoption de plateformes de streaming de données n'est plus simplement un avantage technologique, mais devient un impératif stratégique. Elle permet aux entreprises de réagir en temps réel aux changements du marché, d'optimiser leurs opérations et d'offrir des expériences client personnalisées et instantanées.
Cependant, le déploiement de ces technologies n'est pas sans défis. Les entreprises doivent naviguer entre les exigences de performance, les considérations de sécurité et la nécessité d'une gouvernance robuste des données. La formation des équipes et l'adaptation des processus organisationnels sont également des aspects cruciaux pour tirer pleinement parti de ces plateformes.
Keynote : "Kafka evolved into the world’s leading data streaming platform"
Issu d'un projet initié par d'anciens employés de LinkedIn, il a fallu environ 5 millions de lignes de code pour créer la plateforme Confluent Cloud à partir de Kafka.
Comme l'a indiqué Rémi Forest, SEMEA Senior Manager @ Confluent, l'accent a été mis sur la résolution des défis liés à la scalabilité et à la gestion de données historiques, souvent perçues comme des obstacles pour les développeurs.
De Kafka à Confluent Cloud : Un bond vers la simplicité et l'universalité
Confluent Cloud se distingue par sa capacité à gérer des clusters distribués géographiquement sur plusieurs fournisseurs de cloud. KORA, Kafka Cloud Engine, simplifie et réduit les coûts d'exploitation.
L'objectif de Confluent est de démocratiser l'accès aux données en temps réel, tout en garantissant leur gouvernance et leur fiabilité. La plateforme met l'accent sur les objets fonctionnels plutôt que techniques, avec une gestion simplifiée des schémas de données.
Connecteurs, gouvernance et traçabilité : Les piliers d'une plateforme robuste
Confluent propose un écosystème riche avec plus de 200 Kafka Connectors disponibles sur son Hub. Un portail dédié facilite la gouvernance des données, tandis que la fonctionnalité de data lineage assure une traçabilité complète.
Traitement de flux et analytique : L'avenir du streaming avec Tableflow
En matière de stream processing, Confluent prend en charge Kafka Streams (KSQL) et Flink, ce dernier ayant récemment lancé Flink SQL. La vision future de Confluent s'articule autour de Tableflow, une technologie permettant d'intégrer des données de topics ou de schémas dans des tables Apache Iceberg pour l'analytique.
Nouveautés clés et acquisitions stratégiques
Parmi les annonces marquantes, on note le lancement des clusters Freight, optimisés pour les cas d'utilisation à faible latence. De plus, Confluent a récemment acquis Warpstream, renforçant ainsi son offre de services Kafka managés "BYOC" (Bring Your Own Cloud).
Warpstream est une plateforme de data-streaming compatible avec Apache Kafka construite autour d'un object storage(AWS S3): sans couts réseau inter-AZ, sans disques physiques à maintenir, scalable à l'infini, le tout au sein de votre VPC.
Pluxee : Kafka et Confluent Cloud au service d'une architecture événementielle à grande échelle
Avec 36 millions d'utilisateurs et 4,4 millions de transactions quotidiennes, Pluxee, société spécialisée dans les services aux entreprises, s'appuie sur la plateforme Confluent Cloud et place Kafka au cœur de son système de messaging. Said Layadi, CTO, met en avant les avantages d'un format unifié pour les événements d'un cas d'usage donné, s'inspirant notamment de l'exemple de Bloomberg.
Bonnes pratiques mises en place par Pluxee :
- Centralisation des événements dans Kafka : Adoption d'une approche "everything in Kafka" pour une gestion simplifiée.
- Gouvernance stricte des données : Normes claires pour les schémas, gestion des accès basée sur les rôles (RBAC) via Terraform, et versionnage du code dans des dépôts Git.
- Conformité au RGPD : Respect des exigences de confidentialité des données.
- Event Sourcing : L'état du système est déterminé par la séquence des événements plutôt que par le dernier état connu, assurant une meilleure traçabilité et capacité d'audit.
- Efficacité énergétique : Conversion du texte en format binaire AVRO, permettant un gain énergétique de 60% et s'inscrivant dans une démarche Green IT.
- Optimisation des accès à la base de données : Seules les modifications déclenchent une mise à jour, réduisant la charge réseau et la consommation électrique.
Euronext : l'innovation technologique au cœur des marchés financiers européens
Euronext, est la principale place boursière de la Zone Euro avec une capitalisation boursière totale de 6 400 milliards d’euros se distingue par son infrastructure technologique de pointe, centrée sur l'utilisation intensive d'Apache Kafka. Avec des data centers situés en Italie, l'entreprise navigue dans un environnement régi par des réglementations financières extrêmement strictes.
Au cœur de son architecture, Kafka joue un rôle crucial en assurant toutes les communications inter-applications, gérant entre autres les ordres, les cotations et les événements de marché. Euronext définit trois niveaux de "temps réel" dans ses opérations :
- 1 ms : sans Kafka, utilisant du matériel dédié
- 10-100 ms : avec Kafka
- 1 s - 1 min : pour la régulation et les vérifications des données (par exemple, par l'AMF en France)
Benoit Compte, Directeur Architecture, nous a fourni des détails sur l'infrastructure d'Euronext qui repose sur des clusters Kafka sur la plateforme Confluent Cloud, capables de gérer la majorité de leurs événements. Ces systèmes sont conçus pour une faible latence et un débit élevé, particulièrement cruciaux lors des pics d'activité comme l'ouverture et la fermeture des bourses ou lors d'événements mondiaux majeurs.
En période de pointe, le système peut traiter jusqu'à 1 million d'événements par seconde, avec une moyenne quotidienne de plusieurs milliards. Les brokers Kafka sont optimisés pour gérer jusqu'à 20 milliards d'événements par jour.
Conformément aux exigences légales, Euronext maintient également un cluster Kafka secondaire pour la reprise après sinistre. Il est important de noter que Kafka n'est pas exposé à l'extérieur du réseau d'Euronext.
La gestion des topics Kafka chez Euronext suit des règles strictes:
- La plupart des topics n'ont qu'une seule partition
- Seuls les topics à haut débit sont multi-partitionnés
- La création de topics à la volée est interdite
- Les formats de données incluent principalement le binaire SBE, avec également l'utilisation des formats AVRO et JSON
- La rétention des données varie entre 48 heures et 7 jours maximum
- Un nettoyage automatique des topics est effectué chaque nuit
Euronext a optimisé son système pour que les données de trading quotidiennes (8h-22h) puissent être stockées et retraitées en une heure seulement. L'entreprise utilise des clients Kafka C++ de bas niveau pour répondre aux besoins de faible latence, et emploie Kafka Streams et à terme Apache Flink pour le traitement des flux.
La sécurité est une préoccupation majeure, Euronext étant constamment la cible de tentatives d'attaques. Des tests de reprise d'activité sont effectués simultanément pour de nombreux marchés et banques, tous en environnement de production, conformément aux réglementations.
En conclusion, l'utilisation avancée de Kafka par Euronext illustre parfaitement comment la technologie de pointe peut être appliquée dans un secteur hautement réglementé et exigeant comme celui des marchés financiers. Cette approche permet à Euronext de maintenir son leadership dans les fusions de bourses européennes tout en assurant une fiabilité et une performance exceptionnelles dans ses opérations quotidiennes.
L'optimisation des systèmes complexes chez Michelin : méthodologie du design avec Kafka Streams
Sébastien Viale, Expert Technique Kafka chez Michelin et Adam Souquieres, Architecte Solution chez Confluent, ont présenté la stratégie de l'entreprise pour gérer des millions d'événements quotidiens.
Un virage vers l'architecture événementielle :
Il y a 5 ans, Michelin a entamé une transition vers une architecture événementielle. Ce changement s'est accompagné d'une migration vers Kafka Streams et Kafka Connect pour le traitement des événements, ainsi que d'un passage d'une infrastructure on-premise à la plateforme Confluent Cloud. Cette transformation, achevée en 3 ans, a permis à Michelin de mieux gérer la complexité croissante de ses systèmes.
Le design au cœur de la stratégie :
La clé du succès de Michelin réside dans une approche méthodique du design, qui précède le développement. Cette approche s'articule autour de quatre étapes clés :
- Comprendre les besoins : Identifier clairement les besoins et les objectifs du système.
- Cartographier les flux : Créer une topologie maître qui représente l'ensemble des flux d'événements, des commandes aux paiements, en passant par les erreurs potentielles.
- Diviser pour mieux régner : Décomposer la topologie maître en micro-topologies, chacune dédiée à un flux métier spécifique, pour une gestion simplifiée.
- Développer avec précision : Implémenter chaque micro-topologie avec Kafka Streams et Kstreamplify, en s'appuyant sur des schémas de données précis et des règles métier clairement définies.
Kstreamplify
Kstreamplify est une bibliothèque open source développée par les équipes de Michelin qui permet d'accélérer et de simplifier l'implémentation de Kafka Streams.
Kstreamplify simplifie l'utilisation de Kafka Streams en offrant :
- Démarrage automatique : Configuration et initialisation simplifiées pour se concentrer sur la logique métier.
- Sérialisation/Désérialisation: Outils prêts à l'emploi pour AVRO.
- Gestion des erreurs : Capture et routage des erreurs vers un topic dédié (DLQ).
- Intégration Kubernetes : Sondes de disponibilité et d'activité pour un déploiement Kubernetes optimisé.
- Requêtes interactives : Accès simplifié aux données des State Stores Kafka Streams.
- Déduplication : Suppression des événements dupliqués dans un flux.
- Tests simplifiés : Configuration automatique du TopologyTestDriver pour des tests unitaires rapides.
Il est important de souligner que le KIP-1033, s’inspirant grandement de la gestion d’erreurs de Kstreamplify, est prévu d’être intégré à la version 3.9 d’Apache Kafka
Affilizz : Gérer un catalogue d'un milliard d'articles avec Kafka Streams
Affilizz, une entreprise spécialisée dans le marketing d'affiliation, est confrontée à un défi de taille : gérer un catalogue de produits colossal, comptant plus d'un milliard d'articles.
Charles Besselievre, CTO, et Loïc Delecroix, ingénieur système, ont présenté leur solution basée sur Kafka Streams pour relever ce défi.
Le défi de l'enrichissement des données en temps réel
Affilizz gère un réseau complexe de partenaires, de retailers et de clients. L'entreprise doit traiter un volume massif d'événements en temps réel, tels que les changements de prix, les mises à jour de stock et l'ajout de nouveaux partenaires.
Pour garantir une expérience utilisateur optimale, Affilizz doit être en mesure de mettre à jour les informations produits en temps réel. Une latence de plus d'une seconde pour un changement de prix est inacceptable, d'autant plus que l'entreprise traite 50 millions de mises à jour d'offres par jour pour 700 millions de produits.
Kafka Streams : une solution performante et évolutive
Pour répondre à ces exigences, Affilizz a choisi Kafka Streams, permettant de traiter des flux de données à grande échelle avec une faible latence.
Stratégie de partitionnement : EAN + langue locale
La stratégie d'Affilizz repose sur l'utilisation d'une clé unique pour chaque produit, composée de l'EAN (European Article Number) et de la langue locale. Cette clé permet d'identifier et de regrouper les produits de manière unique.
Un state store est utilisé pour vérifier l'existence d'un produit et éviter les doublons. Ce state store, d'une taille de 100 Go, est nettoyé régulièrement. Un changelog de 15 Go permet de suivre les modifications apportées au state store.
Cas d'utilisation : la gestion des offres
Affilizz utilise Kafka Streams pour gérer les offres de ses partenaires. L'entreprise peut ainsi :
- Stocker et détecter les changements de prix en temps réel.
- Éviter les agrégations coûteuses en base de données pour chaque événement.
- Stocker le dernier prix et le stock de chaque produit dans le state store.
- Identifier le prix le plus bas parmi toutes les sources.
- Gérer les faux positifs, comme les changements de prix trop importants.
L'historique des prix d'environ 3To est stocké dans une Timeseries DB
Coopérative U modernise son parcours client avec Google Cloud et Confluent Cloud
La Coopérative U, en partenariat avec Google, a présenté lors d'une conférence son projet d'optimisation du parcours client, s'appuyant sur le cloud et l'intelligence artificielle.
Confluent Cloud et les LLMs en temps réel : les atouts de Google
Delphin Barankanira, Cloud Partner Engineering Lead chez Google, a mis en avant les avantages de Confluent Cloud, une solution de streaming de données basée sur Kafka, et des LLMs (Large Language Models) en temps réel pour le retail:
- Intégration native avec Google Cloud Platform (GCP) : Confluent Cloud s'intègre parfaitement à GCP, offrant une gestion unifiée des données et un accès à tous les outils de l'écosystème Google.
- Analyse des données en temps réel : Les LLMs en temps réel permettent d'interroger les données en direct, par exemple pour connaître l'état des stocks ou le chiffre d'affaires instantané.
- Automatisation et enrichissement des données : Les connecteurs, notamment avec Google Cloud Functions, automatisent le traitement des données issues de Kafka.
- Entraînement d'IA performante : Les données d'événements en temps réel alimentent les LLMs et les IA génératives, améliorant la précision des analyses et des prédictions.
U TECH : la migration vers le cloud et l'adoption d'Apache Kafka
Antoine DAMEZ-FONTAINE et Sébastien MARIE, de U Tech, ont ensuite partagé le retour d'expérience de la Coopérative U, dans leur migration vers Confluent Cloud.
- Un héritage complexe : L'ancien système, basé sur Artemis/ActiveMQ on-premise, était difficile à gérer et peu flexible.
- Le projet NEMO : Ce projet ambitieux vise à connecter plus de 1200 sites, avec un volume moyen de 25 millions de messages par jour et des pics à 40 millions sur une soixantaine de topics.
- Des exigences élevées : Le temps d'ingestion des données de vente devait être inférieur à 150 ms, avec une taille de message comprise entre 10 et 20 Mo.
Kafka sur Confluent Cloud : le choix de la scalabilité et de la simplicité
U TECH a choisi Kafka pour sa scalabilité, sa fiabilité et son écosystème riche, et Confluent Cloud pour simplifier la gestion de l'infrastructure. Les avantages clés de Confluent Cloud :
- Pas de gestion de matériel
- Connecteurs pré-configurés
- Formations Kafka régulières
- Infrastructure dédiée et sécurisée
Une migration réussie et des perspectives prometteuses
Le premier POC a permis d'afficher en temps réel les événements de carte de fidélité en magasin. U TECH a mis en place des outils et des processus pour faciliter la migration et l'adoption de Kafka par les équipes, ainsi qu'une gouvernance globale des schémas et des noms de topics.
Grâce à cette transformation numérique, la Coopérative U se dote d'une infrastructure moderne et agile, ouvrant la voie à une meilleure connaissance client, une expérience d'achat plus personnalisée et une optimisation de la chaîne logistique.
Moderniser les applications legacy avec MongoDB et Confluent
Confluent et MongoDB partagent de nombreux clients. Cet article explore la modernisation des applications Mainframe avec MongoDB et Confluent, en s'appuyant sur un cas concret d'une entreprise de production.
Pourquoi quitter le Mainframe ?
Les Mainframes, bien qu'ayant fait leurs preuves, présentent des défis croissants pour les entreprises modernes :
- Besoin de modernisation: Le passage au cloud et l'adoption de nouvelles technologies nécessitent une infrastructure plus agile.
- Pénurie de compétences: Les experts Mainframe sont rares et coûteux.
- Coûts élevés: La maintenance et l'exploitation des Mainframes peuvent être prohibitives.
Options de modernisation
Plusieurs options s'offrent aux entreprises souhaitant moderniser leurs applications Mainframe :
- Émulation Mainframe/DB2: Permet de maintenir l'existant tout en migrant vers une plateforme plus moderne.
- Migration de la base de données: Remplacer la base de données DB2 par une solution plus moderne comme MongoDB.
- Modernisation de la solution de base de données: Adopter une approche progressive en modernisant la base de données par étapes.
Cas concret : une entreprise de production
Thibaud Genevois, Senior Solutions Architect chez MongoDB, nous a présenté le cas d'une entreprise manufacturière gérant des processus critiques sur un Mainframe DB2 ayant choisi de moderniser son système.
État initial:
- Empreinte mainframe importante.
- Experts DB2 proches de la retraite.
- Problèmes de performance à grande échelle.
- Processus critiques tels que les paiements et le cycle de vie des pièces.
- Objectif : migration complète en 4 ans.
Stratégie de "Strangler Fig":
L'entreprise a opté pour une approche progressive, en modernisant son application monolithique par étapes :
- Petites améliorations: Introduction de MongoDB pour des cas d'utilisation spécifiques.
- Découplage en modules: Séparation des modules de lecture (R), lecture/écriture (RW) et écriture (W).
- Couche d'API commune: Abstraction de la complexité du Mainframe.
- IBM Infosphere vers Kafka: Intégration de Kafka pour le streaming de données.
Étapes de la migration:
- Déchargement des lectures vers MongoDB: Amélioration des performances des requêtes.
- "Y-Loading": Lecture/écriture simultanées dans le mainframe et MongoDB.
- MongoDB comme cible d'écriture principale: Réplication vers le Mainframe pour la sauvegarde.
- MongoDB en production: Mainframe utilisé uniquement pour les sauvegardes.
- CDC Events avec Confluent Cloud: Réplication des données du Mainframe vers MongoDB en temps réel.
Conclusion
L'événement a mis en lumière l'importance cruciale du streaming de données dans le paysage numérique actuel. Les nombreux témoignages ont démontré comment l'adoption de plateformes comme Confluent Cloud, révolutionne les opérations et les modèles économiques.
La gouvernance, la gestion des données à grande échelle et l'exploitation de l'IA en temps réel sont autant d'enjeux clés pour lesquels Confluent Cloud s'impose comme un acteur majeur.
L'événement a confirmé que le streaming de données n'est plus une option, mais bien une nécessité pour les entreprises qui aspirent à l'agilité, à la scalabilité et à l'innovation continue.
J'ai vraiment apprécié les différentes implémentations à grande échelle de Kafka et de Confluent Cloud au sein des entreprises présentes. On y a pu voir toutes les contraintes fonctionnelles, légales et techniques auxquelles chacune de ces entreprises doit faire face.
L'adoption générale d'Apache Flink, le moteur Kora et les avancées autour de l'IA dans les architectures évènementielles nous promettent un beau futur.