Choisir la limite avant l'outil
Une passerelle API gère généralement la limite API externe; un maillage de services peut gérer le trafic de service à service. Les deux ajoutent des fonctionnalités et de la complexité opérationnelle. Aucun des deux n'est obligatoire pour toutes les applications de microservices, et d'autres modèles de gestion du trafic peuvent convenir à une charge de travail plus légère.
L'article d'origine
Le secteur des TI a connu une transformation importante au cours de la dernière décennie. Les entreprises ont commencé à adopter l'approche DevOps, les technologies/outils natifs du infonuagique, la refonte des applications monolithiques en microservices, etc. Bien que l'adoption des microservices présente ses propres avantages, elle entraîne également des complexités et des risques de sécurité qu'il convient de prendre en compte. Par exemple, en tant que start-up, les microservices peuvent sembler très faciles au début.une architecture de microservices et de petites équipes travaillant sur chaque service, mais lorsque le nombre de microservices augmente en même temps que l'entreprise, les communications internes et externes entre les services deviennent complexes. C'est là que les passerelles API et les maillages de services entrent en jeu.
Dans cet article, nous examinerons ces deux sujets en détail et tenterons de comprendre les similitudes et les différences importantes, ainsi que les situations dans lesquelles il convient de les utiliser.
Passerelle d'API
La gestion des API et les passerelles API ont été utilisées comme technologie principale pour les cas d'utilisation modernes des API dans les centres de données, la communication entre les services à l'intérieur et à l'extérieur, la mise à l'échelle des microservices, etc. La gestion des API a considérablement évolué ces derniers temps. Lorsque vous utilisez des microservices et qu’ils évoluent, le nombre de points de terminaison d’applications augmente considérablement. Chaque point de terminaison doit être sécurisé et géré correctement. C'est une tâche énorme pour les développeurs.développeurs et leur prend la plupart de leur temps sans API. La gestion des API permet de sécuriser ces points de terminaison de manière appropriée.
Les passerelles API sont utilisées pour gérer, transformer et sécuriser les API. Elles se situent entre le réseau public et les serveurs dorsaux. La passerelle peut être configurée pour fournir des politiques personnalisées, l'authentification, la journalisation ou la surveillance des API.
Prenons l'exemple d'une application bancaire créée avec différents microservices qui fonctionnent ensemble, mais qui exécutent des tâches différentes. Lorsqu'un utilisateur souhaite consulter les détails de son compte, un microservice recherche les données de cet utilisateur en particulier, tandis que l'autre microservice affiche les données de l'utilisateur sur le tableau de bord sous la forme d'une page Web. Bien que ces deux microservices soient déclenchés lorsqu’un utilisateur souhaite consulter les informations de son compte, il doit y avoir un intermédiaire capable d’aider àque ce processus se déroule dans l'ordre et sans heurts.
Ici, une API Gateway sert de gardien qui accepte les requêtes provenant de l’extérieur, les transmet aux microservices responsables appropriés et renvoie les informations à l’utilisateur.
Service Mesh
Le maillage de services est une architecture qui permet de gérer la communication de service à service en mettant en œuvre des fonctionnalités telles que le traçage, la gestion du trafic, la surveillance, etc. De plus, les maillages de services peuvent également fournir une observabilité pour l'architecture des microservices. En termes simples, un maillage de services est une couche de protection pour les microservices dans une application. Il offre aux développeurs des fonctionnalités d'observabilité et de gestion du trafic qui étaient auparavanttotalement inaccessible.
Les maillages de services améliorent considérablement la connectivité de service à service en rendant les requêtes réseau plus robustes, plus sécurisées et plus observables.
Même avant l’apparition du concept de service mesh, les équipes chargées des applications et de la sécurité mettaient en œuvre des politiques de trafic réseau, des politiques de communication, des mesures de sécurité, d’observabilité, de suivi et de gestion des erreurs entre les microservices afin d’améliorer la connectivité de toutes les requêtes réseau sortantes ou entrantes que l’application émettait ou recevait.
Les équipes avaient l'habitude de mettre en œuvre ces fonctionnalités en écrivant davantage de code dans leurs services. Ensuite, différentes équipes écrivaient un code similaire pour implémenter la même chose dans différents langages afin d'assurer la compatibilité. Cela crée davantage de fragmentation et de risques de sécurité pour la connectivité réseau. Les maillages de services éliminent ces risques en externalisant complètement la gestion du réseau.
Principales similitudes entre API Gateway et Service Mesh
À un niveau élevé, les deux facilitent la communication entre les services et gèrent le trafic réseau.
API Gateway et le maillage de services facilitent tous deux la découverte de services.
Les deux permettent une meilleure observabilité du système.
Différences importantes entre API Gateway et Service Mesh
Une passerelle API fonctionne au niveau de la couche application, tandis qu’un maillage de services fonctionne au niveau de l’infrastructure.
L’un des principaux points de divergence entre les deux est le modèle de déploiement : le déploiement d’un plan de données proxy parallèlement à chaque réplique de chaque service est indispensable dans le maillage de services, alors que dans API Gateway, aucun plan de données proxy n’est requis.
Une passerelle API se concentre davantage sur la logique métier, tandis qu’un maillage de services se concentre davantage sur la communication de service à service.
Une passerelle API gère les applications et les requêtes internes et externes, tandis qu’un maillage de services est uniquement destiné à un usage interne ; il se situe entre les services internes et les communications réseau.
Une passerelle API peut fonctionner avec des modèles d’architecture monolithiques et de microservices, tandis qu’un maillage de services ne peut être utilisé qu’avec une architecture de microservices.
API Gateway est une méthodologie traditionnelle, et il peut y avoir des problèmes de sécurité, alors que les maillages de services sont conçus avec une technologie plus avancée pour relever ces défis liés au réseau et à la sécurité.
API Gateway est une technologie plus mature et implique des entrées de sécurité manuelles par rapport aux maillages de services. Le maillage de services est une nouvelle technologie avancée et émergente qui implique des entrées de sécurité automatisées.
Les métriques API Gateway permettent de comprendre l’état général de l’application, tandis que les métriques de maillage de services permettent de comprendre l’état des microservices individuels et des composants associés au sein de l’application.
Avez-vous besoin d’une passerelle API ou d’un maillage de services ?
Lorsque vous consultez la vue d'ensemble, il semble que les deux remplissent une fonction similaire et offrent les mêmes fonctionnalités. Mais, en réalité, ils diffèrent fondamentalement par leur orientation, les différences que nous avons déjà énumérées ci-dessus. Même si l'API Gateway est toujours considérée comme une technologie très prisée, les technologies de maillage de services évoluent soudainement et commencent à assumer certaines des fonctionnalités d'une API Gateway.
Les entreprises tirent profit de l'utilisation simultanée d'une passerelle API et d'un maillage de services. Une passerelle API peut être utilisée pour simplifier la façon dont l'application gère et traite les requêtes et le trafic externes; un maillage de services peut être utilisé en même temps pour rationaliser de manière sécurisée la communication interne.
Une passerelle API peut envoyer une requête provenant de l'extérieur à un microservice particulier, et à partir de là, un maillage de services intervient pour rediriger cette requête vers un autre microservice en interne, de manière sécurisée. Ainsi, disposer à la fois d’une passerelle API et d’un maillage de services est toujours une bonne option, car vous profitez ainsi du meilleur des deux mondes. Mais cela ne signifie pas que vous devez utiliser les deux et que c’est une obligation ; vous pouvez utiliser l’un ou l’autre en fonction de vosVous pouvez utiliser l'un ou l'autre indépendamment.
Comment et quand choisir un maillage de services?
Il existe de nombreuses offres de maillage de services ; parmi les plus remarquables, citons Istio, LinkerD, Consul Connect, Kuma, Maesh, AWS App Mesh, etc.
L'adoption des microservices et la technologie des conteneurs se développent rapidement dans l'espace infonuagique natif. Cela signifie que les entreprises ont besoin d'une gestion du trafic plus avancée et d'un mécanisme de communication sécurisé entre les services, ce qui peut être résolu par un maillage de services ou d'autres modèles de plateforme appropriés.
Le maillage de services devient très important,
Lorsque vous avez davantage de charges de travail et que le nombre de microservices augmente dans votre projet
Lorsque vous utilisez Kubernetes de manière intensive en production
Lorsque vous disposez d'un pipeline CI/CD mature et que vous effectuez fréquemment des déploiements en production
Lorsque vous avez un mélange de langages d'application et de cadres d'application
Quel maillage de services utiliser ?
Bien qu'Istio soit en train de devenir un maillage de services standard de facto, il en existe d'autres qui pourraient facilement résoudre vos problèmes. Par conséquent, il n'y a pas de réponse unique, bonne ou mauvaise, à cette question. Au lieu de cela, vous devez choisir votre maillage de services en fonction de vos besoins, de vos défis, de vos compétences et de vos ressources actuels.
Le paysage infonuagique-natif évolue rapidement, et les maillages de services sont devenus un élément essentiel de la pile infonuagique-native moderne. Les entreprises devraient investir et expérimenter ces nouvelles technologies pour résoudre leurs problèmes actuels. Les maillages de services, comme toutes les autres technologies, résolvent les principaux problèmes qui se posent lors de l'adoption d'une architecture de microservices. Étant donné que la plupart des organisations adoptent l'architecture de microservices pour leur infonuagique,parcours vers le infonuagique natif, il devient évident que les maillages de services deviendront bientôt la norme dans la pile technologique de chaque entreprise.
Questions et réponses
Quand les passerelles API et les maillages de services résolvent-ils des problèmes différents?
Comparer les passerelles API et les maillages de services en fonction des limites de trafic qu’ils gèrent, des fonctionnalités qu’ils ajoutent et de leur complexité opérationnelle.
#Comment devrions-nous utiliser cet article dans un projet?
Utilisez l'explication pour définir les exigences et les questions, puis validez la charge de travail réelle, les dépendances et les recommandations actuelles du fournisseur. Un article technique ne remplace pas une évaluation spécifique à une application.
#