tadata
← Retour à l'accueil

Patterns API Gateway : routage, sécurité et approche BFF

#architecture#api#microservices#cloud#security

Un API gateway est la porte d'entrée de votre architecture microservices. Il gère les préoccupations transversales pour que les services individuels n'aient pas à le faire. Mais les décisions de conception du gateway ont des conséquences durables sur la performance, le couplage et l'autonomie des équipes.

Taxonomie des responsabilités

tadata
API Gateway Gestion du trafic Routage des requêtes Répartition de charge Limitation de débit /throttling Circuit breaking Routage canary / blue-green Sécurité Authentification (validationJWT, OAuth2) Autorisation (vérificationscope/rôle) Terminaison TLS Gestion CORS Liste blanche IP / intégrationWAF Transformation Mapping requête/réponse Traduction de protocole(REST↔gRPC) Injection d'en-têtes Agrégation de réponses Observabilité Journalisation des accès Tracing distribué (injectiontrace ID) Collecte de métriques Endpoints de health check Expériencedéveloppeur Documentation API (OpenAPI) Portail développeur Gestion des clés API Statistiques d'usage Responsabilités d'une API gateway
API Gateway Gestion du trafic Routage des requêtes Répartition de charge Limitation de débit /throttling Circuit breaking Routage canary / blue-green Sécurité Authentification (validationJWT, OAuth2) Autorisation (vérificationscope/rôle) Terminaison TLS Gestion CORS Liste blanche IP / intégrationWAF Transformation Mapping requête/réponse Traduction de protocole(REST↔gRPC) Injection d'en-têtes Agrégation de réponses Observabilité Journalisation des accès Tracing distribué (injectiontrace ID) Collecte de métriques Endpoints de health check Expériencedéveloppeur Documentation API (OpenAPI) Portail développeur Gestion des clés API Statistiques d'usage Responsabilités d'une API gateway
tadata
{ } API gateway 1 TLS termination 2 Authn: validate JWT(iss, aud, exp,signature) 3 Rate limit / quota perclient 4 Schema validation(OpenAPI) 5 Route + log + trace ID Web SPA Mobile app Partner (mTLS) Orders svc /orders Payments svc /payments Users svc /users Ce que l'API gateway impose avant l'exécution de tout service
{ } API gateway 1 TLS termination 2 Authn: validate JWT(iss, aud, exp,signature) 3 Rate limit / quota perclient 4 Schema validation(OpenAPI) 5 Route + log + trace ID Web SPA Mobile app Partner (mTLS) Orders svc /orders Payments svc /payments Users svc /users Ce que l'API gateway impose avant l'exécution de tout service
Les politiques s'exécutent dans l'ordre à chaque appel ; une requête qui échoue à l'étape 1 ou 2 ne coûte jamais un cycle CPU au backend. L'autorisation au niveau objet (BOLA) doit toujours être vérifiée dans chaque service

Extrait de la fiche « Web Application and Microservices Architecture » · Demander la fiche complète

Comparaison des outils

FonctionnalitéKongEnvoyAWS API GatewayApigee (Google)Traefik
TypeGateway completProxy / data planeService managéPlateforme géréeRouteur edge
DéploiementAuto-hébergé ou cloudSidecar ou edgeGéré par AWSGéré par GCPAuto-hébergé ou cloud
ProtocolesHTTP, gRPC, WebSocketHTTP/2, gRPC, TCPHTTP, WebSocketHTTP, gRPCHTTP, TCP, gRPC
PluginsExtensif (Lua, Go)Filtres (C++, Wasm)Autoriseurs LambdaPolicies (extensif)Middlewares (Go)
Idéal pourGestion API à l'échelleProxy haute performanceWorkloads AWS-natifsProgramme API entrepriseIngress Kubernetes

API Gateway vs Service Mesh

DimensionAPI GatewayService Mesh
PositionEdge (trafic nord-sud)Interne (trafic est-ouest)
Rôle principalGestion API externeCommunication inter-services
AuthentificationIdentité externe (JWT, clé API)mTLS entre services
Limitation de débitPar client externePar service / par route
ObservabilitéMétriques API, logs d'accèsTraces distribuées, métriques L7
DéploiementCentralisé (1 à quelques instances)Distribué (sidecar par pod)
OutilsKong, AWS APIGW, ApigeeIstio, Linkerd, Consul Connect

Point clé : Ils sont complémentaires, pas concurrents. Utilisez un gateway pour le trafic externe et un mesh pour le trafic interne. Évitez de dupliquer les politiques entre les deux couches.

tadata
Edge Services (mesh) HTTPS mTLS mTLS publish subscribe CDN + WAF API gateway Orders svc Users svc Payments svc Message bus Orders DB Users DB Payments DB external entity process data store
Edge Services (mesh) HTTPS mTLS mTLS publish subscribe CDN + WAF API gateway Orders svc Users svc Payments svc Message bus Orders DB Users DB Payments DB external entity process data store
Architecture microservices de référence. Les appels externes n'entrent que par la gateway ; les appels internes passent de service à service via le mesh (mTLS) ; les événements transitent par le bus. Chaque service possède sa base de données. Les cadres en pointillés sont des frontières de confiance : chaque flèche qui en traverse une est un point où authentifier et valider

Extrait de la fiche « Web Application and Microservices Architecture » · Demander la fiche complète

Anti-patterns

Le Gateway Dieu -- Mettre de la logique métier dans le gateway. Le gateway doit router et appliquer des politiques, pas contenir de logique domaine.

Gateway partagé entre équipes -- Quand le changement d'une équipe casse l'API d'une autre. Donnez aux équipes la propriété de leur configuration gateway.

Pas de gateway du tout -- Exposer les microservices directement signifie que chaque service réimplémente auth, rate limiting et CORS.

Ressources

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.