Lancée en mai 2017 en bêta, Istio est désormais disponible depuis le 1er août 2018 en version finale 1.0. Cette mise à jour « prête pour la production » avait été annoncée la semaine dernière lors de l’événement Google Next organisé du 24 au 26 juillet à San Francisco. Istio est une « plate-forme ouverte permettant de connecter, gérer et sécuriser les microservices ». Ces services également connus sous la dénomination de services mesh permettent de gérer de manière unifiée les flux de trafic, l'application des politiques d'accès et l'agrégation des données de télémétrie entre microservices dans une console de gestion partagée, et ce, quel que soit l'environnement. Les conteneurs, devenus la norme en terme de déploiements dans le cloud, posent un nouveau défi aux développeurs, car ils leur imposent désormais d’orchestrer et de surveiller des ensembles de microservices à travers une architecture disparate. Avec Istio, Google et la communauté open source espèrent leur faciliter la tâche.
Lors de cette même conférence Google Cloud Next, Urs Holzle, vice-président senior de l’infrastructure technique de Google Cloud, a déclaré qu'Istio avait été développé et livré pour répondre à l'un des postes de coûts pesant de plus en plus sur l'entreprise : la complexité de l'administration dans les environnements hybrides. « Le projet open source Istio développé par Google étend Kubernetes à un niveau de services plus élevé », a-t-il déclaré. « Avec Istio, il est possible de parcourir, connecter et surveiller les services de manière holistique sur plusieurs sites depuis un seul endroit - sans avoir à modifier le code ». Google travaille sur ce projet avec IBM, Lyft, Pivotal, Cisco et Red Hat depuis l'an dernier. Istio peut être déployé sur Kubernetes et Nomad avec Consul et la plateforme devrait supporter Cloud Foundry et Apache Mesos dans un futur proche. Urs Holzle a également précisé que certains clients de la Google Cloud Platform (GCP), dont eBay et Auto Trader, utilisaient déjà Istio en production.
Les avantages d'Istio
Istio présente plusieurs avantages. La plateforme de Google permet aussi bien d'améliorer les performances que de simplifier grandement l’administration et la sécurité, cela en offrant de meilleures données de télémétrie aux microservices « La plate-forme de services cloud permet désormais de mieux contrôler le trafic grâce à une configuration dynamique des routes, de réaliser plus facilement les tests A/B et le « canary release » ». Ces fonctions sont rendues possibles grâce à Istio qui dissocie le flux de trafic de la mise à l'échelle de l'infrastructure, ce qui permet aux développeurs d’avoir un contrôle plus granulaire sur le trafic et les appels d’API.
En termes d'application des politiques, Istio permet aussi aux administrateurs d'appliquer les politiques organisationnelles dans tous les services, sans avoir à intervenir sur le code. Istio agrège également les données de télémétrie de tous les micrsoservices, quel que soit l'endroit où ils sont exécutés. Pour ce qui est de la simplification de la configuration et de la surveillance des services, M. Holzle a également insisté sur le fait que l’association de Istio et de Kubernetes permettait non seulement de gérer la mise en œuvre et le déploiement d'un service, mais de gérer aussi le service lui-même pendant son exécution. « Aujourd'hui, certains estiment qu’une stratégie cloud consiste uniquement à faire du levage et du déplacement de charges de travail existantes et à écrire du code applicatif pour de nouvelles applications cloud. Mais cette approche ne tient pas compte des nombreux avantages du cloud. Par contre, Istio fournit une plate-forme qui offre au personnel un modèle de service et de sécurité commun moins complexe sur le plan opérationnel et plus rapide en terme d’innovation ».
L’exemple d’Auto Trader
L'un des premiers clients d'Istio est le site britannique de petites annonces automobiles Auto Trader en pleine phase de migration dans un cloud public, un processus qui implique aussi bien le déploiement de machines virtuelles que la mise en œuvre de Kubernetes. « Le niveau de contrôle et de visibilité offert par Istio nous a permis de réduire considérablement les risques liés à ce travail ambitieux et, à plusieurs occasions, la plateforme nous a même permis de mettre le doigt sur des problèmes dont nous n’avions pas conscience jusque-là », a déclaré Karl Stoney, responsable de l'infrastructure de service d’Auto Trader à nos confrères de Computerworld UK par courriel.
Auto Trader est un grand supporter de l'open source, et un grand nombre d’ingénieurs du site contribuent régulièrement à la communauté. C'est cette communauté qui a orienté l’entreprise vers Istio. Plus spécifiquement, Istio a aidé les ingénieurs d'Auto Trader à mieux comprendre leurs applications une fois qu’elles étaient déployées. « Grâce aux mesures du niveau de service (temps de réponse en percentile, taille des évènements, taux de réussite, etc.), ils peuvent diagnostiquer les problèmes avant qu'ils n’affectent le client », a déclaré M. Stoney. « Ils ont accès de simples fonctions de commutation, par exemple revoir un problème de requête, faire du routage intelligent de trafic pour tester de nouvelles versions de leur application avec un sous-ensemble d'utilisateurs, fonctions qu’ils devaient auparavant écrire, construire et déployer eux-mêmes.
Et pour quelle raison Auto Trader a-t-il opté pour Istio pour son service mesh ? « La principale raison pour laquelle nous avons choisi Istio, c’est que par rapport à l’expérience que nous avons avec le fournisseur Google (GKE/GCP) pour ce qui est de la sécurité et du support, plus sa contribution et son implication au monde de l’open source (Kubernetes), nous pensions que nous aurions du mal à trouver un équivalent ailleurs », a déclaré M. Stoney. « Nous travaillons avec l'équipe d'Istio depuis la version 0.3. C’est grâce aussi à cette relation de travail que nous avons pu réussir notre mise en œuvre ».