Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Soluciones de API en Google Cloud Platform

By Kefeng DengOct 18, 20226 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

¿Cómo elegir una solución central de API para tus aplicaciones en Google Cloud? Comparamos las funcionalidades de ApigeeX, Cloud Endpoints y API Gateway para que tomes la mejor decisión.

Comparativa entre Cloud Endpoints, API Gateway y ApigeeX

Desde que entré a DoiT International como senior cloud architect, los clientes me preguntan seguido cómo elegir una solución central de API en GCP para sus aplicaciones. Más allá del producto empresarial ApigeeX, al comparar Cloud Endpoints y API Gateway, ¿cuál conviene más? ¿Y cuál es la principal diferencia entre ambas soluciones?

A principios de 2017, Google anunció la disponibilidad general de Cloud Endpoints, que cuenta con un proxy local en el servidor construido sobre los mismos servicios. En un inicio, Cloud Endpoints funcionaba con el Extensible Service Proxy (ESP) V1, un data plane basado en nginx, para dar soporte al entorno flexible de AppEngine, GCE y GKE. En 2019, Google lanzó el ESP v2 basado en Envoy para dar soporte a más servicios serverless, como Cloud Function, Cloud Run y el entorno estándar de AppEngine. Aunque ESP v1 se considera obsoleto, todavía es compatible con AppEngine Flexible y con configuración personalizada de Nginx, algo que ESP v2 no ofrece.

Además, dado que Cloud Endpoints es un servicio distribuido y autogestionado de gestión de APIs con más cargos asociados, Google lanzó otro servicio de gestión de APIs llamado API Gateway, que en algunos aspectos puede considerarse una versión mejorada de Cloud Endpoints.

Google también ofrece Apigee en distintas variantes gestionadas, entre ellas ApigeeX, alojado en Google Cloud, y ApigeeEdge, alojado en Apigee Cloud.

En este artículo te explico cómo decidir qué solución de API conviene elegir.

Protocolos compatibles

Entonces, ¿qué protocolos necesitas? Esa es la primera pregunta que deberías hacerte.

Puedes usar la especificación OpenAPI para definir el proxy de la API en las tres plataformas. De hecho, todas son compatibles con APIs Restful sobre HTTPS. Y también puedes usar gRPC en cualquiera de ellas.

Sin embargo, si necesitas WebSocket o SOAP, ApigeeX es la única plataforma que puedes usar.

Integración con servicios de backend

Cloud Endpoints, API Gateway y ApigeeX se integran con servicios de Google Cloud Platform como Cloud Functions, Cloud Run, GKE y AppEngine, además de funciones y servicios externos a Google, como funciones de AWS Lambda, Azure Functions y servicios de API on-premise.

No obstante, ApigeeX es la única opción si tu backend usa SOAP. ApigeeX puede generar una interfaz RESTful sobre el servicio SOAP del backend, lo que te permite exponer un servicio SOAP como un proxy de API. También admite un modo pass-through para reenviar la solicitud SOAP entrante al servicio de backend.

Otra funcionalidad potente de ApigeeX es el soporte de scripts personalizados, que te permiten implementar funciones a medida en JavaScript y desplegarlas en el portal de ApigeeX. Dentro de esos scripts puedes acceder al objeto DOM de la página del portal mediante el evento JavaScript `onLoad` cuando el usuario llega a la página, y mediante el evento `onUnload` cuando el usuario sale.

Tanto Cloud Endpoints como ApigeeX admiten nombres de dominio personalizados al momento de escribir esto. API Gateway también admite dominio personalizado, pero todavía está en modo preview.

Seguridad

Las API keys son una solución estándar para proteger APIs. Cloud Endpoints, API Gateway y ApigeeX soportan autenticación con API key.

Además, al ser servicios gestionados por Google, también admiten autenticación mediante service account. (La autenticación con service account utiliza la clave privada de la cuenta de servicio para firmar un JWT seguro y envía las solicitudes de API con ese JWT firmado.)

Más allá de esos dos métodos, Cloud Endpoints es compatible con autenticación de Firebase y Auth0, y ApigeeX con OAuth2.

Vale la pena mencionar que las tres soluciones de gestión de APIs pueden protegerse con un rate limit, lo que te permite controlar el tráfico entre tus APIs y los servicios de backend, y prevenir ataques DOS sobre tus aplicaciones.

