GNU/Linux >> Tutoriels Linux >  >> Cent OS

Qu'est-ce qu'Istio ? - Architecture, fonctionnalités, avantages et défis

Présentation

La sécurisation et la surveillance des charges de travail sont la priorité absolue lorsque vous travaillez avec des microservices. La surveillance est une tâche difficile lorsqu'elle est effectuée manuellement. Les développeurs doivent configurer chaque service pour garantir une communication sécurisée au sein du système. De plus, ils doivent surveiller les échanges, ce qui prend du temps. Temps qui aurait pu être consacré au développement de l'application elle-même.

Au lieu de cela, il existe une solution beaucoup plus simple :utiliser une plate-forme de maillage de services telle que Istio .

Dans ce didacticiel, vous découvrirez Istio, son architecture et son utilisation.

Qu'est-ce qu'Istio ? – Définition du maillage de services Istio

Istio est une implémentation de maillage de services open source qui gère la communication et le partage de données entre les microservices. La plate-forme est ajoutée pour réduire la complexité de la gestion des services réseau.

Une fois installé, il injecte des proxys dans un pod Kubernetes, à côté du conteneur d'applications. Chaque proxy est configuré pour intercepter les requêtes et acheminer le trafic vers le service approprié tout en appliquant les politiques.

Pourquoi avoir besoin d'un maillage de services ?

En passant d'une architecture monolithique à une architecture de microservices, les développeurs ont la possibilité de créer des applications hautement flexibles, résilientes et évolutives dans des cycles de vie de développement logiciel beaucoup plus rapides. Bien que l'architecture de microservice présente de nombreux avantages, l'évolution du développement d'applications pose également certains défis.

Comme l'architecture se compose de nombreux services individuels travaillant ensemble, il est important d'assurer une communication transparente. Ces composants autonomes communiquent entre eux via des API. Cependant, la gestion du flux de trafic et des appels d'API nécessite beaucoup de temps et d'efforts de la part de l'équipe de développement.

Il y avait un besoin pour une solution tierce permettant aux membres de l'équipe de se concentrer sur le développement de la logique de service au lieu de la logique de réseau. Par conséquent, les maillages de services comme Istio ont été conçus pour gérer la couche réseau de la communication de service à service.

Architecture Istio

L'architecture Istio comprend deux composants principaux :

  • Plan de contrôle. Ce composant est utilisé pour configurer et gérer les proxys dans le plan de données.
  • Plan de données. Le deuxième élément d'Istio inclut tous les proxys side-car insérés dans les pods.

Plan de contrôle

Avant la version 1.5, le plan de contrôle était un groupe de différents composants - Pilot, Citadel et Galley. Istio 1.5 introduit Istiod , un plan de contrôle qui combinait les composants mentionnés ci-dessus en un seul. Cela simplifie la configuration et l'exploitation du service mesh.

Les services Istio dans le plan de contrôle incluent :

  • Pilote utilise l'API Envoy pour communiquer avec les side-cars Envoy. Il est responsable de la gestion du trafic, du routage et de la découverte de services.
  • Citadelle fournit une communication sécurisée entre les services en gérant l'authentification des utilisateurs, les certificats et la gestion des informations d'identification.
  • Cuisine est responsable de la gestion, de l'ingestion, de la distribution et du traitement de la configuration.

Plan de données

Le plan de données se compose de Envoy proxy déployés dans les pods en tant que side-cars. Ils interagissent avec et gèrent le trafic pour tous les services du système. Cela inclut le contrôle de toutes les communications réseau entre les microservices.

Puisqu'ils sont ajoutés en tant que side-cars, il n'est pas nécessaire de reconcevoir l'architecture de l'application pour implémenter les proxys.

Les proxys contrôlent le trafic en spécifiant des règles de routage (pour HTTP, gRPC, TCP) et en appliquant TLS et le chiffrement du trafic.

Tout le trafic passe par les proxys Envoy. Par conséquent, ces composants collectent de grandes quantités de données et fournissent des informations précieuses sur le trafic de votre entreprise.

Les proxys Envoy fournissent :

  • Découverte dynamique des services
  • Équilibrage de charge
  • Vérifications de l'état
  • Résiliation TLS
  • Proxies HTTP/2 et gRPC
  • Disjoncteurs
  • Déploiements par étapes avec répartition du trafic basée sur un pourcentage
  • Injection de fautes
  • Statistiques riches

Fonctionnalités d'Istio

Les fonctionnalités les plus importantes de la plateforme sont :

1. Contrôle du trafic
La principale caractéristique d'Istio est son rôle dans la gestion du trafic. Il contrôle le flux de trafic entre les services en implémentant des règles de routage via ses proxys Envoy. En déployant des proxys, Istio dirige le trafic et les appels d'API sans apporter de modifications au service lui-même. Cela permet aux utilisateurs d'effectuer des déploiements Canary, des déploiements par étapes et des tests A/B.

2. Observabilité
La plate-forme contrôle et observe tout le trafic entrant et sortant au sein de la couche réseau. Par conséquent, il collecte de grandes quantités de données qui fournissent des informations utiles pour le développement futur.

3. Sécurité
Tandis que les développeurs sécurisent l'application contre les menaces et les piratages potentiels, Istio autorise, authentifie et crypte toutes les communications internes. Les pods et les services communiquent entre eux et transfèrent des données conformément aux règles d'Istio.

Avantages et inconvénients d'Istio

Pour vous aider à décider d'implémenter ou non Istio dans l'architecture de microservices, jetez un œil à certains de ses avantages et inconvénients.

Avantages

  • Donne un aperçu des problèmes de performances du réseau
  • Sécurise la communication de service à service et de pod à pod.
  • Mette en œuvre des règles et des politiques de routage qui gèrent la communication et le transfert de données
  • Permet les déploiements Canary et les tests A/B

Inconvénients

  • Istio prend du temps à configurer et à mettre en œuvre.
  • De plus, il est difficile de configurer les fichiers .yaml pour garantir une configuration correcte et une communication chiffrée.

Cent OS
  1. Quelles fonctionnalités sont dans Zsh et manquantes dans Bash, ou vice versa ?

  2. Quels avantages verrais-je passer de la version 14.04 à la version 15.04 et quelles sont les mises en garde ? ?

  3. Pourquoi Deis et qu'est-ce que c'est ?

  4. CentOS / RHEL :bases d'anacron (Qu'est-ce qu'anacron et comment le configurer)

  5. Que sont les utilisateurs SELinux et comment mapper les utilisateurs Linux aux utilisateurs SELinux

Fonctionnalités et date de sortie d'Ubuntu 22.04

Nouveautés de Fedora 25 Workstation

Date de sortie et fonctionnalités d'Ubuntu 17.04

Sortie d'Ubuntu 18.10, fonctionnalités et plus

Qu'est-ce que l'automatisation et la gestion de la configuration avec CHEF - Partie 1

Qu'est-ce qu'EasyApache et comment l'utiliser ?