Qu'est-ce qu'un maillage de service ?

Publié le 21 novembre 2024
Fond abstrait bleu avec des lignes spirales blanches courbes formant un vortex autour d’une sphère bleue unie
By Mesh Flinders and Ian Smalley

Définition du maillage de service

Un maillage de service est une couche logicielle dans une architecture d’application moderne qui gère la connectivité entre les microservices, permettant à l’application de fonctionner. Les maillages de service offrent de nombreuses fonctionnalités critiques, telles que la communication de service à service, la reconnaissance de service, l’équilibrage de charge et l’authentification.

L’un des plus grands défis auxquels les développeurs d’application sont confrontés dans l’environnement (informatique) moderne est l’évolutivité. À mesure que le nombre d’utilisateurs d’applications augmente, il devient difficile pour les ingénieurs en DevOps (la méthodologie de développement logiciel qui accélère la livraison d’applications grâce à l’automatisation) de surveiller les performances des services. Un maillage de service fournit des fonctionnalités principales qui permettent de surveiller et de gérer des services critiques tels que la journalisation, le traçage et le contrôle du trafic.

Les applications étant devenues essentielles à la transformation numérique, l’importance des maillages de service s’est accrue. Aujourd’hui, ils sont les principaux catalyseurs de certaines des technologies d’application les plus avancées disponibles, notamment les applications cloud natives, les microservices et les conteneurs.

Selon Forbes, en 2022, 70 % des entreprises mettaient déjà en place un maillage de services et 19 % y pensaient.1

Que sont les microservices ?

Les microservices, également connus sous le nom d’approche architecturale de microservices, est une approche architecturale cloud native dans laquelle les applications sont construites à partir de nombreux composants ou services indépendants et plus petits. Cette approche permet aux développeurs de mettre à jour le code plus facilement et d’ajouter ou de supprimer des caractéristiques et des fonctionnalités sans affecter le reste de l’application, ce qui se traduit par une évolutivité élevée.

Les maillages de service sont critiques pour l’architecture des microservices. Ils fournissent une couche d’infrastructure hautement configurable où tous les services de l’application peuvent se connecter et échanger des informations. En plus d’un maillage de service, l’architecture de microservices est également utilisée avec la technologie de conteneur et sa plateforme la plus populaire, Kubernetes.

IBM DevOps

Qu’est-ce que le DevOps ?

Andrea Crawford présente le DevOps, démontre sa valeur, et explique de quelle façon les pratiques et les outils DevOps vous aident à faire progresser vos applications dans l’ensemble du pipeline de livraison logiciel, de l’idéation à la production. Dirigé par des leaders d’opinion d’IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires pour donner la priorité aux investissements dans l’IA capables de stimuler la croissance.

Présentation des conteneurs et de Kubernetes ?

La technologie connue sous le nom de conteneurs, ainsi que l’une de ses plateformes d’orchestration de conteneurs les plus populaires, Kubernetes, sont devenues indispensables à la fonctionnalité de maillage de service en raison de la façon dont elle permet aux développeurs de gérer des applications complexes basées sur des microservices.

Les conteneurs sont des unités logicielles exécutables qui regroupent le code d’une application avec ses bibliothèques et dépendances, afin qu’il puisse s’exécuter dans n’importe quel environnement informatique. Avec la prolifération des conteneurs dans l’architecture d’application moderne, la gestion de grands groupes de conteneurs est rapidement devenue un défi.

Découvrez Kubernetes (également appelé k8s ou Kube), une plateforme d’orchestration de conteneurs devenue l’une des solutions d’orchestration les plus populaires disponibles sur le marché aujourd’hui. Les clusters Kubernetes (collections de nœuds qui représentent des machines physiques et machines virtuelles (VM)) sont gérés sur le plan de contrôle.

Un autre aspect important de la fonctionnalité du maillage de service est la manière dont est géré l’accès aux services au sein d’un cluster spécifique, un processus connu sous le nom d’entrée.

