Un service mesh permet aux développeurs de services de se décharger du travail de communication du réseau et de se concentrer davantage sur la logique commerciale.
Un service mesh est une couche d’infrastructure configurable pour une application de microservices. Il rend la communication entre les instances de services 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, ainsi que d’autres capacités.
Le maillage de services est généralement mis en œuvre en fournissant une instance de proxy, appelée sidecar, pour chaque instance de service. Les sidecars gèrent les communications entre les services, la surveillance et les questions liées à la sécurité, tout ce qui peut être abstrait des services individuels. Ainsi, les développeurs peuvent s’occuper du développement, du support et de la maintenance du code d’application dans les services ; les équipes d’exploitation peuvent maintenir le service mesh et faire fonctionner l’application.
Soutenu par Google, IBM et Lyft, Istio est actuellement l’architecture de service mesh la plus connue. Kubernetes, qui a été conçu à l’origine par Google, est actuellement le seul cadre 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 fait vieillir gracieusement lorsqu’ils disparaissent. La découverte de services est un cadre de gestion de conteneurs qui conserve une liste d’instances prêtes à recevoir des demandes, ou à être découvertes, par d’autres services. Ensemble, ils créent une résilience dans la communication de service à service.