Qu'est-ce qu'une architecture guidée par les événements ?

Des systèmes découplés qui s'exécutent en réponse à des événements

Une architecture guidée par les événements s'appuie sur des événements pour déclencher la communication entre des services découplés. Ce type d'architecture est courant dans les applications modernes reposant sur des microservices. Un événement est un changement d'état ou une mise à jour, comme l'ajout d'un article au panier sur un site d'e-commerce. Les événements peuvent désigner un état (article acheté, prix et adresse de livraison), ou constituer en des identificateurs (notification d'expédition d'une commande).

Les architectures guidées par des événements comportent trois éléments clés : les producteurs d'événements, les routeurs d'événements et les consommateurs d'événements. Un producteur envoie un événement au routeur, qui filtre les événements et les transmet à son tour aux consommateurs. Les services des producteurs et des consommateurs sont découplés, ce qui leur permet d'être mis à l'échelle, actualisés et déployés de manière indépendante.

Vidéo explicative sur les architectures pilotées par les événements (1:11)

Pour en savoir plus, consultez notre série de conférences techniques en ligne AWS sur la façon d'utiliser Amazon EventBridge pour créer des architectures découplées et pilotées par les événements. Découvrez les principes fondamentaux des architectures guidées par les événements, notamment la création d'un bus d'événements, la configuration de sources d'événements SaaS, et bien plus encore, et démarrez avec Amazon EventBridge.

Avantages d'une architecture guidée par les événements

Capacité de mise à l'échelle à toute épreuve

En découplant vos services, ceux-ci n'ont connaissance que du routeur d'événements, et pas les uns des autres. Cela signifie que vos services sont interopérables, mais que si l'un d'eux rencontre une panne, les autres continueront à fonctionner. Le routeur d'événements joue le rôle d'un tampon élastique qui fera face aux hausses de charges de travail.

Développement agile

Vous n'avez plus à rédiger du code personnalisé pour interroger, filtrer et acheminer les événements. Le routeur d'événements va automatiquement filtrer et renvoyer les événements vers les consommateurs. Le routeur élimine également le besoin de coordination élevée entre les services de producteur et de consommateur, ce qui accélère votre processus de développement.

Audit facile

Un routeur d'événements joue le rôle d'emplacement centralisé pour auditer votre application et définir des politiques. Ces politiques permettent de restreindre qui peut publier et s'abonner à un routeur, et de contrôler quels utilisateurs et quelles ressources disposent d'une autorisation d'accès à vos données. Vous pouvez également chiffrer vos événements en transit et au repos.

Réduction des coûts

Les architectures guidées par les événements sont basées sur la technologie Push. Ainsi, tout se déroule à la demande lorsque l'événement survient dans le routeur. Vous ne payez donc pas l'interrogation continue pour rechercher un événement. Cela permet de réduire la consommation de bande passante du réseau, l'utilisation du processeur, la capacité inactive de flotte et les liaisons SSL/TLS.

Fonctionnement : exemple d'architecture

Voici un exemple d'une architecture guidée par les événements d'un site e-commerce. Cette architecture permet au site de réagir aux modifications provenant d'un ensemble de sources lors des pics de demande, sans blocage de l'application ou sur-approvisionnement des ressources.

Quand utiliser cette architecture

Réplication des données entre les comptes et les régions

Vous pouvez utiliser une architecture guidée par les événements afin de coordonner les systèmes entre les équipes qui opèrent et se déploient dans différents comptes et régions. En utilisant un routeur d'événements pour transférer des données entre les systèmes, vous pouvez développer, mettre à l'échelle et déployer des services indépendamment des autres équipes.

Surveillance et alerte de l'état des ressources

Au lieu de vérifier en permanence vos ressources, vous pouvez utiliser une architecture guidée par les événements afin de surveiller et d'être alerté en cas d'anomalies, de modifications et de mises à jour. Ces ressources comprennent des compartiments de stockage, des tableaux de bases de données, des fonctions sans serveur, des nœuds de calcul, etc.

Diffusion et traitement en parallèle

Si un grand nombre de vos systèmes doit opérer en réponse à un événement, vous pouvez utiliser une architecture guidée par les événements afin de diffuser l'événement sans avoir à rédiger du code personnalisé à envoyer à chaque consommateur. Le routeur enverra l'événement aux systèmes, chacun d'entre eux pouvant traiter l'événement en parallèle dans un but distinct.

Intégration de systèmes hétérogènes

Si vos systèmes s'exécutent sur des piles différentes, vous pouvez utiliser une architecture guidée par les événements afin de partager les informations entre les systèmes, sans couplage. Le routeur d'événements établit l'indirection et l'interopérabilité entre les systèmes, afin qu'ils puissent s'échanger des messages et des données tout en restant indépendants.


Devez-vous utiliser une architecture guidée par les événements ?

Les architectures guidées par les événements sont parfaites pour améliorer l'agilité et agir rapidement. Elles se retrouvent généralement dans les applications modernes qui utilisent des microservices, ou dans toute application possédant des composants découplés. Si vous adoptez une architecture guidée par les événements, vous devrez peut-être repenser votre manière d'envisager la conception de votre application. Pour vous préparer à la réussite, tenez compte des éléments suivants :

• La durabilité de votre source d'événements. Votre source d'événements doit être fiable et garantir la distribution si vous devez traiter chaque événement. 

• Vos exigences de contrôle des performances. Votre application doit être capable de gérer la nature asynchrone des routeurs d'événements. 

• Le suivi de votre flux d'événements. L'indirection introduite par une architecture guidée par les événements permet un suivi dynamique grâce à des services de surveillance, mais pas de suivi statique au moyen d'une analyse de code. 

• Les données de votre source d'événements. Si vous devez reconstruire l'état, votre source d'événements doit être dédupliquée et organisée.

Téléchargez le guide de l'architecture pilotée par les événements d'AWS »

Où démarrer

Il existe deux principaux types de routeurs utilisés dans les architectures guidées par les événements : les bus d'événements et les rubriques d'événements. Chez AWS, nous proposons Amazon EventBridge pour la création de bus d'événements et Amazon Simple Notification Service (SNS) pour la création de rubriques d'événements.

Amazon EventBridge est recommandé lorsque vous souhaitez créer une application qui réagit aux événements provenant d'applications SaaS, de services AWS ou d'applications personnalisées. EventBridge utilise un schéma prédéfini pour les événements et vous permet de créer des règles qui sont appliquées sur l'ensemble du corps de l'événement pour le filtrer avant l'envoi aux consommateurs.

Amazon SNS est recommandé lorsque vous souhaitez créer une application qui réagit aux événements à débit élevé et à faible latence publiés par d'autres applications, microservices ou services AWS, ou pour les applications nécessitant une très grande diffusion (des milliers ou millions de points de terminaison). Les rubriques SNS sont indépendantes du schéma d'événements entrant.

Créer gratuitement un compte

Obtenez un accès instantané à l'offre gratuite d'AWS. 

S'inscrire