SlideShare a Scribd company logo
1 of 31
Ippon© — Microservices, parce que la taille, ça compte !
Microservi
ces
Parce que, la taille, ça
compte !
Ippon© — Microservices, parce que la taille, ça compte ! 2
Jean-RémyRevy
#Architecture #API #DDD
#DevOps #Agility
#Lean Manager #Quality
@JeanRemyRevy
https://www.linkedin.com/in/jeanremyrevy/
https://stackoverflow.com/users/1047365/jean-rémy-revy
Ippon© — Microservices, parce que la taille, ça compte !
SOMMAIRE
PARTIE01
3
De quoi parle-
t-on ?
PARTIE02
Intuitions et
réflexions.
PARTIE03
Ok, comment
on fait alors !
Ippon© — Microservices, parce que la taille, ça compte !
Microservices
4
01
De quoi parle-t-on
exactement
Ippon© — Microservices, parce que la taille, ça compte ! 5
Ippon© — Microservices, parce que la taille, ça compte !
Microservices
6
02
Ok, mais alors c’est
quoi la bonne taille ?
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Simple,basique!
1 microservice = 1 base / un schéma ?
7
Limiter la taille d’un
microservice à une base (ou
un schéma) est une
évidence.
C’est même une bonne
pratique d’architecture en soi,
quelle qu’en soit son
implémentation.
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Simple,basique!
1 microservice = 1 base / un schéma ?
8
Un seul microservice accède
à sa base et expose une
seule API.
1 table = 1 entity (Java/.Net)
1 microservice = 1 API
1 ressources ~= entity
⇒
1 API ~= entity * (1..7) endpoints
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Simple,basique!
1 microservice = 1 base / un schéma ?
9
On atteint vite les limites du
modèle si la base elle-même
contient des dizaines, voire
des centaines de tables.
?
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Nanoservice?
1 microservice = 1 table / 1 collection ?
10
Rendons le modèle
précédent plus exigeant, en
limitant l’accès d’un micro
service à UNE SEULE
collection.
Nous sommes ainsi certain
d’avoir une complexité
cognitive limitée par
conception.
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Nanoservice?
1 microservice = 1 table / 1 collection ?
11
Un seul microservice accède
à sa base qui ne contient
qu’une seule collection et
expose une seule API.
1 table = 1 entity (.Net)
1 microservice = 1 API
1 API ~= 1 à 7 endpoints
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Nanoservice?
1 microservice = 1 table / 1 collection ?
12
Hélas nous perdons en
consistance, le module est
alors rarement autonome.
Par conséquent, il est
nécessaire d’enchaîner les
appels à d’autres services, ce
qui entraîne des échanges bien
trop verbeux ou trop long,
même avec des protocoles
comme gRPC + protobuff.
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Laloideconway
1 microservice = 1 équipe ?
13
Any organization that
designs a system (defined
broadly) will produce a
design whose structure is a
copy of the organization's
communication structure.
Alors prenons acte et alignons
fonctionnel et organisationnel !
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Laloideconway
1 microservice = 1 équipe ?
14
Dans une stratégie “produit”,
une équipe est propriétaire
de son périmètre.
Par transitivité des principes
agiles, on est en mesure de
borner la taille d’une feature
team, et donc :
1 µsvc => 1 équipe (3 à 8 dév)
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?Laloideconway
1 microservice = 1 équipe ?
15
Mais est-ce qu’une équipe ne
doit gérer qu’un seul
microservice ? Probablement
pas.
Comment gérer les produits en
fin de vie (en mode MCO) ?
Et ça dépends donc beaucoup
de l’équipe de développement.
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?DDDàlarescousse
1 microservice = 1 bounded context ?
16
Dans son approche de
modélisation, Eric Evans (cité
par Martin Fowler) définit la
notion de “Contexte Borné”.
Si Eric Evans en a l’intuition en
2003, le marché “sait” que c’est
une voie intéressante depuis
2012, et le marché Français
depuis 2015 (nombreuses
conférences).
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?DDDàlarescousse
1 microservice = 1 bounded context ?
17
Vocabulaire partagé, entités,
modélisation et usage /
besoin forment cette limite
Ces contextes représentent la
limite à l’intérieur de laquelle
une certaine modélisation
représente le domaine.
Ippon© — Microservices, parce que la taille, ça compte !
Quelletaille?DDDàlarescousse
1 microservice = 1 bounded context ?
18
Ok … mais ? C’est quoi la
bonne taille d’un bounded
context ?
Certes, Domain Driven Design
avec une grande quantité de
pattern stratégique et
tactiques qui guident vers une
meilleurs maintenabilité, mais
sans donner de “taille”.
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Quelletaille?Laloidemiller
1 microservice = 4 ± 2 agrégats racine ? (le nb magique)
19
Georges A. Miller a publié en
1956 un article de psychologie
: la mémoire à court terme de
l’humain moyen ne peut
mémoriser que 7 éléments,
+/- 2 !
Des études plus récentes (2011)
suggèrent que ce nombre
s’établit, en fonction de
l’expérience du sujet, entre 3
et 4, et plus facilement par bloc.
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Quelletaille?Lenombremagique
1 microservice = 5 ± 2 tables / agrégats ?
20
Pour une architecture
maintenable, faisons donc
en sorte que cette “logique
métier” rentre dans notre
tête.
Gardons les principes
précédents, et limitons donc le
nombre de concepts
principaux à 3 ou 4, un peu
plus si l’équipe maîtrise son
sujet.
Ag.
Root Ag.
Root
Ag.
Root
Value
Object
Entity
Entity
Table A
Table B
Table fille
table C
Table fille
Table fille
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Quelletaille?Lenombremagique
1 microservice = 4 ± 2 tables / agrégats ?
21
Sur le papier, c’est plutôt une
bonne limite (et si vous
deviez en garder une, prenez
celle-là)
Dans les faits, je ne trouve pas
de corrélation évidente entre
l’augmentation du nombre
d'agrégats et une perte
“évidente” de maintenabilité
avant 10 agrégats
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-C’estpasqu’unequestiondetaille!
22
Cequicompte,c’estlamanièredontons’ensert!!!!
Ippon© — Microservices, parce que la taille, ça compte !
Lesclés:çasechangevite!
1 microservice = 1 releases (2,5 à 3 mois)?
23
Maintenabilité et facilité à
changer sont en fait des
moyens derrière le KPI Roi :
le Time to Market !
Si l’ensemble des éléments
précédents ont du sens, même
pris indépendamment, il
s’avère que la taille idéale c’est
lorsque l’équipe de
développement est en mesure
de changer son microservice
en une release !
Ippon© — Microservices, parce que la taille, ça compte !
Lesclés:çaseconçoitenlimitantlacomplexité
1 microservice = 1 bounded context
24
Vous n’auriez pas entendu
parler d’une démarche de
conception qui vise à tacler
la complexité au coeur du
logiciel ? Domain Driven
Design !
L’ensemble des patterns
stratégiques et tactiques
guident vers une meilleur
maintenabilité.
Ippon© — Microservices, parce que la taille, ça compte !
Lesclés:çadépenddel’expériencedel’équipe
Plus c’est petit, plus il faut d’expérience
25
Réciproquement à la théorie
de Miller, en faire moins
(+petit) demande de
l’expérience.
Si votre équipe n’est pas
mature sur le sujet, ou qu’elle
n’a que peu d’expérience,
commencer par découper
“gros” avant de viser petit.
Ippon© — Microservices, parce que la taille, ça compte !
Microservices
27
03
Mais alors,
comment on fait ?
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Mais alors, comment on fait ?
28
Onprendletempsdeconcevoir,etdemanièreitérative!
https://github.com/ddd-crew/
ddd-starter-modelling-process
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Mais alors, comment on fait ?
Rendre une architecture
maintenable demande un certain
investissement en conception.
—
L’utilisation de différents ateliers
(Event Storming Big picture
notamment) permet de mieux définir
ces contextes, et la mise en oeuvre
des patterns tactiques de Domain
Driven Design assure une meilleure
mise en œuvre.
29
VoilàcommentonfaitchezIppon
Product Discovery
Cadrage produit au plus près des
besoins :
Business Lean Canvas
User Journey Mapping
…
Event storming
Cadrage technico-fonctionnel
commun pour définir ensemble
les bonnes limites (Pattern DDD
Stratégiques)
Planning
User Story Mapping +
Xtrem Quotation +
Example Mapping +
...
Delivery
Clean Architecture (Patterns
Tactique DDD.)
Clean Code
Testing
Un processus de design “plus complet”
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Mais alors, comment on fait ?
30
Formation et accompagnement
sont deux des trois piliers de la
conduite du changement
—
Au-delà des ateliers, des formations
et un accompagnement idoine
représentent le meilleur moyen de
progresser.
Onseforme,onlitetonpratique!Bref,oncraft!
Ippon© — Microservices, parce que la taille, ça compte !
Microservices-Mais alors, comment on fait ?
31
Formation et accompagnement
sont deux des trois piliers de la
conduite du changement
—
Au delà des ateliers, des formations
et un accompagnement idoine
représentent le meilleur moyen de
progresser.
Onseforme,onlitetonpratique!Bref,oncraft!
Ippon© — Microservices, parce que la taille, ça compte !
www.ippon.fr
contact@ippon.fr +33 1 46 12 48 48 @ipponTech

