Maillage de service : une méthode incontournable !

5 min
27
0
0
Publié le

Un maillage de services ou service mesh représente une couche d’infrastructure dédiée qui gère la communication de service à service sur le réseau. Cette méthode est relativement nouvelle dans l’IT. Les services mesh les plus populaires : Linkerd et Istio ont été lancés « seulement » en 2017. Leurs fonctionnements et avantages ne sont donc pas toujours très clairs pour les développeurs et professionnels de l’IT. Pourtant, bien utilisés, ces maillages de service permettent d’ajouter des fonctionnalités d’observabilité, de sécurité et de fiabilité aux applications. Ces outils sont aussi particulièrement efficaces dans les applications « cloud native ». Découvrez comment fonctionne un service mesh et surtout pourquoi cette technologie est indispensable dans vos projets !

Qu’est-ce qu’un service mesh ?

L’architecture d’un maillage de service 

Un maillage de service est une méthode permettant de contrôler la manière dont les différents composants d’une application partagent des données entre eux. Le service mesh prend la forme d’une couche d’infrastructure dédiée, incluse directement dans l’application. 

Cette architecture de maillage utilise ensuite des instances proxy appelées side-car pour acheminer les requêtes entre les différents microservices.

Le terme side-car vient du fait que les proxys s’exécutent à côté de chaque service (ou conteneur d’application, machine virtuelle, pod kubernetes, etc.), et non directement à l’intérieur. Les proxys side-car forment un réseau maillé de conteneurs et/ou de microservices. 

Pour prendre un exemple concret, sur un site d’e-commerce, les utilisateurs doivent s’identifier avant de réaliser un achat. Ce fonctionnement repose le plus souvent sur plusieurs microservices pour gérer l’authentification, les modes de paiement ou encore les suggestions d’articles basés sur sa navigation. Le service mesh peut ici intervenir pour créer un canal de communication entre ces différents microservices. L’objectif est de simplifier les échanges entre les composants tout en améliorant la sécurité, l’accessibilité et en renforçant la résilience et la robustesse des architectures microservices.  

Service mesh et microservices

Les applications modernes abandonnent souvent l’approche monolithique pour privilégier les  architectures microservices où les composants échangent des données entre eux. Chaque fonctionnalité d’une application repose ainsi sur des microservices créés et gérés séparément. Grâce à ce fonctionnement, la défaillance d’un microservice n’entraîne pas l’arrêt total de l’application. 

Cependant, avec l’essor du big data, la transformation digitale et la complexification des applications, l’architecture microservice peut rencontrer des limites. En reprenant l’exemple du site e-commerce, un microservice gérant les bases de données et l’état du stock peut rapidement se retrouver surchargé de demandes si le site a beaucoup de trafic. À ce niveau, le service Mesh apporte un avantage majeur en optimisant le cheminement des requêtes d’un service au suivant. Et ce n’est pas le seul atout du maillage de services.

Les principaux avantages d’un maillage de services 

L’amélioration des communications entre les microservices

La communication est le fondement des architectures microservices. Sa logique peut être codée directement au niveau du service, sans couche de maillage. Mais, au fur et à mesure que, les communications se compliquent, le service mesh devient un atout grâce à ses fonctionnalités :

  • de découverte de services ;

  • d’équilibrage de charge avec quota et allocation de ressources ;

  • de chiffrement, authentification TLS et contrôles d’accès supplémentaires ;

  • de récupération après panne avec notamment une redirection des demandes sans transiter par les services défaillants ; 

  • de statistiques de performance sur chacun des aspects de la communication entre les services. 

Pour les applications cloud-native (développées de base avec une architecture de microservices), cette couche de maillage offre la possibilité de regrouper un grand nombre de services distincts dans une application séparée.

Une meilleure disponibilité 

Les microservices communiquent entre eux via des API (interfaces de communication) qui favorisent la haute disponibilité des applications. Cependant, la gestion de cette communication peut rapidement devenir complexe.

Le service mesh va simplifier cette gestion et améliorer la disponibilité grâce à la mise en place d’un couplage « lâche » entre les services. Ces derniers sont alors plus autonomes et il est plus simple de les modifier et de les faire évoluer sans impacter le réseau. Avec les services mesh, les développeurs n’ont plus besoin de mettre à jour la passerelle API chaque fois qu’un microservice est supprimé, modifié ou ajouté.

Le maillage de services offre généralement une flexibilité et une évolutivité dans la gestion du réseau qui surpassent les capacités des API traditionnelles. Il permet notamment de déplacer le microservice d’un cluster (ou nœud) à un autre sans modifier le code ou de reconfigurer l’application.

Des temps de développement réduits

L’utilisation d’un service mesh permet aux développeurs de se concentrer sur les objectifs de l’entreprise. La communication entre le proxy microservice et le service mesh étant toujours au-dessus des protocoles standard (HTTP1.x/ 2.x, etc.), les développeurs peuvent utiliser n’importe quelle technologie pour concevoir des services individuels. Ils ont moins de temps à passer sur la création d’une logique de communication entre chaque microservice. Grâce aux outils de statistiques, il leur est également plus facile :

  • de diagnostiquer rapidement des problèmes de communication ;

  • d’améliorer l’efficacité et la fiabilité des requêtes de service ;

  • d’étendre et faire évoluer leurs applications ;

  • de concevoir et maintenir des applications cloud natives.

Ces avantages peuvent encore être améliorés par des frameworks d’automatisation comme le Automation Mesh de Red Hat Ansible Automation Platform. Ce cadre de développement offre une couche de communication flexible et multidirectionnelle, réduit la sensibilité à la latence et aux interruptions de connexion et fournit des capacités de peering natives.



Le maillage de services permet donc de concevoir plus rapidement des applications fiables, disponibles et performantes. Les géants du web comme Google, Amazon, Airbnb ou encore Netflix ont d’ailleurs fait le choix d’utiliser les microservices couplés au service Mesh pour gagner en flexibilité et en innovation. Et vous en tant que professionnel de l’IT avez-vous déjà travaillé avec des maillages de microservices ? N’hésitez pas à nous partager vos retours d’expériences sur le forum IT !


Sources et liens utiles :

Istio une plateforme open source de Service Mesh

Linker, le premier service mesh certifié par la SNCF

La Red Hat Ansible Automation Platform

Boostez votre carrière

Les meilleures offres d’emploi sont chez Free-Work

Notre CVthèque est la première source de recherche de talents pour + 1 000 entreprises. Déposez votre CV et postulez en un clic !

Continuez votre lecture autour des sujets :
# Actualités
# Trend
# Web

Commentaire

Dans la même catégorie