Vous êtes sur la page 1sur 10

23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home Secteurs d’activité  Audiences  Thématiques  Leaders d'Opinion

CIO

Point de vue sur les


architectures
microservices event-
driven

24 octobre 2023

Categorized: CIO | Cloud

Share this post:

 
Cet article a été rédigé avec le concours d’Olivier Barrot, Vincent Baruchello, Xiaohua Le et Laurent Sene.

Pourquoi considérer les architectures event-driven ?


L’essor et le développement du Cloud, l’utilisation de conteneurs, et la montée en puissance de « Pizza teams » agiles qui trava
sur des composants de petite taille, ont conduit à une évolution des architectures applicatives vers des architectures de micros
« Cloud natives ».

La fragmentation des monolithes en microservices permet d’avoir des services indépendants et autonomes, avec un modèle
architectural qui supporte mieux l’élasticité et est plus adapté aux développements agiles.
Cette fragmentation entraîne toutefois une augmentation de la combinaison des invocations entre ces services (trafic Est-Oues
Se pose alors la question du modèle d’invocation à adopter entre ces microservices :

• Appels synchrones basés sur des API REST


Les invocations synchrones sont bien connues et maîtrisées par les équipes de développement et les architectes, mais elle
limitent l’élasticité et l’évolutivité des services qui ne sont pas totalement autonomes. C’est pourquoi, lorsqu’un problème s
les défaillances s’enchaînent en cascade.
Ces inconvénients sont partiellement résolus par un framework de Service Mesh. Basé sur l’utilisation d’API REST et le patt
side-car proxy » (dont les implémentations les plus populaires sont Istio et Linkerd), le Service Mesh permet d’externaliser
règles et les politiques de routage des appels entre microservices et augmente leur autonomie.

• Appels asynchrones basés sur un modèle événementiel.


Dans ce modèle, tous les appels entre services se font de manière asynchrone, ce qui permet de découpler les microservice
offre plus de résilience et d’élasticité puisque chaque microservice devient complètement autonome.
Un broker de messages Publish/Subscribe est requis. Kafka étant la solution qui s’est imposée sur le marché, c’est celui sur
sera développé le reste de cette publication.

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 1/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home    Leaders d'Opinion

Ces deux modèles d’invocations ne sont pas exclusifs, l’utilisation d’API peut évidemment coexister avec un modèle de messag
même une architecture event-driven.

L’event-driven est plus qu’un modèle de communication asynchrone


L’EDA (Event Driven Architecture) est un paradigme de conception d’applications qui est bien plus qu’un simple modèle de
communication asynchrone entre applications.

Les appels asynchrones entre services sont toujours une bonne idée lorsqu’ils sont fonctionnellement adaptés. Cependant, ce
pas parce que vous avez des services faiblement couplés à l’aide d’appels asynchrones que vous avez fait de l’EDA.

Une architecture event-driven repose sur le fait que les données échangées entre les services sont des événements qui notifien
faits métiers importants qui se sont produits, et qui correspondent la plupart du temps à des objets métiers.

Avantages de l’architecture event-driven


L’architecture event-driven (que l’on rencontre également sous les noms Event Streaming ou architecture réactive) apporte de
nombreux avantages :

• Le couplage lâche des microservices favorise l’autonomie des microservices, et offre une plus grande résilience. En cas de
d’un microservice, les appels API ne restent bloqués en attente d’une réponse.

• C’est une architecture élastique qui est parfaitement adaptée au serverless, avec des microservices qui sont instanciés
uniquement lorsqu’il y a un message à consommer.

• Le couplage lâche entre le producteur et le consommateur de messages facilite la scalabilité. Chaque microservice est mis
l’échelle en fonction de ses propres besoins.
C’est ce type d’architecture qui permet à LinkedIn de gérer 1,4 milliards de messages par jour et deux pétaoctets de donné
chaque semaine.

• L’EDA facilite la gestion des défaillances en cascade (cascading failures) résultant des interdépendances de microservices
défaillance d’un microservice ne se propage pas aux autres et permet une approche « Design for failure » pour des solution
« Always On ».

• Un système basé sur les principes de l’architecture orienté événements est évolutif et extensible par conception. Il est pos
par exemple de créer à tout moment un nouveau service pour réagir à un événement sans aucun impact sur les services exi

• Un système d’information basé sur l’EDA est naturellement orienté temps (quasi) réel. Les flux batchs traditionnels peuven
remplacés dans certains cas par le streaming d’événements, et permettre ainsi de procéder à des traitements analytiques t
(quasi) réel.

• Enfin, les architectures événementielles permettent un meilleur partage des données. La grande majorité des entreprises o
aujourd’hui placé la donnée au centre de leur stratégie. L’approche événementielle favorise la production de données et elle
par nature data-centric.
https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 2/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

En effet, les événements échangés sont des données en mouvement, qui ne sont plus uniquement détenues par des applic
IBM-France Home 
propriétaires, mais deviennent aisément consommables.
  Leaders d'Opinion
On se rapproche du concept de produits de données, l’un des principes clés des architectures data-mesh.

Les principes des architectures event-driven


Voici un exemple extrêmement simplifié illustrant l’architecture d’une application développée selon les principes de l’EDA.
Cette application prend des commandes de produits (un cas d’utilisation très simplifiée, sans contrôle dans le référentiel d’un c
ni dans le référentiel d’un produit) et envoie la commande à l’entrepôt qui effectuera l’expédition. Un administrateur de site We
surveille les commandes avec une vue 360.

L’application est composée de 4 microservices :

• Deux services Command différents (le « C » de CQRS) permettent d’enregistrer des Clients et des Commandes depuis une
interface graphique (la partie GUI n’est pas représentée ici).

• Un service de Query (le « Q » de CQRS), permet aux administrateurs d’effectuer des recherches sur l’historique des comma

• Un processeur d’événements « Order Shipping », effectue une jointure entre les topics Client et Commande, avant de publi
événement qui déclenche l’expédition depuis l’entrepôt des produits.

Caractéristiques et défis des applications EDA


Les architectures Event Driven présentent certaines caractéristiques qui leur sont bien spécifiques, ainsi que des difficultés, pa
inédites, à relever.

Certaines de ces spécificités ont été identifiées ci-dessous et cette liste n’est sans doute pas exhaustive. Vous trouverez des
informations détaillées sur ces sujets, les problématiques soulevées et des pistes de remédiation dans le document complet à
très prochainement : TEC-F – Event Driven Architectures.pdf.

■ Cohérence éventuelle, ■ Schéma d’événement,

■ Sémantique de livraison, ■ Expérience utilisateur,

■ Dead Letter, ■ Modèle CQRS,

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 3/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

■ Cohérence transactionnelle, ■ Gouvernance


IBM-France Home    Leaders d'Opinion
■ Idempotence, ■ Sécurité et confidentialité,

■ Intégrité référentielle, ■ Orchestration et chorégraphie,

■ Garantie d’ordre ■ Gestion du cycle de vie (tests, débogage, traçabilité)

IBM Event Automation


Apache Kafka est la solution la plus populaire utilisée pour implémenter les applications EDA, et est en mesure de gérer des m
d’événements par jour. Depuis sa création en open source en 2011, Kafka s’est quasiment imposé comme un standard de l’indu
L’écosystème Kafka est riche, nous nous contenterons dans cette publication de présenter sommairement la solution IBM.

IBM Event Automation est un produit lancé en mai 2023. Il s’agit d’une solution de traitement d’événements composée d’un
ensemble d’outils visuels, intuitifs et intégrés.
IBM Event Automation permet de distribuer, découvrir, socialiser, transformer et gérer des événements.

IBM Event Automation adopte une approche communautaire open source basée sur Kafka et Flink, et fourni un ensemble de
fonctionnalités intégrées qui accélèrent la mise en œuvre d’applications event-driven :

• Distribution d’événements, basée sur Kafka qui prend en charge les schémas de données d’événement, permet l’équilibrag
charge de travail et fournit des connecteurs pour accéder aux systèmes externes.

• Découverte d’événements, grâce au portail de socialisation qui rend les événements accessibles et permet la découverte e
consommation d’événements, en gérant les sources d’événements pour les réutiliser en toute sécurité dans toute l’entrepri
IBM Event Automation permet de décrire les flux d’événements de manière standardisée au format AsyncAPI, et de les pub
dans un catalogue consultable en accès self-service.

• Processing d’événements, qui s’appuie sur Flink pour filtrer, transformer et combiner et analyser les événements.

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 4/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home    Leaders d'Opinion

Le parcours d’adoption de l’EDA et les méthodologies


Dans le contexte de la transformation cloud, l’adoption d’une architecture event-driven nécessite une transformation important
termes de technologie, mais aussi en termes de compétences et même d’organisation.

En effet, l’approche EDA est extrêmement disruptive sur un certain nombre de points :

• Expérience utilisateur de type « fire and forget »

• Architecture EDA

• Compétences en développement

• Méthodologies plus spécifiquement adaptées comme l’Event Storming

• Organisation et gouvernance

La dimension disruptive de l’EDA est probablement le principal obstacle limitant l’adoption et le développement de ce type
d’architecture.

La figure ci-dessous illustre le parcours de transformation d’une entreprise pour atteindre la maturité nécessaire :

• L’étape du camp de base est celle de la transformation nécessaire pour l’adoption des microservices « Cloud native »
traditionnels, basés sur des invocations d’API en direct.

• Un effort modéré supplémentaire est requis pour fournir des applications en mode service-mesh (mise en œuvre d’un side-
proxy au moyen d’un framework tel que Istio).

• L’effort de transformation supplémentaire nécessaire pour les applications orientées événements est plus conséquent.

La face nord du défi de l’adoption des architectures event-driven

Les cas d’usages les plus pertinents

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 5/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

En raison de son caractère disruptif, transformer l’ensemble de l’informatique d’une entreprise avec une approche EDA constitu
IBM-France Home    Leaders d'Opinion
risque aujourd’hui. On peut cependant, distinguer certains cas d’usages en particulier.
Voici les cas d’utilisation les plus courants que nous avons rencontrés dans les entreprises :

1. Création de pipelines de données temps réel afin d’alimenter des data warehouse analytiques ou des lacs de données (ana
continu).

2. Les applications de Complex Event Processing, et plus généralement tous les traitements basés sur une fenêtre temporelle

3. Dans les secteurs industriels, l’IoT pour la gestion des flux de messages des devices est un bon candidat aux architectures
driven.

4. Les applications réactives et la programmation asynchrone, avec des langages comme Vert.X par exemple.

Conclusion… EDA ou pas ? Telle est la question


Pour certains cas d’usages tels que les applications de Complex Event Processing, la question ne se pose pas et l’architecture
événementielle s’impose naturellement.

Au-delà de ce cas d’usage, et lorsque le fonctionnel le permet, il est toujours recommandé de privilégier les communications
asynchrones entre domaines, applications ou services plutôt que des invocations requête / réponse synchrones. Le couplage lâ
offre de nombreux avantages, en particulier du point de vue de la résilience et de la tolérance aux pannes.

Les architectures orientés événements constituent donc un paradigme parfaitement adapté au développement d’applications c
natives et plus particulièrement serverless qui réagissent aux événements. Il est donc intéressant d’intégrer l’adoption des
architectures orientés événements dans la stratégie des entreprises.

L’architecture EDA est cependant disruptive et nécessite une approche différente à tous les niveaux : aussi bien en termes
d’expérience utilisateur, que de conception, de développement ou d’exploitation. L’adoption de ces architectures peut être diffic
particulier pour les entreprises qui n’ont pas une maturité suffisante sur les architectures cloud natives.

Il est par conséquent difficile de fournir à ce stade une préconisation générale, d’autant plus que les architectures service-mes
offrent déjà un certain niveau d’autonomie aux microservices. Nous pensons néanmoins qu’il reste judicieux d’explorer ce para
architectural et de tirer parti de tous les avantages offerts.

Une approche innovante mais prudente, peut consister à explorer des architectures événementielles sur un cas d’usage limité d
un premier temps, sans engager l’entreprise dans une transformation à grande échelle. Le cas d’utilisation du pipeline de donné
temps-réel pour alimenter un warehouse ou un lac de données, dans l’objectif de faire des traitements analytiques temps-réel
sans doute la première étape la plus simple à réaliser.

Une généralisation de l’usage des architectures event-driven pourra ensuite être envisagée ultérieurement, au rythme de la mo
en compétence des équipes.

Agop Gurunlian
Account Technical Leader - Pôle Assurances, IBM France

Cloud event-driven microservices

 Previous Post
Cabesto renforce le pilotage de ses activités avec IBM Planning Analytics

Next P

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 6/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

Corsica Ferries simplifie le renouvellement de ses serveurs Power avec IBM France Finan
IBM-France Home    Leaders d'Opinion

Rechercher

Articles récents
• LES KONKOURS IBM DU NUMÉRIQUE – Edition 2024

• La CSRD, un changement de paradigme pour les entreprises européennes

• L’intelligence artificielle et l’analytique avancée dans le système de santé français (Partie 2)

• L’importance d’une culture DevOps au sein d’une entreprise

• L’Intelligence Artificielle et l’Analytique avancée dans les systèmes de santé français (Partie 1)

Archives
• avril 2024

• février 2024

• janvier 2024

• décembre 2023

• novembre 2023

• octobre 2023

• septembre 2023

• juillet 2023

• juin 2023

• mai 2023

• avril 2023

• mars 2023

Rubriques
• Archive

• Audiences

• Secteurs d’activité

• Thématiques

octobre 2023
L MMJ V S D
1
2 3 4 5 6 7 8
9 101112131415
16171819202122
23242526272829
3031
« Sep Nov »

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 7/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home    Leaders d'Opinion

More CIO stories

Santé

28 février 2024

L’intelligence artificielle et l’analytique avancée dans le système de santé frança


(Partie 2)
Face aux défis auxquels sont confrontés les systèmes de soins de santé, l’analytique avancée (AA) et l’intelligence artificielle
(IA) sont des technologies à haut potentiel d’impact. Ces technologies peuvent équiper les systèmes de santé d’outils avanc
pour renforcer les soins des patients et améliorer l’efficacité opérationnelle. La deuxième partie de cet article reprend le fil […

 Continue reading

Santé

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 8/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home    Leaders d'Opinion

15 février 2024

L’Intelligence Artificielle et l’Analytique avancée dans les systèmes de santé


français (Partie 1)
Dans le paysage complexe de la Santé, les systèmes médicaux du monde entier sont confrontés à une multitude de défis. Ce
ci vont de la gestion délicate des maladies chroniques jusqu’à la quête d’accès égaux aux services de santé. Dans ce context
spécifique, l’émergence de l’Analytique avancée et de l’Intelligence Artificielle (IA) joue un rôle de […]

 Continue reading

Ecosystèmes

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 9/10
23/04/2024 22:46 Point de vue sur les architectures microservices event-driven - IBM-France

IBM-France Home    Leaders d'Opinion

23 octobre 2023

Cabesto renforce le pilotage de ses activités avec IBM Planning Analytics


Les solutions cloud d’aide à la décision d’IBM et l’expertise d’Intis ont permis à Cabesto de franchir une étape majeure dans
capacité à s’appuyer sur les données pour piloter son activité et faciliter la prise de décision. En pleine croissance, Cabesto
souhaitait se doter d’une solution de pilotage de la performance capable de l’aider […]

 Continue reading

Connect with us

 

https://www.ibm.com/blogs/ibm-france/2023/10/24/point-de-vue-sur-les-architectures-microservices-event-driven/ 10/10

Vous aimerez peut-être aussi