Le spécialiste de votre système d'information
Nos métiers

Architecture microservices

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.

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 SI ?

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.

Exemple 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.

 

 

FEU VERT – Développement de nouvelles architectures micro-services et accompagnement autour des nouvelles technologies (JAVA/JEE, Apache ServiceMix, Varnish)

FEU VERT – Développement de nouvelles architectures micro-services et accompagnement autour des nouvelles technologies (JAVA/JEE, Apache ServiceMix, Varnish)

Sur le blog

Architecture des applications web en 2015

Introduction Plus l'informatique avance et plus le choix d'une architecture web se complexifie. Faisons le point sur l'architecture des applications web en 2015. Un peu…

Architecture applicative web dans un cloud

Avec l'arrivée des offres "Private cloud" bon marché, il devient intéressant de virtualiser entièrement ses serveurs et son architecture web. Avec des systèmes de virtualisation…

JAVA 9 : Sortie prévue pour septembre 2016

Arrivé en mars 2014, Java 8 s’est imposé comme une petite révolution dans le monde des développeurs Java avec des nouveautés importantes comme l’API stream,…

En lien

Apache ServiceMix

Expertise Apache ServiceMix à Lyon. Définition d'apache ServiceMix, développement ServiceMix et conseil d'architecture en bus…

Lire

Apache CAMEL

Expertise sur Apache Camel : le framework d'intégration pour entreprise permettant le routage de message.…

Lire

Big Data et modèle prédictif

Un modèle prédictif est un modèle qui analyse les comportements, les données passées, afin de…

Lire

Développements spécifiques

Développement spécifique d'application pour les entreprise. Méthode agile et cycle projet.

Lire

Besoin d'informations complémentaires ?