Un service mesh permet aux développeurs de services de décharger le travail de communication réseau et de se concentrer davantage sur la logique métier.
Un service mesh est une couche d'infrastructure configurable pour une application de microservices. Il rend la communication entre les instances de service flexible, fiable et rapide. Le maillage fournit la découverte de services, l'équilibrage de charge, le cryptage, l'authentification et l'autorisation, la prise en charge du modèle de disjoncteur et d'autres fonctionnalités.
Le service mesh est généralement implémenté en fournissant une instance proxy, appelée sidecar, pour chaque instance de service. Les side-cars gèrent les communications interservices, la surveillance et les problèmes liés à la sécurité, soit tout ce qui peut être abstrait des services individuels. De cette façon, les développeurs peuvent gérer le développement, le support et la maintenance du code d’application dans les services ; les équipes d’exploitation peuvent maintenir le maillage de services et exécuter l’application.
Istio, soutenu par Google, IBM et Lyft, est actuellement l’architecture de maillage de services la plus connue. Kubernetes, conçu à l'origine par Google, est actuellement le seul framework d'orchestration de conteneurs pris en charge par Istio.
Un service mesh fonctionne avec un protocole de découverte de services pour détecter les services au fur et à mesure qu'ils apparaissent. Ensuite, le maillage les vieillit gracieusement lorsqu'ils disparaissent. La découverte de services est un framework de gestion de conteneurs qui conserve une liste d'instances prêtes à recevoir des requêtes – ou à être découvertes – par d'autres services. Ensemble, ils créent une résilience dans la communication de service à service.