D’après wikipedia :

Architecture micro-services, définition : “les micro-services sont une technique de développement logiciel — une variante du style architectural de l’architecture orientée services — qui structure une application comme un ensemble de services faiblement couplés”.

Bien que relativement claire, cette définition ne nous apporte que peu d’éléments sur ce type de technologie. 

Prenons donc 5 minutes pour expliquer en détail ce que cela signifie et les nombreux avantages qu’elle implique. 

Commençons par : qu’est-ce qu’une architecture d’application ?

Ce type d’architecture représente en fait la décomposition de la totalité d’un système applicatif composé d’éléments aux rôles, responsabilités et limites bien définies.

Prenons l’exemple du géant Amazon : lorsque vous naviguez sur la plateforme et que vous cherchez un objet en particulier, vous vous dirigez dans la barre de recherche ou bien vous cliquez sur la catégorie qui correspond à ce que vous cherchez. Et bien ce sont tous ces éléments qui font partie de l’architecture : barre de recherche, catégories, panier, compte-client, etc…

Dans tout projet d’application, la définition  de l’architecture est une phase critique à laquelle se confronte le développeur. En effet, une fois adoptée, il peut s’avérer complexe d’en changer.

L’architecture dite “micro services” a pour objectif de rendre indépendant tout ou une partie des éléments constitutifs de l’application. Le développeur va ainsi pouvoir modifier une fonctionnalité sans que les modifications apportées n’influent sur le reste de l’application

“Le mot-clé du micro-services: indépendance”

D’un point de vue global, les principaux objectifs d’une
architecture micro-services sont :

  • de réduire les barrières au changement grâce une liberté de mouvement plus forte
  • de libérer les développeurs des contraintes de la complexité
  • et d’accroître la compétitivité de l’entreprise

A ces objectifs s’ajoutent maintenant les avantages techniques de cette architecture, non-négligeables vous allez le voir. Parmi eux :

Time To MarketTime To Market :
Une mise sur le marché plus rapide grâce à des cycle de développement plus courts

agilité-technologiqueAgilité technologique :
Grâce à l’indépendance des éléments, le choix de la technologie utilisée est libre et n’a pas besoin d’être uniforme

extensibilité
Extensibilité :
Possibilité de découpage en unités fonctionnelles indépendantes afin de réutiliser les micro services dont on a le plus besoin.

évolutivitéEvolutivité :
La modernisation du système ne déborde pas du périmètre, elle n’influe pas sur la totalité de l’application et limite les effets de bord.

résilience
Résilience :
lorsqu’une panne survient, il est plus facile d’intervenir sur l’élément défaillant et la continuité de fonctionnement de l’ensemble de l’application est assurée, toujours grâce à ce système d’indépendance des éléments.

Quelle est l‘alternative à ce genre d'architecture ?

micro-service-monolithique

L’architecture appelée “monolithique” :

En totale opposition au micro-services, la technique monolithique signifie « constituée d’un seul bloc”, c’est-à-dire qu’elle a été conçue pour que chaque élément soit connecté et interdépendant. Cela signifie qu’à chaque modification et évolution des éléments constituants, c’est le système entier qui est touché. 

Présentée ainsi, on peut se demander pourquoi l’architecture monolithique est encore utilisée, du fait des avantages que le micro service présente.

En effet, le micro service comporte différents types de contraintes auxquelles il faudra pallier. Par exemple, les phases de tests de l’app peuvent être un peu moins fiables du fait des nombreux services qui la composent. Recréer un tel environnement est compliqué et une marge d’erreur peut exister. Une autre contrainte peut interférer au niveau du réseau : la multiplicité des différents composants peut congestionner le réseau en essayant de communiquer entre eux. 

Comme pour toute technologie, ces deux architectures comportent des avantages et inconvénients, que le développeur devra analyser en fonction des enjeux et objectifs fixés pour son projet. 

En définitive, faire le choix d’une architecture micro-services demandera au départ du temps de préparation important, mais une fois achevé, ce choix vous permettra de gérer et de faire évoluer votre application plus simplement et avec davantage de liberté dans le développement de celle-ci.

En savoir plus sur les solutions digitales sur mesure ?

CONTACTEZ-NOUS