More Related Content

Similar to Microservices, parce que, la taille, ça compte !

MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360Groupe SIRIUS
 
Logiciel de gestion du planning des employés de rayon pour la grande distribu...
Logiciel de gestion du planning des employés de rayon pour la grande distribu...Logiciel de gestion du planning des employés de rayon pour la grande distribu...
Logiciel de gestion du planning des employés de rayon pour la grande distribu...Retail services by ESDI
 
Brochure commerciale TEAMBER 2017
Brochure commerciale TEAMBER 2017Brochure commerciale TEAMBER 2017
Brochure commerciale TEAMBER 2017Sébastien PERROT
 
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...Nuxeo
 
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?Adrien Blind
 
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?TREEPTIK
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un SupermarchéMouad Lousimi
 
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumMise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumCyrille Deruel
 
Soutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBSoutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBMartial Lipeb
 
DevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleDevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleSamuel Metias
 
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEB
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEBBusiness Analyst & Transformation Digital : Retour d'expérience Groupe SEB
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEBThomas POTTIER
 
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BI
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BITECHDAYS 2013 : Migration de votre capital décisionnel vers MS BI
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BIInetum
 
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?Microsoft Décideurs IT
 
JCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumJCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumRossi Oddet
 
Ibm connect - Conception digitale
Ibm connect - Conception digitaleIbm connect - Conception digitale
Ibm connect - Conception digitaleHugues Piaskowski
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Publicis Sapient Engineering
 
Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017Clara Feuillet
 

