Istio

Une plate-forme ouverte pour connecter, surveiller et sécuriser les microservices.

Présentation

Istio est un "service mesh" (ou maillage de services) Open Source et indépendant qui offre toutes les fonctionnalités requises pour exécuter des architectures de microservices distribués. Pour répondre à l'intérêt croissant des organisations pour les plates-formes cloud, les développeurs doivent se tourner vers les microservices pour obtenir une portabilité maximale. Les opérateurs, quant à eux, doivent gérer des déploiements distribués à grande échelle, à la fois hybrides et multicloud. Istio simplifie la gestion des déploiements de microservices en offrant une méthode uniforme pour sécuriser, connecter et surveiller ces derniers.

Sécurité Istio

Simplifiez la gestion de la sécurité pour que vos développeurs aient plus de temps à consacrer à d'autres tâches importantes.

Surveillance Istio

Détectez et corrigez les problèmes de manière efficace et rapide grâce à une surveillance robuste et conviviale.

Connexion Istio

Istio simplifie la gestion du trafic à mesure que votre déploiement évolue.

Grâce à une meilleure visibilité sur nos applications, le temps nécessaire à la résolution des problèmes éventuels a été considérablement réduit. Avec Istio sur K8, nous sommes certains de pouvoir migrer en toute sécurité nos applications vers le cloud public tout en renforçant la fiabilité, la stabilité et les performances de notre plate-forme.

Russell Warman, responsable de l'infrastructure, Autotrader
Communications sécurisées entre les services

Sécurisation des communications entre les services

Istio gère et adapte l'authentification, l'autorisation et le chiffrement de la communication entre microservices. Grâce au canal de communication sécurisé sous-jacent fourni par Istio, les développeurs ont plus de temps pour se concentrer sur la sécurité au niveau des applications.

Communications entre les services

Sécurisation des communications

