Le terme microservices désigne un modèle d’architecture logiciel qui consiste à concevoir une application comme une agrégation de services faiblement couplés. Chaque composant est spécialisé dans un service spécifique, accessible via une API et communique avec le reste des microservices selon un protocole de communication prédéfini.
Dr Peter Rogers a introduit le terme “microservices” pour la première fois en 2005. Il a ensuite refait surface en 2011 lors d’une conférence technique durant laquelle plusieurs intervenants en firent mention pour désigner un type de développement logiciel expérimenté au sein de leurs entreprises. Il a été plus tard popularisé par Netflix et Amazon, considérés comme les pionniers des microservices.
Améliorations
On constate que le développement logiciel a entamé ces dernières années une transition vers les microservices. Ces derniers remplacent progressivement les architectures en monolithe où les applications sont conçues comme un bloc unique. Cela a pour objectif de répondre à un besoin croissant de scalabilité et d’itérativité. C'est aussi pour réduire au maximum les dépendances entre feature teams ou component teams. Les microservices permettent également d’apporter des modifications sur un service spécifique sans impacter l’intégralité de l’application.
Dans le cycle de vie d’un Produit, il est courant de privilégier dans un premier temps une architecture monolithique, facile à maintenir par une petite équipe, et propice à l’expérimentation. Plus le produit évolue, grandit et se structure, plus il devient essentiel de découpler les services et basculer vers une architecture en microservices, afin de réduire au plus les risques de régression et éviter les dépendances inutiles entre les différentes équipes de développement.
En savoir plus sur : L'architecture pour les Product Managers
Les microservices
Difficultés
Néanmoins, il est important d’anticiper les difficultés techniques que peut engendrer une architecture en microservices :
- Une congestion des réseaux en raison d’un grand nombre de communications entre les différents services
- Une consommation accrue de la mémoire
- L’orchestration et l’intégration des différents services
- Un besoin plus fort de monitoring indépendant pour chaque service, afin de faciliter les investigations en cas de dysfonctionnement
Pour aller plus loin : Téléchargez notre livre Les Clés du Product Management