Similar to Microservices, parce que, la taille, ça compte ! (20)

MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360MS Project Virtuel: EPM Cloud 360
MS Project Virtuel: EPM Cloud 360
 
Logiciel de gestion du planning des employés de rayon pour la grande distribu...
Logiciel de gestion du planning des employés de rayon pour la grande distribu...Logiciel de gestion du planning des employés de rayon pour la grande distribu...
Logiciel de gestion du planning des employés de rayon pour la grande distribu...
 
Brochure commerciale TEAMBER 2017
Brochure commerciale TEAMBER 2017Brochure commerciale TEAMBER 2017
Brochure commerciale TEAMBER 2017
 
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
[Webinaire] Connecteur Nuxeo / Hippo : Faire le lien entre la gestion de cont...
 
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
DevOps, NoOps, everything-as-code, commoditisation… Quel futur pour les ops ?
 
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?
DEVOPS, NOOPS QUEL FUTUR POUR LES OPS ?
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
 
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en ScrumMise un oeuvre d'un projet Mobile chez Cetelem en Scrum
Mise un oeuvre d'un projet Mobile chez Cetelem en Scrum
 
Soutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBSoutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEB
 
DevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitaleDevOps au coeur de la transformation digitale
DevOps au coeur de la transformation digitale
 
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEB
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEBBusiness Analyst & Transformation Digital : Retour d'expérience Groupe SEB
Business Analyst & Transformation Digital : Retour d'expérience Groupe SEB
 
Data Lake
Data LakeData Lake
Data Lake
 
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BI
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BITECHDAYS 2013 : Migration de votre capital décisionnel vers MS BI
TECHDAYS 2013 : Migration de votre capital décisionnel vers MS BI
 
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?
Comment migrer votre capital décisionnel BO vers la BI de Microsoft ?
 
JCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec IcescrumJCertif 2012 : Scrum avec Icescrum
JCertif 2012 : Scrum avec Icescrum
 
Ibm connect dossier_web
Ibm connect dossier_webIbm connect dossier_web
Ibm connect dossier_web
 
Ibm connect - Conception digitale
Ibm connect - Conception digitaleIbm connect - Conception digitale
Ibm connect - Conception digitale
 
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
Scrum Day 2014 - Êtes-vous prêts pour le modèle Spotify ?
 
Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017
 
API Management
API ManagementAPI Management
API Management
 

