Qu'est-ce qu'une passerelle API ?

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.

TEXTE ALT DE L'IMAGE ICI

Capacités de la passerelle API

Les passerelles API implémentent généralement des fonctionnalités qui incluent :

  • Politique de sécurité – Authentification, autorisation, contrôle d’accès et cryptage
  • Politique de routage – Routage, limitation de débit, manipulation des requêtes/réponses, disjoncteur, déploiements bleu-vert et canari, tests A/B, équilibrage de charge, contrôles de santé et gestion des erreurs personnalisées
  • Politique d'observabilité – Mesures en temps réel et historiques, journalisation et traçage

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

Avantages de la passerelle API

Le déploiement d'une passerelle API pour la livraison d'applications peut aider à :

  • Réduisez la complexité et accélérez les publications d'applications en encapsulant l'architecture interne de l'application et en fournissant des API adaptées à chaque type de client
  • Rationalisez et simplifiez le traitement des demandes et l'application des politiques en centralisant le point de contrôle et en déchargeant les exigences non fonctionnelles sur la couche d'infrastructure
  • Simplifiez le dépannage grâce à des mesures et des tableaux de bord granulaires en temps réel et historiques

Architecture de passerelle API et de microservices

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.

Passerelle API pour Kubernetes

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

TEXTE ALT DE L'IMAGE ICI

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.

Passerelle API et passerelle d'entrée ou contrôleur d'entrée

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 .

La passerelle API n'est pas la même chose que la passerelle API

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 .

Service Mesh vs passerelle API

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.

Passerelle API et gestion des API

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 .

Considérations pour le choix d'une passerelle API

Plusieurs facteurs clés doivent être pris en compte lors du choix des exigences de votre passerelle API :

  • Architecture – L’endroit où vous déployez la passerelle API peut avoir un impact sur votre choix d’outillage, 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 ?
  • Performances – Les performances sont essentielles 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 ?
  • Évolutivité – Votre passerelle API doit pouvoir évoluer facilement pour répondre aux demandes croissantes de trafic. Votre passerelle API prend-elle en charge la mise à l'échelle verticale (débit élevé) et horizontale (haute disponibilité) pour garantir que vos API sont toujours rapides et disponibles ?
  • 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 fonctionnalités de sécurité avancées comme un WAF intégré et une validation de schéma OpenAPI pour une sécurité positive ?
  • Coût – Comprendre le coût total de possession (TCO) de la passerelle API. Quels sont les coûts et les compromis entre la création et la maintenance d’une solution personnalisée et l’achat d’une passerelle API de niveau entreprise ?

Comment NGINX peut vous aider

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 :

  • Contrôleur d'entrée NGINX – 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 – 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 comme passerelle API – Passerelle API légère et hautes performances qui peut être déployée dans des environnements cloud, sur site et périphériques
  • 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 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 .