fond

Un microservice, qu'est-ce que c'est ?

Un microservice est une unité cohérente qui répond à une fonctionnalité précise au sein du SI. L'objectif d'un microservice est d'être parfaitement autonome des autres microservices.
decoration

Contexte et enjeux des microservices

Côté architecture des systèmes d’informations, où en est-on actuellement ?

Un constat : d’un côté, les architectures N tiers sont encore largement dominantes dans les systèmes d’informations des entreprises mais s’avèrent être d’une complexité certaine. D’autre part, les architectures SOA mises en place ces dix dernières années ont connu des échecs cuisants mettant à mal leur réputation.

Alors, vers quelle architecture se tourner pour optimiser l’organisation et la performance de son SILe SI désigne le système d'informations d'une organisation. ?

L’architecture MicroServices : une solution qui a le vent en poupe.

L’architecture MicroServices : l’engagement AXOPEN

AXOPEN vous accompagne dans votre projet d’architecture microservices du conseil à la mise en place de l’architecture. L’architecture micro services ne nécessite pas une réorganisation totale de votre SI, elle est agile et peut s’appliquer uniquement à une partie identifiée. Notre objectif est de vous apporter l’expertise nécessaire afin de réorganiser votre SI et d’optimiser sa performance. 

architecture-micro-services

Un microservice, qu'est-ce que c'est ?

Un microservice est une unité cohérente qui répond à une fonctionnalité précise au sein du SI. L'objectif d'un microservice est d'être parfaitement autonome des autres microservices.

Bien qu'il ne partage ni ses informations, ni son code source avec d'autres services, il continue de communiquer avec d'autres services mais, toujours au moyen d'un appel.

Le cycle de vie d'un microservice est donc parfaitement indépendant d'un autre microservice du SI.

Ainsi, un microservice possède son propre cycle de vie concernant :

  • Le développement
  • Le déploiement
  • Ainsi que l'exploitation.

Quels sont les avantages des microservices?

Les microservices sont évolutifs par nature :

Tout d'abord, les microservices sont très évolutifs. Ainsi, modifier une fonctionnalité du SI revient à modifier qu'un seul et unique service sans avoir à re-tester l'intégralité d'une application. On peut donc se concentrer sur la fonctionnalité et rien d'autre.

Chaque microservice peut être déployé avec les ressources nécessaires :

Par définition, chaque microservice est autonome. Ainsi, il est très facile de dimensionner l’environnement d'exécution au besoin du service. L'utilisation de microservices rend l'exploitation ainsi plus aisée.

Avec les architectures cloud, on peut faire varier la puissance de l'hébergement en fonction des besoins du service et le tout de manière dynamique.

Par exemple, le microservice de facturation pourra augmenter dynamiquement ses ressources lors des pics de fin de mois, ou même en fonction des heures de la journée. Son isolation par rapport aux autres services rend son exploitation particulièrement simple.

La simplicité du microservice :

Chaque microservice répondant à une fonctionnalité unitaire, il devient particulièrement facile à architecturer, à développer et à maintenir ! Fini les cahiers de recettes à rallonge, le service devient plus simple à tester. De plus, son contrat de service, lui permet d'être aisément documentable et donc testable de manière automatisée avec une PIC (Plateforme d'intégration continue).

Une surveillance des microservices aisée :

Comme chaque microservice possède son propre contexte (le plus souvent web), il est très facile de le rajouter au monitoring qui se chargera de vérifier le bon fonctionnement de chacun des services. Si un service vient à être défaillant, il est automatiquement remplacé par un autre service (rappelez vous, nous sommes dans une architecture cloud qui est capable de multiplier votre microservice à volonté).

Les microservices au service du SI

Comme chaque microservice ne rend qu'une seule et unique tâche précise, il est nécessaire de les orchestrer pour effectuer des opérations complexes.

Ceci est rendu accessible par l'utilisation de stack applicative particulièrement performante,  par exemple, REST ou SOAP. La majorité de ces échanges s'effectue par l'intermédiaire du protocole HTTP et bénéficie, de facto, de toute la puissance des architectures web. Ainsi, les microservices n'induisent pas de nouvelles technologies et formalismes propriétaires qui nous feraient retomber dans certains travers de la SOA.

L'architecture SOA au service du SI

Ainsi, on pourrait concevoir un SI totalement débarrassé de logiciels pour ne posséder qu'un ensemble de services unitaires qui sont orchestrés les uns de concert avec les autres. La souplesse d'une telle architecture réside dans la robustesse de chacun des microservices.

La performance des microservices

Par définition, chaque microservice possède sa propre STACK applicative complète, ce qui signifie qu'il ne bénéficie pas des ressources partagées par un serveur d'application par exemple.

On pourrait penser que les performances vont en pâtir... Ceci n'est pas le cas, car la suppression de cette couche ainsi que le déploiement dans des environnements cloud plus puissants et distribuables font des microservices un atout considérable pour la performance de son SI.

À qui s'adresse l'architecture des microservices ?

L'architecture microservice peut s'adapter à chaque SI. Il n'est pas nécessaire de redévelopper l'intégralité de son SI en microservice. Il est très facile de rajouter et/ou de modifier uniquement certaines parties du SI pour les remplacer en microservice et gagner ainsi en agilité. La clé est de cibler correctement les services qui bénéficierait d'un passage en microservice.

Les microservices et les équipes de développeurs ?

Les microservices ne reposent pas sur de nouvelles technologies mais plutôt sur une utilisation nouvelle. Ainsi, il n'est pas nécessaire de refaire l'intégralité de la formation de chaque développeur.

En développant des microservices, vos développeurs reviennent à une logique simple et se concentrent ainsi mieux sur les métiers et moins sur la technique. La couche technique étant allégée, il est très simple de maintenir les développements et/ou de les externaliser.

Microservices : Nos conseils

Quels sont les pièges à éviter dans les architectures microservices ?

La principale difficulté des nouvelles architectures en microservice est le découpage de son SI en service à la fois autonome et cohérent. Il faut réaliser un découpage qui ne soit pas trop fin, pour ne pas se retrouver avec trop de services. Il convient donc d'analyser précisément quelles sont les parties du SI à découper en microservice.

Quelles stacks applicatives utiliser pour mes microservices?

Il existe de nombreuses stack logiciels sur le marché. Certaines nous semblent plus prometteuses que d'autres, on peut citer par exemple, Spring Boot qui s'avère extrêmement rapide et légère.

Il est à noter aussi que pour bénéficier pleinement des microservices, l'utilisation de micro conteneur tel que Docker est à maîtriser.

Nos Références clients