L’année 2019 marque-t-elle l’accession à la maturité des services mesh ? Désormais, les principaux fournisseurs de cloud proposent aux développeurs une solution pour unifier la gestion des flux de trafic et l'application des politiques d'accès à leurs microservices, quel que soit le lieu où ils se trouvent. Dès la fin de l’année dernière, certains avaient annoncé que la technologie de service mesh serait de plus en plus importante pour les entreprises qui cherchent à exploiter le cloud et, plus particulièrement, les conteneurs et Kubernetes. Mais, dans ce secteur technologique émergent, les choses évoluent rapidement et Owen Garrett, directeur senior de la gestion des produits chez le fournisseur de serveurs Web Nginx, recommande aux entreprises de ne pas investir trop vite dans la technologie.
« Le temps nous dira comment évoluera la technologie, car il y a encore beaucoup de place pour l'innovation », a déclaré M. Garrett. « Peut-être que la technologie va se banaliser rapidement et qu’on la trouvera partout et par défaut dans les principales plates-formes d’exécution de conteneurs. Peut-être que l’on verra apparaître de nouvelles approches, plus efficaces que le modèle de développement « proxy side-car », plus performant et moins gourmand en ressources. À ce stade, rien ne permet de dire avec certitude comment évoluera la technologie et quels en seront les fournisseurs les plus importants ». Voici une sélection des principales options disponibles sur le marché aujourd’hui, des solutions gratuites et open source, dont des solutions prêtes pour l’entreprise.
Google pousse son mesh baptisé Istio
L'été dernier, Google avait fait sensation en annonçant qu’il livrait en open source un service mesh qu'il utilisait en interne sous le nom d'Istio. Urs Holzle, vice-président senior des infrastructures de Google Cloud a déclaré lors de l’évènement Google Cloud Next organisé du 9 au 11 avril à San Francisco qu'Istio avait été développé et publié pour répondre à la complexité de l'administration des environnements hybrides et de son coût en croissance rapide pour les entreprises. « Le projet open source Istio développé par Google permet d’étendre Kubernetes à ces services de plus haut niveau », a-t-il déclaré.
« Il permet de découvrir, connecter et surveiller les services de manière holistique sur plusieurs sites, depuis un seul endroit, sans avoir à changer le code. L'outil peut être déployé sur Kubernetes et Nomad avec Consul, et des projets pourraient ajouter le support de plates-formes comme Cloud Foundry et Apache Mesos dans un futur proche. Des entreprises clientes comme Auto Trader l'utilisent déjà en production. Il est également intéressant de noter qu'Istio s'associe parfaitement avec Envoy, un proxy de service construit en interne par l’entreprise de covoiturage Lyft, pour servir de plan de contrôle au plan de données d'Envoy.
AWS App Mesh dédié aux microservices
En novembre de l'année dernière, Amazon Web Services (AWS), leader du marché de l'infrastructure cloud en tant que service, a livré un aperçu public de son propre service mesh. Baptisé App Mesh, il permet aux développeurs de surveiller et de contrôler les communications à travers les microservices. « Avec App Mesh, on peut modéliser la connexion entre tous les microservices. Le service mesh calcule et envoie automatiquement les informations de configuration appropriées à chaque proxy de microservice. Il offre ainsi une visibilité et un contrôle standard du trafic sur l'ensemble de l’application », a écrit dans un blog Nathan Taber, chef de produit EKS et Container OSS chez AWS. App Mesh est disponible avec Amazon ECS, Amazon EKS et Kubernetes sur EC2. Il utilise également le proxy Envoy open source, ce qui le rend interopérable par nature.
Microsoft SMI
Microsoft a eu besoin d’un peu plus de temps que Google et AWS pour mettre son service mesh sur le marché. Lancé lors du KubeCon 2019 (21-24 mai), la solution appelée Service Mesh Interface (SMI) est un projet ouvert développé en partenariat avec Linkerd, HashiCorp, Solo.io, Kinvolk, et Weaveworks. Microsoft SMI a également bénéficié du soutien d’Aspen Mesh, Canonical, Docker, Pivotal, Rancher, Red Hat et VMware. SMI repose sur un ensemble d'API communes et portables qui simplifient l’interopérabilité entre les différents services mesh eux-mêmes, dont Istio. La différence est subtile mais importante. Dans un article de blog, Gabe Monroy, chef de programme pour les conteneurs chez Microsoft, a écrit : « Outre la prolifération des technologies de services mesh, de nombreux fournisseurs offrent aux développeurs d'applications de nouvelles options toutes plus intéressantes les unes que les autres.
Le problème, c’est que les développeurs qui se tournent vers les technologies mesh doivent choisir un fournisseur et écrire directement pour ses API. Ils s'enferment dans une implémentation de services mesh. Sans interfaces génériques, les développeurs perdent leur portabilité, leur flexibilité et se privent des innovations de l'écosystème ». SMI se pose en alternative. Le service de Microsoft offre « une interface standard pour les services mesh sur Kubernetes, un ensemble de fonctionnalités de base communes et préserve la flexibilité entre les différents services mesh ». D’après les feedbacks reçus par l’entreprise, Gabe Monroy a établi ce que les clients attendaient d’un fournisseur de services mesh : « Des politiques de trafic, de la télémétrie et des capacités de gestion ». Il est possible d’utiliser SMI directement via un set d'API, mais les clients peuvent aussi créer des opérateurs pour traduire SMI en API natives.
Tetrate fondée par des anciens de Google
La startup basée à San Francisco a été fondée par des ingénieurs du projet Istio de Google. Cet autre fournisseur de services mesh a développé une solution autonome prête pour l'entreprise. L'idée est de simplifier la gestion pour les équipes qui doivent exploiter de nombreux microservices à travers des environnements hybrides complexes ou à grande échelle. Essentiellement, la solution de Tetrate combine les fonctions open source d'Istio et d'Envoy avec des fonctionnalités d'entreprise, ce qui permet d'exécuter à la fois les plans de données et de contrôle dans des environnements d'entreprise complexes en évitant les problèmes inhérents à la mise en route de technologies open source. Pour Tetrate, sa solution offre « extensibilité, évolutivité et performance au niveau de l'entreprise ».
L'équipe fondatrice comprend Varun Talwar, ancien ingénieur de Google qui a contribué au développement de la solution de services mesh open source Istio, et Jeyappragash Jeyakeerthi, un ancien ingénieur cloud de Twitter. « Nous essayons de simplifier les configurations autour d'Istio pour en faire quelque chose de plus accessible et de plus digeste », a déclaré Varun Talwar, CEO de Tetrate. « Ainsi, chaque équipe bénéficie d'une expérience UX et peut commencer à paramétrer le trafic et la sécurité souhaitée et créer les interactions appropriées le trafic, le réseau central et les équipes de sécurité ».
Et aussi
Il existe d'autres solutions de services mesh comme Linkerd et Consul Connect de HashiCorp. Elles sont déjà assez populaires auprès des développeurs.