Accueil
Thèmes
Transmission d’événements en continu
Publication : 30 avril 2024
Contributeurs : Chrystal R. China, Michael Goodwin
La transmission d'événements en continu consiste à capturer des données en temps réel à partir d'applications, de bases de données et de dispositifs IdO, puis à les transmettre vers diverses destinations pour un traitement et un stockage immédiats, ou pour une analyse en temps réel et des rapports d'analyse.
Fonction clé du traitement de flux d'événements (ESP), la transmission d'événements en continu permet aux infrastructures IT de gérer des flux d'événements volumineux et continus en traitant les données au moment où l'événement ou le changement se produit.
La transmission d'événements en continu est souvent complémentaire au traitement par lots, qui s'applique à de grands ensembles de données statiques (ou "données au repos"). Cependant, au lieu de traiter les données par lots, la transmission d'événements en continu traite les points de données individuels au fur et à mesure qu'ils apparaissent afin que les logiciels au sein de l'architecture puissent interpréter et répondre aux flux de données (« données en mouvement ») en temps réel.
Les services de transmission d'événements en continu haute performance peuvent prendre en charge une variété de tâches, simples ou complexes, allant de l'envoi de notifications en cas de changement de prix des actions ou des produits à la construction de modèles de machine learning en temps réel capables de détecter les activités suspectes des utilisateurs. Même dans le cas du traitement par lots, la transmission d'événements en continu peut enrichir l'analyse des données en associant les événements à leurs horodatages respectifs et en identifiant les tendances historiques.
Découvrez comment IBM Event Automation peut vous aider à tirer parti des événements en permettant aux utilisateurs professionnels et informatiques d'identifier les situations critiques, d'intervenir en temps réel, d'automatiser les décisions et de maximiser le potentiel de revenus.
La transmission d’ événements en continu s’articule autour du flux sans limite, séquentiel et en temps réel d’enregistrements de données, appelés « événements », des structures de données fondamentales qui enregistrent toute occurrence dans le système ou l’environnement. Il s’agit d’un terme qui fait référence essentiellement à chaque point de données du système. Par conséquent, un « flux » ((également appelé flux de données ou données en streaming) est la distribution continue de ces événements.
Chaque événement comprend généralement une clé qui identifie l'événement ou l'entité à laquelle il se rapporte, une valeur qui contient les données réelles de l'événement, un horodatage qui indique le moment où l'événement s'est produit ou a été enregistré, et parfois des métadonnées sur la source de données, la version du schéma ou un autre attribut.
Des moteurs de traitement de flux spécialisés permettent de soumettre les événements à différents processus au sein d'un flux. Les « agrégations » effectuent des calculs sur les données, comme les moyennes, les sommes et l'écart type. L'ingestion consiste à ajouter des données en flux aux bases de données. Le traitement analytique identifie des tendances dans les données en flux pour prédire les événements futurs, et le traitement d'enrichissement associe les points de données à d'autres sources de données pour fournir du contexte et créer du sens.
Les événements sont souvent liés aux opérations métier ou aux parcours utilisateurs et déclenchent généralement une autre action, un autre processus ou une série d'événements. Prenons l’exemple de la banque en ligne.
Lorsqu’un utilisateur clique sur « transférer » pour envoyer de l'argent d'un compte bancaire à un autre, le transfert de fonds est effectué, des notifications par e-mail ou SMS sont envoyées à l'expéditeur et au destinataire, et si nécessaire, des protocoles de sécurité et de prévention des fraudes sont déployés.
Les événements sont naturellement le composant central de la transmission d'événements en continu ; cependant, une série d'autres composants permettent aux services de streaming de traiter les événements de manière rapide et efficace. D'autres composants essentiels comprennent :
Les brokers, ou brokers de messages, sont les serveurs qui exécutent les plateformes de transmission d’événements en continu. Les brokers de messages permettent aux applications, systèmes et services d'interagir et d'échanger des informations en convertissant les messages entre des protocoles de messagerie standardisés. Ceci permet à des services interdépendants de « parler » directement entre eux (Java ou Python, par exemple), même s’ils ont été écrits dans différents languages ou déployés sur différentes plateformes. Cela facilite également le découplage des processus et des services au sein des systèmes.
Les brokers peuvent valider, stocker, acheminer et transmettre des messages vers les destinations appropriées. Dans les systèmes de transmission d'événements distribués, les brokers permettent d'assurer une faible latence et une haute disponibilité en répliquant les événements sur plusieurs nœuds. Les brokers peuvent aussi être regroupés en clusters, des ensembles de brokers travaillant ensemble pour faciliter l'équilibrage de charge et l'évolutivité.
Les sujets sont des catégories ou des noms de flux auxquels les événements sont rattachés, offrant un moyen d'organiser et de filtrer les événements au sein de la plateforme. Ils agissent comme « objet » pour les événements, ce qui permet aux consommateurs de s’abonner à des sujets et de ne recevoir que des événements pertinents.
Les sujets peuvent être divisés en partitions, ce qui permet à plusieurs consommateurs de lire simultanément à partir d'un sujet sans perturber l'ordre de chaque partition.
Un décalage est un identifiant unique qui identifie chaque événement au sein d'une partition, indiquant sa position dans la séquence. Les consommateurs utilisent les décalages pour organiser les événements qu'ils ont traités. Si, par exemple, un consommateur se déconnecte d'un événement et se reconnecte par la suite, il peut reprendre le traitement à partir du dernier décalage connu.
Compte tenu de la prolifération des données et de l'explosion du trafic de données qui en résulte, la transmission d'événements en continu est un composant essentiel des architectures de données modernes, en particulier dans les environnements qui nécessitent des capacités de prise de décision extrêmement rapides ou dans les organisations qui cherchent à automatiser les responsabilités de prise de décision.
Voici comment les services de transmission d’événements en continu gèrent les données d'événements :
Outre le streaming et le traitement standard, les plateformes de transmission d’événements en continu (comme Amazon Kinesis, Google Pub/Sub, Azure Event Hubs et IBM Event Automation, qui utilisent la puissance de traitement de la plateforme open source Apache Kafka) facilitent une série de pratiques de streaming qui améliorent les fonctionnalités.
La sémantique de livraison exactement une fois garantit que chaque événement dans un flux est traité exactement une fois, une fonctionnalité essentielle pour éviter les événements dupliqués et les pertes de flux. La plupart des systèmes de transmission d’événements en continu incluent des mécanismes permettant de fournir une sémantique unique, indépendamment des défaillances ailleurs dans le système.
Lorsque les composants en aval ne parviennent pas à suivre le rythme des événements entrants, la contre-pression empêche les flux de saturer le système. Avec la contre-pression, un mécanisme de contrôle du flux de données, les consommateurs peuvent signaler aux producteurs de réduire ou d'arrêter la production de données lorsqu'ils sont surchargés par le traitement des données ou ne peuvent pas suivre le rythme des événements entrants.
Ce processus permet aux systèmes de gérer les workloads en mettant en mémoire tampon ou en supprimant les événements entrants, au lieu de perturber l’ensemble du système, de sorte que le traitement des événements reste stable à mesure que les workloads fluctuent.
Les consommateurs d’événements travaillent souvent au sein d’un groupe de consommateurs pour accélérer la consommation d’événements. Chaque consommateur d’un groupe de consommateurs se voit attribuer un sous-ensemble de partitions à traiter, en parallélisant la consommation pour une plus grande efficacité. En cas d'échec, d'ajout ou de suppression d'un consommateur au sein du groupe, la plateforme peut réaffecter dynamiquement les partitions pour maintenir l'équilibre et la tolérance aux pannes.
La transmission d’événements en continu implique souvent un traitement des données urgent. Le filigrane permet le suivi de progression (en utilisant l'horodatage de l'événement) dans les systèmes de traitement de flux ; il impose un seuil d'exhaustivité qui indique quand le système peut considérer les données d'événement comme entièrement traitées. Le filigrane peut également être utile pour garantir la précision du traitement basé sur le temps et pour rapprocher les événements anormaux.
La plupart des plateformes de transmission d'événements en continu offrent des politiques de rétention de données flexibles qui permettent aux développeurs de déterminer la durée de disponibilité des événements pour consommation. Le compactage des données, toutefois, consiste à éliminer les données redondantes ou obsolètes des sujets, optimisant ainsi l'utilisation de l'espace de stockage tout en garantissant la conservation des données cruciales.
Il est important de rappeler que les architectures de streaming standard découplent généralement les producteurs d'événements, les brokers d'événements et les consommateurs, ce qui permet de mettre à l'échelle et de maintenir indépendamment les différents composants.
La transmission d'événements en continu est un concept puissant qui permet aux organisations d'utiliser les données dès leur génération, créant ainsi des systèmes plus réactifs et intelligents. Avec l'essor de la prise de décision fondée sur les données, la transmission d'événements en continu est un composant de plus en plus important dans les architectures logicielles modernes.
Par conséquent, les technologies de transmission d'événements en continu sont utilisées dans différents secteurs d'activité, notamment :
Les institutions financières peuvent utiliser des services de transmission d'événements en continu pour traiter les données de marché en temps réel, ce qui permet aux systèmes de trading algorithmique de prendre des décisions rapides et éclairées en fonction des conditions de marché les plus récentes. Les capacités de surveillance en temps réel de la transmission d'événements en continu aident également les institutions à détecter et à gérer rapidement les risques de fraude et de sécurité.
La transmission d'événements en continu peut contribuer à l'optimisation de la chaîne d'approvisionnement en permettant aux fabricants de suivre les matériaux et les produits à mesure qu'ils se déplacent dans la chaîne d'approvisionnement, afin d'identifier les goulots d'étranglement et les inefficacités des processus. De plus, en diffusant les données des capteurs IdO/IIoT sur les machines, les gestionnaires peuvent prédire quand et pourquoi l’équipement pourrait tomber en panne et effectuer une maintenance préventive ou une maintenance prédictive pour éviter les temps d’arrêt imprévus.
Les plateformes de jeux en ligne peuvent utiliser des services de transmission d'événements en continu pour suivre les actions des joueurs et les changements d'état des jeux, ce qui permet d'analyser les jeux, d'appliquer des politiques anti-triche et d'augmenter l'engagement des joueurs. Les plateformes de streaming peuvent tirer parti des données d'événements pour fournir des recommandations de contenu personnalisées aux utilisateurs et créer une expérience client adaptée.
La transmission d'événements en continu peut être utilisée pour suivre la localisation et l'état des véhicules, ce qui permet d'effectuer un routage en temps réel basé sur les conditions de circulation, les horaires de livraison et les performances des véhicules. Les entreprises de logistique peuvent utiliser les données d'événements provenant des dispositifs de numérisation et des trackers GPS pour fournir aux clients des mises à jour en temps réel sur le statut de leurs livraisons de e-commerce.
Au-delà des secteurs d'activité spécifiques, la transmission d'événements en continu peut également être bénéfique lorsqu'elle est déployée en association avec d'autres technologies et architectures. Par exemple, la transmission d'événements en continu est parfois associée à des modèles tels que l'approvisionnement en événements et la séparation des responsabilités de commande et de requête (CQRS).
L'approvisionnement en événements est un modèle architectural dans lequel les modifications de l'état de l'application sont enregistrées sous forme de séquence d'événements. Utilisé en association avec les flux d'événements, l'approvisionnement en événements permet au système de streaming de rejouer ces événements pour reconstruire l'état d'une entité à n'importe quel moment dans le temps ou pour piloter d'autres composants du système.
Dans un modèle architectural CQRS, le système est composé de deux modèles distincts : l'un qui gère les commandes (écriture) et l'autre qui gère les requêtes (lecture). Dans le modèle CQRS, la transmission d'événements en continu permet de propager les modifications du modèle d'écriture vers le modèle de lecture en temps réel, facilitant ainsi une intégration asynchrone entre les deux.
La transmission d’événements en continu est également une technologie essentielle à la construction d’architectures orientées événements.
Une architecture pilotée par les événements permet à des composants faiblement couplés de communiquer via des événements, mais au lieu de publier des flux d'événements vers un broker, elle publie un événement à usage unique qu'une autre application ou un autre service peut utiliser pour déclencher des actions en retour. Les capacités de traitement en flux des architectures pilotées par les événements, associées aux capacités de transmission d'événements en continu, peuvent permettre aux entreprises de réagir aux données en mouvement et de prendre des décisions rapides en s'appuyant sur toutes les données actuelles et historiques.
Ces dernières années, les fournisseurs de cloud (dont IBM Cloud) ont commencé à proposer les principes de la transmission d’événements en continu en tant que services. La transmission d’événements en continu en tant que service permet aux entreprises d'adopter plus facilement la transmission d'événements en continu sans avoir à gérer l'infrastructure sous-jacente dans son intégralité, ce qui élargit encore le champ d'application de la transmission d'événements en continu.
Entièrement modulable, IBM Event Automation permet aux entreprises d’accélérer leurs initiatives orientées événements, à tout moment. Ses capacités de gestion et de traitement des flux, des points de terminaison et des événements constituent le fondement idéal d’une architecture orientée événements qui libère toute la valeur de ces derniers.
IBM Cloud Pak for Integration utilise la plateforme open source de transmission d’événements en continu Apache Kafka d’ IBM Event Streams pour vous aider à créer des applications intelligentes capables de réagir aux événements au moment où ils se produisent.
Gérez les charges de travail stratégiques grâce à une connectivité système améliorée, à un déploiement et à des opérations riches, et à une expertise en architecture orientée événements.
Orchestrez les actions de suivi pour réagir immédiatement aux nouveaux événements. IBM App Connect prend en charge les architectures orientées événements et peut tirer parti des mécanismes d’interrogation pour fonctionner avec celles qui ne le sont pas. Configurez les flux pour automatiser les tâches et appliquer une logique conditionnelle afin de rationaliser les décisions et de répondre aux besoins changeants des clients.
Quelle est la différence entre les deux, comment peuvent-elles vous aider et laquelle est la bonne option pour votre entreprise ?
Le traitement en flux est la pierre angulaire des données en temps réel. Grâce à cette solution, votre entreprise peut traiter les flux de données en temps réel, ce qui vous permet d'analyser les données rapidement et de réagir aux changements de manière proactive.
En adoptant une stratégie plus événementielle, les organisations peuvent renforcer leur avantage concurrentiel et améliorer leurs résultats financiers.
Découvrez comment la spécification AsyncAPI peut décrire et documenter les topics Kafka.
En exploitant l'IA pour le traitement des événements en temps réel, les entreprises peuvent faire le lien entre des événements disparates afin de détecter les nouvelles tendances, menaces et opportunités, et d'y répondre.
La gestion des données peut être définie comme la pratique consistant à ingérer, traiter, sécuriser et stocker les données d’une organisation, qui sont ensuite utilisées pour prendre des décisions stratégiques afin d’améliorer les résultats de l’entreprise.