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

Un monolithe microservices ready™ – BreizhCamp 2018

Un monolithe microservices ready™ – BreizhCamp 2018

La vidéo est disponible sur la chaine youtube du Breizhcamp : https://www.youtube.com/watch?v=F8C_iPGhHoI.

Nous entendons beaucoup parler de microservices comme architecture pour développer nos applications. Malheureusement cette architecture est souvent approchée comme un objectif d’architecture logicielle, ce qui amène, à découper le logiciel dès sa création comme une série de livrable indépendant.

Et même si cette approche apporte de nombreux bénéfices, en ce qui concerne le développement et la scalabilité de la solution, elle vient aussi avec d’importantes contraintes qui peuvent complexifier le démarrage du projet.

Après une présentation de cette approche, avec ses avantages, mais aussi les inconvénients qu’elle amène. Je vous propose de renverser la logique qui consiste à créer un projet sous forme de microservices, en voyant comment développer un « monolithe » classique, tout en gardant ouvertes les options permettant le découpage futur du logiciel sous forme de microservices.

Sous forme d’un retour d’expérience sur comment nous créons des logiciels capables de supporter d’importantes charges, cette présentation fournit les concepts derrière la création d’applications fortement découplées pouvant être déployées « à la carte ».

Arnaud LEMAIRE

March 30, 2018
Tweet

More Decks by Arnaud LEMAIRE

Other Decks in Programming

Transcript

  1. -Simon Brown « If you can’t build a monolith, what

    makes you think micro-services are the answer ? »
  2. -Melvin Conway « organizations which design systems ... are constrained

    to produce designs which are copies of the communication structures of these organizations »
  3. Software architecture is about boundaries Boundaries between business domain contexts

    are semantic boundaries. These boundaries are crossed when concepts with the same name have different meaning and/or purpose.
  4. Software architecture is about boundaries Collaborators with the same lifecycle

    should be persisted as a single unit Collaborators with different lifecycle shouldn’t be coupled at the persistence level (which mean no join between them)
  5. We usually don’t get our models right on the first

    try. This is where having a single code base & deployment unit helps with the requested refactoring
  6. implicit couplings are the root of all evil Most of

    the Implicit couplings comes from shared data sources
  7. -Cyrille Dupuydauby « Years of fight against ‘DB as a

    MoM’ anti- pattern have finally paid off: I am now fighting against ‘MoM as a DB’ anti-pattern. »
  8. Going further • Applying the Saga Pattern • Caitie McCaffrey

    • Distributed Transactions: The Icebergs of Microservices • Graham Lea • Application Resilience Engineering & Operations at Netflix • Ben Christensen • arpinum/alexandria-api