Service Infrastructure is Google's foundational platform for creating, managing, and consuming APIs and services. It is used by Google APIs, Google Cloud APIs, and Cloud Endpoints. Service Infrastructure provides a wide range of features to service consumers and service producers, including authentication, authorization, auditing, rate limiting, billing, logging, and monitoring.
Service Infrastructure is designed to support thousands of service producers and millions of service consumers. In order to handle such scalability, Service Infrastructure uses a distributed microservice architecture. The system is divided into three planes based on their functionality:
- The Management Plane, which lets developers manage configurations of their services and their usage of services.
- The Data Plane, which handles the data traffic between the clients and the services.
- The Control Plane, which controls the data plane based on the configurations coming from the management plane, such as rate limiting.
Service Infrastructure provides several public APIs for these planes. A developer can use these APIs to integrate their service directly with Google Cloud, or use a framework built on top of these APIs, such as Cloud Endpoints.
Creating APIs and services
To create a managed service using Service Infrastructure, you need to create a service configuration to define your service settings and behaviors, such as service name and API surface. You then upload your service configuration to the Service Management API to create your service and register it with Google Cloud.
Running APIs and services
To run a managed service using Service Infrastructure, your service needs to call the Service Control API for admission control on each request, and telemetry reporting on each response, such as validating API keys and reporting API metrics. It allows your service to leverage the rich set of features provided by Google Cloud.
If your service has some internal components, such as billing pipelines, they can also use the Service Control API for admission control and telemetry reporting. For example, reporting billing metrics to Cloud Billing.
Managing APIs and services
If you are a service producer, you can use the Service Consumer Management API and the Service Networking API to manage consumers of your service, including creating tenant projects for your consumers, setting up network peering between tenant projects and consumer projects, and managing the quota limits of your consumers.
Consuming APIs and services
If you are a service consumer, you can use the Service Usage to list, enable, and disable APIs and services in your Cloud projects, and apply quota restrictions to services used by your Cloud projects or within your organization. You can manage both Google-provided services and services created using Cloud Endpoints.
For more information, see the Service Usage documentation.