Qu’est-ce qu’un API Gateway?

Les passerelles API, ou API gateways, offrent un point d’entrée unique dans un système comprenant plusieurs API ou plusieurs microservices communiquant entre eux grâce à des APIs. Les API gateways constituent un intérêt certain dans le cœur d’un système de gestion d’API (API management), et donc la couche intermédiaire entre les microservices et les applications clientes qui ont besoin des microservices pour fonctionner. Ces passerelles API ont pour rôle de diriger le trafic des API et permettent de relier microservices et applications clientes.

Il existe deux utilisations types d’API gateways  :

  • Service to service
  • Un trafic extérieur vers un service en entrée (ingress)

Le développement des passerelles d’API est à replacer dans le contexte plus général de l’APIsation des entreprises et de l’adoption des architectures en microservices par opposition aux SOA, ou Service-oriented Architectures. La multiplication des API pour relier des services entre eux rend service aux entreprises et aux DSI. Mais cela a également créé une complexité supplémentaire qu’est la gestion de la communication entre ces services et donc la gestion des API elles-mêmes.

Pour faire simple, dans le cadre d’une architecture en microservices, les différents microservices spécialisés communiquent avec les applications clientes grâce à des API. Les API gateways permettent de gérer le trafic généré par les API.

 

Quel est l’intérêt d’utiliser des API Gateways?

Si votre projet est géré en microservices, alors l’intérêt d’une passerelle API se trouve dans sa façon de centraliser la typologie d’une architecture. À ce titre, cela permet de faire varier l’échelle de l’utilisation des services et d’adapter l’architecture à la charge soumise. 

Dans une architecture en microservices, les applications clientes ont généralement besoin d’utiliser les fonctionnalités de plus d’un microservice et donc de faire simultanément plusieurs calls API. Lorsque le projet en microservices évolue, soit pour introduire de nouveaux microservices, soit pour mettre à jour un ou plusieurs microservice(s) existant(s), gérer les calls API à partir de l’application cliente peut rapidement devenir trop complexe. Les API gateways constituent dans ce cas un moyen de gestion intermédiaire entre le microservice et l’application cliente.

Le 3 juin 2020, nous avons publié un article sur l’APIsation dans le monde de l’assurance digital.

4 problèmes récurrents liés à l’absence d’API gateway ou passerelle API

L’intérêt d’une passerelle API est qu’elle évite de s’exposer à de nombreux problèmes :

  • Les problèmes de communication entre l’application cliente et le microservice: afin d’adapter les changements du microservice à l’application cliente, il est nécessaire d’effectuer une maintenance. Cette dernière peut se révéler très complexe du fait de la multiplication des microservices utilisés par l’application cliente, et donc de la multiplication des opérations de maintenance nécessaires.
  • La multiplication des requêtes: elle entraîne des aller-retour entre l’application cliente et les microservices. Une seule page affichée côté client peut envoyer plusieurs requêtes à différents microservices, et donc augmenter le temps de latence de l’application et in fine le temps d’affichage du rendu final au client. Les passerelles d’API servent typiquement d’intermédiaire et optimisent la gestion de la performance des requêtes envoyées.
  • Les problèmes de sécurité: sans API gateway, les microservices d’une architecture sont exposés à de potentiels tiers malveillants. Utiliser une passerelle d’API permet de masquer les microservices qui ne sont pas directement utilisés par l’application cliente et réduit donc le nombre de microservices « attaquable ».
  • Pas de mutualisation transverse entre les microservices: chaque microservice utilisé par l’application cliente doit demander ses propres autorisations, avoir son propre certificat SSL, etc. Ce qui pourrait être traité en une seule fois par l’utilisation d’une passerelle d’API demande plusieurs requêtes pour être traité.

Quels sont les potentiels risques de l’utilisation des API gateways?

La plupart des préoccupations liées à l’utilisation des passerelles API sont en fait liées à l’adoption de l’architecture en microservices elle-même. L’utilisation des microservices est certes plus complexe qu’une architecture SOA, mais comporte de nombreux avantages que ce soit en termes de développement ou de maintenance.

À un niveau plus micro, l’utilisation d’une passerelle d’API nécessite la gestion d’une complexité supplémentaire qui est le couplage de la passerelle avec les microservices en question. Cela peut se traduire au niveau de l’application cliente par un temps de réponse plus long dû à l’appel réseau supplémentaire vers cette couche intermédiaire. 

Le cas reste néanmoins marginal: dans la majorité des cas, cet appel de l’application cliente vers l’API gateway aura moins d’impact que la multitude des appels de l’application cliente directement vers les microservices requis. La mise à l’échelle de la passerelle peut également se transformer en facteur limitant. Si cette dernière n’est pas suffisamment robuste, elle peut constituer un goulot d’étranglement entre les microservices et les applications clientes. 

Vous êtes convaincus par l’intérêt d’installer une passerelle API ? Pour éviter ces écueils, BlueSoft vous accompagne dans la mise en place de vos projets IT et démontre une expertise pointue dans l’utilisation des API gateways et des microservices.

Partagez cet article !