Istio est un service mesh qui permet la connexion de micro services. Istio est développé par Google, IBM et Lyft. Il est open source et est souvent utilisé avec Kubernetes même si ce n’est pas une obligation.

En plus d’offrir des capacités de proxy, Istio offre les fonctionnalités suivantes :

Découverte de service (Service Discovery)

Dans un cluster Kubernetes, si un micro-service doit communiquer avec un autre micro-service, il est nécessaire qu’il connaisse l’adresse IP. Dans un contexte de couplage fort, l’adresse IP est statique.

Dans un contexte de couplage faible, les micro-services ne connaissent pas les adresses IP des autres services. Les services ont des noms et ils peuvent être trouvés à travers une sorte de DNS interne. C’est l’un des rôles d’Istio.

Plus précisément, la connexion n’est pas faite directement, mais par l’intermédiaire d’un proxy.

Disjoncteur (Circuit Breaker)

Istio propose un disjoncteur. C’est une caractéristique importante pour créer des applications de micro-services résilientes.

Cela permet d’éviter les pannes en cascade et d’écrire des applications qui limitent l’impact d’une panne, des pics de latence et d’autres effets indésirables liés au réseau.

Traces distribuées

Afin de suivre le comportement d’une requête dans le service mesh, il est important d’avoir un outil de traces distribuées. Istio le propose. Cela permet, par exemple, de mieux comprendre la latence d’une requête et de faciliter le débogage.

Déploiements en mode Canary

Le pattern du canary release est une pratique qui permet la mise en production d’une nouvelle version de l’application mais dont l’utilisation est limitée à une petite partie de la population des utilisateurs. Les autres utilisateurs continuent d’utiliser la version précédente.

Ceci permet de valider si la nouvelle version n’apporte pas de régression. Ce principe est largement utilisé pour faire de l’AB testing.

Le pattern canary release est une apport important d’Istio à Kubernetes.

Sécurité

Comme la communication entre les services se fait par proxy, Istio a la possibilité de contrôler la sécurité de la communication. Istio offre donc des services de chiffrement, d’authentification, d’autorisation et d’audit.

Les composants d’Istio

Istio comprend les composants Istio suivants :