Istio Ambient Mesh, une alternative moins invasive à l'approche traditionnelle des sidecars

Istio Ambient Mesh offre une alternative à l'approche centrée sur les sidecars d'Istio avec une solution sans sidecars. Il s'agit d'une option moins invasive et plus facile, selon les besoins.

L’annonce récente de l’acceptation d’Istio comme projet d’incubation par la Cloud Native Computing Foundation (CNCF) place le populaire service mesh open source dans la même catégorie que d’autres projets cloud native comme Kubernetes.

Les services mesh sont une composante essentielle de l’infrastructure des entreprises désireuses de devenir cloud native. Selon l’Enquête 2022 sur l’adoption des services mesh, 85% des entreprises modernisent leurs applications en adoptant une architecture de microservices, tandis que 87% des entreprises utilisent ou envisagent d’utiliser un service mesh pour gérer plus efficacement un vaste déploiement d’architectures basées sur les conteneurs.

Avec des centaines de microservices ou même plus, tous exécutés dans un nombre variable de conteneurs, les entreprises doivent pouvoir contrôler ce qui est exécuté dans leurs réseaux et assurer la connectivité entre ces services. Si plusieurs offres de service mesh existent, Istio est considérée comme la référence dans le domaine. Ce framework permet de sécuriser, connecter et contrôler de manière transparente, uniforme et efficace les services des applications cloud native.

Le don d’Istio par Google à la CNCF garantit que ce service mesh, qui est l’un des plus utilisés, pourra être enrichi de plug-ins supplémentaires. En guise d’exemple, le mode Istio Ambient Mesh annoncé par Google et Solo.io début septembre. Cette contribution à Istio est l’aboutissement de près d’un an d’efforts d’ingénierie qui ont débuté chez Solo.io et ont fusionné avec ceux de Google.

Une alternative aux sidecars

Avant d’aborder les fonctionnalités d’Istio Ambient Mesh, il est essentiel de mentionner les principes de base de l’approche d’Istio fondée sur les sidecars. Les sidecars sont des proxies programmables déployés parallèlement aux conteneurs d’applications. Leur mise en place permet aux entreprises de bénéficier d’Istio sans avoir à restructurer les applications existantes.

Cependant, les sidecars sont loin d’être parfaits. Ils sont invasifs car ils doivent être injectés en modifiant les spécifications des pods Kubernetes et en redirigeant le trafic au sein de chaque pod. Cela nécessite de redémarrer le pod, ce qui perturbe les charges de travail. En outre, les sidecars nécessitent le provisionnement des ressources CPU et mémoire supplémentaires. Compte tenu du nombre considérable de pods déployés par les grandes entreprises, cela peut rapidement donner lieu à des réservations de ressources importantes, entraînant une sous-utilisation des ressources dans le cluster.

À la base, Istio Ambient Mesh offre une alternative à l’approche centrée sur les sidecars d’Istio avec une solution sans sidecars. Il s’agit d’une option moins invasive et plus facile, adaptée à de nombreux utilisateurs existants de service mesh. Elle permet par ailleurs aux nouveaux utilisateurs d’adopter plus facilement la technologie en réduisant les ressources nécessaires à son exploitation. Par exemple, lorsqu’un propriétaire de plateforme installe Istio Ambient Mesh dans un cluster, les applications existantes continuent de fonctionner. Le propriétaire informe alors le système qu’une application spécifique doit être intégrée au mesh, et c’est tout. Pas de redémarrage, ni de perturbation.

Sécurité absolue

De plus, il n’y a aucun fléchissement en matière de sécurité. Istio est doté d’une sécurité de type zéro trust intégrée par défaut. Que l’entreprise opte pour une architecture avec ou sans sidecar, la sécurité n’est pas compromise. Elle reste intégrée à l’environnement, les responsables technologiques n’ayant jamais à se soucier de la voir remplacée par d’autres fonctionnalités. Istio Ambient Mesh peut être vu comme un moyen de simplifier les opérations, de réduire les coûts d’infrastructure et de permettre aux entreprises de profiter d’une plus grande compatibilité avec les applications sans nuire aux opérations existantes.

