Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Soluções de API no Google Cloud Platform

By Kefeng DengOct 18, 20226 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

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