Comparando Extensible Service Proxy com Endpoints Frameworks

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

Visão geral

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, registro e rastreamento, independentemente da tecnologia usada para sua implementação. A funcionalidade desse gerenciamento é fornecida pelo ESP ou pelo Endpoints Frameworks.

Extensible Service Proxy

No Endpoints para OpenAPI e gRPC, as solicitações de API são retransmitidas pelo 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 você pode escrever o código de back-end REST ou gRPC em qualquer idioma e usar o gRPC ou qualquer framework que ofereça suporte à 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 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