Les entreprises ont de plus en plus besoin de systèmes capables de réagir instantanément à un large éventail de déclencheurs, allant des interactions avec les clients aux lectures de capteurs. Les modèles traditionnels de requête-réponse, bien qu'utiles, n'offrent pas toujours l'agilité ou l'évolutivité nécessaires à ces environnements dynamiques. L'architecture basée sur des événements (EDA) peut offrir un paradigme puissant pour créer des applications réactives, résilientes et évolutives. Il s'agit d'un modèle d'architecture logicielle qui peut favoriser la production, la détection, la consommation et la réaction aux événements.
Une architecture basée sur des événements est un modèle de conception d'applications logicielles dans lequel les services sont faiblement couplés et communiquent par le biais de la production et de la consommation d'événements. Un "événement" désigne une occurrence significative ou un changement d'état du système. Il peut s'agir d'une commande passée par un client, d'un capteur détectant un changement de température, d'un nouveau fichier importé dans un espace de stockage ou d'un enregistrement de base de données mis à jour.
Contrairement aux modèles traditionnels basés sur les requêtes, dans lesquels un service appelle explicitement un autre service et attend une réponse, l'EDA permet aux services de fonctionner de manière asynchrone. Un service qui génère un événement (le "producteur" ou "éditeur") se contente d'annoncer que l'événement s'est produit. D'autres services (les "consommateurs" ou "abonnés") intéressés par ce type d'événement peuvent alors y réagir indépendamment et à leur propre rythme.
Les principaux composants d'une EDA sont généralement les suivants :
Le workflow d'une architecture basée sur des événements suit généralement un modèle cohérent.
L'adoption d'une architecture basée sur des événements peut offrir de nombreux avantages, en particulier pour les systèmes complexes et distribués.
Évolutivité améliorée
Les services d'une architecture EDA sont faiblement couplés et peuvent être mis à l'échelle indépendamment. Si un service de traitement des commandes est soumis à une charge importante, vous pouvez faire évoluer uniquement ce service sans impacter, par exemple, le service de notification des utilisateurs.
Amélioration de la résilience et de la tolérance aux pannes
L'architecture basée sur des événements peut améliorer la robustesse des applications en isolant les défaillances de service. Le découplage garantit qu'un dysfonctionnement dans un service consommateur ne se propage pas et ne provoque pas une défaillance complète du système.
Agilité et flexibilité accrues
Les développeurs peuvent ajouter, modifier ou supprimer des services avec un impact minimal sur les autres parties du système. Les nouveaux services peuvent s'abonner aux flux d'événements existants pour ajouter de nouvelles fonctionnalités sans qu'il soit nécessaire de modifier les producteurs d'événements d'origine.
Réactivité en temps réel
L'architecture basée sur des événements aide les systèmes à répondre aux événements avec une immédiateté notable. Cette fonctionnalité est particulièrement utile pour les applications où une action rapide est essentielle, comme la détection de fraude, l'analyse en temps réel et la surveillance opérationnelle.
Intégration simplifiée
L'EDA peut servir de colonne vertébrale flexible pour intégrer des systèmes disparates, y compris des applications héritées, des microservices modernes et des services tiers. Chaque système peut publier et consommer des événements sans avoir besoin d'intégrations directes point à point avec tous les autres systèmes.
Extensibilité
Pour ajouter de nouvelles fonctionnalités ou réagir à des événements existants d'une nouvelle manière, il suffit souvent de déployer un nouveau service consommateur qui s'abonne au flux d'événements concerné.
L'EDA est un modèle courant pour activer la communication et le flux de données entre les microservices. Au lieu d'appels d'API directs et synchrones qui peuvent créer un couplage étroit, les microservices peuvent publier des événements lorsque leur état change, et d'autres microservices peuvent s'abonner à ces événements pour réagir en conséquence.
Les applications qui traitent des flux de données à grande vitesse, comme les données de capteurs IoT, les journaux d'application, les flux de réseaux sociaux ou les données des marchés financiers, peuvent utiliser l'EDA pour traiter, analyser et exploiter ces informations en temps réel. Ces données peuvent alimenter des tableaux de bord, des systèmes d'alerte ou des processus de prise de décision automatisés.
De la gestion des niveaux de stock en fonction des ventes au traitement des commandes à différentes étapes (paiement, expédition, exécution), en passant par l'envoi de notifications aux clients, l'EDA peut aider à gérer les workflows complexes et asynchrones inhérents au commerce en ligne. Si un service de traitement des paiements est lent, l'événement de commande peut toujours être capturé et traité par d'autres services, comme la réservation d'inventaire.
De nombreux processus métiers sont intrinsèquement basés sur des événements. Par exemple, la soumission d'une demande d'indemnisation (événement) peut déclencher une série d'activités en aval : vérification de la fraude, évaluation, communication avec le client et, enfin, traitement du paiement. L'EDA peut aider à modéliser et à automatiser efficacement ces workflows.
L'EDA peut être utilisée lorsque les données doivent rester cohérentes dans plusieurs systèmes ou datastores. Une modification apportée à une base de données (un événement) peut être publiée, ce qui permet à d'autres bases de données ou caches de s'abonner à ces événements de modification et de se mettre à jour.
Les fonctions sans serveur (comme les fonctions Cloud Run) sont souvent conçues pour être basées sur des événements. Elles s'exécutent en réponse à différents déclencheurs d'événements, comme l'importation d'un objet dans Cloud Storage, le placement d'un message dans une file d'attente ou une requête HTTP. Une architecture basée sur les événements est une solution idéale pour créer des applications à l'aide de composants sans serveur.
La détection de fraudes en temps réel, la surveillance des marchés boursiers et le traitement des transactions sont des applications financières critiques qui bénéficient des capacités de faible latence et de haut débit offertes par une architecture basée sur les événements.
Google Cloud fournit une suite complète de services qui permet aux clients de créer et de déployer des applications puissantes basées sur des événements. La plate-forme elle-même s'appuie sur des principes basés sur les événements pour fournir des services évolutifs et résilients. Pour les clients qui créent des solutions basées sur des événements, Google Cloud propose plusieurs services gérés clés :
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.