Jump to section

Une architecture orientée événements, qu'est-ce que c'est ?

Copier l'URL

Une architecture orientée événements est un modèle d'architecture logicielle utilisé pour la conception d'applications. Un système orienté événements est conçu pour capturer, communiquer et traiter les événements entre des services dissociés. Les systèmes peuvent ainsi rester asynchrones tout en partageant des informations et en accomplissant des tâches. 

De nombreuses applications modernes sont conçues sur la base d'une architecture orientée événements, comme les modèles d'engagement client qui nécessitent l'utilisation de données sur les clients en temps réel. Les applications orientées événements peuvent être créées à l'aide de tout langage de programmation, car l'architecture orientée événements est une approche et non un langage. Une architecture orientée événements offre un couplage limité, ce qui en fait une bonne option pour les architectures d'applications modernes et distribuées.

Une architecture orientée événements est faiblement couplée parce que les producteurs d'événements ignorent quels consommateurs d'événements écoutent un événement et que chaque événement ignore les conséquences de son apparition.

 

Un événement permet de consigner toute occurrence ou tout changement d'état significatif du matériel ou des logiciels système. Un événement n'est pas une simple notification d'événement, qui est un message ou une notification qu'envoie le système pour informer une autre partie du système qu'un événement a eu lieu.

Un événement peut avoir comme source des entrées internes ou externes. Les événements peuvent être générés par un utilisateur (par exemple, clic de souris, frappe au clavier), une source externe (par exemple, une sortie de capteur) ou le système (par exemple, le chargement d'un programme).

La dissociation et le couplage faible font référence à deux concepts distincts qui sont liés au sein de l'architecture logicielle et des systèmes orientés événements.

La dissociation consiste à éliminer ou réduire les dépendances directes entre des composants distincts d'un système, afin qu'aucun composant ne dépende d'un autre. Dans le contexte d'une architecture orientée événements, la dissociation est effectuée en s'assurant que les composants qui génèrent des événements envoient des données d'événements sans viser un composant consommateur spécifique. Cette déconnexion permet aux composants d'être indépendants et crée un système globalement plus flexible.

Le couplage faible est un type spécifique de dissociation qui vise à réduire le degré d'interdépendance entre les composants, sans pour autant les séparer complètement. Dans un système faiblement couplé, les composants peuvent interagir les uns avec les autres, mais d'une manière qui ne crée aucune forme de dépendance.

Les deux systèmes encouragent la flexibilité et l'indépendance, ce qui crée des systèmes à la fois agiles et évolutifs.

Une architecture orientée événements se compose de producteurs d'événements (éditeurs) et de consommateurs d'événements (abonnés). Un producteur d'événements détecte ou capture un événement et le représente sous forme de message. Compte tenu de la dissociation, il ne connaît pas le consommateur de l'événement ni son résultat.

Une fois un événement détecté, celui-ci est transmis du producteur aux consommateurs de l'événement par le biais de canaux d'événements, où une plateforme de traitement des événements traite l'événement de manière asynchrone. Les consommateurs d'événements doivent être informés lorsqu'un événement a eu lieu. Ils peuvent traiter l'événement ou simplement être affectés par ce dernier.

La plateforme de traitement des événements déclenchera la réponse appropriée pour l'événement et enverra l'activité en aval aux consommateurs concernés. C'est au niveau de cette activité en aval que le résultat d'un événement est visible.

Apache Kafka est une plateforme distribuée de diffusion de données en continu souvent choisie pour le traitement des événements. Elle peut gérer la publication, l'abonnement, le stockage et le traitement des flux d'événements en temps réel. Apache Kafka prend en charge un large éventail de cas d'utilisation pour lesquels un haut niveau de débit et d'évolutivité est essentiel, et permet de réduire la latence à quelques millisecondes en limitant l'utilisation d'intégrations point à point pour le partage de données dans certaines applications.

Il existe d'autres gestionnaires d'événements de type middleware qui peuvent servir de plateforme de traitement des événements.

Une architecture orientée événements peut être basée sur un modèle de publication/abonnement ou sur un modèle de flux d'événements.

Modèle de publication/abonnement
Il s'agit d'une infrastructure de messagerie basée sur l'abonnement à un flux d'événements. Avec ce modèle, une fois qu'un événement s'est produit ou a été publié, il est envoyé aux abonnés qui doivent en être informés.

Modèle de flux d'événements
Avec un modèle de flux d'événements, les événements sont écrits dans un journal. Les consommateurs d'événements ne s'abonnent pas à un flux d'événements. Ils peuvent lire toute partie du flux et le rejoindre à tout moment.

Il existe différents types de flux d'événements :

  • Le traitement des flux d'événements s'appuie sur une plateforme de diffusion de données en continu, comme Apache Kafka, pour ingérer des événements et des processus, voire transformer le flux d'événements. 
  • Le traitement des événements simples intervient lorsqu'un événement déclenche immédiatement une action au niveau du consommateur d'événements.

Le traitement des événements complexes requiert qu'un consommateur d'événements traite une série d'événements pour détecter des schémas. Le traitement des flux d'événements permet de détecter des schémas pertinents dans les flux d'événements.

Avec une architecture orientée événements, les entreprises peuvent se doter d'un système flexible capable d'améliorer les workflows en s'adaptant aux changements et en prenant des décisions en temps réel. L'évaluation de la situation en temps réel signifie que les décisions métier, qu'elles soient manuelles ou automatisées, peuvent être prises à l'aide de toutes les données disponibles qui reflètent l'état actuel des systèmes de l'entreprise.

Les événements sont capturés à mesure qu'ils se produisent à partir de sources d'événements telles que des appareils de l'Internet des objets, des applications et des réseaux, ce qui permet aux producteurs et aux consommateurs d'événements de partager des informations sur l'état et la réponse en temps réel.

Les entreprises peuvent ajouter une architecture orientée événements à leurs systèmes et applications pour améliorer l'évolutivité et la réactivité des applications ainsi qu'accéder aux données et au contexte nécessaires pour prendre des décisions métier plus éclairées.

Une architecture orientée événements offre l'avantage de la dissociation, avec laquelle les producteurs et les consommateurs de données ou de services n'ont pas besoin de communiquer directement, ce qui favorise la flexibilité et l'évolutivité du système. En retour, cette approche simplifie l'intégration de nouveaux composants, favorise la tolérance aux pannes et améliore l'efficacité globale du système.

Nous proposons des outils et des logiciels de gestion intégrés qui vous permettent de connecter rapidement les technologies et microservices existants dans des environnements de cloud hybride, ainsi que de faire fonctionner votre architecture orientée événements grâce à une intégration agile.

Red Hat OpenShift, en association avec l'ensemble d'outils de Red Hat Application Foundations, aide les entreprises à améliorer la productivité de l'équipe de développement, à automatiser les pipelines CI/CD et à déployer leurs efforts de sécurité plus tôt et tout au long du cycle de développement. La chaîne d'approvisionnement des logiciels est ainsi plus sécurisée grâce à l'automatisation des pratiques DevSecOps et à la mise en œuvre de la sécurité des applications au moment de l'exécution.La fonctionnalité 

OpenShift Dev Spaces offre à l'équipe de développement un environnement plus rapide, plus cohérent et plus fiable, et à l'équipe d'exploitation un contrôle centralisé. Grâce aux fonctionnalités d'OpenShift, telles que les services Serverless et Service Mesh, et celles de Red Hat Application Services, comme les environnements d'exécution et les frameworks d'applications, la gestion des API, la diffusion de données en continu ou les services orientés événements, l'équipe de développement accède en libre-service aux langages et aux outils de son choix, ce qui améliore sa productivité. Elle peut retrouver les outils qu'elle préfère utiliser dans notre vaste écosystème de solutions partenaires compatibles avec OpenShift.

Keep reading

Article

L'intégration, qu'est-ce que c'est ?

Vous souhaitez savoir en quoi consiste l'intégration ? Découvrez ce que c'est, comment l'adopter et pourquoi elle est plus efficace avec des solutions Open Source.

Article

Apache Kafka, qu'est-ce que c'est ?

Apache Kafka est une plateforme distribuée de diffusion de données en continu, capable de publier des flux d'enregistrement en temps réel, de les stocker, de les traiter et d'y souscrire.

Article

Une API, qu'est-ce que c'est ?

Une API, ou interface de programmation d'application, est un ensemble de définitions et de protocoles qui facilite la création et l'intégration de logiciels d'applications.

En savoir plus sur l'intégration

Produits

Ensemble complet de technologies d'intégration et de messagerie.

Un ensemble de produits, d'outils et de composants qui facilitent le développement et la maintenance des applications cloud-native.

Un ensemble de produits pour automatiser les décisions et processus métiers de manière intelligente. Comprend Red Hat Decision Manager, Red Hat Process Automation Manager et Red Hat Runtimes.

Services gérés et hébergés de plateforme, d'applications et de données qui rationalisent l'expérience dans le cloud hybride, réduisant ainsi les coûts d'exploitation et la complexité liés à la distribution des applications cloud-native.

Ressources

Livre numérique

Créer une infrastructure agile et renforcer la capacité d'adaptation de l'entreprise

Formations

Cours gratuit

L'intégration agile avec Red Hat : présentation technique