g215 - stock.adobe.com
Service mesh : les mainteneurs tentent d’adoucir l’image d’Istio
Trois mois après que le maillage de services Istio a été gradué par la Cloud Native Computing Foundation, ses soutiens cherchent à dissiper l’image décourageante d’une technologie complexe que le projet s’est forgée à ses débuts, alors que le réseau cloud-native s’impose dans les systèmes d’information de grandes entreprises.
Istio, un projet né en 2017 chez Google et IBM, est l’une des nombreuses approches sur le marché du maillage de services. Cette architecture virtuelle de réseau liée à Kubernetes doit transférer les tâches de gestion des applications vers un ensemble distribué de composants logiciels appelés proxys sidecar. Cela présente l’avantage de protéger les développeurs d’applications de la complexité de la connectivité des microservices.
Or, au cours des premières années d’existence, les DSI constataient la complexité d’implémentation de cette technologie, alors qu’elles ne maîtrisaient pas encore l’orchestrateur de conteneurs. Puis, en 2020, le projet a fait l’objet d’une refonte majeure de son architecture, entraînant des changements cassants. Cette année-là, le comité de direction d’Istio a également mis en place une approche plus systématique des étapes de développement des nouvelles fonctionnalités.
En 2022, les responsables d’Istio pouvaient se targuer d’une expérience opérationnelle plus fluide pour le maillage de services. Il suffit d’une seule commande pour déployer le service mesh et la prise en charge des Helm Charts a été améliorée.
Google a par ailleurs répondu à une demande de longue date de nombreux utilisateurs souhaitant qu’Istio soit donné à la Cloud Native Computing Foundation (CNCF). Après l’acceptation d’Istio par la CNCF en juillet 2022, d’autres fournisseurs ont commencé à contribuer au projet, notamment Microsoft, qui avait précédemment créé son propre Open Service Mesh, en partie pour critiquer la réticence de Google à faire don d’Istio à une fondation.
« Davantage de fournisseurs sont prêts à se lancer et à participer », constate Christian Posta, vice-président et directeur technique mondial de Solo.io, un éditeur d’une plateforme de connectivité cloud native pendant la conférence virtuelle IstioCon la semaine dernière. « Vous voyez Microsoft se lancer, alors que je ne pensais pas que cela arriverait un jour… [La graduation de la CNCF] a vraiment abaissé la barrière pour un plus grand nombre de personnes – et pas nécessairement pour les utilisateurs finaux ».
Au cours des 18 mois qui se sont écoulés depuis la donation initiale d’Istio à la CNCF le projet a fait des progrès significatifs sur des fonctionnalités recherchées telles que la stabilisation de la prise en charge des Helm charts, qui avaient été dépréciés au début de 2020, puis rétablis en 2021. Cette prise en charge en bêta depuis la version 1.17 d’Istio en février est suffisamment stable pour soulager les professionnels qui avaient du mal à s’en passer.
Ben SnyderIngénieur DevOps Senior, Thales
« L’année dernière […], les mises à jour sur place [d’Istio] étaient impossibles, ce qui nous obligeait à effectuer des mises à jour blue/green des clusters pour un déployer un changement d’Istio, aussi mineur soit-il », témoigne Ben Snyder, ingénieur DevOps senior pour la division de monétisation des logiciels de Thales. « Helm nous permet d’effectuer des mises à jour sur place, à tel point que nous l’ajoutons à notre pipeline CI/CD. »
La vague de maturité liée à Kubernetes soulève le bateau Service Mesh
À ses débuts, Istio n’était pas seulement complexe à mettre en place. Ses fonctionnalités disparaissaient d’une version à l’autre et l’architecture de l’API était encore en cours de révision, rappelle Christian Posta. Depuis, beaucoup de travail a été fait pour rendre la « première expérience » plus conviviale, avec la fameuse procédure de déploiement à l’aide d’une seule commande et d’un analyseur intégré pour dépanner les erreurs d’installation.
En outre, selon M. Posta, une trop grande simplicité dans le monde intrinsèquement complexe des réseaux cloud native aurait desservi une large base d’utilisateurs d’entreprise. Des questions telles que le contrôle des ingress doivent encore être abordées pour les clusters Kubernetes, qu’Istio a toujours intégrés, ainsi que la prise en charge des politiques de sécurité des applications à grain fin, et depuis plusieurs années, la gestion multiclusters.
Les professionnels qui ont participé à l’IstioCon 2023 considèrent que le maillage de services est le moyen le plus efficace d’atteindre les objectifs précis de niveau de service (SLO) réclamés dans une infrastructure cloud-native orientée client, composée de milliers de microservices potentiellement interdépendants. Les progrès de l’ingénierie des plateformes et des techniques d’automatisation du déploiement, comme l’approche GitOps, qui ont coïncidé avec l’adoption de Kubernetes, ont également allégé les charges opérationnelles liées au service mesh. Les services de plateforme tels que Kiali, Prometheus et Jaeger qui sont liés à Istio permettent aussi aux SRE de comprendre relativement facilement les relations complexes entre les parties des services de production, selon les présentateurs de l’IstioCon.
« Avec Istio, nous sommes en mesure de fournir des données sur les flux de trafic et les parcours des utilisateurs pour aider à définir les SLO sans trop d’intrusion [dans l’application] », déclare Chris Dutra, responsable SRE pour les marchés chez le géant des services financiers JPMorgan Chase & Co, lors d’une présentation de l’IstioCOn.
En outre, il est possible d’aborder les déploiements de maillage de services de manière itérative, de la même manière que les entreprises ont préparé les transformations Agile et DevOps, selon John Keates, ingénieur cloud chez Wehkamp Retail Group, une société d’e-commerce, au cours d’une autre session d’IstiCon.
En fait, certains de ces projets de transformation ont permis d’obtenir des connaissances des conteneurs et des systèmes Linux que les professionnels des opérations IT peuvent utiliser pour appréhender le déploiement d’un service mesh, remarque-t-il.
« Pour nous, nous avions déjà une certaine expérience de la plateforme qui était relativement liée à Istio, y compris la planification et l’orchestration de conteneurs et la génération de YAML… et l’obtention de métriques via Prometheus, ce qui aide beaucoup », constate John Keates.
Vijay BhagavathAnalyste, IDC
Selon Vijay Bhagavath, analyste chez IDC, cette familiarité et cette maturité dans les environnements Kubernetes d’entreprise sont devenues monnaie courante dans la plupart des entreprises. Ces tendances signifient que le service mesh deviendra probablement un concept tout aussi familier pour la majeure partie du marché de l’IT au cours des 12 prochains mois.
« Kubernetes n’est plus une nouveauté. Les conteneurs ne sont plus une nouveauté », souligne Vijay Bhagavath lors d’un interview avec SearchITOperations, une publication sœur du MagIT. « En 2024, le service mesh passera du statut de projet scientifique à celui de service opérationnel courant ».
Les mainteneurs visent la stabilité d’Ambient Mesh en 2024
Sachant bien qu’il faut suivre de près cette tendance, les contributeurs du projet Istio préparent une architecture sans sidecar, nommé Ambient Mesh.
Ambient Mesh modifie l’architecture d’Istio pour ne plus avoir à déployer un conteneur sidecar par Pod Kubernetes. Si le control plane ne change pas radicalement, le data plane, lui, est divisé en deux principaux composants, à savoir l’agent Ztunnel (un daemonset), déployé au niveau de chaque nœud d’un cluster et le proxy Waypoint, installé au niveau des namespace (au besoin) ou plus généralement au niveau d’un service account Kubernetes.
Cette architecture s’avère moins gourmande en ressources et permet de séparer la gestion des règles L4 orchestrées au niveau de Ztunnel – qui gère aussi l’interconnexion sécurisée entre les nœuds – des règles L7, appliquées à l’aide du proxy Waypoint.
Ambient Mesh, présenté pour la première fois en septembre 2022 en tant que fonctionnalité expérimentale, a été promu en version alpha dans Istio 1.18 en juin. Une version bêta est prévue pour la prochaine version d’Istio, la mouture 1.20. Aucune date de sortie n’a été rendue publique pour cette version, mais la version 1.19 a été publiée au début du mois de septembre 2023, et Istio reçoit généralement des mises à jour trimestrielles.
Alors que des éditeurs tels que Solo.io prennent déjà en charge des versions fonctionnelles d’Ambient Mesh, une présentation de la feuille de route de l’IstioCon a détaillé le travail en cours dans la version en amont pour développer des API stables, la prise en charge des environnements multicluster de Kubernetes et l’intégration avec les plug-ins d’interface de réseau de conteneurs de Kubernetes. Le travail en cours pour remplacer l’API de trafic d’Istio par l’API Kubernetes Gateway, qui devrait également simplifier la gestion du maillage de services, doit être répliqué avec Ambient Mesh, selon une autre présentation de l’IstioCon. Les responsables de la maintenance travaillent toujours à la prise en charge d’une architecture hybride mêlant Ambient Mesh et sidecar dans le même cluster. Cependant, Ambient Mesh devrait atteindre une version stable et prête pour la production au cours des 12 prochains mois, anticipent les responsables lors d’une présentation de la feuille de route.
John HowardIngénieur logiciel senior, Google
Bien qu’il soit encore tôt pour l’avènement Ambient Mesh, les utilisateurs d’Istio se montrent enthousiastes à son égard.
« Ambient Mesh semble apporter une gestion simplifiée, ainsi que l’élimination de la surcharge des sidecars », déclare Ben Snyder. « Il reste à voir si cela vaut la peine de migrer, mais jusqu’à présent, cela paraît prometteur ».
Les usagers existants pourraient trouver Ambient Mesh intéressant, mais il s’agit d’abord de renforcer l’attrait d’Istio pour un nouveau public, selon les présentateurs du comité de supervision technique d’Istio lors d’une séance de questions/réponses à l’IstioCon.
« L’un des objectifs d’Ambient [Mesh] est d’étendre la portée d’Istio, de sorte que nous puissions cibler les utilisateurs qui n’ont jamais déployé Istio pour diverses raisons, qu’il s’agisse du coût, de la complexité ou de la compatibilité », rappelle John Howard, ingénieur logiciel chez Google.