Une passerelle API accepte les demandes d'API d'un client, les traite en fonction de politiques définies, les dirige vers les services appropriés et combine les réponses pour une expérience utilisateur simplifiée. En règle générale, il gère une demande en invoquant plusieurs microservices et en agrégeant les résultats. Il peut également effectuer une traduction entre les protocoles dans les déploiements hérités.
Une passerelle API accepte les demandes d'API d'un client, les traite en fonction de politiques définies, les dirige vers les services appropriés et combine les réponses pour une expérience utilisateur simplifiée. En règle générale, il gère une demande en invoquant plusieurs microservices et en agrégeant les résultats. Il peut également effectuer une traduction entre les protocoles dans les déploiements hérités.
Les passerelles API implémentent généralement des fonctionnalités qui incluent :
Pour une sécurité supplémentaire au niveau des applications et des API, les passerelles API peuvent être complétées par un pare-feu d'application Web (WAF) et une protection contre le déni de service (DoS).
Le déploiement d'une passerelle API pour la livraison d'applications peut aider à :
Pour les applications basées sur des microservices, une passerelle API agit comme un point d’entrée unique dans le système. Il se place devant les microservices et simplifie à la fois les implémentations client et l'application de microservices en découplant la complexité d'une application de ses clients.
Dans une architecture de microservices, la passerelle API est responsable du routage des requêtes, de la composition et de l'application des politiques. Il gère certaines requêtes en les acheminant simplement vers le service backend approprié, et gère d'autres en appelant plusieurs services backend et en agrégeant les résultats.
Une passerelle API peut fournir d'autres fonctionnalités pour les microservices telles que l'authentification, l'autorisation, la surveillance, l'équilibrage de charge et la gestion des réponses, déchargeant la mise en œuvre des exigences non fonctionnelles sur la couche d'infrastructure et aidant les développeurs à se concentrer sur la logique métier principale, accélérant ainsi les publications d'applications.
Apprenez-en davantage sur la création de microservices à l’aide d’une passerelle API sur notre blog.
Les conteneurs sont le moyen le plus efficace d’exécuter des microservices, et Kubernetes est la norme de facto pour le déploiement et la gestion des applications et des charges de travail conteneurisées.
En fonction de l'architecture du système et des exigences de livraison des applications, une passerelle API peut être déployée devant le cluster Kubernetes en tant qu'équilibreur de charge (niveau multi-cluster), à sa périphérie en tant que contrôleur d'entrée (niveau cluster) ou au sein de celui-ci en tant que maillage de services (niveau service).
Pour les déploiements de passerelle API en périphérie et au sein du cluster Kubernetes, il est recommandé d'utiliser un outil natif Kubernetes comme passerelle API. Ces outils sont étroitement intégrés à l'API Kubernetes, prennent en charge YAML et peuvent être configurés via la CLI Kubernetes standard ; les exemples incluent NGINX Ingress Controller et NGINX Service Mesh .
En savoir plus sur les passerelles API et Kubernetes dans API Gateway vs. Contrôleur d’entrée vs. Service Mesh sur notre blog.
Les passerelles Ingress et les contrôleurs Ingress sont des outils qui implémentent l' objet Ingress , une partie de l'API Ingress de Kubernetes, pour exposer les applications exécutées dans Kubernetes à des clients externes. Ils gèrent les communications entre les utilisateurs et les applications (connectivité utilisateur-service ou nord-sud). Cependant, l'objet Ingress en lui-même est très limité dans ses capacités. Par exemple, il ne prend pas en charge la définition des politiques de sécurité qui lui sont associées. Par conséquent, de nombreux fournisseurs créent des définitions de ressources personnalisées (CRD) pour étendre les capacités de leur contrôleur Ingress et répondre aux besoins et exigences évolutifs des clients, y compris l'utilisation du contrôleur Ingress comme passerelle API.
Par exemple, NGINX Ingress Controller peut être utilisé comme passerelle API complète à la périphérie d'un cluster Kubernetes avec ses ressources personnalisées VirtualServer et VirtualServerRoute , TransportServer et Policy .
Bien que leurs noms soient similaires, une passerelle API n'est pas la même chose que l' API de passerelle Kubernetes . L' API de passerelle Kubernetes est un projet open source géré par la communauté Kubernetes pour améliorer et normaliser la mise en réseau des services dans Kubernetes. La spécification de l'API Gateway a évolué à partir de l' API Kubernetes Ingress pour résoudre divers défis liés au déploiement de ressources Ingress afin d'exposer les applications Kubernetes en production, notamment la possibilité de définir des politiques précises pour le traitement des demandes et de déléguer le contrôle de la configuration à plusieurs équipes et rôles.
Les outils basés sur la spécification Gateway API, tels que NGINX Kubernetes Gateway , peuvent être utilisés comme passerelles API pour les cas d’utilisation qui incluent le routage des requêtes vers des microservices spécifiques, la mise en œuvre de politiques de trafic et l’activation des déploiements Canary et Blue-Green.
Regardez cette vidéo rapide dans laquelle Jenn Gile de NGINX explique la différence entre une passerelle API et l'API Kubernetes Gateway .
Un maillage de services est une couche d’infrastructure qui contrôle les communications entre les services d’un cluster Kubernetes (connectivité de service à service ou est-ouest). Le service mesh offre des fonctionnalités de base pour les services exécutés dans Kubernetes, notamment l'équilibrage de charge, l'authentification, l'autorisation, le contrôle d'accès, le chiffrement, l'observabilité et des modèles avancés pour la gestion de la connectivité (disjoncteur, tests A/B et déploiements bleu-vert et canari), afin de garantir que la communication est rapide, fiable et sécurisée.
Déployé au plus près des applications et des services, un maillage de services peut être utilisé comme une passerelle API distribuée légère mais complète pour les communications de service à service dans Kubernetes.
Pour en savoir plus sur le service mesh, consultez Comment choisir un service mesh sur notre blog.
Les termes passerelle API et gestion des API sont souvent – mais à tort – utilisés pour décrire la même fonctionnalité.
Une passerelle API est un point d'entrée du plan de données pour les appels d'API qui représentent les demandes des clients aux applications et services cibles. Il effectue généralement le traitement des demandes en fonction de politiques définies, notamment l’authentification, l’autorisation, le contrôle d’accès, le déchargement SSL/TLS, le routage et l’équilibrage de charge.
La gestion des API est le processus de déploiement, de documentation, d’exploitation et de surveillance des API individuelles. Cela est généralement réalisé avec un logiciel de plan de gestion (par exemple, un gestionnaire d'API) qui définit et applique des politiques aux passerelles API et aux portails de développeurs.
En fonction des exigences commerciales et fonctionnelles, une passerelle API peut être déployée en tant que composant autonome dans le plan de données ou dans le cadre d'une solution de gestion d'API intégrée, telle que F5 NGINX Management Suite API Connectivity Manager .
Plusieurs facteurs clés doivent être pris en compte lors du choix des exigences de votre passerelle API :
NGINX propose plusieurs options pour déployer et exploiter une passerelle API en fonction de vos cas d'utilisation et de vos modèles de déploiement.
Outils natifs de Kubernetes :
Commencez par demander votre essai gratuit de 30 jours de NGINX Ingress Controller avec NGINX App Protect WAF et DoS, et téléchargez le NGINX Service Mesh toujours gratuit.
Outils universels :
Pour en savoir plus sur l'utilisation de NGINX Plus comme passerelle API, demandez votre essai gratuit de 30 jours et consultez Déploiement de NGINX en tant que passerelle API sur notre blog. Pour essayer NGINX Management Suite, demandez votre essai gratuit de 30 jours .