Une passerelle API accepte les requêtes API d’un client, les traite en fonction des politiques définies, les dirige vers les services appropriés et combine les réponses pour simplifier l’expérience utilisateur. En général, elle traite une requête en invoquant plusieurs microservices et en agrégeant les résultats. Elle peut également traduire entre les protocoles dans les déploiements hérités.
Une passerelle API accepte les requêtes API d’un client, les traite en fonction des politiques définies, les dirige vers les services appropriés et combine les réponses pour simplifier l’expérience utilisateur. En général, elle traite une requête en invoquant plusieurs microservices et en agrégeant les résultats. Elle peut également traduire entre les protocoles dans les déploiements hérités.
Les passerelles API mettent généralement en œuvre les fonctionnalités suivantes :
Pour une sécurité accrue 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 les dénis de service (DoS).
Le déploiement d’une passerelle API pour la livraison d’applications peut servir à :
Pour les applications basées sur les microservices, une passerelle API sert de point d’entrée unique dans le système. Elle se place devant les microservices et simplifie à la fois les implémentations client et l’application des microservices en découplant la complexité d’une application de celle 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. Elle traite certaines requêtes en les acheminant simplement vers le service backend approprié, et en traite d’autres en invoquant plusieurs services backend et en agrégeant les résultats.
Une passerelle API peut fournir d’autres capacités pour les microservices, telles que l’authentification, l’autorisation, la surveillance, l’équilibrage de charge et le traitement des réponses, en déchargeant la mise en œuvre des exigences non fonctionnelles sur la couche d’infrastructure et en aidant les développeurs à se concentrer sur la logique commerciale de base pour accélérer le lancement des applications.
Consultez notre blog pour en savoir plus sur la création de microservices à l’aide d’une passerelle API.
Les conteneurs sont le moyen le plus efficace d’exécuter des microservices, et Kubernetes est la norme incontournable pour le déploiement et la gestion d’applications conteneurisées et de charges de travail.
En fonction de l’architecture du système et des exigences en matière de livraison d’applications, une passerelle API peut être déployée devant le cluster Kubernetes en tant qu’équilibreur de charge (niveau multicluster), à sa périphérie en tant que contrôleur Ingress (niveau cluster), ou à l’intérieur de celui-ci en tant que maillage de services (niveau service).
Pour les déploiements de passerelles API à la périphérie et au sein du cluster Kubernetes, la meilleure pratique consiste à utiliser un outil natif de Kubernetes comme passerelle API. Ces outils, comme NGINX Ingress Controller et NGINX Service Mesh, sont étroitement intégrés à l’API Kubernetes, prennent en charge YAML et peuvent être configurés via la CLI standard de Kubernetes.
Consultez notre blog pour en savoir plus sur les passerelles API et Kubernetes dans l’article Quelles différences entre passerelles API, contrôleurs Ingress et maillage de service ?
Les passerelles Ingress et les contrôleurs Ingress sont des outils qui mettent en œuvre l’objet Ingress, qui fait partie de l’API Ingress de Kubernetes, pour exposer les applications exécutées dans Kubernetes à des clients externes. Ces outils gèrent les communications entre les utilisateurs et les applications (connectivité utilisateur à service ou nord-sud). Cependant, l’objet Ingress seul a des capacités très limitées. Par exemple, il ne prend pas en charge la définition des politiques de sécurité qui y sont attaché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 satisfaire les besoins et les exigences en constante évolution des clients, y compris l’utilisation du contrôleur Ingress en tant que 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, Kubernetes Gateway API n’est pas la même chose qu’une passerelle API. Gateway API de 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 Gateway API a évolué à partir de Kubernetes Ingress API pour résoudre divers problèmes liés au déploiement des ressources Ingress pour exposer les applications Kubernetes en production, y compris la capacité de définir des politiques précises pour le traitement des requêtes 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 des 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 de déploiements canari et bleu vert.
Regardez cette courte vidéo dans laquelle Jenn Gile de NGINX explique la différence entre une passerelle API et Kubernetes Gateway API.
Un maillage de services est une couche d’infrastructure qui contrôle les communications entre les services dans un cluster Kubernetes (service à service ou connectivité est-ouest). Le maillage de services fournit des capacité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 de gestion de la connectivité (circuit breaker, tests A/B et déploiements bleu-vert et canari), afin de garantir une communication rapide, fiable et sécurisée.
Le maillage de service, déployé au plus près des applications et des services, peut être utilisé comme passerelle API distribuée légère, mais complète pour les communications entre services dans Kubernetes.
Consultez notre blog pour en savoir plus sur le maillage de services dans notre article Comment choisir un maillage de services.
Les termes passerelle API et gestion des API sont souvent utilisés à tort pour décrire la même fonctionnalité.
Une passerelle API est un point d’entrée sur le plan de données pour les appels API qui représentent les requêtes des clients vers des applications et des services cibles. Elle effectue généralement le traitement des requêtes sur la base de politiques définies, y compris l’authentification, l’autorisation, le contrôle d’accès, la décharge 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. Elle est généralement réalisée à l’aide d’un logiciel de gestion (comme un gestionnaire d’API) qui définit et applique des politiques aux passerelles API et aux portails des 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 en tant que partie d’une solution intégrée de gestion des API, telle que F5 NGINX Management Suite API Connectivity Manager.
Plusieurs facteurs clés doivent être pris en compte lors de la définition des exigences relatives à votre passerelle API :
NGINX offre 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 en tant que passerelle API, demandez votre essai gratuit de 30 jours et consultez l’article Déploiement de NGINX en tant que passerelle API sur notre blog. Pour essayer NGINX Management Suite, demandez votre essai gratuit de 30 jours.