Afin de proposer aux développeurs plus de flexibilité dans la manière de contrôler, surveiller et équilibrer la charge de leurs applications cloud natives, Cilium a ajouté un service mesh à la dernière version de son logiciel de connectivité réseau open source, Cilium 1.12. Malgré toute leur utilité, les services mesh sont aussi notoirement complexes à exploiter à l'échelle de l'entreprise, ce qui conduit à une sorte de course pour trouver, avec des solutions existantes comme Linkerd, Istio, Open Service Mesh (OSM) de Microsoft, et bien d'autres qui se disputent l'attention des développeurs, le bon équilibre entre simplicité et performance.
Spécificités du service mesh de Cilium
Cilium Service Mesh a été construit avec les ressources natives de Kubernetes, et il peut être exécuté sans un conteneur sidecar distinct pour certaines fonctionnalités comme la journalisation et l'audit, tout en complétant cependant la méthode populaire existante basée sur le sidecar (des conteneurs qui doivent fonctionner avec le conteneur principal du pod). Pour ce faire, elle combine la technologie eBPF (extended Berkley Packet Filter), qui offre aux développeurs d'intégrer en toute sécurité des programmes dans n'importe quel logiciel, y compris les noyaux de l'OS, avec le très répandu service de proxy Envoy. « Cilium Service Mesh est une question de choix », a déclaré dans un communiqué Thomas Graf, le créateur du projet et cofondateur d'Isovalent. « Les entreprises veulent avoir la possibilité de choisir, ou pas, des conteneurs sidecars, et elles veulent un control plane de haute performance alimenté par eBPF et Envoy afin de choisir le meilleur plan de contrôle pour leur cas d'usage ».
La question du sidecar
Avec le lancement de la version 1.12 de Cilium, Cilium fait valoir que l'eBPF peut améliorer la performance du service en évitant le défaut d’efficacité créé par un sidecar. L’usage ou non d'un sidecar dépend des besoins spécifiques de l'utilisateur. Mais en proposant les deux options en parallèle, Cilium espère que les développeurs pourront prendre eux-mêmes de meilleures décisions en fonction de leurs propres exigences. « L'argument de Cilium est de dire que l'eBPF peut améliorer les performances, et il est probable que d'autres fournisseurs exploiteront cette technologie en conséquence », a déclaré David Mooter, analyste chez Forrester. Cependant, alors que d'autres éditeurs pourraient commencer par utiliser un sidecar et l'enrichir des capacités offertes par l'eBPF, Cilium mise sur une approche privilégiant l'eBPF. « S'ils peuvent prouver que l'eBPF peut tout faire à 100 %, cela changerait complètement la donne », a ajouté M. Mooter.
Autres apports de Cilium 1.12
En plus du dernier service mesh, Cilium 1.12 comprend également :
- Un contrôleur Kubernetes Ingress entièrement conforme, alimenté par Envoy et eBPF pour la sécurité et la visibilité ;
- Des améliorations de ClusterMesh, pour traiter les services fonctionnant sur plusieurs clusters comme un seul service global. Avec cette parenté de service, il est possible de configurer les services en désignant des points d'extrémité soit dans le cluster local ou soit dans le cluster distant ;
- Egress Gateway et support supplémentaire des charges de travail externes, pour transférer les connexions aux charges de travail externes et traditionnelles via des nœuds Gateway spécifiques, et les masquer avec des adresses IP prévisibles pour permettre l'intégration avec les pares-feux traditionnels qui nécessitent des adresses IP statiques ;
- Cilium Tetragon, pour détecter et répondre aux événements importants pour la sécurité, comme les événements d'exécution de processus, l'activité d'appel système et l'activité E/S, y compris l'accès au réseau et aux fichiers.