Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Les microservices c'est pas automatique ! — DDD...
Search
Arnaud LEMAIRE
November 15, 2018
Programming
1.8k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Les microservices c'est pas automatique ! — DDD Paris 2018
La vidéo du talk est disponible :
https://youtu.be/_mqn0FfZ2SY
Arnaud LEMAIRE
November 15, 2018
More Decks by Arnaud LEMAIRE
See All by Arnaud LEMAIRE
From code to consequences — Tech Pour l'Emploi #3
lilobase
0
50
From Code to Consequences – AlpesCraft 2025
lilobase
0
670
Scaling in Three Dimensions – Data In Motion Paris 2024
lilobase
0
100
Intervention Michelin DORD
lilobase
0
180
The strategies behind ddd – AdeoDevSummit 2022
lilobase
6
1.5k
Let's reset Agile at Scale — Lean&Agile day Michelin 2022
lilobase
2
420
Sunday, retour d’expérience sur la construction d’une entreprise attractive pour les techs – Tech.rocks 2021
lilobase
1
240
Le projet legacy, quelles stratégies pour s'en sortir ? – Software Crafts·wo·manship Rennes juin 2021
lilobase
4
650
Réconcilier architecture logicielle & problématiques métiers : une introduction au Domain Driven Design – Blend Web Mix 2021
lilobase
5
1.2k
Other Decks in Programming
See All in Programming
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
300
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
SREの越境 / SRE Collaboration
y0hgi
2
260
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.5k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
2.2k
すこし踏み込む CancellationToken
htkym
2
620
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
450
WebAssembly in Android Apps 〜 WASMはJNIの夢を見るか
keiji
1
110
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
430
XHTMLが残したもの
yosuke_furukawa
PRO
2
830
Are APIs Still Relevant in the AI Era?
soyuka
0
280
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Site-Speed That Sticks
csswizardry
13
1.5k
30 Presentation Tips
portentint
PRO
1
400
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Become a Pro
speakerdeck
PRO
31
6.3k
The SEO Collaboration Effect
kristinabergwall1
1
570
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Transcript
DISCLAIMER ! Tout doit être nuancé en fonction de votre
contexte ! Ce Talk contient de la mauvaise foi
Les microservices, l’homéopathie au service de l’architecture logicielle ?
LES MICROSERVICES, C’EST PAS AUTOMATIQUE… Arnaud LEMAIRE | @lilobase LGO.GROUP
Vous êtes une startup en train de définir votre produit
? « On a pas encore notre product/market fit, mais faut bien s’occuper »
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 »
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
Oui, mais on doit monter en charge / avoir de
la haute dispo
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 ?
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é …
Oui, mais on est en train de scaler ! «
On a recruté 60 personnes en trois mois et il faut bien les occuper »
Wait… ! Recruter ou produire, il faut choisir !
Grandir ou produire, il faut choisir !
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 !
Service A API Le problème Service B
External API Service A La solution Service B Internal API
Anti-corruption Layer
On veut pouvoir utiliser plusieurs langages ! « Il faut
avouer que l’on arrive plus à recruter avec notre stack Struts »
Wait… ! Est-ce vous n’êtes pas en train de faire
du CV Driven Development ? Les microservices vont vraiment être une solution ?
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 ?
On a des besoins d’orchestrations spécifiques… « Chez nous c’est
vraiment différent de chez les autres »
Example Counter Ice Cream Hamburgers Salads New Order ——
—— —— New Order —— —— —— New Order —— —— ——
Example Counter Ice Cream Hamburgers Salads
Counter Ice Cream Hamburgers Salads Each time we receive an
item, we check if the order is complete. New Order —— —— —— Example
Wait… ! Agent Acteur
Wait… ! Orchestration Choreography
Counter Ice Cream Hamburgers Salads C’est une orchestration d’agents !
New Order —— —— —— Example
Wait… ! C’est toujours pas des microservices… Ça peut se
déployer dans la même JVM/CLR…
Le projet de la refonte du monolithe Legacy
Wait… ! « If you can’t build a monolith, what
makes you think micro-services are the answer ? » -Simon Brown
Monolith Microservices -Alvaro Sanchez
Wait… ! « Organisations which design systems ... are constrained
to produce designs which are copies of the communication structures of these organisations. » -Melvin Conway
-Simon Brown
-Simon Brown
-Simon Brown 1 2
Facade Parent Injector S1 S2
Facade Parent Injector S1 HTTP connector
On a une hétérogénéité des métiers, des modèles de déploiement,
d’architecture & d’exécution
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
NE MÉLANGEONS PAS TOUT…
• 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…
« 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
MANY THANKS ! Arnaud LEMAIRE | @lilobase LGO.GROUP