Jump to section

Le rôle des passerelles d'API

Copier l'URL

Une passerelle d'API est un outil de gestion des API qui se positionne entre un client et un ensemble de services back-end. Dans ce contexte, le client est une application exécutée sur l'appareil d'un utilisateur et les services back-end sont ceux qui s'exécutent sur les serveurs d'une entreprise. Une API (Application Programming Interface, ou interface de programmation d'application) est un ensemble de définitions et de protocoles qui facilite la création et l'intégration des applications.

La passerelle d'API est un composant du processus de distribution d'applications, c'est-à-dire l'ensemble des services qui font fonctionner une application. Elle agit comme un proxy inversé qui accepte tous les appels d'API, rassemble les différents services requis pour y répondre et renvoie le résultat approprié. Plus simplement, une passerelle d'API est un composant logiciel qui intercepte les appels d'API émis par un utilisateur et les achemine vers le service back-end approprié.

La plupart des API d'entreprise sont déployées à l'aide de passerelles d'API. Celles-ci gèrent souvent des tâches courantes utilisées dans un système de services d'API, comme l'authentification des utilisateurs, la limitation du débit et le calcul de statistiques.

En résumé, un service d'API accepte une demande distante et renvoie une réponse. Dans la pratique, ce n'est pas aussi simple. En effet, l'hébergement d'API à grande échelle présente certains risques.

  • Pour protéger les API d'une utilisation abusive et excessive, il faut mettre en œuvre un service d'authentification et des limites de débit. 
  • Pour comprendre comment les utilisateurs exploitent les API, il faut ajouter des outils d'analyse et de surveillance.
  • Il faut connecter les API monétisées à un système de facturation.
  • Dans une architecture de microservices, une simple demande peut entraîner des appels à des dizaines d'applications distinctes.
  • Au fil du temps, il faudra supprimer certains services d'API et en ajouter d'autres, tout en s'assurant que les clients pourront toujours trouver tous ces services au même endroit.

L'objectif est de fournir aux clients une expérience simple et fiable, qui occulte la complexité sous-jacente. L'utilisation d'une passerelle d'API permet de dissocier l'interface client de la mise en œuvre back-end. Lorsqu'un client envoie une demande, la passerelle d'API la segmente en plusieurs demandes qu'elle achemine vers les services appropriés, produit une réponse et conserve une trace de toutes ces opérations.

La passerelle d'API est un des éléments du système de gestion d'API. Elle intercepte toutes les demandes entrantes et les transmet au système de gestion d'API, qui se charge de nombreuses fonctions essentielles.

Selon la mise en œuvre, les opérations que les passerelles d'API peuvent effectuer vont varier. Leurs principales fonctions incluent l'authentification, le routage, la limitation du débit, la facturation, la surveillance, l'analyse, l'application de politiques, l'envoi d'alertes et la sécurisation. Les passerelles d'API offrent les avantages suivants :

Faible latence

Pour garantir un niveau optimal de performances et d'utilisation des ressources, les passerelles d'API optimisent le routage du trafic et l'équilibrage de charge dans les services back-end en distribuant les demandes entrantes et en déléguant les tâches courantes telles que la terminaison SSL et la mise en cache. Les passerelles d'API réduisent ainsi la charge du serveur et l'utilisation de la bande passante, avec à la clé une diminution des besoins en capacités de serveur et en bande passante réseau et une amélioration de l'expérience utilisateur.

Gestion du trafic

Pour garantir un niveau optimal de performances et d'utilisation des ressources, les passerelles d'API limitent et gèrent le trafic à l'aide de différents mécanismes conçus pour contrôler le débit et le volume des demandes entrantes.

  • Les politiques de limitation du débit définissent le nombre maximal de demandes autorisées au cours d'une période donnée (par exemple, le nombre de demandes par seconde, minute ou heure) pour chaque client ou clé d'API afin d'éviter la surcharge des services back-end.
  • Les politiques de limitation des demandes définissent des règles et des limites qui régulent le trafic des demandes, telles que les taux maximaux de demandes, les allocations en cas d'activité intense et les quotas.
  • Les politiques de contrôle de simultanéité définissent le nombre maximal de connexions ou de demandes simultanées qui peuvent être traitées en même temps par les serveurs back-end.
  • Les politiques de type « coupe-circuit » surveillent l'état et le temps de réponse des serveurs back-end. Elles bloquent ou redirigent aussi temporairement le trafic provenant de services ralentis ou en échec pour éviter les défaillances en cascade et assurer la stabilité globale du système.
  • L'équilibrage de charge dynamique à partir de passerelles d'API permet de surveiller en continu l'état du serveur et d'ajuster le routage du trafic en temps réel pour traiter les pics de demande, écourter les temps de réponse et optimiser le débit.

Exploitation d'une infrastructure réseau globale

Les passerelles d'API peuvent mettre à l'échelle les ressources d'une infrastructure de manière dynamique selon l'évolution des modèles de trafic et des besoins des charges de travail. Ainsi, grâce aux passerelles d'API, les entreprises optimisent l'utilisation des ressources et réduisent leurs coûts d'infrastructure, car elles paient uniquement pour les ressources réellement utilisées.

Rentabilité

