Comment choisir une solution API centrale pour vos applications Google Cloud ? Nous comparons les fonctionnalités d'ApigeeX, Cloud Endpoints et API Gateway pour vous aider à faire le bon choix.

Comparatif Cloud Endpoints, API Gateway et ApigeeX
Depuis que j'ai rejoint DoiT International en tant qu'architecte cloud senior, les clients me demandent souvent comment choisir une solution API centrale sur GCP pour leurs applications. Au-delà du produit entreprise ApigeeX, lequel privilégier entre Cloud Endpoints et API Gateway ? Et quelle est la principale différence entre ces deux solutions ?
Début 2017, Google a annoncé la disponibilité générale de Cloud Endpoints, qui repose sur un proxy local au serveur bâti sur les mêmes services. À l'origine, Cloud Endpoints s'appuyait sur l'Extensible Service Proxy (ESP) V1, un data plane basé sur nginx, pour prendre en charge l'environnement flexible AppEngine, GCE et GKE. En 2019, Google a publié l'ESP v2 basé sur Envoy afin de couvrir davantage de services serverless, comme Cloud Function, Cloud Run et l'environnement standard AppEngine. Bien que l'ESP v1 soit considéré comme dépassé, il prend toujours en charge AppEngine Flexible et la configuration Nginx personnalisée, ce que ne fait pas l'ESP v2.
Par ailleurs, Cloud Endpoints étant un service de gestion d'API distribué et auto-géré qui engendre davantage de coûts, Google a lancé un autre service de gestion d'API baptisé API Gateway, que l'on peut considérer, à certains égards, comme une version améliorée de Cloud Endpoints.
Google propose également Apigee dans plusieurs déclinaisons managées, notamment ApigeeX, hébergé sur Google Cloud, et ApigeeEdge, hébergé sur Apigee Cloud.
Dans cet article, je vais vous expliquer comment choisir la solution API la mieux adaptée.
Protocoles pris en charge
Quels protocoles devez-vous prendre en charge ? C'est la première question à se poser.
Vous pouvez utiliser la spécification OpenAPI pour définir le proxy d'API sur les trois plateformes. Toutes prennent en charge les API HTTPS Restful. gRPC est également disponible sur les trois.
En revanche, pour WebSocket ou SOAP, ApigeeX est la seule plateforme possible.
Intégration avec les services backend
Cloud Endpoints, API Gateway et ApigeeX s'intègrent aux services Google Cloud Platform tels que Cloud Functions, Cloud Run, GKE et AppEngine, mais aussi à des fonctions et services non-Google, comme AWS Lambda, Azure Functions et les services API on-premise.
Toutefois, ApigeeX est le seul choix possible si votre backend utilise SOAP. ApigeeX peut générer une interface RESTful vers le service backend SOAP, ce qui vous permet d'exposer un service SOAP sous forme de proxy d'API. Il prend également en charge un mode pass-through pour relayer la requête SOAP entrante vers le service backend.
Autre fonctionnalité puissante d'ApigeeX : la prise en charge de scripts personnalisés, qui vous permettent d'implémenter des fonctions sur mesure en JavaScript et de les déployer sur le portail ApigeeX. Au sein de ces scripts, vous pouvez accéder à l'objet DOM de la page du portail via l'événement JavaScript `onLoad` lorsque l'utilisateur arrive sur la page, et via l'événement `onUnload` lorsqu'il la quitte.
À l'heure où nous écrivons ces lignes, Cloud Endpoints et ApigeeX prennent tous deux en charge les noms de domaine personnalisés. API Gateway les prend également en charge, mais cette fonctionnalité est encore en preview.
Sécurité
Les clés d'API constituent la solution standard pour sécuriser des API. Cloud Endpoints, API Gateway et ApigeeX prennent tous en charge l'authentification par clé d'API.
De plus, étant des services managés par Google, ils prennent également en charge l'authentification par compte de service. (Celle-ci utilise la clé privée du compte de service pour signer un JWT sécurisé et envoie les requêtes API accompagnées de ce JWT signé.)
Outre ces deux méthodes, Cloud Endpoints prend en charge l'authentification Firebase et Auth0, et ApigeeX prend en charge OAuth2.
Notons que les trois solutions de gestion d'API peuvent être protégées par une limitation de débit (rate limit), afin de maîtriser le trafic entre vos API et vos services backend et de prévenir les attaques DOS contre vos applications.
Monitoring
Les trois solutions API se surveillent facilement sur Google Cloud Platform.
Cloud Endpoints dispose d'un portail qui vous permet de créer un portail développeur et d'y consulter les logs et les métriques. API Gateway propose un dashboard avec davantage de graphiques pour analyser les pics, les chutes ou les comportements inattendus. Vous pouvez aussi approfondir l'analyse via la table des méthodes d'API Gateway.
Plateforme API de niveau entreprise, ApigeeX propose un dashboard de monitoring qui affiche toutes les métriques d'exécution, aussi bien au niveau de l'intégration que des tâches. Vous pouvez en outre y configurer facilement diverses alertes.
Coût
Cloud Endpoints et API Gateway proposent tous deux un free-tier pour un certain nombre d'appels d'API : vous n'êtes pas facturé tant que vos appels mensuels restent en deçà de ce seuil. Cependant, comme Cloud Endpoints exige l'exécution d'un runtime Endpoints au sein d'un service Google pour relayer les requêtes entrantes, le service Google qui héberge cet environnement d'exécution génère des coûts supplémentaires en plus des services API.
ApigeeX propose une option d'évaluation, qui vous permet de déployer et tester la plateforme. Une fois l'évaluation terminée, vous devez passer à un plan payant. Si vos API ne traitent qu'un faible volume de requêtes, vous pouvez opter pour le plan pay-as-you-go, sans engagement initial et facturé à l'usage. Vous pouvez aussi souscrire un abonnement commercial si vous avez besoin de plus d'environnements pour traiter de gros volumes de requêtes.
En règle générale, ApigeeX est la solution API la plus coûteuse, API Gateway constitue un bon choix à grande échelle, et Cloud Endpoints reste plus abordable à plus petite échelle.
Synthèse
Cloud Endpoints et API Gateway sont des plateformes de gestion d'API légères, aux fonctionnalités similaires, et conviennent à la plupart des cas d'usage. API Gateway est un service récent sur GCP, et certains éléments comme la prise en charge des domaines personnalisés sont encore en preview.
La solution de niveau entreprise ApigeeX offre des fonctionnalités complètes, mais à un prix plus élevé.
Cloud Endpoints
SaaS
Partiel
Prix
Free Tier + coût du runtime
Prise en charge des services backend GCP internes
Oui
Prise en charge des services backend publics non-GCP
Oui
Protocoles pris en charge
HTTPS / gRPC
Prise en charge CORS
Oui
Domaine personnalisé
Oui
Mise en forme, accès et conversion des messages
Non
Authentification
Clé d'API / Authentification Firebase / Auth0 / Google ID Token / Compte de service Google / Authentification personnalisée
Spécification OpenAPI
Oui
Prise en charge documentaire
Faible
API Gateway
SaaS
Oui
Prix
Free Tier
Prise en charge des services backend GCP internes
Oui
Prise en charge des services backend publics non-GCP
Oui
Protocoles pris en charge
HTTPS / gRPC
Prise en charge CORS
Non
Domaine personnalisé
Preview
Mise en forme, accès et conversion des messages
Non
Authentification
Clé d'API / Compte de service Google
Spécification OpenAPI
Oui
Prise en charge documentaire
Faible
Apigee
SaaS
Oui
Prix
Pay-as-you-go, abonnements commerciaux
Prise en charge des services backend GCP internes
Non
Prise en charge des services backend publics non-GCP
Oui
Protocoles pris en charge
HTTPS / gRPC / WebSocket
Prise en charge CORS
Oui
Domaine personnalisé
Oui
Mise en forme, accès et conversion des messages
Oui
Authentification
Clé d'API / OAuth
Spécification OpenAPI
Oui
Prise en charge documentaire
Bonne
Cloud Endpoints
API Gateway
Apigee
SaaS
Partiel
Oui
Oui
Prix
Free Tier + coût du runtime
Free Tier
Pay-as-you-go, abonnements commerciaux
Prise en charge des services backend GCP internes
Oui
Oui
Non
Prise en charge des services backend publics non-GCP
Oui
Oui
Oui
Protocoles pris en charge
HTTPS / gRPC
HTTPS / gRPC
HTTPS / gRPC / WebSocket
Prise en charge CORS
Oui
Non
Oui
Domaine personnalisé
Oui
Preview
Oui
Mise en forme, accès et conversion des messages
Non
Non
Oui
Authentification
Clé d'API / Authentification Firebase / Auth0 / Google ID Token / Compte de service Google / Authentification personnalisée
Clé d'API / Compte de service Google
Clé d'API / OAuth
Spécification OpenAPI
Oui
Oui
Oui
Prise en charge documentaire
Faible
Faible
Bonne