Event Mesh : définition
Un Event Mesh est une infrastructure dynamique qui permet l'envoi de notifications à des applications dans un environnement distribué. Dans une architecture orientée événements, un événement désigne une modification, une action ou une observation dans un système qui génère une notification, laquelle est ensuite envoyée à d'autres systèmes qui réagissent tous à cet événement, indépendamment les uns des autres. C'est l'Event Mesh qui permet de mettre en œuvre ces différentes connexions.
Utilité d'un Event Mesh
Aujourd'hui, les grandes entreprises ont besoin de répartir d'énormes quantités de données au sein d'une infrastructure hautement distribuée. Les applications essentielles doivent pouvoir communiquer de façon fiable et rapide afin de partager les données qui leur sont vitales pour traiter les interactions et les transactions dont dépend l'activité de l'entreprise.
Le défi pour l'entreprise moderne consiste à déplacer ces données dans une infrastructure dispersée géographiquement et qui couvre également plusieurs clusters distincts et hétérogènes, le tout de manière efficace, évolutive et économique. L'Event Mesh apporte la solution : une infrastructure conçue pour transmettre les événements de façon fluide et transparente, quel que soit l'environnement et même entre plusieurs clouds.
Ressources Red Hat
Architecture orientée événements
Il est impossible d'expliquer ce qu'est un Event Mesh sans aborder au préalable le concept d'architecture orientée événements. Dans ce type d'architecture logicielle, la communication se fait via des « événements ». Un événement désigne une modification, une action ou une observation dans un système qui génère une notification, laquelle est ensuite envoyée à d'autres systèmes qui réagissent tous à cet événement, indépendamment les uns des autres.
Un événement peut ainsi être déclenché suite à la modification de l'adresse de facturation d'un client, à une action telle que la validation d'une commande ou à l'observation du niveau de charge d'une batterie ou de la température par un capteur. Chaque événement représente des informations qui seront « consommées » par d'autres applications. Plusieurs consommateurs peuvent recevoir le même message, mais utiliser différemment les données qui y sont associées afin d'exécuter une tâche bien précise.
Pour ce type de transfert de données, le mécanisme de communication « asynchrone » de l'architecture orientée événements est mieux adapté que la communication « synchrone » classique. En effet, dans un mécanisme synchrone, deux applications se connectent directement, le plus souvent via des interfaces de programmation d'application (API) HTTP. Pour que ces applications puissent communiquer, les deux services doivent être disponibles et réactifs en même temps. Si un service n'est pas disponible, le message ne peut pas être traité et c'est tout le système qui risque de s'enrayer, voire de tomber en panne. En général, la transmission synchrone ne convient pas pour envoyer d'importants volumes d'informations aux nombreux systèmes utilisés dans une entreprise.
À l'inverse, le mécanisme de communication asynchrone repose sur des événements, ce qui permet à plusieurs applications de communiquer simultanément et quasiment en temps réel. Si un système n'est pas en mesure de recevoir un événement, la notification lui sera remise dès qu'il sera de nouveau disponible.
Enfin, dans une architecture orientée événements, le couplage des environnements d'exécution du producteur et du consommateur des événements est inutile. C'est pourquoi elle est idéale pour les applications distribuées modernes.
Fonctionnement d'un Event Mesh
Une entreprise peut générer chaque minute des centaines voire des milliers d'événements, qu'elle doit transmettre de manière efficace à des applications variées déployées dans une infrastructure distribuée, qui regroupe des environnements sur site et dans le cloud. L'infrastructure de type Event Mesh offre cette possibilité aux entreprises orientées événements.
Un Event Mesh est une infrastructure dynamique qui permet de transmettre les événements des producteurs aux consommateurs via un réseau de « brokers d'événements » interconnectés. Indépendant de l'environnement, il a pour rôle de transmettre les événements sur l'ensemble des plateformes cloud, où que soient déployées les applications (sur site, dans un cloud public, privé ou hybride, un PaaS et même l'Internet des objets), sans avoir à configurer le routage des événements.
Grâce à l'Event Mesh, l'éditeur et les abonnés peuvent utiliser les mécanismes d'événement natifs de leurs plateformes respectives. Ainsi, le même événement pourra être publié par un développeur Node.js qui travaille dans un cluster Kubernetes et suivi par un développeur Java qui utilise un cluster différent. L'événement est exploitable par tous les consommateurs, indépendamment du type d'application, de la plateforme sur laquelle l'application a été développée, de la technologie de diffusion des messages ou du type de cloud qui héberge l'application.
Puisque le type d'environnement n'a pas d'effet sur la transmission des informations entre les applications, l'Event Mesh prend en charge un système faiblement couplé pour l'intégration des applications, bases de données et périphériques, ainsi que les nouvelles applications cloud-native et basées sur des microservices.
L'Event Mesh est également compatible avec de nombreux services de messagerie. Apache Kafka est un service très utilisé pour la gestion des messages dans l'architecture orientée événements, en particulier par les développeurs cloud-native, mais il existe d'autres options, par exemple Knative Eventing, Cloud Events, HTTP et AMQP.
L'Event Mesh correspond à l'étape de la maturité dans un projet d'architecture orientée événements, au moment où celle-ci est pleinement adoptée dans l'entreprise. Si les intégrations asynchrones et les modèles d'architecture orientée événements ne sont pas des concepts nouveaux, l'infrastructure de communication de type Event Mesh propose une approche révolutionnaire de l'intégration qui pourrait bien devenir la norme dans les entreprises nouvelle génération.
Différence entre Event Mesh et Service Mesh
Service Mesh et Event Mesh sont deux expressions si proches qu'il est facile de les confondre. Toutefois, elles font référence à deux concepts bien distincts. L'Event Mesh est asynchrone alors que le Service Mesh repose sur un mécanisme de messagerie synchrone plus classique de type requête-réponse.
Complémentaires au sein de l'entreprise, ces deux infrastructures offrent des options de communication différentes, mais tout aussi efficaces l'une que l'autre. Les développeurs peuvent ainsi choisir celle qui convient le mieux en fonction de l'application. Le Service Mesh ne peut toutefois pas remplacer l'Event Mesh, car il ne gère pas les communications asynchrones orientées événements. Il est donc plus adapté pour les déploiements à un seul cluster.
Fonctionnalités indispensables d'un Event Mesh
Pour répondre aux exigences de l'entreprise et satisfaire les promesses d'une architecture orientée événements, l'Event Mesh doit inclure les fonctionnalités suivantes :
- Prise en charge de divers services de messagerie, notamment Kafka, Knative Eventing, HTTP et AMQP
- Tolérance aux pannes pour assurer une transmission fiable des messages, avec récupération automatisée en cas de problèmes sur le réseau et destinations secondaires pour les messages impossibles à envoyer
- Prise en charge de plusieurs protocoles pour créer une passerelle entre les événements, applications et plateformes de messagerie
- Prise en charge des déploiements sur site et multicloud
- Prise en charge des adresses multicast (tous les abonnés reçoivent une copie de chaque message) et anycast (un abonné reçoit une copie de chaque message)
- Sécurisation des connexions et de la transmission des messages liés aux événements
Cas d'utilisation d'un Event Mesh
Combinée à l'Event Mesh, l'architecture orientée événements est capable de prendre en charge de nombreux cas d'utilisation, avec des topologies multicloud complexes hautement distribuées et des piles d'applications diverses. Voici quelques-uns des nombreux cas d'utilisation potentiels de l'Event Mesh.
Intégration des microservices
Un Event Mesh permet de connecter entre elles des applications basées sur des microservices ainsi qu'avec les technologies existantes.
Commerce en ligne
Un Event Mesh accélère le traitement des transactions et améliore la rapidité et la fiabilité des interactions avec les clients via les sites web et les applications.
Assistance clients
Un Event Mesh assure la transmission rapide des données d'interaction pour permettre à l'assistance de répondre en temps réel aux clients et d'offrir ainsi une expérience personnalisée.
Services financiers
Un Event Mesh offre une latence faible pour la synchronisation des données boursières en temps réel. Il peut aussi faciliter la détection des fraudes en envoyant instantanément des informations sur les transactions suspectes.
Connectivité de l'IoT
Un Event Mesh apporte une connectivité fiable et évolutive pour l'Internet des objets (IoT) aux systèmes back-end, qui peuvent ainsi traiter les indicateurs de mesure renvoyés par quasiment tous types de capteurs.
Avantages d'un Event Mesh pour l'entreprise
L'infrastructure Event Mesh procure de nombreux avantages à l'entreprise.
Des réponses en temps réel
La réussite d'une entreprise est conditionnée par sa capacité à réagir au changement. La réactivité est l'un des principaux avantages que procure l'Event Mesh grâce à la transmission en temps réel des données, sous forme de flux d'événements via une architecture orientée événements. Très efficace, l'Event Mesh détermine le trajet le plus rapide entre le producteur et le consommateur, pratiquement sans latence. Les équipes peuvent ainsi réagir rapidement en cas de problèmes critiques qui exigeraient des décisions urgentes.
Une expérience client améliorée
En transmettant en temps réel les données utilisées par les équipes en contact avec la clientèle et par les technologies de commerce en ligne, l'Event Mesh permet aux entreprises de mieux servir les clients et donc de leur offrir une meilleure expérience.
Des coûts d'exploitation réduits
Grâce aux informations sur la production, les ventes, les stocks et les expéditions accessibles en temps réel, les entreprises peuvent optimiser l'exploitation, gagner en efficacité et réduire les coûts.
Des développeurs plus productifs
L'Event Mesh ne dépend d'aucun environnement, système de messagerie ou protocole. Les développeurs peuvent donc concentrer leurs efforts sur le déploiement d'une logique métier basée sur les meilleures technologies. C'est autant de temps consacré à l'innovation plutôt qu'à la mise en place d'un réseau complexe de transmission des données, et ce, sans restrictions concernant l'environnement de développement, la plateforme de messagerie ou le type de cloud.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.