Les passerelles d'API jouent un rôle dans la gestion de la rentabilité de la distribution d'applications et de l'intégration des API : elles fournissent une plateforme centralisée pour le traitement du trafic des API, la mise en application des politiques de sécurité, la mise en œuvre des règles de gestion du trafic et l'intégration aux services back-end. Les passerelles d'API offrent aussi la possibilité d'adopter un modèle de consommation à plusieurs niveaux de tarification pour les services, ce qui permet d'assurer la rentabilité. Les différents types d'API peuvent influer sur la rentabilité d'une application à divers niveaux.

  1. Flexibilité :grâce aux API HTTP, qui sont plus générales et peuvent utiliser tout type de méthode HTTP, le développement est plus simple, plus flexible et potentiellement moins coûteux. Les API REST respectent des principes et des conventions d'architecture spécifiques. Leur bonne conception et leur bonne mise en œuvre peuvent nécessiter davantage de travail et de compétences techniques, avec des coûts de développement potentiellement plus élevés.
  2. Infrastructure :en raison de leur flexibilité, les API HTTP ont des coûts d'infrastructure plus faibles. De leur côté, les API REST peuvent nécessiter des composants d'infrastructure ou des services supplémentaires pour prendre en charge ces fonctions, avec des coûts d'infrastructure potentiellement plus élevés.
  3. Évolutivité : les API HTTP peuvent être mises à l'échelle horizontalement via l'ajout de serveurs ou d'instances supplémentaires. Ces options d'évolutivité peuvent augmenter la rentabilité, en particulier dans les environnements cloud disposant de fonctionnalités de mise à l'échelle automatique. Les API REST ont parfois des exigences plus complexes en matière de mise à l'échelle en raison de certains paramètres : architecture distribuée, mise en cache et applications stateless. Ces API peuvent nécessiter des ressources d'infrastructure ou des services supplémentaires pour l'évolutivité horizontale, avec des coûts d'infrastructure potentiellement plus élevés.

Fonctionnement des passerelles d'API avec Kubernetes

L'utilisation d'une solution basée sur Kubernetes, comme Red Hat OpenShift, est le moyen le plus efficace de conteneuriser et d'orchestrer des applications. La passerelle d'API pourra se charger de gérer le trafic et de l'acheminer vers les services d'un cluster Kubernetes. Pour ce faire, elle devra :

  • agir comme un contrôleur d'entrée, en interceptant le trafic HTTP entrant en direction du cluster et en l'acheminant vers les services appropriés selon des configurations et règles définies ;
  • exploiter la découverte des services qui repose sur le DNS de Kubernetes pour détecter le trafic et l'acheminer vers les services back-end sans configuration manuelle, permettant une intégration fluide aux services natifs pour Kubernetes ainsi qu'une simplification de la mise à l'échelle dynamique, de la découverte des services et du traitement des basculements dans le cluster ;
  • mettre en œuvre des politiques avancées de gestion du trafic pour contrôler le flux du trafic vers les services déployés sur Kubernetes ;
  • mettre en application des politiques de sécurité, telles que l'authentification, les contrôles d'accès, l'autorisation et le chiffrement pour protéger les services déployés sur Kubernetes des accès non autorisés et des cybermenaces ;
  • comporter des fonctions d'observabilité et de surveillance, par exemple la journalisation des demandes, la collecte d'indicateurs de mesure et le traçage distribué, qui offrent plus de visibilité sur les modèles de trafic, les indicateurs de mesure des performances et les taux d'erreur pour les services déployés sur Kubernetes ;
  • s'intégrer aux solutions de Service Mesh comme Istio et Linkerd, pour étendre leurs fonctionnalités et fournir des fonctions supplémentaires, telles que la gestion des entrées externes, de la sécurité en périphérie et du trafic global, avec la garantie d'une interopérabilité fluide entre les services Kubernetes et les clients externes.

Au sein des entreprises qui adoptent une approche DevOps, les équipes de développement utilisent des microservices pour créer et déployer des applications de façon itérative et accélérée. Pour communiquer entre eux, les microservices utilisent le plus souvent des API.

De plus, le développement cloud moderne, dont le modèle serverless fait partie, dépend des API pour le provisionnement de l'infrastructure. Les passerelles d'API permettent de déployer et gérer des fonctions serverless.

En général, lorsque l'intégration et l'interconnectivité deviennent de plus en plus importantes, les API le deviennent aussi. Et à mesure que les API se complexifient et que leur usage augmente, les passerelles d'API gagnent en utilité.

Nous proposons des solutions de gestion des API qui sont modulaires, légères et complètes, conçues selon les principes de l'Open Source et des normes ouvertes, et qui sont disponibles sur site, dans le cloud ou dans les environnements hybrides. En raison de notre engagement en faveur des technologies Open Source et de notre modèle de développement unique, notre gamme de produits est soumise à des tests exhaustifs réalisés par une communauté hétérogène qui comprend des membres de l'équipe d'ingénierie Red Hat, des clients, des partenaires, des fournisseurs de matériel et des éditeurs de logiciels indépendants. Nous avons développé deux solutions de gestion des API :

  • La solution Red Hat OpenShift API Management est un service de gestion des API hébergé et géré, fourni comme un module complémentaire de Red Hat OpenShift Dedicated (un service entièrement géré de la plateforme d'applications Kubernetes d'entreprise Red Hat OpenShift).
  • La solution Red Hat® 3scale API Management est une plateforme de gestion des API qui facilite le partage, la sécurisation, la distribution, le contrôle et la monétisation des API. Elle a été conçue pour mettre à l'échelle et prendre en charge des architectures hybrides (sur site, dans le cloud ou les deux).

Pour aller plus loin

Article

Une API, qu'est-ce que c'est ?

Une API, ou interface de programmation d'application, est un ensemble de définitions et de protocoles qui facilite la création et l'intégration de logiciels d'applications.

Article

Quel est le rôle d'une passerelle d'API ?

Une passerelle d'API est un outil de gestion des interfaces de programmation d'application (API) qui se positionne entre un client et une collection de services back-end.

Article

Red Hat, un partenaire de choix en matière d'API

Nos solutions d'API privilégient la réutilisation ainsi que l'agilité informatique. Elles incluent une interface de gestion qui vous aide à analyser, surveiller et faire évoluer votre environnement.