MicroService
Le microservice est une approche d’architecture logicielle (d’où le nom d’architecture microservices) qui vient souvent s’opposer à l’architecture dite monolithique.
Le microservice est une approche d’architecture logicielle (d’où le nom d’architecture microservices) qui vient souvent s’opposer à l’architecture dite monolithique. L’architecture microservice est une sorte d’évolution de l’architecture SOA (Architecture Orientée Service).
Ce type d’architecture consiste à découper une application en plusieurs microservices, chacun indépendants les uns des autres et spécialisés dans une tâche orientée métier (recherche, paiement, historique d’activité, etc). Chaque microservice est indépendant des autres, ce qui signifie qu’il possède son propre environnement et son propre code, souvent contenu dans des containers gérés \\via [Docker](/ressources/glossaire-de-la-tech/docker).
_Il communique avec le client ou avec les autres microservice via une API,_ symbole de son indépendance. Une architecture microservice permet d’intégrer pleinement l’agilité dans son développement en permettant une évolutivité très rapide : il est très facile de faire évoluer une fonctionnalité en apportant des modifications au microservice en question, plutôt que de modifier l’application en entière et ainsi augmenter le risque d’erreur ou de panne.
Si un problème apparaît, seul le microservice modifié sera HS, laissant les autres microservice en bon état de fonctionnement. De la même façon, il est plus facile de mesure les performances d’un microservice isolé et donc d’une fonctionnalité.
Un autre avantage du microservice hébergé dans des containers est de dupliquer facilement ses microservices et leur environnement associé afin de répondre à un besoin ponctuel (une augmentation du nombre de visiteurs sur son site e-commerce lors du black friday par exemple) puis de les réduire pour revenir à la normale. Cela permet donc une forte adaptation au besoin.
La distinction des microservices par métier permet également de créer des petites équipes spécialisées sur ces problématiques. Une architecture microservice présente donc de nombreux avantages pour des applications nécessitant d’évoluer fréquemment et rapidement (agilité).
Cependant, elle est présentée comme un système complexe de microservices simples, demandant une infrastructure coûteuse, une complexité de mise en place et une organisation d’équipe permettant une communication facile et rapide afin de se synchroniser.
