Comparing Extensible Service Proxy and Endpoints Frameworks

This document explains the differences between Cloud Endpoints Frameworks and the Extensible Service Proxy, which is used in Cloud Endpoints for OpenAPI and gRPC.

Overview

Google Cloud Endpoints is a set of technologies that provide end-to-end API management; from writing and serving your API, through securing it and monitoring it at runtime.

Cloud Endpoints API management includes authentication, API keys, monitoring, logging and tracing independent of the technology used to implement the API. Management functionality is provided through the Extensible Service Proxy or by using the Cloud Endpoints Frameworks in Java or Python on Google App Engine.

Extensible Service Proxy

ESP architecture

In Cloud Endpoints for OpenAPI and gRPC, API requests are relayed through the Extensible Service Proxy, which validates keys and authentication tokens and sends signals (metrics and logs) via the Google Service Control API. The separation provided by the proxy means the REST or gRPC backend can be written with any language and use any framework that supports description in OpenAPI Spec or with gRPC.

  • APIs using OpenAPI: The API backend can run on Google App Engine Flexible Environment, Google Kubernetes Engine, Google Compute Engine, Kubernetes, or on-premises deployments.

  • APIs using gRPC: The API backend can run on Google Kubernetes Engine, Google Compute Engine, Kubernetes, or on-premises deployments.

Pricing of Cloud Endpoints API management depends on the number of calls per month.

Cloud Endpoints Frameworks

For API backends running on Google App Engine Standard, Endpoints Frameworks is available to help developers quickly get started serving an API. Endpoints Frameworks is an alternative to Python Flask or Java Jersey. Endpoints Frameworks integrates with Google Service Control API, meaning a backend that uses Endpoints Frameworks does not need to run behind the Extensible Service Proxy.

Deploying a service management configuration will result in Endpoints Frameworks calling the Endpoints Management at runtime for monitoring, logging, and API key validation.

Endpoints Frameworks

A request is sent on the following path:

  1. A request to your code is received and is sent to the Endpoints Management module.
  2. If you have enabled API Management by deploying your API configuration, the Endpoints Management module reports the call to Service Control, checking API keys if necessary.
  3. The request is forwarded to the Endpoints Framework
  4. The request is forwarded to your code.

The Cloud Endpoints Frameworks can be used with or without API management functionality. To use them without API management functionality, simply omit the gcloud endpoints services deploy step.

Use of Cloud Endpoints Frameworks without API management functionality is offered at no charge. API management functionality is charged according to Cloud Endpoints pricing page.

Endpoints Frameworks is recommended for services running on App Engine Standard. On Compute Engine, Kubernetes Engine, App Engine Flex, or other environments, it is recommend that services run behind the Extensible Service Proxy.

If the service is running behind the Extensible Service Proxy, the backend code can be written in any language and framework, such as Python Flask, Java Jersey, Node.JS Express. In such environments, there is no need to use Endpoints Frameworks for API management.

Send feedback about...

Cloud Endpoints Frameworks for App Engine