Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Arnaud LEMAIRE
PRO

November 15, 2018
Tweet

More Decks by Arnaud LEMAIRE

Other Decks in Programming

Transcript

  1. DISCLAIMER !
    Tout doit être nuancé en
    fonction de votre contexte !
    Ce Talk contient de la
    mauvaise foi

    View Slide

  2. Les microservices, l’homéopathie au
    service de l’architecture logicielle ?

    View Slide

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

    View Slide

  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 »

    View Slide

  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 »

    View Slide

  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

    View Slide

  7. Oui, mais on doit monter en charge /
    avoir de la haute dispo

    View Slide

  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 ?

    View Slide

  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é …

    View Slide

  10. Oui, mais on est en train de scaler !
    « On a recruté 60 personnes en trois
    mois et il faut bien les occuper »

    View Slide

  11. Wait… !
    Recruter ou produire, 

    il faut choisir !
    Grandir ou produire, 

    il faut choisir !

    View Slide

  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 !

    View Slide

  13. Service A
    API
    Le problème
    Service B

    View Slide

  14. External API
    Service A
    La solution
    Service B
    Internal API
    Anti-corruption
    Layer

    View Slide

  15. On veut pouvoir utiliser plusieurs
    langages !
    « Il faut avouer que l’on arrive plus à
    recruter avec notre stack Struts »

    View Slide

  16. Wait… !
    Est-ce vous n’êtes pas en train de
    faire du CV Driven Development ?
    Les microservices vont
    vraiment être une solution ?

    View Slide

  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 ?

    View Slide

  18. On a des besoins d’orchestrations
    spécifiques…
    « Chez nous c’est vraiment différent
    de chez les autres »

    View Slide

  19. Example
    Counter
    Ice

    Cream Hamburgers Salads
    New Order

    —— 

    ——

    ——
    New Order

    —— 

    ——

    ——
    New Order

    —— 

    ——

    ——

    View Slide

  20. Example
    Counter
    Ice

    Cream Hamburgers Salads

    View Slide

  21. Counter
    Ice

    Cream Hamburgers Salads
    Each time we receive
    an item, we check if
    the order is complete.
    New Order

    —— 

    ——

    ——
    Example

    View Slide

  22. Wait… !
    Agent Acteur

    View Slide

  23. Wait… !
    Orchestration Choreography

    View Slide

  24. Counter
    Ice

    Cream Hamburgers Salads
    C’est une
    orchestration
    d’agents !
    New Order

    —— 

    ——

    ——
    Example

    View Slide

  25. Wait… !
    C’est toujours pas des
    microservices…
    Ça peut se déployer dans la
    même JVM/CLR…

    View Slide

  26. Le projet de la refonte du monolithe
    Legacy

    View Slide

  27. Wait… !
    « If you can’t build a monolith, what
    makes you think micro-services are
    the answer ? »
    -Simon Brown

    View Slide

  28. Monolith
    Microservices
    -Alvaro Sanchez

    View Slide

  29. Wait… !
    « Organisations which design systems ...
    are constrained to produce designs
    which are copies of the communication
    structures of these organisations. »
    -Melvin Conway

    View Slide

  30. -Simon Brown

    View Slide

  31. -Simon Brown

    View Slide

  32. -Simon Brown
    1
    2

    View Slide

  33. Facade
    Parent Injector
    S1 S2

    View Slide

  34. Facade
    Parent Injector
    S1 HTTP

    connector

    View Slide

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

    View Slide

  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

    View Slide

  37. NE MÉLANGEONS PAS TOUT…

    View Slide

  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…

    View Slide

  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

    View Slide

  40. MANY THANKS !
    Arnaud LEMAIRE | @lilobase
    LGO.GROUP

    View Slide