Más contenido relacionado La actualidad más candente (20) Similar a La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? (20) Más de OCTO Technology (20) La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? 1. Coin
Coin
!
1
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Qui maîtrise mieux le
chaos dans votre SI :
Mozart ou Béjart ?
Orchestration vs
Chorégraphie , est ce
vraiment la question ?
3. Coin
Coin
!
3
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Les SI évoluent et les patterns d’architecture changent
Modules X
Application A
Application X
Application Y
Application B
Application Z
4. 4
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Mozart et le pattern de Orchestration
“L'orchestration décrit le processus
automatique d'organisation, de coordination,
et de gestion de systèmes informatiques
complexes, de middleware et de services”
wikipedia
5. 5
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Béjart et le pattern de Chorégraphie
“[...]Les applications possèdent leur propre
logique de domaine et agissent davantage
comme des filtres au sens classique d'Unix -
recevant une requête, appliquant la logique
le cas échéant et produisant une réponse.
Celles-ci sont chorégraphiées à l'aide de
protocoles RESTish simples” Martin Fowler
6. Coin
Coin
!
6
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Safa MABRROUK
๏ Coding Architecte drivée par les promesses des technologies et les
contraintes du terrain
๏ Continue à apprendre comment maîtriser l’entropie des SI
๏ @mabrouksafa
Qui suis je ?
7. Coin
Coin
!
7
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Quelques définitions de plus ...
๏ DDD
> “DDD est l’acronyme de Domain Driven Design. Ce n’est ni un framework, ni une méthodologie,
mais plutôt une approche décrite dans l’ouvrage du même nom d’Eric Evans. Un de ses objectifs est
de définir une vision et un langage partagés par toutes les personnes impliquées dans la
construction d’une application, afin de mieux en appréhender la complexité” blog Octo
๏ Bounded Contexte
> un concept clé du DDD
> C’est une façon de découper et de modéliser le métier d’une entreprise en plusieurs domaines,
contextes, indépendants, avec une responsabilité limitée et des frontières fonctionnel en premier et
ensuite métier claires
> Bounded Context donne aux membres de l'équipe une compréhension claire et partagée de ce
qui doit être cohérent et de ce qui peut se développer indépendamment
8. 8
Coin
Coin
!
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Comment on est arrivé là ?
Pourquoi on se pose cette question ?
9. Coin
Coin
!
9
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Use case Fil rouge
Processus métier d’achat d’un t shirt
Ajouter le t shirt
au panier
Payer
Gérer le stock
des t shirt
Livrer
mettre le t shirt dans le
panier
Gestion du
compte Client
Livraison Paiement Stock
10. Coin
Coin
!
10
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Les deux patterns d’échanges complémentaires les plus implémentées récemment
๏ Chaque application à un périmètre fonctionnel clair
๏ Les applications exposent des services avec des contrats d’interface clair pour
communiquer entre elles
> Exposer les processus
> Exposer les ressources
๏ Microservice
> Application avec un périmètre fonctionnel limité et clair
> Des services simple exposant simplement les ressources des application en mode CRUD
Deux patterns d’échanges
SOA & Microservices
11. Coin
Coin
!
11
La Duck Conf by OCTO Technology © 2021 - All rights reserved
SOA et les microservice comme pattern d'échange
Gestion du
compte Client
Stock
Livraison
Paiement
REQUÊTE
RÉPONSE
12. Coin
Coin
!
12
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Un orchestrateur
Gestion du
compte Client
Orchestrateur
● Processus métier
● Gestion des erreurs
● Rejeu
● ...
Livraison
Paiement Stock
14. Coin
Coin
!
14
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Des APIs CRUD anémiques
๏ Une brique d’orchestration transverse qui devient compliquée fonctionnellement et
techniquement
> un orchestrator FAT, Service Dieu
๏ Des outils de workflow compliqués, difficiles à faire évoluer, et des outils cher
Résultats
15. Coin
Coin
!
15
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Event Driven Architecture
๏ “Un événement peut être défini comme "un changement d'état significatif. D'un point de
vue formel, ce qui est produit, publié, propagé, détecté ou consommé est un message [...]
et non l'événement lui-même, qui est le changement d'état qui a déclenché l'émission du
message. [...] . Les architectures événementielles sont souvent conçu au-dessus
d'architectures axées sur les messages, où un tel modèle de communication nécessite que
l'une des entrées soit uniquement du texte, le message, pour différencier la façon dont
chaque communication doit être traitée “ wikipedia
Les pattern d’échanges continuent à évoluer
16. Coin
Coin
!
16
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Chorégraphie
Gestion du
compte Client Livraison
Paiement
Stock
Ordre d’achat du
t shirt émis
Paiement fait
t shirt retiré
17. Coin
Coin
!
17
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Chorégraphie
Gestion du
compte Client
Livraison Paiement Stock
de
Topic Ordre d’achat
Topic Transaction
Topic Livraison
Topic Article
Bus d’événements (Kafka, Pulsar, logDevice)
Événement
18. Coin
Coin
!
18
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Perte de connaissance métier
> la seule vérité est le code en production
> Le problème est que le code est éclaté dans 10 systémes et on ne sait plus quel système répond à
quel event et quand
> Le code source ne donne pas d’indication quant à qui va appeler l’application et pourquoi
๏ Gouvernance des échanges plus difficile
> Gestion des versions
> Synchronisation de la donnée
> Des échanges sont plus difficiles à trouver, cartographier, suivre et débugger
๏ L’erreur est chère : la reprise d’erreur est compliquée et devient de plus en plus difficile
avec l’augmentation de nombre des services
> Les applications doivent savoir qu’une erreur est arrivée et pour quelle raison et comment réagir
Résultats
19. Coin
Coin
!
19
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Chorégraphie
Gestion du
compte Client
Livraison Paiement Stock
de
Topic Ordre d’achat
Topic Transaction
Topic Livraison
Topic Article
Bus d’événements (Kafka, Pulsar, logDevice)
APM
Centrale
des Logs
ELK Data
dog
id correlation
observabilité
timestamp
…
21. Coin
Coin
!
21
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Un des principes clé d’une architecture microservice défini par Martin Fowler
๏ Les APIs n’expose pas seulement des ressources , Une API expose aussi de l’intelligence et
des processus
> L’intelligence métier est encapsulée et exposé dans l’API
๏ Le pipe ou l’outil d'orchestration se limite à une machine à état simple qui contient le
minimum d’intelligence possible
Dumb pipes smart endpoint
22. Coin
Coin
!
22
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Event sur les frontières, workflow à l’intérieur
Gestion du
compte Client
Livraison
Paiement
Stock
Bus d’événements (Kafka, Pulsar, logDevice)
Paypal
Gestion de
carte Visa
Gestion
des
comptes
Gestion
frais Tiers
payant
Orchestrateur
● Processus métier
● Gestion des erreurs
● Rejeu
Événement
Événement
Événement
Événement
23. Coin
Coin
!
23
La Duck Conf by OCTO Technology © 2021 - All rights reserved
๏ Bounded Context = Périmètre fonctionnel Cair
> Gestion des erreurs clair
> Processus métier précis et simple
> Rejeu ou la gestion des erreurs et maîtrisée par le métier
> Orchestrer à l’intérieur du bounded contexte
๏ Bounded Contexte = Indépendant, autonome et autosuffisant
> Chaque application informe le SI de son changement d’état avec un évènement
Event sur les frontières, workflow à l’intérieur
24. Coin
Coin
!
24
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Paiement
Compensation
SAGA : long lived transaction
Gestion du
compte Client
Livraison
Stock
Bus d’événements (Kafka, Pulsar, logDevice)
Paypal
Gestion de
carte Visa
Gestion
des
comptes
Gestion
frais Tiers
payant
Orchestrateur
● Processus métier
● Gestion des erreurs
● Rejeu
Rembourse
ment
Remboursem
ent frais
25. Coin
Coin
!
25
La Duck Conf by OCTO Technology © 2021 - All rights reserved
TAKE AWAY
๏ Chorégraphie garantie plus de
découplage et une
architecture plus scalable
๏ Chorégraphie peut augmenter
l’entropie dans le SI et
complexifier sa gouvernance
๏ L’orchestration garantie plus
une cohérence et de cohésion
de processus métier
๏ L’orchestration peut créer des
systèmes difficile à maintenir et
à scaler
26. Coin
Coin
!
26
La Duck Conf by OCTO Technology © 2021 - All rights reserved
TAKE AWAY
๏ Pour maîtriser son SI, la solution est de tirer profit des deux pattern :
> Créer une chorégraphie entre les bounded contexts
> Mettre en place un chef d’orchestre à l’intérieur de chaque Bounded Contexte
> Utiliser les bons outils