Pourquoi vous devriez vous soucier du maillage de services
Le maillage de services offre des avantages pour le développement et les opérations dans les environnements de microservices.
De nombreux développeurs se demandent pourquoi ils devraient se soucier du maillage de services. C'est une question que l'on me pose souvent lors de mes présentations lors de rencontres de développeurs, de conférences et d'ateliers pratiques sur le développement de microservices avec une architecture cloud native. Ma réponse est toujours la même : « Tant que vous souhaitez simplifier votre architecture de microservices, elle doit fonctionner sur Kubernetes. »
Concernant la simplification, vous vous demandez probablement aussi pourquoi les microservices distribués doivent être conçus de manière si complexe pour fonctionner sur des clusters Kubernetes. Comme l'explique cet article, de nombreux développeurs résolvent la complexité de l'architecture des microservices grâce au maillage de services et bénéficient d'avantages supplémentaires en adoptant le maillage de services en production.
Qu’est-ce qu’un maillage de services ?
Un maillage de services est une couche d'infrastructure dédiée permettant de fournir un moyen transparent et indépendant du code (polyglotte) d'éliminer les capacités de microservices non fonctionnelles du code de l'application.
(Daniel Oh, CC BY-SA 4.0)
Pourquoi le maillage de services est important pour les développeurs
Lorsque les développeurs déploient des microservices dans le cloud, ils doivent prendre en compte les capacités non fonctionnelles des microservices pour éviter les pannes en cascade, quelles que soient les fonctionnalités de l'entreprise. Ces fonctionnalités peuvent généralement être représentées dans la découverte de services, la journalisation, la surveillance, la résilience, l'authentification, l'élasticité et le traçage. Les développeurs doivent passer plus de temps à les ajouter à chaque microservice plutôt qu’à développer une véritable logique métier, ce qui rend les microservices lourds et complexes.
À mesure que les organisations accélèrent leur migration vers le cloud, le maillage de services peut augmenter la productivité des développeurs. Au lieu de confier aux services la responsabilité de gérer ces complexités et d'ajouter plus de code dans chaque service pour répondre aux problèmes natifs du cloud, la plate-forme maillée de services Kubernetes + est chargée de fournir ces services à n'importe quelle application (existante ou nouvelle, dans n'importe quel langage de programmation). ou framework) exécuté sur la plateforme. Les microservices peuvent alors être légers et se concentrer sur leur logique métier plutôt que sur les complexités natives du cloud.
Pourquoi le maillage de services est important pour les opérations
Cela ne répond pas à la raison pour laquelle les équipes opérationnelles doivent se soucier du maillage de services pour exploiter des microservices cloud natifs sur Kubernetes. En effet, les équipes opérationnelles doivent garantir une sécurité, une conformité et une observabilité robustes pour diffuser de nouvelles applications cloud natives sur de grands cloud hybrides et multicloud sur des environnements Kubernetes.
Le maillage de services est composé d'un plan de contrôle pour gérer les proxys pour acheminer le trafic et d'un plan de données pour injecter des side-cars. Les side-cars permettent aux équipes opérationnelles de faire des choses comme ajouter des outils de sécurité tiers et suivre le trafic dans toutes les communications de service pour éviter les failles de sécurité ou les problèmes de conformité. Le maillage de services améliore également les capacités d'observation en visualisant les métriques de traçage sur des tableaux de bord graphiques.
Comment démarrer avec le maillage de services
Le maillage de services gère plus efficacement les fonctionnalités cloud natives, pour les développeurs et les opérateurs, du développement d'applications à l'exploitation de la plateforme.
Vous voudrez peut-être savoir par où commencer pour adopter le maillage de services en adéquation avec vos applications et votre architecture de microservices. Heureusement, il existe de nombreux projets de maillage de services open source. De nombreux fournisseurs de services cloud proposent également des fonctionnalités de maillage de services au sein de leurs plateformes Kubernetes.
(Daniel Oh, CC BY-SA 4.0)
Vous pouvez trouver des liens vers les projets et services de maillage de services les plus populaires sur la page Web CNCF Service Mesh Landscape.