samiadrici-cloud-architecture-service-mesh

Service Mesh

Service Mesh 800 400 Samia Drici

Home >> Cloud Computing >> Service Mesh

Un Service Mesh est une couche d'infrastructure permettant de gérer et de contrôler l’interconnexion entre tous les (micro) services d’une application.

Dans une architecture en microservices, les différents services sont créés séparément et communiquent les uns avec les autres. Chacun peut subir une défaillance sans pour autant provoquer l’arrêt complet de l’application. La communication entre services constitue le fondement des microservices. Dans toute architecture, les applications ont toujours eu besoin de règles pour définir l’acheminement d’une requête d’un point A à un point B. Lorsque l’on met en place un Service Mesh, la logique de communication entre services est déplacée sur une couche de l’infrastructure, et non plus au niveau des services individuels.

Comment fonctionne le Service Mesh ?

Un Service Mesh n’ajoute pas de fonctionnalités à l’environnement d’exécution d’une application. En pratique, un Service Mesh est créé dans une application sous la forme d’un ensemble de proxies réseau.

Avec un Service Mesh, l’acheminement des requêtes entre les microservices s’effectue via des proxies situés sur leur propre couche d’infrastructure, d’où l’emploi du terme « sidecars » pour désigner les proxies qui composent un Service Mesh, car ils s’exécutent à côté de chaque service, et non dans les services. Ensemble, les proxies « sidecars » de chaque service forment un réseau maillé.

Le plus souvent, il s’organise autour de deux composants d’architecture :

  • Un Control Plane, regroupant toutes les briques core : configuration, policies, authentification, expositions des métriques, etc.
  • Un Data Plane, maillage de proxys, qui pourront être présents au niveau d’un nœud (on parle alors de Shared host proxy, déployé par un DaemonSet) ou au niveau de chaque pod (on parle alors de sidecar proxy, déployé par injection auprès d’un conteneur existant.)

Les avantages de l’utilisation d’un Service Mesh

Grâce aux Services Mesh, le développement d’un microservice se fait sans se préoccuper d’un certain nombre de sujets clés :

  • l’authentification des appels reçus par les microservices
  • la gestion des droits des utilisateurs
  • la gestion des quotas d’accès
  • la télémétrie et la surveillance des échanges