¿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
Sí
Soporte para servicios de backend públicos fuera de GCP
Sí
Protocolos compatibles
HTTPS / gRPC
Soporte para CORS
Sí
Dominio personalizado
Sí
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
Sí
Soporte de documentación
Limitado
API Gateway
Saas
Sí
Precios
Free Tier
Soporte para servicios de backend internos en GCP
Sí
Soporte para servicios de backend públicos fuera de GCP
Sí
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
Sí
Soporte de documentación
Limitado
Apigee
Saas
Sí
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
Sí
Protocolos compatibles
HTTPS / gRPC / WebSocket
Soporte para CORS
Sí
Dominio personalizado
Sí
Modelado, acceso y conversión de mensajes
Sí
Autenticación
API Key / OAuth
OpenAPI Spec
Sí
Soporte de documentación
Bueno
Cloud Endpoints
API Gateway
Apigee
Saas
Parcial
Sí
Sí
Precios
Free Tier + costo del runtime
Free Tier
Pay-as-you-go, suscripciones comerciales
Soporte para servicios de backend internos en GCP
Sí
Sí
No
Soporte para servicios de backend públicos fuera de GCP
Sí
Sí
Sí
Protocolos compatibles
HTTPS / gRPC
HTTPS / gRPC
HTTPS / gRPC / WebSocket
Soporte para CORS
Sí
No
Sí
Dominio personalizado
Sí
Preview
Sí
Modelado, acceso y conversión de mensajes
No
No
Sí
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
Sí
Sí
Sí
Soporte de documentación
Limitado
Limitado
Bueno