Comparando Extensible Service Proxy com Endpoints Frameworks

Nesta página, explicamos as diferenças entre o Endpoints Frameworks para o ambiente padrão do App Engine e o Extensible Service Proxy (ESP), que é usado no Cloud Endpoints para APIs com OpenAPI ou gRPC. Para mais informações sobre as opções do Endpoints, consulte Como escolher uma opção do Endpoints.

Informações gerais

O Cloud Endpoints é um sistema de gerenciamento de API que ajuda a proteger, monitorar, analisar e definir cotas em APIs usando a mesma infraestrutura do Google para suas próprias APIs. Os recursos de gerenciamento de API incluem autenticação, chaves de API, monitoramento, geração de registros e rastreamento, independentemente da tecnologia usada para implementar a API. A funcionalidade de gerenciamento da API é fornecida pelo ESP ou usando o Endpoints Frameworks.

Extensible Service Proxy

No Endpoints para OpenAPI e gRPC, as solicitações de API são redirecionadas por meio do Extensible Service Proxy, que valida chaves e tokens de autenticação e envia sinais (métricas e registros) usando a API Service Control. A separação fornecida pelo ESP significa que é possível escrever o código de back-end REST ou gRPC em qualquer linguagem, e é possível usar o gRPC ou qualquer framework compatível com a descrição da API usando a OpenAPI.

  • APIs que usam o OpenAPI: o back-end da API pode ser executado no ambiente flexível do App Engine, no Google Kubernetes Engine (GKE), no Compute Engine, no Kubernetes ou nas implantações locais.

  • APIs que usam o gRPC: o back-end da API pode ser executado no GKE, no Compute Engine, no Kubernetes ou em implantações locais.

Arquitetura ESP

Uma solicitação é enviada no caminho a seguir:

  1. A solicitação para seu código será recebida e enviada ao ESP.
  2. O ESP enviará a solicitação de verificação ao Service Control.
  3. Se tiver configurado a API para exigir uma autenticação ou chave da API, o Service Control verificará se a solicitação é permitida e enviará uma resposta de volta ao ESP.
  4. Se a solicitação não for permitida, o ESP rejeitará a solicitação. Se a solicitação for permitida, ela será encaminhada para seu código de back-end. De qualquer forma, o ESP registrará informações sobre a solicitação.

O preço do gerenciamento da API do Endpoints depende do número de chamadas por mês.

Endpoints Frameworks

Para back-ends de API em execução no ambiente padrão do App Engine, o Endpoints Frameworks pode ajudar os desenvolvedores a começar a exibição de uma API rapidamente. O Endpoints Frameworks é um framework da web, além de uma alternativa ao Python Flask ou Java Jersey. O Endpoints Frameworks se integra à API Service Control, ou seja, um back-end que usa o Endpoints Frameworks não precisa ser executado por trás do Extensible Service Proxy.

Endpoints Frameworks

Ao ativar o Gerenciamento de API, uma solicitação será enviada no caminho a seguir:

  1. A solicitação para seu código será recebida e enviada ao módulo do Endpoints Management no Endpoints Frameworks.
  2. O módulo Endpoints Management enviará uma solicitação de verificação para o Service Control.
  3. Se tiver configurado a API para exigir uma autenticação ou chave da API, o Service Control verificará se a solicitação é permitida e enviará uma resposta de volta ao módulo Endpoints Management.
  4. Se a solicitação não for permitida, o módulo de gerenciamento do Endpoints rejeitará a solicitação. Se a solicitação for permitida, ela será encaminhada para o Endpoints Frameworks. De qualquer forma, o Endpoints Management registrará informações sobre a solicitação.
  5. O Endpoints Frameworks roteará o pedido para o código de back-end.

É possível usar o Endpoints Frameworks com ou sem a funcionalidade de gerenciamento da API. O uso sem esse recurso é gratuito. A funcionalidade de gerenciamento da API é cobrada de acordo com a página de preços do Endpoints.

O Endpoints Frameworks é compatível somente com serviços em execução no ambiente padrão do App Engine. No Compute Engine, no GKE, no ambiente flexível do App Engine ou em outros ambientes, os serviços são executados por trás do ESP.

Se o serviço estiver sendo executado por trás do ESP, será possível escrever o código de back-end em qualquer linguagem e framework, como o Python Flask, o Java Jersey ou o Node.js Express. Nesses ambientes, não será necessário usar o Endpoints Frameworks para o gerenciamento da API.

A seguir