Mavo : un nouveau langage simple pour le Web
• Renforcement des règles. Applique des règles organisationnelles pour l’interaction entre les services, garantit que les règles d’accès sont renforcées et que les ressources sont distribuées de manière équitable pour les consommateurs. Les changements de stratégies sont réalisées par la configuration du mesh, pas par modification du code applicatif. • Identité des services et sécurité. Fournit des services sur le réseau mesh avec une identité vérifiable et procure la capacité de protéger le trafic du service lorsqu’il circule sur les réseaux manageables à différents degrés. En plus de ces comportements, Istio est conçu pour être extensible afin de pouvoir satisfaire aux divers besoins en terme de déploiement : • Support de plate- forme. Istio est conçu pour s’exécuter dans des environnements variés incluant ceux portant sur le Cloud tels que Kubernetes ou Mesos. • Intégration et personnalisation. Le composant chargé de faire appliquer les règles peut être étendu et personnalisé pour s’intégrer avec des solutions existantes pour des ACL, la connexion, le monitoring, les quotas, l’audit et bien d’autres encore. Ces fonctionnalités diminuent de façon drastique le couplage entre le code applicatif, la plate- forme sous- jacente et la stratégie. Cette réduction du couplage ne sert pas seulement à rendre les services plus faciles à implémenter, mais facilite aussi le travail des opérateurs pour faire migrer les déploiements d’application entre les environnements ou vers de nouveaux plans de stratégies. Le résultat qui en découle est que les applications deviennent intrinsèquement plus faciles à porter.
Architecture
Un service mesh Istio est divisé de manière logique en un plan de données ( data plane) et un plan de contrôle ( control plane). • Le plan de données ( data plane) est composé d’un ensemble de proxies intelligents ( Envoy) déployés comme des sidecars et assurant la négociation et le contrôle de toutes les communications réseau entre les microservices. • Le plan de contrôle est responsable de la gestion et de la configuration des proxies pour router le trafic, comme la mise en application des stratégies à l’exécution.
Envoy
Istio utilise une version étendue du proxy Envoy, un proxy développé en C++ offrant des performances élevées, pour servir d’intermédiaire entre toutes les communications réseau, entrantes et sortantes pour tous les services du mesh. Istio a un effet de levier sur de nombreuses caractéristiques intégrées d’Envoy telles que la découverte de service dynamique, l’équilibrage de charge, la terminaison TLS, la procuration HTTP/ 2 et gRPC, les interruptions de circuit, les contrôles de santé, les sorties scénarisées avec division du trafic basée sur le pourcentage d’occupation du réseau, la tolérance de panne et des métriques détaillés. Envoy est déployé en proxy s idecar pour le ser vice concerné dans la même base Kubernetes. Cela permet à Istio d’extraire de nombreuses informations sur le comportement du trafic, comme les attributs. Ceux- ci peuvent à leur tour être employés dans Mixer pour appliquer les décisions stratégiques et être envoyés aux systèmes monitorés afin de fournir des informations sur le comportement de l’ensemble du mesh. Le modèle de proxy sidecar vous permet également d’ajouter les fonctionnalités offertes par Istio à un déploiement existant toujours sans avoir à réarchitecturer ou réécrire le code.
Mixer
Mixer est un composant indépendant de la plate- forme responsable de l’application du contrôle d’accès et de l’utilisation des stratégies à travers
le mesh de services. Il gère aussi la collecte de données télémétriques en provenance du proxy Envoy et d’autres services. Le proxy extrait les attributs de niveau requête qui sont envoyés à Mixer afin d’être évalués. Mixer inclut un modèle de plugin flexible lui permettant de s’interfacer avec une grande variété d’environnements d’hôtes ( machines) et d’arrière- plan d’infrastructure, en faisant abstraction du proxy Envoy et des services gérés par Istio à partir de ces éléments.
Pilot
Pilot fournit une découverte de services pour les proxy de type sidecar Envoy, les fonctionnalités de gestion de trafic pour le routage intelligent – le testing A/ B, le déploiement de canaries… – et la capacité de résistance – timeout, reconnexion, coupe- circuits. Il convertit des règles de routage de haut niveau contrôlant le comportement du trafic en configurations spécifiques pour Envoy et il les propage aux sidecars au cours de l’exécution. Pilot fait abstraction des mécanismes de découverte de services spécifiques à la plateforme et les synthétise dans un format standard compréhensible par tout sidecar conforme aux API de plan de données d’Envoy. Cette diminution du couplage permet à Istio de s’exécuter sur des environnements nombreux et variés ( Kubernetes, Consul/ Nomad) tout en maintenant la même interface opérationnelle pour la gestion du trafic.
Istio- Auth
I st io-Auth procure une authentification forte de type service- à- service et pour utilisateur final utilisant un protocole TLS ( Transport Layer Security) mutuel, avec une gestion intégrée de l’identité et des droits. Il peut être utilisé pour optimiser les communications non cryptées dans le mesh de services et fournir aux opérateurs la capacité d’améliorer les stratégies basées sur l’identité de service plutôt que sur les contrôles réseau. Les futures releases d’Istio ajouteront un contrôle d’accès plus fin et la possibilité d’auditer le contrôle et le monitoring de l’accès aux services, aux API ou aux ressources en employant une grande variété de mécanismes de contrôle d’accès, incluant les attributs et le contrôle d’accès basé sur les rôles. ❍