Comment fonctionne un maillage de service ?

Les applications les plus populaires d’aujourd’hui exigent que de nombreuses charges de travail ou tâches et processus de calcul soient déployés en même temps. Une architecture de microservices permet aux développeurs de créer chaque application comme un ensemble de petits microservices indépendants plus faciles à gérer.

Cependant, pour que le code d’application fonctionne, les microservices doivent communiquer rapidement et avec précision : c’est là que l’architecture de maillage de service est critique. Les maillages de service sont conçus de manière à permettre aux développeurs de mieux contrôler la communication entre services au sein d’une application.

Au niveau le plus fondamental, les maillages de service s’appuient sur un type de communication connu sous le nom de communication basée sur un proxy pour améliorer la gestion et le contrôle des applications basées sur les microservices. Les fonctionnalités basées sur un proxy comprennent des serveurs proxy (également appelés proxys) qui fonctionnent comme des intermédiaires entre le microservice et le réseau d’une entreprise, permettant au trafic d’être acheminé vers et depuis un service par l’intermédiaire de proxys. Cette capacité, connue sous le nom de communication proxy réseau, est critique pour maintenir la gestion, l’observabilité et la sécurité de nombreuses applications.

En plus des proxys, une architecture maillage de service s’appuie sur deux composants primaires qui lui permettent de fonctionner : le plan de contrôle et le plan de données.

Plan de contrôle

Le plan de contrôle est la partie du réseau informatique qui contrôle la façon dont les données sont acheminées entre les utilisateurs et les appareils (également appelées nœuds). Les plans de contrôle suivent des règles de routage (ou des protocoles) basés sur des algorithmes qui déterminent le meilleur itinéraire pour que les données transitent sur un réseau.

Dans un maillage de service, le plan de contrôle comprend des proxys spécialement conçus, appelés proxys sidecar, qui font abstraction de certaines fonctionnalités, telles que la surveillance et la sécurité, pour les rendre plus efficaces. Lorsqu’un service doit communiquer avec un autre service dans un maillage de service, le proxy sidecar intercepte la demande et crée un canal sécurisé et chiffré pour qu’elle puisse circuler.

Plan de données

Le plan de données, également appelé plan de réacheminement, permet d’envoyer des données sur le réseau via des périphériques tels que des routeurs et des commutateurs. Les plans de données utilisent des proxies sidecar pour gérer les messages entre les services et les fonctionnalités importantes comme la rupture de circuit et les relances de requêtes. Le plan de données est également l’endroit où sont exécutées des fonctionnalités clés telles que l’équilibrage de charge, la découverte de services et le routage.

Maillage de service et passerelles d’API

Outre le plan de données et le plan de contrôle, l’interface de protocole d’application (API) est un autre élément important de l’architecture des microservices, étroitement lié à la fonctionnalité du maillage de service.

Les API sont des protocoles qui permettent aux applications logicielles de communiquer et d’échanger des données. Les passerelles d’API sont des outils qui agissent comme intermédiaires entre les clients API, par exemple l’API REST qui aide les développeurs à créer des applications, et les services backend situés sur un serveur.

Les passerelles d’API et les maillages de service sont similaires en ce sens qu’ils permettent tous deux un développement d’application plus efficace. Cependant, alors qu’une passerelles d’API contrôle l’accès aux API, un maillage de service connecte des microservices à l’intérieur de l’application. Les maillages de service et les passerelles d’API sont fréquemment déployés ensemble pour accroître la flexibilité et l’observabilité dans un écosystème de développement d’application.

Avantages d’un maillage de service

Les maillages de services, et l’architecture de microservices qu’ils rendent possible, offrent de nombreux avantages critiques à une entreprise. Voici quelques-uns des plus courants :

Observabilité

Un maillage de service offre une observabilité intégrée, une meilleure compréhension de l’état d’un système complexe, pour une architecture complète de microservices. Cela permet aux développeurs de surveiller des indicateurs importants tels que les dépendances, la latence et les taux d’erreur, essentiels pour comprendre le fonctionnement d’une application.