Istio Ambient Mesh introduit un data plane sous forme de mesh en couches avec une surcouche sécurisée. Cette dernière couche est responsable de la sécurité du transport et du routage. Elle peut également introduire des capacités L7 (couche OSI) pour les namespaces qui en ont besoin. La dernière couche sécurisée est constituée d’un composant partagé par les nœuds : le tunnel zéro trust (ou ztunnel). Ce dernier est responsable de la télémétrie L4 et de l’encryption mTLS (mutual transport layer security). De plus, le ztunnel connecte et authentifie en toute sécurité les différents éléments du mesh.

Dissocier l’application du data plane

Une des préoccupations de nombreuses entreprises en ce qui concerne le service mesh est qu’il peut complexifier les opérations. Compte tenu de la quantité de déploiements Kubernetes sur lesquels les entreprises se reposent, c’est un frein compréhensible à l’adoption. Par ailleurs, la complexité est source de vulnérabilité, nous le savons tous..

Qu’il s’agisse de la gestion d’une logique opérationnelle complexe, de l’utilisation de bibliothèques de logiciels open source ou de bibliothèques internes partagées transmettant des bugs, le code d’application d’un utilisateur constitue une cible de choix pour les pirates. Quand une application est corrompue, les données d’identification, les secrets et les clés, y compris ceux qui sont montés ou stockés en mémoire, sont accessibles aux pirates. Si l’on considère le modèle de sidecar, toute corruption d’une application entraîne fatalement la prise de contrôle du sidecar et de tout élément d’identité et de clé associé.

Istio Ambient Mesh dissocie l’application du data plane. Ainsi, aucun composant du data plane n’est exécuté dans le même pod que l’application ; par conséquent, une attaque contre l’application n’entraîne pas l’accès aux secrets. Cela simplifie également les opérations pour améliorer la sécurité tout en évitant les proxys L7 multi-tenant. Tout cela se fait en garantissant la continuelle prise en charge des sidecars en tant que déploiement de premier choix.

Pour ce faire, le ztunnel dissocie totalement les aspects du data plane d’Istio de ceux de l’application, ce qui permet aux opérateurs d’activer, de désactiver et de dimensionner le data plane sans perturber les applications. Comme le ztunnel n’effectue pas de traitement L7 sur le trafic de la charge de travail, Ambient Mesh est considérablement allégé par rapport aux sidecars. Cette réduction importante de la complexité et des coûts associés en matière de ressources permet une utilisation en tant qu’infrastructure partagée.

Exécution

En raison de la nature invasive des sidecars, leur exploitation peut être une tâche complexe. La mise à niveau du service mesh avec sidecars nécessite une planification plus poussée et des redémarrages en continu qui doivent être synchronisés pour éviter une interruption de l’application. Ambient Mesh élimine ce problème. Les mises à niveau du ztunnel peuvent coïncider avec les patchs ou les mises à niveau normaux des nœuds Kubernetes. Dans le même temps, les proxies Waypoint (L7) font partie du réseau et peuvent être mis à niveau de manière totalement transparente pour les applications, si nécessaire.

L’intégration des applications dans un service mesh à l’aide d’Ambient Mesh devient aussi facile que l’étiquetage d’un namespace. Les applications bénéficient ainsi d’avantages immédiats tels que le mTLS avec procédé cryptographique de vérification d’identité pour le trafic dans le mesh et l’observabilité L4. S’il faut contrôler l’accès ou les routes, augmenter la résilience ou ajouter des fonctions L7 aux applications dans Ambient Mesh, des proxies Waypoint peuvent être appliqués aux applications au besoin.

Bien entendu, Istio Ambient Mesh n’a pas été conçu pour remplacer les sidecars. Même si Istio Ambient Mesh constituera la meilleure option pour les utilisateurs de mesh actuels et futurs, les sidecars resteront un excellent choix. C’est particulièrement le cas pour les utilisateurs ayant besoin d’un data plane dédié, la conformité ou l’optimisation des performances.

Istio continuera à prendre en charge les sidecars. L’environnement permet également aux sidecars d’interagir de manière transparente avec Ambient Mesh. L’important est de choisir la meilleure option pour les besoins spécifiques de chaque entreprise en matière de service mesh.