DISCLAIMER !
Tout doit être nuancé en
fonction de votre contexte !
Ce Talk contient de la
mauvaise foi
Slide 2
Slide 2 text
Les microservices, l’homéopathie au
service de l’architecture logicielle ?
Slide 3
Slide 3 text
LES MICROSERVICES,
C’EST PAS AUTOMATIQUE…
Arnaud LEMAIRE | @lilobase
LGO.GROUP
Slide 4
Slide 4 text
Vous êtes une startup en train de
définir votre produit ?
« On a pas encore notre product/market fit,
mais faut bien s’occuper »
Slide 5
Slide 5 text
DON’T
Et puis, vous n’êtes pas assez
nombreux…
Et vous ne savez même pas
quel est votre métier
« Vous achetez des problèmes que vous
n’avez pas les moyens de résoudre »
Slide 6
Slide 6 text
Le problème
Généralement on ne réussit pas à modéliser
le métier correctement du premier coup
Avoir un code source co-localisé &
une seule unité de déploiement simplifie
grandement le refactoring
Slide 7
Slide 7 text
Oui, mais on doit monter en charge /
avoir de la haute dispo
Slide 8
Slide 8 text
SRSLY ?
Vous pouvez même créer plusieurs main
pour spécialiser vos instances
Vous ne pouvez pas démarrer plusieurs
instances de votre applicatif ?
Slide 9
Slide 9 text
Le problème
Avoir un cluster du même acteur
nécessite de les synchroniser pour éviter
les problèmes de consistance
Tuyaux intelligents, consensus (RAFT),
Lock distribué …
Slide 10
Slide 10 text
Oui, mais on est en train de scaler !
« On a recruté 60 personnes en trois
mois et il faut bien les occuper »
Slide 11
Slide 11 text
Wait… !
Recruter ou produire,
il faut choisir !
Grandir ou produire,
il faut choisir !
Slide 12
Slide 12 text
OK, but…
Faites gaffe aux frontières !
Et ne faites pas des « micro » services, juste
des applications qui parlent ensemble…
Mais vous avez quand même le droit de dire
aux copains que vous faites du microservice !
Slide 13
Slide 13 text
Service A
API
Le problème
Service B
Slide 14
Slide 14 text
External API
Service A
La solution
Service B
Internal API
Anti-corruption
Layer
Slide 15
Slide 15 text
On veut pouvoir utiliser plusieurs
langages !
« Il faut avouer que l’on arrive plus à
recruter avec notre stack Struts »
Slide 16
Slide 16 text
Wait… !
Est-ce vous n’êtes pas en train de
faire du CV Driven Development ?
Les microservices vont
vraiment être une solution ?
Slide 17
Slide 17 text
Le problème
Vous risquez de créer des silos par techno
Et est-ce que ce langage corrige vraiment
des problèmes que vous avez ?
Slide 18
Slide 18 text
On a des besoins d’orchestrations
spécifiques…
« Chez nous c’est vraiment différent
de chez les autres »
Slide 19
Slide 19 text
Example
Counter
Ice
Cream Hamburgers Salads
New Order
——
——
——
New Order
——
——
——
New Order
——
——
——
Slide 20
Slide 20 text
Example
Counter
Ice
Cream Hamburgers Salads
Slide 21
Slide 21 text
Counter
Ice
Cream Hamburgers Salads
Each time we receive
an item, we check if
the order is complete.
New Order
——
——
——
Example
Slide 22
Slide 22 text
Wait… !
Agent Acteur
Slide 23
Slide 23 text
Wait… !
Orchestration Choreography
Slide 24
Slide 24 text
Counter
Ice
Cream Hamburgers Salads
C’est une
orchestration
d’agents !
New Order
——
——
——
Example
Slide 25
Slide 25 text
Wait… !
C’est toujours pas des
microservices…
Ça peut se déployer dans la
même JVM/CLR…
Slide 26
Slide 26 text
Le projet de la refonte du monolithe
Legacy
Slide 27
Slide 27 text
Wait… !
« If you can’t build a monolith, what
makes you think micro-services are
the answer ? »
-Simon Brown
Slide 28
Slide 28 text
Monolith
Microservices
-Alvaro Sanchez
Slide 29
Slide 29 text
Wait… !
« Organisations which design systems ...
are constrained to produce designs
which are copies of the communication
structures of these organisations. »
-Melvin Conway
Slide 30
Slide 30 text
-Simon Brown
Slide 31
Slide 31 text
-Simon Brown
Slide 32
Slide 32 text
-Simon Brown
1
2
Slide 33
Slide 33 text
Facade
Parent Injector
S1 S2
Slide 34
Slide 34 text
Facade
Parent Injector
S1 HTTP
connector
Slide 35
Slide 35 text
On a une hétérogénéité des métiers,
des modèles de déploiement,
d’architecture & d’exécution
Slide 36
Slide 36 text
OK, but…
Bienvenue en enfer ;-)
Transactions distribuées,
Consistance à terme,
Tolérance à la panne,
Auditabilité & Traçabilité,
Déliverabilité…
Et puis ça apparait pas tout de suite
Slide 37
Slide 37 text
NE MÉLANGEONS PAS TOUT…
Slide 38
Slide 38 text
• Modèle d’adressage : Agent / Acteur
• modèle d’exécution
• Request/Response, Pub/Sub, Queue
• Push vs Pull
• Modèle d’Orchestration ou Chorégraphie
• Modèle de déploiement
• Tooling…
Slide 39
Slide 39 text
« Big Data is like teenage sex: everyone talks
about it, nobody really knows how to do it,
everyone thinks everyone else is doing it, so
everyone claims they are doing it… »
– Dan Ariely
Micro-service
Slide 40
Slide 40 text
MANY THANKS !
Arnaud LEMAIRE | @lilobase
LGO.GROUP