Microservices, parce que, la taille, ça compte !

  • 1. Ippon© — Microservices, parce que la taille, ça compte ! Microservi ces Parce que, la taille, ça compte !
  • 2. Ippon© — Microservices, parce que la taille, ça compte ! 2 Jean-RémyRevy #Architecture #API #DDD #DevOps #Agility #Lean Manager #Quality @JeanRemyRevy https://www.linkedin.com/in/jeanremyrevy/ https://stackoverflow.com/users/1047365/jean-rémy-revy
  • 3. Ippon© — Microservices, parce que la taille, ça compte ! SOMMAIRE PARTIE01 3 De quoi parle- t-on ? PARTIE02 Intuitions et réflexions. PARTIE03 Ok, comment on fait alors !
  • 4. Ippon© — Microservices, parce que la taille, ça compte ! Microservices 4 01 De quoi parle-t-on exactement
  • 5. Ippon© — Microservices, parce que la taille, ça compte ! 5
  • 6. Ippon© — Microservices, parce que la taille, ça compte ! Microservices 6 02 Ok, mais alors c’est quoi la bonne taille ?
  • 7. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Simple,basique! 1 microservice = 1 base / un schéma ? 7 Limiter la taille d’un microservice à une base (ou un schéma) est une évidence. C’est même une bonne pratique d’architecture en soi, quelle qu’en soit son implémentation.
  • 8. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Simple,basique! 1 microservice = 1 base / un schéma ? 8 Un seul microservice accède à sa base et expose une seule API. 1 table = 1 entity (Java/.Net) 1 microservice = 1 API 1 ressources ~= entity ⇒ 1 API ~= entity * (1..7) endpoints
  • 9. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Simple,basique! 1 microservice = 1 base / un schéma ? 9 On atteint vite les limites du modèle si la base elle-même contient des dizaines, voire des centaines de tables. ?
  • 10. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Nanoservice? 1 microservice = 1 table / 1 collection ? 10 Rendons le modèle précédent plus exigeant, en limitant l’accès d’un micro service à UNE SEULE collection. Nous sommes ainsi certain d’avoir une complexité cognitive limitée par conception.
  • 11. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Nanoservice? 1 microservice = 1 table / 1 collection ? 11 Un seul microservice accède à sa base qui ne contient qu’une seule collection et expose une seule API. 1 table = 1 entity (.Net) 1 microservice = 1 API 1 API ~= 1 à 7 endpoints
  • 12. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Nanoservice? 1 microservice = 1 table / 1 collection ? 12 Hélas nous perdons en consistance, le module est alors rarement autonome. Par conséquent, il est nécessaire d’enchaîner les appels à d’autres services, ce qui entraîne des échanges bien trop verbeux ou trop long, même avec des protocoles comme gRPC + protobuff.
  • 13. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Laloideconway 1 microservice = 1 équipe ? 13 Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. Alors prenons acte et alignons fonctionnel et organisationnel !
  • 14. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Laloideconway 1 microservice = 1 équipe ? 14 Dans une stratégie “produit”, une équipe est propriétaire de son périmètre. Par transitivité des principes agiles, on est en mesure de borner la taille d’une feature team, et donc : 1 µsvc => 1 équipe (3 à 8 dév)
  • 15. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?Laloideconway 1 microservice = 1 équipe ? 15 Mais est-ce qu’une équipe ne doit gérer qu’un seul microservice ? Probablement pas. Comment gérer les produits en fin de vie (en mode MCO) ? Et ça dépends donc beaucoup de l’équipe de développement.
  • 16. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?DDDàlarescousse 1 microservice = 1 bounded context ? 16 Dans son approche de modélisation, Eric Evans (cité par Martin Fowler) définit la notion de “Contexte Borné”. Si Eric Evans en a l’intuition en 2003, le marché “sait” que c’est une voie intéressante depuis 2012, et le marché Français depuis 2015 (nombreuses conférences).
  • 17. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?DDDàlarescousse 1 microservice = 1 bounded context ? 17 Vocabulaire partagé, entités, modélisation et usage / besoin forment cette limite Ces contextes représentent la limite à l’intérieur de laquelle une certaine modélisation représente le domaine.
  • 18. Ippon© — Microservices, parce que la taille, ça compte ! Quelletaille?DDDàlarescousse 1 microservice = 1 bounded context ? 18 Ok … mais ? C’est quoi la bonne taille d’un bounded context ? Certes, Domain Driven Design avec une grande quantité de pattern stratégique et tactiques qui guident vers une meilleurs maintenabilité, mais sans donner de “taille”.
  • 19. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Quelletaille?Laloidemiller 1 microservice = 4 ± 2 agrégats racine ? (le nb magique) 19 Georges A. Miller a publié en 1956 un article de psychologie : la mémoire à court terme de l’humain moyen ne peut mémoriser que 7 éléments, +/- 2 ! Des études plus récentes (2011) suggèrent que ce nombre s’établit, en fonction de l’expérience du sujet, entre 3 et 4, et plus facilement par bloc.
  • 20. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Quelletaille?Lenombremagique 1 microservice = 5 ± 2 tables / agrégats ? 20 Pour une architecture maintenable, faisons donc en sorte que cette “logique métier” rentre dans notre tête. Gardons les principes précédents, et limitons donc le nombre de concepts principaux à 3 ou 4, un peu plus si l’équipe maîtrise son sujet. Ag. Root Ag. Root Ag. Root Value Object Entity Entity Table A Table B Table fille table C Table fille Table fille
  • 21. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Quelletaille?Lenombremagique 1 microservice = 4 ± 2 tables / agrégats ? 21 Sur le papier, c’est plutôt une bonne limite (et si vous deviez en garder une, prenez celle-là) Dans les faits, je ne trouve pas de corrélation évidente entre l’augmentation du nombre d'agrégats et une perte “évidente” de maintenabilité avant 10 agrégats
  • 22. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-C’estpasqu’unequestiondetaille! 22 Cequicompte,c’estlamanièredontons’ensert!!!!
  • 23. Ippon© — Microservices, parce que la taille, ça compte ! Lesclés:çasechangevite! 1 microservice = 1 releases (2,5 à 3 mois)? 23 Maintenabilité et facilité à changer sont en fait des moyens derrière le KPI Roi : le Time to Market ! Si l’ensemble des éléments précédents ont du sens, même pris indépendamment, il s’avère que la taille idéale c’est lorsque l’équipe de développement est en mesure de changer son microservice en une release !
  • 24. Ippon© — Microservices, parce que la taille, ça compte ! Lesclés:çaseconçoitenlimitantlacomplexité 1 microservice = 1 bounded context 24 Vous n’auriez pas entendu parler d’une démarche de conception qui vise à tacler la complexité au coeur du logiciel ? Domain Driven Design ! L’ensemble des patterns stratégiques et tactiques guident vers une meilleur maintenabilité.
  • 25. Ippon© — Microservices, parce que la taille, ça compte ! Lesclés:çadépenddel’expériencedel’équipe Plus c’est petit, plus il faut d’expérience 25 Réciproquement à la théorie de Miller, en faire moins (+petit) demande de l’expérience. Si votre équipe n’est pas mature sur le sujet, ou qu’elle n’a que peu d’expérience, commencer par découper “gros” avant de viser petit.
  • 26. Ippon© — Microservices, parce que la taille, ça compte ! Microservices 27 03 Mais alors, comment on fait ?
  • 27. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Mais alors, comment on fait ? 28 Onprendletempsdeconcevoir,etdemanièreitérative! https://github.com/ddd-crew/ ddd-starter-modelling-process
  • 28. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Mais alors, comment on fait ? Rendre une architecture maintenable demande un certain investissement en conception. — L’utilisation de différents ateliers (Event Storming Big picture notamment) permet de mieux définir ces contextes, et la mise en oeuvre des patterns tactiques de Domain Driven Design assure une meilleure mise en œuvre. 29 VoilàcommentonfaitchezIppon Product Discovery Cadrage produit au plus près des besoins : Business Lean Canvas User Journey Mapping … Event storming Cadrage technico-fonctionnel commun pour définir ensemble les bonnes limites (Pattern DDD Stratégiques) Planning User Story Mapping + Xtrem Quotation + Example Mapping + ... Delivery Clean Architecture (Patterns Tactique DDD.) Clean Code Testing Un processus de design “plus complet”
  • 29. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Mais alors, comment on fait ? 30 Formation et accompagnement sont deux des trois piliers de la conduite du changement — Au-delà des ateliers, des formations et un accompagnement idoine représentent le meilleur moyen de progresser. Onseforme,onlitetonpratique!Bref,oncraft!
  • 30. Ippon© — Microservices, parce que la taille, ça compte ! Microservices-Mais alors, comment on fait ? 31 Formation et accompagnement sont deux des trois piliers de la conduite du changement — Au delà des ateliers, des formations et un accompagnement idoine représentent le meilleur moyen de progresser. Onseforme,onlitetonpratique!Bref,oncraft!
  • 31. Ippon© — Microservices, parce que la taille, ça compte ! www.ippon.fr contact@ippon.fr +33 1 46 12 48 48 @ipponTech