Istio améliore la sécurité des microservices et leur communication (que ce soit de service à service ou de l'utilisateur final au service), sans qu'il y ait besoin de modifier le code des services. Chaque service sera doté d'une identité forte basée sur son rôle pour assurer l'interopérabilité entre les clusters et les clouds.

Défense en profondeur

Défense en profondeur

Lorsque vous utilisez Istio avec des règles de réseau Kubernetes (ou d'infrastructure), la communication de pod à pod ou de service à service est sécurisée à la fois au niveau de l'application et du réseau. Istio fait partie de la stratégie de défense en profondeur de Google pour sécuriser les communications des microservices. Lorsque vous utilisez Istio dans Google Cloud, vous bénéficiez d'une infrastructure de Google vraiment sécurisée pour le déploiement de vos applications.

Sécurisation par défaut

Sécurisation par défaut

Avec peu ou pas de modifications apportées aux applications, Istio garantit que les communications de service sont sécurisées par défaut et que vous pouvez appliquer ces stratégies de manière cohérente à travers divers protocoles et environnements d'exécution.

Journalisation

Journalisation, surveillance et maintien de l'état opérationnel des services

Istio fournit des informations détaillées sur le déploiement de votre service mesh par le biais du traçage, de la surveillance et de la journalisation. Affichez des informations relatives aux performances de vos services et aux répercussions de ces performances sur les autres processus. Détectez et triez les problèmes de manière rapide et efficace.

Vue d'ensemble

Vue d'ensemble

Les tableaux de bord personnalisés d'Istio vous offrent un aperçu global du comportement de vos services, pour pouvoir détecter rapidement les problèmes et les trier efficacement.

Comprendre les services

Examen des performances des services

Les fonctionnalités de surveillance d'Istio vous permettent d'évaluer l'influence des performances des services, en amont et en aval. Vous pouvez ainsi configurer, surveiller et appliquer les objectifs de niveau de service plus efficacement.

Métriques

Des métriques adaptées à vos besoins

Obtenez des métriques et des traces venant de toutes les applications en cours d'exécution, sans que les développeurs aient besoin d'intervenir manuellement.

Gestion du trafic

Gestion du trafic et contrôle des règles

La gestion du trafic Istio vous permet de contrôler le flux du trafic et les appels d'API entre les services. Grâce à cette meilleure visibilité de votre trafic, vous pouvez détecter les problèmes avant qu'ils ne deviennent nuisibles. Vous pouvez ainsi améliorer la fiabilité des appels et renforcer votre réseau, même dans des conditions défavorables.

Configuration simplifiée des règles

Configuration simplifiée des règles

Istio vous permet de configurer des propriétés au niveau des services telles que les disjoncteurs, les délais avant expiration et les tentatives, ainsi que des tâches courantes de déploiement continu telles que les déploiements Canary, les tests A/B et les déploiements par étapes avec des répartitions du trafic basées sur les pourcentages.

Orientation du contenu

Orientation de votre contenu

C'est à vous de spécifier les règles à suivre pour le trafic. Vous pouvez donc router le trafic vers les versions de service indépendamment du nombre d'instances compatibles. Par exemple, vous avez la possibilité d'allouer cinq pour cent de l'intégralité du trafic vers une version Canary particulière, ou de router le trafic vers une version spécifique en fonction du contenu de la requête.

Reprise après échec

Reprise directe après échec

Robustesse de la reprise directe après échec : délais avant expiration, tentatives avec budgets de délai avant expiration et gigue variable, connexions et requêtes simultanées aux limites des services en amont, vérifications d'état actives et régulières pour chaque membre du pool d'équilibrage de charge, et vérifications d'état passives comme les disjoncteurs ultra-précis.

Fonctionnalités de sécurité d'Istio

Authentification forte des services

Istio Auth garantit que les services contenant des données sensibles sont uniquement accessibles à partir de clients autorisés et soumis à une forte authentification.

Règles d'authentification

Les règles de configuration d'Istio établissent l'authentification de la plate-forme côté serveur, mais pas côté client. Elles vous permettent donc de déterminer les exigences d'authentification pour les services.

Contrôle d'accès basé sur les rôles

Le contrôle d'accès basé sur les rôles d'Istio fournit un contrôle d'accès au niveau de l'espace de noms, du service et de la méthode pour les services d'Istio mesh. Il inclut une sémantique conviviale basée sur les rôles ainsi qu'une autorisation de service à service et une autorisation de l'utilisateur final au service. Il offre également un maximum de flexibilité concernant la prise en charge des propriétés personnalisées au sein des rôles et des liaisons de rôles.

Authentification TLS mutuelle

Istio améliore la sécurité des microservices et leur communication (que ce soit de service à service ou de l'utilisateur final au service), sans qu'il y ait besoin de modifier le code des services. Chaque service sera doté d'une identité forte basée sur son rôle pour assurer l'interopérabilité entre les clusters et les clouds.

Gestion des clés

Le système de gestion des clés d'Istio automatise la génération, la distribution, la rotation et la révocation des clés et des certificats.

Fonctionnalités de surveillance d'Istio

Abstraction du backend

Mixer est un composant d'Istio qui fournit des contrôles de règles et une collecte de télémétrie. Il isole les éléments restants d'Istio des détails de la mise en œuvre de backends d'infrastructure individuels.

Intermédiation

Mixer vous permet un contrôle précis de toutes les interactions entre les backends mesh et d'infrastructure.

Latence faible

Mixer fonctionne indépendamment, contrairement aux serveurs proxy side-car situés à proximité de chaque instance de service dans le réseau maillé et contraints à une consommation mesurée de la mémoire. Il peut ainsi utiliser des caches et des tampons de sortie plus grands, agissant comme un cache de deuxième niveau à haut degré d'évolutivité et de disponibilité pour les side-cars.

Haute fiabilité

Mixer fournit une haute disponibilité à chacune de ses instances. Ses caches et tampons locaux réduisent la latence et permettent de masquer les échecs au niveau du backend de l'infrastructure, même lorsqu'un backend ne répond plus.

Fonctionnalités de connexion d'Istio

Dissociation de la gestion du trafic et du scaling de l'infrastructure

Dissocier la gestion du trafic et le scaling d'infrastructure permet d'utiliser des fonctionnalités extérieures au code d'application, telles que l'acheminement dynamique des requêtes pour les tests A/B, les déploiements progressifs et les versions Canary. Cette dissociation permet également la reprise après échec en utilisant les délais avant expiration, les tentatives et les disjoncteurs, ainsi que l'injection de pannes permettant de tester la compatibilité des règles de reprise après échec au sein des services.

Injection de pannes

Dans la mesure où une mauvaise configuration des règles de reprise après échec peut entraîner une indisponibilité continue des services critiques au sein d'une application, il est primordial d'effectuer des tests de reprise après échec de bout en bout. Istio permet l'injection de pannes spécifiques au protocole dans le réseau, au lieu de tuer les pods. L'injection de pannes permet de retarder ou de corrompre les paquets au niveau de la couche TCP.

Équilibrage de charge

Istio accepte actuellement trois des modes d'équilibrage de charge compatibles avec Envoy : l'interrogation à répétition alternée (chaque hôte fonctionnel en amont est sélectionné à tour de rôle), le mode aléatoire (l'équilibreur de charge aléatoire sélectionne aléatoirement un hôte fonctionnel) et la moindre requête pondérée.

Il est devenu de plus en plus difficile de savoir qui exécute quels microservices, compte tenu de leur succès croissant et de leur adoption généralisée dans les charges de travail. En déployant Istio, nous avons immédiatement gagné une excellente visibilité sur nos services et obtenu des insights complets qui nous parviennent en temps réel et de manière totalement uniforme, quel que soit le langage dans lequel le service a été codé. En gagnant en cohérence et en visibilité, nous pouvons résoudre les problèmes plus rapidement et renforcer la stabilité de nos services.

Tim Kelton, cofondateur, Descartes Labs

Documentation

Istio et Compute Engine

Intégrez des VM Compute Engine à un service mesh Istio déployé sur Kubernetes Engine.

Dépôt Istio

Apportez votre contribution au codebase OSS afin d'améliorer Istio.

Ressources

Accédez à des tutoriels, guides de démarrage rapide et avis.

Télécharger la dernière version d'Istio

Guides de démarrage rapide d'Istio pour Kubernetes, Nomad, Consul et Eureka

Configurer Istio pour les services Google Cloud Endpoints

Déployer un exemple d'application pour en savoir plus sur le service mesh Istio

Se tenir informé des dernières fonctionnalités d'Istio

Informations détaillées sur les options de configuration et de ligne de commande

Intégrations

Assistance destinée aux entreprises pour Istio

Google Cloud offre une assistance d’entreprise pour Istio concernant les déploiements cloud sur site et les déploiements cloud non-GCP. Les niveaux d'assistance proposés sont variés. Les offres d'assistance comprennent des images certifiées par Google pour tester les configurations Kubernetes, l'installation de VM, la maintenance, etc. Des options supplémentaires incluent des services professionnels fournis par des experts Google Cloud.

Gestion d'API Apigee pour Istio

Quand les microservices ont besoin de communiquer vers l'extérieur avec des partenaires ou des clients, ou en interne avec d'autres groupes, ils deviennent des API. Google Cloud propose la gestion d'API Apigee pour Istio afin d'offrir une intégration native de la gestion d'API avec des microservices. Apigee permet aux organisations de gérer et surveiller en toute sécurité les API, qu'elles résident dans le cloud ou sur site.