Qu’est-ce que la transmission d’événements en continu ?

Formes abstraites d’un bâtiment d’architecture moderne

Qu’est-ce que la transmission d’événements en continu ?

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 et des rapports d’analyse en temps réel.

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 jeux 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 gère chaque point de données individuellement au fur et à mesure qu’ils apparaissent. Les logiciels au sein de l’architecture peuvent ainsi 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 prennent 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 au développement 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. Elle permet également d’identifier les tendances historiques, fournissant ainsi des informations précieuses au fil du temps.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Qu'est-ce qu'un événement ?

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 ») désigne 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, ainsi qu’une valeur qui contient ses données réelles. Il comprend également 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 d’autres attributs.

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, les fonds sont retirés du compte de l’expéditeur et ajoutés à celui du destinataire. Des notifications par e-mail ou SMS sont alors envoyées à l’une des parties (ou aux deux), et si nécessaire, des protocoles de sécurité et de prévention des fraudes sont déployés.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Composants clés de la transmission d’événements en continu

Les événements sont le composant central de la transmission d’événements en continu. Cependant, une série d’autres composants permettent aux services de transmission en continu de traiter les événements de manière rapide et efficace, notamment :

Brokers

Les brokers, ou courtiers de messages, sont les serveurs qui exécutent les plateformes de transmission d’événements en continu. Ils 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. Cela permet à des services interdépendants de « parler » directement entre eux, même s’ils ont été écrits dans différents langages (Java ou Python par exemple) 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é.

Thèmes

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.

Partitions

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.

Décalages

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.

Comment fonctionne la transmission d'événements en continu ?

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. Cela est particulièrement vrai dans les environnements qui nécessitent des capacités de prise de décision extrêmement rapides ou dans les entreprises qui cherchent à automatiser les responsabilités décisionnelles.

Voici comment les services de transmission d’événements en continu gèrent les données d'événements :

  1. Génération d’événements. La transmission d’événements en continu débute lorsque les producteurs (microservices, systèmes de backend, écosystèmes IdO ou API pilotées par événements, par exemple) envoient des événements à la plateforme de transmission d’événements en continu.

  2. Publication d’événements. À l’aide de bibliothèques clientes, les producteurs publient l’événement sur un sujet spécifique au sein de la plateforme, et à partir de ce moment, il devient disponible pour les consommateurs (les applications et les services qui s’abonnent au sujet).

  3. Stockage d’événements. La plateforme conserve les événements pendant une durée prédéfinie ou jusqu'à ce qu'ils soient consommés. Les brokers gèrent les opérations de stockage et de récupération des événements.

  4. Consommation d’événements. Les consommateurs traitent les données d’événement pour initier d’autres événements. En fonction de leur objectif ou de leur configuration, les consommateurs peuvent traiter les événements immédiatement à leur arrivée (traitement en temps réel), les stocker pour un traitement ultérieur ou les compiler pour un traitement par lots. Ils utilisent également des décalages pour suivre leur progression dans le pipeline de données, ce qui leur permet de reprendre le traitement à partir de l’endroit où ils se sont arrêtés, en cas de panne ou de redémarrage.

  5. Distribution d’événements. Le courtier d’événements distribue les événements à tous les consommateurs abonnés. Il garantit la distribution des événements selon la sémantique « au moins une fois », en veillant à ce que chacun atteigne sa destination, même en cas de doublons. Il peut également inclure la distribution « exactement une fois », où chaque événement soit distribué une seule fois, ou un autre type de sémantique.

  6. Traitement d'événement. Une fois l’événement initial consommé et distribué, les données d’événement sont traitées pour plusieurs actions en aval, notamment la transformation des données, leur agrégation et le déclenchement de workflows complexes de traitement des événements (CEP).

Fonctionnalités de transmission d’événements en continu

Outre la transmission en continu et le traitement standard, les plateformes de transmission d’événements en continu (telles qu’Amazon Kinesis, Google Pub/Sub, Azure Event Hubs et IBM Event Automation) facilitent une série de pratiques qui améliorent les fonctionnalités. IBM Event Automation, en particulier, exploite la puissance de traitement de la plateforme open source Apache Kafka pour optimiser les workflows basés sur les événements.

Traitement en une seule fois

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.

Contre-pression

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.

Groupes de consommateurs

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.

Filigrane

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 des événements) 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.

Conservation et compactage des données

La plupart des plateformes de transmission d’événements en continu offrent des politiques de rétention de données personnalisables qui permettent aux développeurs de déterminer la durée de disponibilité des événements pour consommation. Toutefois, le compactage des données 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 standard de transmission en continu découplent généralement les producteurs d’événements, les courtiers d’événements et les consommateurs, ce qui permet de mettre à l’échelle et de gérer indépendamment les différents composants.

Cas d’utilisation de la transmission d’événements en continu

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 :

Services bancaires et financiers

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é.

Industrie

La transmission d’événements en continu contribue à l’optimisation de la chaîne d’approvisionnement en permettant aux fabricants de suivre les matériaux et les produits tout au long de leur parcours, et d’identifier les goulots d’étranglement et les insuffisances dans les 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 prédictive pour éviter les temps d’arrêt imprévus.

Jeux et divertissement

Certaines plateformes de jeux en ligne utilisent 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 parties, d’appliquer des politiques anti-triche et d’augmenter l’engagement des joueurs. Les plateformes de transmission en continu peuvent utiliser les données d’événement pour fournir des recommandations de contenu personnalisées aux utilisateurs et créer une expérience client adaptée.

Transport et logistique

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 d’e-commerce.

Utilisation dans les architectures pilotées par les événements et autres modèles

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 basée sur 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 courtier, 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 basées sur les événements, associées aux capacités de transmission d’événements en continu, permettent 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.

Solutions connexes
IBM Event Automation

IBM Event Automation est une solution modulable qui aide les entreprises à accélérer leurs initiatives orientées événements grâce à des capacités de distribution, de reconnaissance et de traitement des événements.

Découvrir IBM Event Automation
Les services de conseil en automatisation

Allez au-delà de la simple automatisation des tâches pour gérer des processus de haut niveau, en contact avec les clients et générateurs de revenus, grâce à une adoption et à une évolutivité intégrées.

Découvrir les services de conseil en automatisation d’IBM
Solutions d’AIOps

Découvrez comment mettre l’IA au service de vos opérations informatiques pour optimiser l’analyse et atteindre une performance exceptionnelle.

Découvrir les solutions AIOps
Passez à l’étape suivante

Accélérez la prise de décision et les opérations en repérant les nouvelles tendances, menaces et opportunités.

 

Découvrir IBM Event Automation Effectuer une visite autoguidée