Criar e organizar uma implantação azul-verde

Este documento descreve como criar e preparar uma implantação azul-verde do Cloud SQL para fazer upgrades de versão principal ou mudanças de configuração.

Antes de começar

Para criar e preparar uma implantação azul-verde, verifique se você tem as funções necessárias e se a instância de origem atende aos pré-requisitos de implantação.

Papéis e permissões necessárias

Para receber as permissões necessárias para criar e preparar um implantação azul-verde, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:

  • Editor do Cloud SQL (roles/cloudsql.editor)
  • Administrador do Cloud SQL (roles/cloudsql.admin)

Para papéis personalizados, verifique se você tem as seguintes permissões:

  • cloudsql.blueGreenDeployments.create
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.get
  • cloudsql.instances.create
  • cloudsql.operations.get

Para mais informações sobre os papéis e as permissões do IAM no Cloud SQL, consulte Papéis e permissões.

Pré-requisitos da instância

Antes de criar uma implantação azul-verde, verifique se a instância de produção (azul) atende aos seguintes requisitos:

  1. Mecanismo de banco de dados e versão:sua instância precisa executar o Cloud SQL para MySQL versão 5.7, 8.0 ou 8.4. A versão 8.0.18 não é compatível. Para upgrades de versões principais, é possível fazer upgrade da versão 8.0 para 8.4.
  2. Geração de registros binários e backups automatizados:ative a geração de registros binários e os backups automatizados na instância azul para estabelecer uma replicação lógica contínua no ambiente verde.
  3. Status da instância:a instância azul precisa estar no estado RUNNING sem operações em andamento ou janelas de manutenção conflitantes.
  4. Recursos não compatíveis:verifique se a instância não usa recursos que não são compatíveis com implantações azul-verde, incluindo:

  5. Versão de manutenção mais recente:sua instância precisa executar a versão de manutenção mais recente antes de criar uma implantação azul-verde. Para mais informações, consulte Manutenção de autoatendimento.

  6. Arquitetura de rede:sua instância precisa usar a nova arquitetura de rede. Não há suporte para instâncias que usam a arquitetura de rede antiga.

Quando você aciona a criação de implantação, o Cloud SQL executa automaticamente uma série de pré-verificações automatizadas para validar a compatibilidade de replicação e as flags. Para upgrades de versão principal, o Cloud SQL também executa a API de pré-verificação de upgrade de versão principal na instância de origem para validar a prontidão do upgrade antes de continuar com o fluxo de trabalho. Se as pré-verificações falharem, a criação da implantação será interrompida e retornará um erro no status da operação.

Criar uma implantação azul-verde

É possível criar uma implantação azul-verde com intenção para fazer um upgrade de versão principal ou sem intenção para preparar atualizações de hardware ou flags.

Console

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome dela.
  3. Na seção Configuração, clique em Criar implantação azul-verde.
  4. Na página Criar implantação azul-verde, na seção Informações da implantação, insira um nome exclusivo para a implantação no campo Nome da implantação.
  5. Na lista Caso de uso da implantação, selecione uma das seguintes opções:
    • Opção A (upgrade da versão principal): para preparar e testar um upgrade da versão principal na instância verde antes da troca, selecione Upgrade da versão principal. Na lista Versão do banco de dados de destino, selecione a versão de destino (por exemplo, MySQL 8.4).

      Quando você cria uma implantação com intenção, o Cloud SQL executa automaticamente a pré-verificação de upgrade da versão principal como parte da operação antes de criar a instância verde. Como alternativa, recomendamos que você execute a pré-verificação de upgrade da versão principal antes de criar a implantação para identificar possíveis bloqueadores de upgrade.

    • Opção B (padrão): para criar um ambiente de staging verde na mesma versão do banco de dados da instância de origem e testar a configuração ou mudanças de hardware, selecione Padrão.
  6. Clique em Criar.

gcloud

Para criar uma implantação azul-verde usando gcloud, execute o comando blue-green-deployments create.

Opção A: criar com intenção (upgrade da versão principal)

Quando você cria uma implantação com intenção, o Cloud SQL executa automaticamente a pré-verificação de upgrade da versão principal como parte da operação antes de criar a instância verde. Como alternativa, execute a pré-verificação de upgrade da versão principal na sua instância azul antes de criar a implantação para identificar bloqueadores de upgrade.

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --target-database-version=TARGET_DATABASE_VERSION \
  --region=REGION \
  --async

Substitua:

  • DEPLOYMENT_NAME: um nome exclusivo para sua implantação.
  • SOURCE_INSTANCE_ID: o nome da instância de origem azul.
  • TARGET_DATABASE_VERSION: a versão de destino (por exemplo, MYSQL_8_4).
  • REGION: a Google Cloud região da sua instância azul.

Opção B: criar sem intenção (hardware ou configuração)

Omita a flag --target-database-version para provisionar um ambiente verde na mesma versão do banco de dados da instância azul:

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --region=REGION \
  --async

