Les bénéfices de l’architecture micro-services

Les micro-services représentent une révolution dans l’architecture des applications : repenser les applications à base de domain-driven design permet de proposer une architecture adaptée aux besoins métier.

Réduire les contraintes au changement…

Les micro-services relèvent de l’implémentation d’une architecture orientée service avec les caractéristiques suivantes : petit et focalisé sur une seule responsabilité, un découpage des services orienté métier (client, panier, catalogue, livraison…), une conception orientée « Design for Failure » et une large scalabilité de l’architecture avec des coûts maîtrises. Résilience et facilité de déploiement constituent les avantages majeurs de ce type d’architecture. Pour comprendre l’intérêt métier, il suffit d’imaginer que pendant les soldes, le niveau de sollicitation n’est pas le même d’un service « créer client » par rapport à un service « mise au panier ». Une architecture micro-services permet de maîtriser et de gérer finement le nombre d’instances de chacun de ses services et cela sans interruption de service.

… afin d’accroître la compétitivité de l’entreprise

Côté consommateur, l’architecture micro-services donne de bonnes performances pour les applications et expose les données au client de manière homogène quel que soit le canal. Pour le client, celle-ci lui offre des applications sur mesure et adaptées aux consommateurs. 

Les clés du succès de ce type de projet sont :
  • Une industrialisation bout en bout de la chaîne de construction et de déploiement
  • Des développements orientés « Test Driven Developpement »
  • Une expertise technique et DevOps dans les équipes
  • Une organisation et une gouvernance adaptée au découpage métier des APIs

Pour aller plus loin, il serait intéressant de déployer en automatique jusqu’aux environnements de production. De plus la mise en œuvre de framework de type « Chaos Monkey » permettrait de tester régulièrement et en production la perte d’un composant technique pour ainsi vérifier régulièrement l’efficience des mécanismes de résistance à la panne. 

Framework / DevOps