L’observabilité aide également à la résolution des problèmes, à l’optimisation des performances, à la télémétrie (enregistrement du comportement du système) et au débogage en donnant aux développeurs une vue complète et dégagée du fonctionnement interne d’un écosystème de microservices.

Contrôle

Pour que les applications fonctionnent correctement, les développeurs et les administrateurs d’application doivent contrôler la façon dont les services communiquent entre eux au sein de l’application. Un maillage de service augmente les capacités de gouvernance pour les entreprises qui déployer des architectures de microservices, par exemple, la manière dont les équipes appliquent les exigences de sécurité et de conformité dans des secteurs fortement réglementés.

En outre, les maillages de service fournissent des couches d’infrastructure dédiées, spécifiquement pour répondre aux exigences de la communication de service à service avec des applications distribuées, c’est-à-dire des applications qui s’exécutent sur plusieurs ordinateurs connectés à la fois.

Sécurité

Les maillages de service permettent de garantir une communication sécurisée entre les services grâce à des fonctionnalités telles que le chiffrement et l’authentification mTLS (Mutual Transport Layer Security). L’authentification mTLS permet de garantir que le trafic dans une application est sécurisé et fiable dans les deux directions entre le client et le serveur.

mTLS assure également la confidentialité des données en chiffrant les informations envoyées lors de la communication de service à service. Elle permet aux administrateurs d’appliquer des politiques d’autorisation telles que l’accès à des points de terminaison spécifiques, un processus connu sous le nom de sécurité des points de terminaison.

Découverte de services

Les maillages de service ont une capacité connue sous le nom de reconnaissance automatisée de service qui permet de réduire la charge de travail de gestion des points de terminaison, c’est-à-dire l’emplacement dans le maillage de service où un microservice spécifique peut être atteint. Un registre de services permet aux services de se trouver et de communiquer automatiquement entre eux, quel que soit l’endroit où ils se trouvent, ce qui permet aux développeurs de déployer de nouveaux services rapidement et facilement.

Équilibrage de charge

L’équilibrage de charge, qui consiste à répartir le trafic réseau entre plusieurs serveurs pour optimiser les performances des applications, est une capacité clé des maillages de service. À l’aide d’algorithmes, le maillage de service permet d’équilibrer les charges de travail entre les nœuds, d’optimiser les ressources et d’assurer, de manière générale, la haute disponibilité d’une application.

Gestion et fractionnement du trafic

Les maillages de service fournissent des fonctionnalités avancées de gestion et de répartition du trafic afin d’optimiser le flux d’informations et de ressources sur un réseau. Bien que la gestion du trafic et la répartition du trafic soient toutes deux utilisées pour contrôler le flux d’informations sur un réseau, elles présentent une différence importante qui mérite d’être soulignée. La gestion du trafic se concentre sur les changements systémiques à long terme de l’infrastructure afin d’améliorer le flux du trafic d’informations, tandis que la répartition du trafic implique la distribution basée sur le poids du trafic entre les backends ou les versions de service.

Les maillages de service fournissent un contrôle précis et très spécifique du routage et du comportement du trafic, permettant ainsi des transitions plus fluides lorsqu’une application est mise à jour vers une version logicielle plus récente. Par exemple, dans le cadre du déploiement Canary, très populaire, une nouvelle version d’une application n’est diffusée qu’à un petit groupe d’utilisateurs afin de tester les fonctionnalités et les performances avant d’être mise à la disposition de tous les autres utilisateurs.

Choisir la bonne solution de maillage de service

Le marché mondial des fournisseurs de réseaux de services est déjà solide et en pleine croissance. Selon une enquête récente, elle était évaluée à 0,22 milliard de dollars en 2023 et devrait atteindre 5,05 milliards de dollars d’ici 2032, soit un taux de croissance annuel composé (TCAC) de 41,3 %.2

