Gerir implementações de serviços

Esta página descreve como usar a Service Infrastructure para fazer implementações graduais da configuração do serviço .

A atualização da configuração do serviço para um serviço de produção é arriscada e pode potencialmente causar uma indisponibilidade. A API Service Management permite-lhe implementar gradualmente alterações de configuração, mitigando assim o impacto causado por configurações de serviço incorretas.

Pode implementar várias versões de configuração do serviço e definir como estas versões vão ser usadas no tempo de execução, tudo através da chamada do método services.rollouts.create para iniciar uma implementação. É possível implementar, no máximo, 5 configurações de serviço em simultâneo.

Antes de começar

Para executar os exemplos neste guia, certifique-se de que segue primeiro as instruções para concluir a configuração inicial em Introdução à API Service Management.

A executar a implementação

Partindo do princípio de que tem um serviço gerido endpointsapis.appspot.com criado na API Service Management, pode efetuar os seguintes passos para implementar uma alteração de configuração do serviço de forma organizada e controlada.

Por exemplo, endpointsapis.appspot.com está atualmente a usar a configuração do serviço old e quer alterá-la para usar a configuração do serviço new. Em vez de ter a nova configuração do serviço usada instantaneamente por todo o tráfego de produção, pode criar uma implementação para testar a nova configuração do serviço com 10% do tráfego total:

# Create rollout to test the new configuration with 10% traffic.
$ gcurl -d '{
  "rolloutId": "canary-rollout",
  "serviceName": "endpointsapis.appspot.com",
  "trafficPercentStrategy": {
    "percentages": {
      "new": 10,
      "old": 90
    }
  }
}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com/rollouts
{
  "name": "operations/rollouts.endpointsapis.appspot.com:canary-rollout"
  "metadata": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "services/endpointsapis.appspot.com/rollouts/canary-rollout"
    ],
    "startTime": ...
  },
  "response": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.Rollout",
    "rolloutId": "canary-rollout",
    "createTime": ...
    "trafficPercentStrategy": {
      "percentages": {
        "old": 90,
        "new": 10,
      }
    },
    "serviceName": "endpointsapis.appspot.com"