Service mesh et réseau de datacenters, quelles exigences ?
Les applications qui reposent sur les micro-services imposent des contraintes à l'infrastructure et au personnel des datacenters, mais un service mesh ou de maillage de services peut optimiser les demandes de routage entre micro-services sans nécessiter d'intervention humaine permanente.
Pour répondre rapidement et de manière fiable, les applications de type micro-services ont besoin de s'appuyer sur une infrastructure de réseau rapide et fiable, et dans ce domaine, le maillage de services peut apporter une aide solide. D'un autre côté, une infrastructure de service mesh peut être difficile à déployer et à gérer à l'échelle, et éventuellement, trop complexe pour des applications plus petites, de sorte que les entreprises doivent examiner attentivement les avantages et les inconvénients potentiels de ces services en fonction de leur situation particulière.
Qu'est-ce qu'un service mesh ?
Un service mesh ou de maillage de services est un logiciel d'infrastructure qui assure des communications rapides et fiables entre les micro-services dont dépendent les applications. L'identification des applications, l'équilibrage de charge, l'authentification et le cryptage font partie des attributions de ce service. Les demandes de réseau sont acheminées entre les micro-services par l'intermédiaire de proxies qui fonctionnent en parallèle avec le service. Ces proxies forment un réseau maillé pour relier les différents microservices. Un contrôleur central assure le contrôle d'accès ainsi que la gestion du réseau et des performances. Un service mesh permet d'isoler logiquement les applications des microservices de la complexité du routage de réseau et des exigences de sécurité. L'abstraction fournie par un maillage de services permet un déploiement rapide et flexible des microservices et évite à l'équipe réseau du datacenter d'avoir à intervenir constamment.
Pourquoi les apps de type micro-services ont-elles besoin d'un service mesh ?
Les applications basées sur des micro-services ont une architecture différente de celle des applications basées sur un hyperviseur. Elles comportent de nombreux services fonctionnant dans des conteneurs individuels sur différents serveurs ou coeurs, et la fréquence des transactions entre ces microservices au sein d'une même application peut nécessiter une faible latence et une bande passante conséquente. En outre, plusieurs applications peuvent avoir besoin d'accéder aux mêmes microservices. Les microservices basés sur des conteneurs peuvent souvent déplacer leur localisation physique d'un serveur à un autre en ne fournissant que des données limitées sur leur changement de localisation et de statut. Si bien que les professionnels de l'IT peuvent avoir des difficultés à les « localiser » afin de résoudre des problèmes de performance des applications.
En attendant, les équipes DevOps ont besoin de s'abstraire de la complexité du réseau et d'en être isolées. Elles veulent développer et modifier rapidement les applications, et exigent des équipes réseau qu'elles apportent des ajustements au réseau et à la sécurité, comme le provisionnement des vLAN, pour pouvoir faire leur travail. Un service mesh offre aux applications de microservices des avantages importants en termes de réseau et de sécurité. Il permet d'abstraire l'infrastructure réseau, et donc aux applications de microservices de maintenir les politiques réseau et de sécurité sans avoir à demander l'intervention de l'équipe réseau du datacenter pour chaque changement souhaité.
Pour mettre des microservices en réseau, il faut principalement :
- une performance du réseau à l'échelle ;
- une facilité de provisionnement des ressources de réseau, de traitement et de stockage pour les nouvelles applications ;
- une capacité à augmenter rapidement la largeur de bande passante par application ;
- pouvoir migrer la charge de travail entre les datacenters internes et le cloud public ;
- être en mesure d'isoler les applications pour renforcer la sécurité et favoriser la multilocation ;
Pour répondre à ces exigences, les départements IT devront intégrer l'automatisation des services mesh et les informations de gestion dans un système de gestion de réseau de datacenters plus complet, en particulier à mesure que les déploiements de conteneurs deviendront plus nombreux, plus complexes et plus stratégiques. Pour les applications bien adaptées aux déploiements de services mesh, les départements IT devront planifier l'intégration de la technologie dans leurs plates-formes globales de gestion/automatisation. Pour s'y préparer, les équipes IT doivent évaluer toutes les options de maillage de services (cloud, open source, fournisseur) au fur et à mesure que la technologie continuera à gagner en maturité.
Les différentes technologies de maillage de services peuvent être prises en charge par le fournisseur ou open source. Pilotée par Google, Istio est l'une des principales options de maillage de services open source. Parmi les autres projets open source de services mesh, on peut citer Linkerd, HAProxy et Envoy. Les principaux fournisseurs d'IaaS ont leurs propres offres de maillage de services. Les principaux fournisseurs de réseaux et de technologies IT, de même que les start-ups, disposent également d'offres de maillage de services.