Dans un secteur qui se développe à un rythme aussi rapide, le choix de la bonne solution de maillage de service peut s’avérer difficile. Parmi les facteurs clés à prendre en compte figurent le coût, la facilité de mise en œuvre, la compatibilité avec les technologies existantes, la sécurité, la performance et le support.

Voici les cinq solutions de maillage de service les plus populaires et un bref aperçu de ce qui les rend uniques.

Istio

Le maillage de service le plus populaire est Istio. Son large éventail de fonctionnalités lui permet d’être à la fois hautement adaptatif et bien adapté aux charges de travail de l’entreprise. Istio est bien connu pour ses capacités avancées de gestion du trafic, ses fonctionnalités de sécurité et son extensibilité, qui sont améliorées par son écosystème large de contributeurs.

Comme d’autres offres de maillage de service, Istio est un projet open source, ce qui signifie qu’il a été développé et maintenu dans le cadre d’une collaboration ouverte et mis à la disposition de tous. Il fonctionne bien avec Kubernetes et de nombreuses autres technologies adjacentes au maillage de service.

Linkerd

Plus léger et plus direct que Istio, Linkerd est une solution de maillage de service simple qui améliore les performances tout en maintenant une faible latence. Linkerd offre toutes les fonctionnalités de base que les entreprises attendent d’un maillage de service, notamment l’équilibrage de charge, la découverte de services, le chiffrement, etc. Comme Istio, Linkerd est en open source.  

Maillage de service NGINX

NGINX est plus complet que la plupart des autres réseaux de services. Il fonctionne à la fois comme un serveur Web et comme un proxy inverse, ce qui signifie qu’il peut offrir une gamme plus large de protocoles que d’autres mailles de service. NGINX a été conçu pour offrir des performances et une stabilité maximales et est utilisé par de nombreux sites Web à fort trafic. Comme Linkerd, Istio et d’autres solutions de maillage de service, il est open source.

Consul

Créé par la célèbre société d’infrastructure basée sur le cloud HashiCorp, Consul est un maillage de service multicloud qui offre plusieurs des fonctionnalités que les autres maillages de service populaires. Consul est l’une des solutions de maillage de service les plus flexibles disponibles et peut être utilisée sur de nombreux systèmes d’exploitation (OS), notamment Windows, Linux, macOS, FreeBSD et Solaris. Consul est également open source et est surtout connu pour son plug-in Prometheus qui améliore les capacités de surveillance.

Maillage d’applications AWS

Conçu spécifiquement pour être utilisé avec les déploiements cloud Amazon Web Services (AWS), le maillage d’applications AWS est un maillage de services qui offre plusieurs des fonctionnalités de Linkerd, Istio et autres, notamment une sécurité renforcée, une gestion du trafic et une observabilité. Cependant, AWS n’est pas flexible et n’est considéré comme une bonne solution que pour les entreprises qui sont déjà intégrées dans l’architecture AWS.

Auteurs

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Solutions connexes
IBM Instana Observability

Exploitez le pouvoir de l’IA et de l’automatisation pour résoudre de manière proactive les problèmes de la pile d’applications.

Découvrir IBM Instana Observability
Solutions DevOps

Utilisez les logiciels et outils DevOps pour construire, déployer et gérer des applications cloud natives sur plusieurs appareils et environnements.

Découvrir les solutions DevOps
Services de conseil en cloud

Renforcez l’agilité et la croissance de votre entreprise. Modernisez en continu vos applications sur n’importe quelle plateforme grâce à nos services de conseil cloud.

Découvrir les services de conseil cloud
Passer à l’étape suivante

De la détection proactive des incidents avec IBM Instana aux informations en temps réel sur l’ensemble de votre pile, garantissez la fiabilité de vos applications cloud-native.

  1. Découvrir IBM Instana
  2. Découvrir les solutions DevOps
Notes de bas de page

Service Mesh As The Bridge To App Modernization, Forbes, mars 2023

2 Service Mesh Market Report, Business Research Insights, octobre 2024