1*d5c09012SAndroid Build Coastguard WorkerGoogle Service Management manages a set of *services*. Service 2*d5c09012SAndroid Build Coastguard WorkerManagement allows *service producers* to 3*d5c09012SAndroid Build Coastguard Workerpublish their services on Google Cloud Platform so that they can be discovered 4*d5c09012SAndroid Build Coastguard Workerand used by *service consumers*. It also handles the tasks of tracking 5*d5c09012SAndroid Build Coastguard Workerservice lifecycle and programming various backend systems -- such as 6*d5c09012SAndroid Build Coastguard Worker[Stackdriver Logging](https://cloud.google.com/stackdriver), 7*d5c09012SAndroid Build Coastguard Worker[Stackdriver Monitoring](https://cloud.google.com/stackdriver) -- to support 8*d5c09012SAndroid Build Coastguard Workerthe managed services. 9*d5c09012SAndroid Build Coastguard Worker 10*d5c09012SAndroid Build Coastguard WorkerIf you are a service producer, you can use the Google Service Management API 11*d5c09012SAndroid Build Coastguard Workerand [Google Cloud SDK (gcloud)](/sdk) to publish and manage your services. 12*d5c09012SAndroid Build Coastguard WorkerEach managed service has a service configuration which declares various aspects 13*d5c09012SAndroid Build Coastguard Workerof the service such as its API surface, along with parameters to configure the 14*d5c09012SAndroid Build Coastguard Workersupporting backend 15*d5c09012SAndroid Build Coastguard Workersystems, such as logging and monitoring. If you build your service using 16*d5c09012SAndroid Build Coastguard Worker[Google Cloud Endpoints](https://cloud.google.com/endpoints/), the service 17*d5c09012SAndroid Build Coastguard Workerconfiguration will be handled automatically. 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard WorkerIf you are a service consumer and want to use a managed service, you can use the 20*d5c09012SAndroid Build Coastguard WorkerGoogle Service Management API or [Google Cloud Console](https://console.cloud.google.com) 21*d5c09012SAndroid Build Coastguard Workerto activate the 22*d5c09012SAndroid Build Coastguard Workerservice for your [Google developer project](https://developers.google.com/console/help/new/), 23*d5c09012SAndroid Build Coastguard Workerthen start using its APIs and functions. 24*d5c09012SAndroid Build Coastguard Worker 25*d5c09012SAndroid Build Coastguard Worker## Managed services 26*d5c09012SAndroid Build Coastguard Worker 27*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}` <br /> 28*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services). 29*d5c09012SAndroid Build Coastguard Worker 30*d5c09012SAndroid Build Coastguard WorkerA managed service refers to a network service managed by 31*d5c09012SAndroid Build Coastguard WorkerService Management. Each managed service has a unique name, such as 32*d5c09012SAndroid Build Coastguard Worker`example.googleapis.com`, which must be a valid fully-qualified DNS name, as per 33*d5c09012SAndroid Build Coastguard WorkerRFC 1035. 34*d5c09012SAndroid Build Coastguard Worker 35*d5c09012SAndroid Build Coastguard WorkerA managed service typically provides some REST APIs and/or other 36*d5c09012SAndroid Build Coastguard Workerfunctions to their service consumers, such as mobile apps or cloud services. 37*d5c09012SAndroid Build Coastguard Worker 38*d5c09012SAndroid Build Coastguard WorkerService producers can use methods, such as 39*d5c09012SAndroid Build Coastguard Worker[services.create](/service-management/reference/rest/v1/services/create), 40*d5c09012SAndroid Build Coastguard Worker[services.delete](/service-management/reference/rest/v1/services/delete), 41*d5c09012SAndroid Build Coastguard Worker[services.undelete](/service-management/reference/rest/v1/services/undelete), 42*d5c09012SAndroid Build Coastguard Workerto manipulate their managed services. 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker## Service producers 45*d5c09012SAndroid Build Coastguard Worker 46*d5c09012SAndroid Build Coastguard WorkerA service producer is the Google developer project responsible for publishing 47*d5c09012SAndroid Build Coastguard Workerand maintaining a managed service. Each managed service is owned by exactly one 48*d5c09012SAndroid Build Coastguard Workerservice producer. 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker## Service consumers 51*d5c09012SAndroid Build Coastguard Worker 52*d5c09012SAndroid Build Coastguard WorkerA service consumer is a Google developer project that has enabled and can 53*d5c09012SAndroid Build Coastguard Workerinvoke APIs on a managed service. A managed service can have many service 54*d5c09012SAndroid Build Coastguard Workerconsumers. 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker## Service configuration 57*d5c09012SAndroid Build Coastguard Worker 58*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/configs/{config_id}` <br /> 59*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services.configs). 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard WorkerEach managed service is described by a service configuration which covers a wide 62*d5c09012SAndroid Build Coastguard Workerrange of features, including its name, title, RPC API definitions, 63*d5c09012SAndroid Build Coastguard WorkerREST API definitions, documentation, authentication, and more. 64*d5c09012SAndroid Build Coastguard Worker 65*d5c09012SAndroid Build Coastguard WorkerTo change the configuration of a managed service, the service producer needs to 66*d5c09012SAndroid Build Coastguard Workerpublish an updated service configuration to Service Management. 67*d5c09012SAndroid Build Coastguard WorkerService Management keeps a history of published 68*d5c09012SAndroid Build Coastguard Workerservice configurations, making it possible to easily retrace how a service's 69*d5c09012SAndroid Build Coastguard Workerconfiguration evolved over time. Service configurations can be published using 70*d5c09012SAndroid Build Coastguard Workerthe 71*d5c09012SAndroid Build Coastguard Worker[services.configs.create](/service-management/reference/rest/v1/services.configs/create) 72*d5c09012SAndroid Build Coastguard Workeror [services.configs.submit](/service-management/reference/rest/v1/services.configs/submit) 73*d5c09012SAndroid Build Coastguard Workermethods. 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard WorkerAlternatively, `services.configs.submit` allows publishing an 76*d5c09012SAndroid Build Coastguard Worker[OpenAPI](https://github.com/OAI/OpenAPI-Specification) specification, formerly 77*d5c09012SAndroid Build Coastguard Workerknown as the Swagger Specification, which is automatically converted to a 78*d5c09012SAndroid Build Coastguard Workercorresponding service configuration. 79*d5c09012SAndroid Build Coastguard Worker 80*d5c09012SAndroid Build Coastguard Worker## Service rollout 81*d5c09012SAndroid Build Coastguard Worker 82*d5c09012SAndroid Build Coastguard WorkerREST URL: `https://servicemanagement.googleapis.com/v1/services/{service-name}/rollouts/{rollout-id}` <br /> 83*d5c09012SAndroid Build Coastguard WorkerREST schema is defined [here](/service-management/reference/rest/v1/services.rollouts). 84*d5c09012SAndroid Build Coastguard Worker 85*d5c09012SAndroid Build Coastguard WorkerA `Rollout` defines how Google Service Management should deploy service 86*d5c09012SAndroid Build Coastguard Workerconfigurations to backend systems and how the configurations take effect at 87*d5c09012SAndroid Build Coastguard Workerruntime. It lets service producers specify multiple service configuration 88*d5c09012SAndroid Build Coastguard Workerversions to be deployed together, and a strategy that indicates how they 89*d5c09012SAndroid Build Coastguard Workershould be used. 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard WorkerUpdating a managed service's configuration can be dangerous, as a configuration 92*d5c09012SAndroid Build Coastguard Workererror can lead to a service outage. To mitigate risks, Service Management 93*d5c09012SAndroid Build Coastguard Workersupports gradual rollout of service configuration changes. This feature gives 94*d5c09012SAndroid Build Coastguard Workerservice producers time to identity potential issues and rollback service 95*d5c09012SAndroid Build Coastguard Workerconfiguration changes in case of errors, thus minimizing the customer 96*d5c09012SAndroid Build Coastguard Workerimpact of bad configurations. For example, you could specify that 5% of traffic 97*d5c09012SAndroid Build Coastguard Workeruses configuration 1, while the remaining 95% uses configuration 2. 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard WorkerService Management keeps a history of rollouts so that service 100*d5c09012SAndroid Build Coastguard Workerproducers can undo to previous configuration versions. You can rollback a configuration 101*d5c09012SAndroid Build Coastguard Workerby initiating a new `Rollout` that clones a previously submitted 102*d5c09012SAndroid Build Coastguard Workerrollout record.