Service Infrastructure is Google's foundational platform for creating, managing, securing, 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 Service Infrastructure, 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.
For more information, see Managing Services in the How-to Guides.
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.
For more information, see Integrating with Service Infrastructure in the How-to Guides.
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.
For more information, see Managing Service Consumers in the How-to Guides.
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.