Como escolher uma solução central de API para as suas aplicações no Google Cloud? Comparamos os recursos do ApigeeX, Cloud Endpoints e API Gateway para ajudar você a tomar a decisão certa.

Comparativo entre Cloud Endpoints, API Gateway e ApigeeX
Desde que entrei na DoiT International como arquiteto de nuvem sênior, é comum os clientes me perguntarem como escolher uma solução central de API no GCP para as suas aplicações. Tirando o produto corporativo ApigeeX, na comparação entre Cloud Endpoints e API Gateway, qual é o melhor? E qual é a principal diferença entre essas duas soluções?
No início de 2017, o Google anunciou a disponibilidade geral do Cloud Endpoints, que conta com um proxy local de servidor construído sobre os mesmos serviços. No começo, o Cloud Endpoints funcionava com o Extensible Service Proxy (ESP) V1, um data plane baseado em nginx, dando suporte ao ambiente flexível do AppEngine, ao GCE e ao GKE. Em 2019, o Google lançou o ESP v2, baseado em Envoy, para oferecer suporte a mais serviços serverless, como Cloud Function, Cloud Run e o ambiente padrão do AppEngine. Apesar de o ESP v1 ser considerado ultrapassado, ele continua suportando o AppEngine Flexible e a configuração customizada de Nginx, algo que o ESP v2 não faz.
Além disso, como o Cloud Endpoints é um serviço de gerenciamento de API distribuído e autogerenciado com mais cobranças, o Google lançou outro serviço de gerenciamento de API, o API Gateway, que pode ser visto, em alguns aspectos, como uma versão aprimorada do Cloud Endpoints.
O Google também oferece o Apigee em diferentes variantes gerenciadas, entre elas o ApigeeX, hospedado no Google Cloud, e o ApigeeEdge, hospedado na Apigee Cloud.
Neste post, vou explicar como decidir qual solução de API escolher.
Protocolos suportados
Afinal, de quais protocolos você precisa? Essa é a primeira pergunta a se fazer.
Você pode usar a especificação OpenAPI para definir o proxy de API nas três plataformas. Todas elas suportam APIs HTTPS RESTful e, além disso, também é possível usar gRPC em qualquer uma.
Já se você precisar de suporte a WebSocket ou SOAP, o ApigeeX é a única plataforma disponível.
Integração com serviços de backend
Cloud Endpoints, API Gateway e ApigeeX se integram com serviços do Google Cloud Platform, como Cloud Functions, Cloud Run, GKE e AppEngine, e também com funções e serviços de fora do Google, como AWS Lambda functions, Azure Functions e serviços de API on-premise.
No entanto, o ApigeeX é a única opção quando o seu backend usa SOAP. Ele consegue gerar uma interface RESTful para o serviço SOAP do backend, permitindo expor um serviço SOAP como um proxy de API. Também oferece um modo pass-through para encaminhar a requisição SOAP recebida ao serviço de backend.
Outro recurso poderoso do ApigeeX é o suporte a scripts customizados, que permitem implementar funções em JavaScript e implantá-las no portal do ApigeeX. Dentro desses scripts, você pode acessar o objeto DOM da página do portal usando o evento JavaScript `onLoad` quando o usuário entra na página, e o evento `onUnload` quando ele sai dela.
Tanto o Cloud Endpoints quanto o ApigeeX suportam nomes de domínio customizados na data desta publicação. O API Gateway também aceita domínio customizado, mas o recurso ainda está em modo preview.
Segurança
API keys são uma solução padrão para proteger APIs. Cloud Endpoints, API Gateway e ApigeeX, todos suportam autenticação por API key.
Além disso, por serem serviços gerenciados pelo Google, todos também aceitam autenticação por service account. (A autenticação por service account usa a chave privada da service account para assinar um JWT seguro e envia as requisições de API com esse JWT assinado.)
Além desses dois métodos, o Cloud Endpoints suporta autenticação por Firebase e Auth0, e o ApigeeX aceita OAuth2.
Vale destacar que as três soluções de gerenciamento de API podem ser protegidas com rate limit, o que ajuda a controlar o tráfego entre as suas APIs e os serviços de backend e a prevenir ataques DOS contra as suas aplicações.
Monitoramento
É fácil monitorar as três soluções de API no Google Cloud Platform.
O Cloud Endpoints conta com um portal que permite criar um portal para desenvolvedores, e por ele você também acompanha logs e métricas. O API Gateway oferece um dashboard com mais gráficos para mostrar picos, quedas ou comportamentos inesperados — e dá para ir mais fundo na análise pela tabela de métodos do API Gateway.
Como plataforma de API de nível corporativo, o ApigeeX disponibiliza um dashboard de monitoramento que mostra todas as métricas de execução tanto no nível de integração quanto no nível de tarefa. Também é simples configurar diversos alertas no ApigeeX.
Custo
Tanto o Cloud Endpoints quanto o API Gateway oferecem free-tier para uma determinada quantidade de chamadas de API, ou seja, você não é cobrado se as chamadas mensais ficarem abaixo desse número. Porém, como o Cloud Endpoints exige a execução de um endpoints runtime em um serviço Google para fazer o proxy das requisições recebidas, esse serviço que hospeda o ambiente de runtime gera custos adicionais, além dos próprios serviços de API.
O ApigeeX oferece uma opção de avaliação, que permite implantar e testar a plataforma. Concluída a avaliação, é preciso fazer upgrade do plano. Se as suas APIs atendem a poucas requisições, dá para migrar para o plano pay-as-you-go, que não exige compromisso prévio e cobra apenas com base no uso. Você também pode optar por uma assinatura comercial caso precise de mais ambientes para atender a um grande volume de requisições.
De modo geral, o ApigeeX é a solução de API mais cara, o API Gateway é uma boa opção para grande escala e o Cloud Endpoints sai mais em conta em escalas menores.
Resumo
Cloud Endpoints e API Gateway são plataformas leves de gerenciamento de API, com recursos parecidos, e atendem à maioria dos cenários. O API Gateway é um serviço novo no GCP, e funcionalidades como o suporte a domínios customizados ainda estão em modo preview.
Já o ApigeeX, solução de nível corporativo, tem recursos bem mais completos, mas vem com um preço mais alto.
Cloud Endpoints
SaaS
Parcial
Preço
Free Tier + custo de runtime
Suporta serviços de backend internos no GCP
Sim
Suporta serviços de backend públicos fora do GCP
Sim
Protocolos suportados
HTTPS / gRPC
Suporta CORS
Sim
Domínio customizado
Sim
Modelar, acessar e converter mensagens
Não
Autenticação
API Key / Autenticação Firebase / Auth0 / Google ID Token / Google Service Account / Autenticação customizada
OpenAPI Spec
Sim
Suporte de documentação
Fraco
API Gateway
SaaS
Sim
Preço
Free Tier
Suporta serviços de backend internos no GCP
Sim
Suporta serviços de backend públicos fora do GCP
Sim
Protocolos suportados
HTTPS / gRPC
Suporta CORS
Não
Domínio customizado
Preview
Modelar, acessar e converter mensagens
Não
Autenticação
API Key / Google Service Account
OpenAPI Spec
Sim
Suporte de documentação
Fraco
Apigee
SaaS
Sim
Preço
Pay-as-you-go, assinaturas comerciais
Suporta serviços de backend internos no GCP
Não
Suporta serviços de backend públicos fora do GCP
Sim
Protocolos suportados
HTTPS / gRPC / WebSocket
Suporta CORS
Sim
Domínio customizado
Sim
Modelar, acessar e converter mensagens
Sim
Autenticação
API Key / OAuth
OpenAPI Spec
Sim
Suporte de documentação
Bom
Cloud Endpoints
API Gateway
Apigee
SaaS
Parcial
Sim
Sim
Preço
Free Tier + custo de runtime
Free Tier
Pay-as-you-go, assinaturas comerciais
Suporta serviços de backend internos no GCP
Sim
Sim
Não
Suporta serviços de backend públicos fora do GCP
Sim
Sim
Sim
Protocolos suportados
HTTPS / gRPC
HTTPS / gRPC
HTTPS / gRPC / WebSocket
Suporta CORS
Sim
Não
Sim
Domínio customizado
Sim
Preview
Sim
Modelar, acessar e converter mensagens
Não
Não
Sim
Autenticação
API Key / Autenticação Firebase / Auth0 / Google ID Token / Google Service Account / Autenticação customizada
API Key / Google Service Account
API Key / OAuth
OpenAPI Spec
Sim
Sim
Sim
Suporte de documentação
Fraco
Fraco
Bom