A criação de uma implantação azul-verde leva vários minutos para ser concluída, principalmente ao fazer um upgrade de versão principal. Talvez você veja uma mensagem indicando que a operação está demorando mais que o esperado. Você pode ignorar essa mensagem ou executar o comando gcloud sql operations wait para dispensá-la e aguardar a conclusão da operação:

gcloud sql operations wait OPERATION_ID

Substitua OPERATION_ID pelo ID da operação retornado pelo comando ou exibido na mensagem.

REST v1

Para criar uma implantação azul-verde usando a API Cloud SQL Admin, envie uma solicitação POST para o método blueGreenDeployments.create.

Opção A: criar com intenção (upgrade da versão principal)

Quando você cria uma implantação com intenção, o Cloud SQL executa automaticamente a pré-verificação de upgrade da versão principal como parte da operação antes de criar a instância verde. Como alternativa, execute a pré-verificação de upgrade da versão principal na sua instância azul antes de criar a implantação para identificar bloqueadores de upgrade.

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • REGION: a Google Cloud região da sua instância azul.
  • DEPLOYMENT_NAME: um nome exclusivo para sua implantação.
  • SOURCE_INSTANCE_ID: o nome da instância de origem azul.
  • TARGET_DATABASE_VERSION: a versão do banco de dados de destino (por exemplo, MYSQL_8_4).

Opção B: criar sem intenção (hardware ou configuração)

Omita o campo requestedConfig para provisionar um ambiente verde na mesma versão do banco de dados que a instância azul:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

REST v1beta4

Para criar uma implantação azul-verde usando a API Cloud SQL Admin, envie uma solicitação POST para o método blueGreenDeployments.create.

Opção A: criar com intenção (upgrade da versão principal)

Quando você cria uma implantação com intenção, o Cloud SQL executa automaticamente a pré-verificação de upgrade da versão principal como parte da operação antes de criar a instância verde. Como alternativa, execute a pré-verificação de upgrade da versão principal na sua instância azul antes de criar a implantação para identificar bloqueadores de upgrade.

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • REGION: a Google Cloud região da sua instância azul.
  • DEPLOYMENT_NAME: um nome exclusivo para sua implantação.
  • SOURCE_INSTANCE_ID: o nome da instância de origem azul.
  • TARGET_DATABASE_VERSION: a versão do banco de dados de destino (por exemplo, MYSQL_8_4).

Opção B: criar sem intenção (hardware ou configuração)

Omita o campo requestedConfig para provisionar um ambiente verde na mesma versão do banco de dados que a instância azul:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

Monitorar o status da implantação

A criação é uma operação de longa duração (LRO). Durante o teste, o Cloud SQL provisiona a instância verde, faz upgrade dela (se um upgrade de versão principal foi solicitado) e inicia a replicação lógica contínua.

Verifique o progresso e o status da sua implantação azul-verde:

Console

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome dela.
  3. Localize o card Status da implantação azul-verde para conferir o status da implantação.
  4. Para conferir tarefas e progresso detalhados do provisionamento, clique em Detalhes para abrir a página Visão geral da implantação.

gcloud

Para verificar o progresso e o status da implantação azul-verde usando gcloud, execute o comando blue-green-deployments describe:

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION

Substitua:

  • DEPLOYMENT_NAME: o nome da implantação azul-verde.
  • REGION: a região do Google Cloud em que a implantação foi criada.

Para aguardar a conclusão da operação de criação, execute o comando gcloud sql operations wait:

gcloud sql operations wait OPERATION_ID

Substitua OPERATION_ID pelo ID da operação de criação.

REST v1

Para verificar o progresso e o status da implantação azul-verde usando a API Cloud SQL Admin, envie uma solicitação GET ao método blueGreenDeployments.get:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • REGION: a região do Google Cloud em que a implantação foi criada.
  • DEPLOYMENT_NAME: o nome da implantação azul-verde.

REST v1beta4

Para verificar o progresso e o status da implantação azul-verde usando a API Cloud SQL Admin, envie uma solicitação GET ao método blueGreenDeployments.get:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

Substitua:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .
  • REGION: a região do Google Cloud em que a implantação foi criada.
  • DEPLOYMENT_NAME: o nome da implantação azul-verde.

Na resposta ao comando ou no console Google Cloud , monitore o campo state para acompanhar o ciclo de vida da implantação:

  • PROVISIONING:a instância verde está sendo criada, atualizada (se solicitado) e conectada à replicação lógica contínua.
  • SWITCHOVER_READY:a replicação inicial foi concluída e a replicação lógica contínua está ativa. A implantação está pronta para validação, teste e alternância.
  • SWITCHOVER_NOT_READY:a implantação é provisionada, mas a troca não pode ser iniciada (por exemplo, se a replicação estiver interrompida ou um problema for informado em errorDetail).

Para mais informações sobre todas as fases do ciclo de vida de implantação, consulte Ciclo de vida e estados da implantação.

Aguarde até que o estado da implantação mude para SWITCHOVER_READY antes de descrever a implantação, validar as cargas de trabalho do aplicativo ou iniciar uma alternância.

A seguir