Monitoreo

Las tres soluciones de API se pueden monitorear sin complicaciones en Google Cloud Platform.

Cloud Endpoints cuenta con un portal que te permite crear un portal para desarrolladores, y desde ahí también puedes monitorear logs y métricas. API Gateway ofrece un dashboard con más gráficos para explicar los picos, caídas o actividad inesperada. Y puedes profundizar aún más usando la tabla de métodos de API Gateway.

Como plataforma de soluciones de API a nivel empresarial, ApigeeX ofrece un dashboard de monitoreo que muestra todas las métricas de ejecución, tanto a nivel de integración como de tarea. Además, en ApigeeX puedes configurar fácilmente distintas alertas.

Costo

Tanto Cloud Endpoints como API Gateway ofrecen un free-tier para cierto volumen de llamadas a la API, lo que significa que no se te cobra si tus llamadas mensuales están por debajo de ese número. Sin embargo, como Cloud Endpoints requiere ejecutar un runtime de endpoints en un servicio de Google para hacer de proxy de las solicitudes entrantes, el servicio de Google que aloja ese runtime genera costos adicionales aparte de los servicios de API.

ApigeeX ofrece una opción de evaluación que te permite desplegar y probar la plataforma. Una vez terminada la evaluación, hay que hacer upgrade del plan. Si tus APIs solo atienden un volumen pequeño de solicitudes, puedes pasar al plan pay-as-you-go, que no exige compromiso por adelantado y solo cobra según el uso. También puedes pasar a una suscripción comercial si necesitas más entornos para atender grandes volúmenes de solicitudes.

En términos generales, ApigeeX es la solución de API más cara, API Gateway es una buena opción a gran escala, y Cloud Endpoints resulta más económico a menor escala.

Resumen

Cloud Endpoints y API Gateway son plataformas livianas de gestión de APIs con funcionalidades similares y se pueden usar en la mayoría de los escenarios. API Gateway es un servicio nuevo en GCP, y elementos como el soporte de dominios personalizados todavía están en modo preview.

La solución empresarial ApigeeX ofrece funcionalidades integrales, pero a un precio más alto.

Cloud Endpoints

Saas

Parcial

Precios

Free Tier + costo del runtime

Soporte para servicios de backend internos en GCP

Soporte para servicios de backend públicos fuera de GCP

Protocolos compatibles

HTTPS / gRPC

Soporte para CORS

Dominio personalizado

Modelado, acceso y conversión de mensajes

No

Autenticación

API Key / Autenticación con Firebase / Auth0 / Google ID Token / Google Service Account / Autenticación personalizada

OpenAPI Spec

Soporte de documentación

Limitado

API Gateway

Saas

Precios

Free Tier

Soporte para servicios de backend internos en GCP

Soporte para servicios de backend públicos fuera de GCP

Protocolos compatibles

HTTPS / gRPC

Soporte para CORS

No

Dominio personalizado

Preview

Modelado, acceso y conversión de mensajes

No

Autenticación

API Key / Google Service Account

OpenAPI Spec

Soporte de documentación

Limitado

Apigee

Saas

Precios

Pay-as-you-go, suscripciones comerciales

Soporte para servicios de backend internos en GCP

No

Soporte para servicios de backend públicos fuera de GCP

Protocolos compatibles

HTTPS / gRPC / WebSocket

Soporte para CORS

Dominio personalizado

Modelado, acceso y conversión de mensajes

Autenticación

API Key / OAuth

OpenAPI Spec

Soporte de documentación

Bueno

Cloud Endpoints

API Gateway

Apigee

Saas

Parcial

Precios

Free Tier + costo del runtime

Free Tier

Pay-as-you-go, suscripciones comerciales

Soporte para servicios de backend internos en GCP

No

Soporte para servicios de backend públicos fuera de GCP

Protocolos compatibles

HTTPS / gRPC

HTTPS / gRPC

HTTPS / gRPC / WebSocket

Soporte para CORS

No

Dominio personalizado

Preview

Modelado, acceso y conversión de mensajes

No

No

Autenticación

API Key / Autenticación con Firebase / Auth0 / Google ID Token / Google Service Account / Autenticación personalizada

API Key / Google Service Account

API Key / OAuth

OpenAPI Spec

Soporte de documentación

Limitado

Limitado

Bueno