Les microservices c'est pas automatique ! — DDD Paris 2018

Les microservices c'est pas automatique ! — DDD Paris 2018

La vidéo du talk est disponible : https://youtu.be/_mqn0FfZ2SY

Beb422437c1dfb5366f197919e41ac50?s=128

Arnaud LEMAIRE

November 15, 2018
Tweet

Transcript

  1. DISCLAIMER ! Tout doit être nuancé en fonction de votre

    contexte ! Ce Talk contient de la mauvaise foi
  2. Les microservices, l’homéopathie au service de l’architecture logicielle ?

  3. LES MICROSERVICES, C’EST PAS AUTOMATIQUE… Arnaud LEMAIRE | @lilobase LGO.GROUP

  4. Vous êtes une startup en train de définir votre produit

    ? « On a pas encore notre product/market fit, mais faut bien s’occuper »
  5. 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 »
  6. 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
  7. Oui, mais on doit monter en charge / avoir de

    la haute dispo
  8. 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 ?
  9. 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é …
  10. Oui, mais on est en train de scaler ! «

    On a recruté 60 personnes en trois mois et il faut bien les occuper »
  11. Wait… ! Recruter ou produire, 
 il faut choisir !

    Grandir ou produire, 
 il faut choisir !
  12. 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 !
  13. Service A API Le problème Service B

  14. External API Service A La solution Service B Internal API

    Anti-corruption Layer
  15. On veut pouvoir utiliser plusieurs langages ! « Il faut

    avouer que l’on arrive plus à recruter avec notre stack Struts »
  16. Wait… ! Est-ce vous n’êtes pas en train de faire

    du CV Driven Development ? Les microservices vont vraiment être une solution ?
  17. 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 ?
  18. On a des besoins d’orchestrations spécifiques… « Chez nous c’est

    vraiment différent de chez les autres »
  19. Example Counter Ice
 Cream Hamburgers Salads New Order
 —— 


    ——
 —— New Order
 —— 
 ——
 —— New Order
 —— 
 ——
 ——
  20. Example Counter Ice
 Cream Hamburgers Salads

  21. Counter Ice
 Cream Hamburgers Salads Each time we receive an

    item, we check if the order is complete. New Order
 —— 
 ——
 —— Example
  22. Wait… ! Agent Acteur

  23. Wait… ! Orchestration Choreography

  24. Counter Ice
 Cream Hamburgers Salads C’est une orchestration d’agents !

    New Order
 —— 
 ——
 —— Example
  25. Wait… ! C’est toujours pas des microservices… Ça peut se

    déployer dans la même JVM/CLR…
  26. Le projet de la refonte du monolithe Legacy

  27. Wait… ! « If you can’t build a monolith, what

    makes you think micro-services are the answer ? » -Simon Brown
  28. Monolith Microservices -Alvaro Sanchez

  29. Wait… ! « Organisations which design systems ... are constrained

    to produce designs which are copies of the communication structures of these organisations. » -Melvin Conway
  30. -Simon Brown

  31. -Simon Brown

  32. -Simon Brown 1 2

  33. Facade Parent Injector S1 S2

  34. Facade Parent Injector S1 HTTP
 connector

  35. On a une hétérogénéité des métiers, des modèles de déploiement,

    d’architecture & d’exécution
  36. 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
  37. NE MÉLANGEONS PAS TOUT…

  38. • 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…
  39. « 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
  40. MANY THANKS ! Arnaud LEMAIRE | @lilobase LGO.GROUP