To be or not to be micro-services ? les bonnes pratiques et les principaux écueils.

Depuis ces dernières années, Harington préconise à ses clients l’adoption des architectures en microservices pour leur maintenabilité dans le temps et surtout leurs capacités à accélérer le time-to-market des nouveaux produits applicatifs ou solutions logicielles.

Le principe est simple et consiste à diviser la complexité du projet en une multitude de sous-problèmes indépendants qui peuvent être gérés par différentes équipes. On obtient un réseau de webservices par micro-services, un micro-service répondant à une seule fonctionnalité ou un problème. Tous ces micro-services sont ensuite orchestrés pour apporter la solution finale à l’expérience utilisateur attendue.
Hormis des bonnes pratiques telle qu’une organisation adaptée, de l’automatisation DevOps, une infrastructure adaptée et évolutive, voici les principaux écueils auxquels vous devrez vous confronter :

  • Premier écueil auquel on se heurte est la taille du « micro » service car tous les domaines applicatifs ne sont pas forcément divisibles en petites unités !
  • 2ème écueil, on a souvent plusieurs applications dont certaines parties utilisent la même fonctionnalité avec un risque donc de chevauchement.
  • 3ème écueil, c’est le côté « humain » des programmateurs qui ont pour fâcheuse habitude de rajouter des fonctionnalités à tout ce qu’ils font 😉  … Et ils n’ont pas forcément autorité non plus pour relancer le refactoring du « mini monolithe » qu’ils découvrent lors de leur intervention à postériori, si celui-ci n’est pas conforme au micro-service attendu…
  • 4ème écueil, confondre une vraie architecture micro-services avec un monolithique distribué en de nombreuses petites applications qui ne permet pas notamment de paralléliser les développements, (sans compter les problèmes de latence et de dépendance) … Résultat ? C’est toujours une architecture monolithique avec en plus la complexité d’une architecture distribuée !

Aller plus loin sur le sujet ? Pour ou contre les micro-services ? https://betterprogramming.pub/microservice-pros-cons-69ffe8c39faf

En savoir plus

Architecture microservices, la solution pour éviter les pièges du monolithique ?

Les bénéfices sont de taille sur le papier. Mais en pratique, pour qu’ils tiennent leurs promesses, votre architecture en microservices doit être particulièrement bien pensée en amont, bien structurée et bien déployée. Voici nos 7 (+ 1 bonus) best practices. #1. Le Domain-driven design, une conception basée sur le périmètre métier. Tout repose sur la…

Lire

Lancer un projet microservices ? La check-list avant de se lancer.

Les microservices ne sont pas une solution miracle adaptée à toutes les situations et accessibles à tous les projets. Avant toute chose, vous devez vous poser les questions suivantes : Quels sont les écueils à éviter ? Quels sont les investissements indispensables ? Comment découper efficacement mon application en domaines fonctionnels ? Comment sécuriser les…

Lire