Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Solutions API sur Google Cloud Platform

By Kefeng DengOct 18, 20226 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

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