L'architecture de microservices au service des plateformes d'expérience

Les plateformes d’expérience incluent des outils de plus en plus divers et variés tout en garantissant une expérience client dite sans couture, c’est-à-dire assurer au client une expérience omnicanal sans qu’il ne perde son contexte de navigation.

Cela amène actuellement les entreprises à ré-axer leur écosystème applicatif autour d’une architecture basée sur des microservices.

En quoi consiste une architecture DE microservices ?

Une architecture de microservices consiste principalement à identifier les différentes fonctionnalités des applications et à créer pour chacune un projet indépendant. Si on considère l’exemple de l’espace client d’une compagnie d’assurance permettant à un utilisateur de souscrire à des contrats et de communiquer avec un conseiller, nous créerons des projets différents pour :

  • L’authentification
  • La gestion des contrats
  • L’interface de communication

... tout en donnant l’impression au client qu’il reste sur une seule et unique application.  

Quels en sont les avantages ?

Les avantages se traduisent tout d’abord d’un point de vue technique. L’architecture de microservices permet de répondre à des problématiques de performance en assurant une meilleure disponibilité des applications en cas de forte demande d’un service ou de mise à jour d’une application. Si nous reprenons notre exemple de l’espace client, imaginez que l’on soit amenés à mettre à jour l’outil de conversation. Dans le cas d’une application unique, dite monolithique, cela nous imposerait d’interrompre totalement le site, donc également la gestion des contrats. Avec une architecture de microservices, il est possible d'effectuer notre mise à jour sans impacter le reste du site. Imaginez maintenant un incident entraînant de nombreuses demandes des utilisateurs et donc une surexploitation du service de communication. Avec l’architecture de microservices, nous pouvons renforcer le service indépendamment du reste de l’application pour répondre à la demande, et ainsi éviter une saturation. D’un point de vue organisationnel, nous avons besoin d'équipes pluridisciplinaires. Allant des designers aux développeurs autour de chaque service, les différents métiers échangent de manière plus fluide. Chaque service peut être développé avec les méthodes et technologies les plus adaptées à ses besoins. Enfin, l’évolutivité des applications permet de proposer des fonctionnalités plus nombreuses et plus complexes aux utilisateurs de par une évolutivité améliorée des plateformes.

Comment développe-t-on des microservices ?

Techniquement, déployer un microservice consiste à lancer un container créé à partir d’une image sur un cluster. Pour faire simple, il faut imaginer qu’un développeur envoie une application qu’il a construite au préalable dans un cloud qui va se charger de créer les ressources nécessaires à son fonctionnement comme les serveurs ou les interfaces réseau. Ainsi, pour expliquer les termes énoncés précédemment :

  • L’image est considérée comme l’application envoyée par le développeur
  • Le container est le processus qui va exécuter l’application sur un cluster
  • Un cluster est un ensemble de serveurs vu comme une ressource unique par les développeurs. Ainsi les développeurs n’ont pas à se soucier de l’emplacement dans lequel est déployé l’application. Ils déploient dans le cluster et le cluster se charge de choisir le ou les serveurs adéquats qui feront tourner l’application

Les acteurs sur le marché du Cloud ont développé plusieurs solutions pour répondre à ce besoin dont notamment :

  • Docker, qui permet de construire des images et exécuter des containers
  • Kubernetes, qui permet de déployer les containers et images sur un cluster

En conclusion L’architecture de microservices est devenue de plus en plus incontournable, et cette tendance se renforcera dans les prochaines années. Davantage d’accompagnement pour intégrer ces changements est donc attendu.