Slide 1

Slide 1 text

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