Passerelle API

Qu’est-ce qu’une passerelle API ?

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.

Capacités des passerelles API

Les passerelles API mettent généralement en œuvre les fonctionnalités suivantes :

  • Une politique de sécurité : authentification, autorisation, contrôle d’accès et chiffrement
  • Une politique de routage : routage, limitation du débit, manipulation des requêtes/réponses, circuit breaker, déploiements bleu-vert et canari, tests A/B, équilibrage de charge, contrôles de santé et traitement personnalisé des erreurs
  • Une politique d’observabilité : mesures en temps réel et historiques, journalisation et traçage

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).

Les avantages des passerelles API

Le déploiement d’une passerelle API pour la livraison d’applications peut servir à :

  • Réduire la complexité et accélérer le lancement des applications en encapsulant l’architecture interne de l’application et en fournissant des API adaptées à chaque type de client
  • Rationaliser et simplifier le traitement des requêtes et l’application des politiques en centralisant le point de contrôle et en transférant les exigences non fonctionnelles à la couche infrastructure
  • Simplifier le dépannage grâce à des mesures granulaires en temps réel et historiques et des tableaux de bord

Passerelle API et architecture de microservices

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.

Passerelle API pour Kubernetes

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 ?

Passerelle API et passerelle ou contrôleur Ingress

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.

Gateway API n’est pas une passerelle API

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.

Différence entre maillage de service et passerelle 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.

Passerelle API et gestion des API

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.

Éléments à prendre en compte pour choisir une passerelle API

Plusieurs facteurs clés doivent être pris en compte lors de la définition des exigences relatives à votre passerelle API :

  • L’architecture : l’endroit où vous déployez la passerelle API peut avoir une incidence sur le choix de l’outil, tout comme la décision d’utiliser les options intégrées de votre fournisseur de cloud. Avez-vous besoin de la flexibilité d’une passerelle API indépendante de la plateforme et de l’exécution ?
  • La performance : la performance est essentielle pour les sites web et les applications à fort trafic. Votre passerelle API offre-t-elle le débit élevé et la faible latence dont vous avez besoin ?
  • L’évolutivité : votre passerelle API doit pouvoir évoluer facilement pour répondre aux demandes de trafic croissantes. Votre passerelle API prend-elle en charge l’évolutivité verticale (haut débit) et horizontale (haute disponibilité) pour garantir la rapidité et la disponibilité constantes de vos API ?
  • La sécurité : les passerelles API sont un élément important d’une architecture Zero trust. Votre passerelle API offre-t-elle un contrôle d’accès (AuthN/AuthZ), mTLS et d’autres fonctions de sécurité avancées (WAF intégré, validation de schéma OpenAPI) pour une sécurité positive ?
  • Le coût : vous devez comprendre le coût total de possession (TCO) de la passerelle API. Quels sont les coûts et les avantages de la création et de la maintenance d’une solution personnalisée par rapport à l’achat d’une passerelle API de niveau entreprise ?

Comment NGINX peut vous aider

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 :

  • NGINX Ingress Controller : il gère la connectivité des applications à la périphérie d’un cluster Kubernetes avec des fonctionnalités de passerelle API, d’identité et d’observabilité
  • NGINX Service Mesh : il s’agit d’une solution conviviale pour les développeurs pour la connectivité, la sécurité, l’orchestration et l’observabilité de service à service

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 :

  • NGINX Plus en tant que passerelle API : passerelle API légère et performante pouvant être déployée dans des environnements cloud, sur site et en périphérie
  • F5 NGINX Management Suite API Connectivity Manager : déployez et exploitez des passerelles API avec des outils conviviaux pour les développeurs pour la gestion, la gouvernance et la sécurité des API

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.