Maillage de service pour microservices. Partie I

Une traduction de l'article a été préparée spécialement pour les étudiants du cours Kubernetes Based Infrastructure Platform .




Si vous avez suivi les tendances des architectures distribuées et cloud ces dernières années, vous avez probablement entendu plus d'une fois parler des microservices. Ils sont apparus il y a quelques années et, depuis lors, leur rôle dans les déploiements cloud d'entreprise n'a fait que croître. De plus en plus d'entreprises passent aux microservices et le déclarent dans leurs publications et communiqués de presse.

Leur choix est justifié, mais seuls quelques-uns disent ce qui se cache derrière une telle transition. Avec une implémentation appropriée, les microservices résolvent de nombreux problèmes d'architecture monolithique: ils sont faciles à itérer et à distribuer en groupes, et le code est facilement divisé en composants gérés. Cependant, dans la plupart des publications, il n'y a pas un mot sur le travail ultérieur avec les microservices et les outils nécessaires à leur utilisation efficace.

Aujourd'hui, nous regardons dans les coulisses et voyons ce qu'est un maillage de services, comment cette technologie aide à résoudre les problèmes d'architecture de microservices et simplifie le travail des développeurs. J'espère que vous aurez une idée détaillée de son rôle dans les déploiements de microservices.

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


Le maillage de service (les termes «réseau de microservices», «réseau maillé de microservices» sont également utilisés) est une couche abstraite d'infrastructure qui définit l'interaction entre les microservices d'une application. La technologie utilise des connexions réseau entre les conteneurs pour contrôler l'interaction de divers composants d'application. Cela semble assez abstrait, mais en fait c'est un concept très pratique. Les conteneurs interagissent via le réseau, donc la modification de la topologie du réseau vous permet de modifier l'ordre dans lequel les conteneurs interagissent.



Une collaboration efficace joue un rôle clé dans les microservices. La gestion de cette interaction avec le maillage de service présente de nombreux avantages. Ainsi, lors du déploiement de nouvelles versions de composants, vous pouvez instantanément basculer les périphériques réseau des anciens vers les nouveaux sans configuration supplémentaire. Si vous rencontrez des difficultés avec la mise à l'échelle, vous pouvez utiliser le maillage de service pour rediriger le trafic vers divers équilibreurs de charge et augmenter le nombre de conteneurs pour les composants d'application.

Une astuce populaire pour ceux qui commencent à travailler avec des microservices est la suivante: traiter les différents composants de l'application comme une API de fournisseurs complètement différents. La technologie de maillage de service vous permet de mettre en œuvre ce principe au niveau du réseau et de déterminer avec précision les services qui seront disponibles dans divers emplacements du réseau. En cas de déplacement ou de modification d'un service, au lieu de déployer une nouvelle configuration, il suffit de changer l'interaction réseau.

Qu'est-ce que ça donne?


Les microservices sont appréciés pour leur grande évolutivité et conviennent pour travailler avec de grandes applications qui peuvent être décomposées en composants faciles à gérer. Les architectures monolithiques, en revanche, sont pratiques dans les domaines où la centralisation est importante. Dans les applications monolithiques, il est plus facile d'enregistrer des événements, car ils s'exécutent au même emplacement. Le contrôle de version est également simple, car une seule instance est remplacée. Il n'est pas surprenant que de nombreux développeurs soient perdus dans la transition des architectures monolithiques aux architectures de microservices, où il n'y a pas d'emplacement unique pour la journalisation et où il est plus difficile de sélectionner les versions nécessaires des composants.



L'avantage de la technologie de maillage de service est qu'elle joue le rôle d'une source centrale de certaines données, en particulier des données sur les interactions réseau. Prenons l'exemple ci-dessus de déploiement d'une nouvelle version d'un composant d'application. Au lieu de détruire tous les conteneurs contenant l'ancienne version, de lancer de nouveaux conteneurs avec la nouvelle version et de répéter ce processus pour les autres composants associés, vous pouvez contrôler les conteneurs qui seront visibles par les autres conteneurs du réseau.

Cela signifie que pour déployer la nouvelle version, il suffit de simplement spécifier les nouveaux conteneurs comme cible à l'aide de DNS, de cibler le nouvel équilibreur de charge ou de modifier les conteneurs ciblés par l'équilibreur existant.

En se concentrant sur les interactions entre les composants de l'application (sur le réseau maillé dans lequel ils fonctionnent), vous pouvez maintenir un certain niveau de centralisation, ce qui simplifie l'administration dans un environnement monolithique. Besoin de plus d'informations sur le trafic passant par l'application? Ajoutez des capacités de surveillance au réseau entre les composants. Vous souhaitez améliorer la sécurité? Implémentez un cryptage fort et HTTPS. Tout cela est possible grâce au maillage de service .

Envie d'en savoir plus?


Au cours des prochaines semaines, nous étudierons plus en détail le fonctionnement du réseau maillé et son application pratique dans certains scénarios de déploiement de microservices. Nous nous concentrerons sur les avantages réels de cette technologie: contrôle efficace, facilité de gestion et capacité à surveiller les processus de grandes applications.

Source: https://habr.com/ru/post/fr476358/


All Articles