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

Responsabilités 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 (validation JWT, OAuth2)
│   ├── Autorisation (vérification scope/rôle)
│   ├── Terminaison TLS
│   ├── Gestion CORS
│   └── Whitelist IP / intégration WAF
├── 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é (injection trace ID)
    ├── Collecte de métriques
    └── Endpoints de health check

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.

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.