Le service mesh permet de mettre en place un couplage lâche dans une architecture microservices.

Une architecture micro-service isole les fonctionnalités logicielles en de multiples services indépendants. Ceci fournit une plate-forme facilement déployable, maintenable et testable. Une architecture micro-service permet également de créer des équipes plus petites et plus agiles pour faire avancer une plate-forme : les feature teams.

Les architectures de micro-services simplifient le déploiement continu de plates-formes traitant de sujets complexes. Elles aident les entreprises à être plus réactives et agiles et à s’adapter à un marché en évolution.

Les services de ces architectures communiquent entre eux via des API. Et la gestion de cette communication peut rapidement devenir complexe.

L’objectif d’un outil de service mesh est de simplifier cette communication. Il permet également la découverte de services, l’équilibrage de charge, le chiffrement, l’authentification et l’autorisation.

Le service mesh permet également de mettre en place un couplage lâche entre les services. Cela permet de déplacer un microservice d’un nœud ou d’un cluster à un autre sans avoir à reconfigurer l’application ou à modifier le code.

Le modèle architectural des services mesh est conçu pour fournir des services d’application avec trois capacités de base : la gestion du trafic, la sécurité et l’observabilité.

Trafics Nord/Sud et Est/Ouest

Nord-sud et est-ouest sont deux termes généraux utilisés pour décrire la direction du flux de circulation du trafic. Dans le cas de la circulation nord-sud, le trafic entre et sort du cluster.

Contrairement au trafic nord-sud, qui entre et sort du cluster, le trafic est-ouest circule entre les nœuds du cluster.

Un service mesh doit être capable de gérer les deux types de trafic.

Il convient de noter qu’historiquement, le trafic Nord/Sud était très sécurisé, alors que la sécurité du trafic Est/Ouest était souvent négligée. Un service mesh améliorera grandement ce point car les deux types de trafic seront traités de manière équivalente.

Trafic Nord-Sud Est-Ouest

Limitations des Services Mesh

La technologie Service Mesh est une technologie ambitieuse, qui vise à résoudre tous les problèmes de communication posés par l’architecture micro-services. Cela ne va pas sans apporter quelques critiques :

Malgré ces limitations, et les freins des équipes DevOps, la technologie Service Mesh est populaire auprès des développeurs qui sont attirés par les promesses d’observabilité, de sécurité et de couplage lâche.

Istio, solution de référence pour Kubernetes

Istio est une solution native de Kubernetes qui a été initialement lancée par Lyft. Un grand nombre de grandes entreprises technologiques ont choisi de la soutenir : Google, IBM et Microsoft utilisent Istio comme service mesh par défaut offert dans leurs solutions Kubernetes managées.

Consul

Consul est une solution de HashiCorp. Il a commencé comme un moyen de gérer les services fonctionnant sur Nomad et s’est développé pour prendre en charge d’autres orchestrateurs de conteneurs, dont Kubernetes.

Linkerd

Linkerd est particulier dans le sens qu’il fait partie de la Cloud Native Foundation (CNCF), qui est l’organisation responsable de Kubernetes. Aucune autre solution de service mesh n’est soutenu par une fondation indépendante.

Liens Intéressants

Liens externes