Criar e organizar uma implantação azul-verde

Neste documento, descrevemos como criar e preparar uma implantação azul-verde do Cloud SQL para realizar upgrades de versões principais ou alterações de configuração.

Antes de começar

Para criar e preparar uma implantação azul-verde, verifique se você tem os papéis necessários 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 uma implantação azul-verde, peça ao administrador para conceder a você os seguintes papéis do IAM no 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: a 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 a 8.4.
  2. Geração de registros binários e backups automatizados: é preciso ativar a geração de registros binários e os backups automatizados na instância azul para estabelecer a replicação lógica contínua no ambiente verde.
  3. Status da instância: a instância azul precisa estar em um 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 não compatíveis com implantações azul-verde, que incluem o seguinte:

  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 da implantação, o Cloud SQL executa automaticamente uma série de verificações prévias automatizadas para validar a compatibilidade e as sinalizações da replicação. 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 prosseguir com o fluxo de trabalho. Se as pré-verificações falharem, a criação da implantação será interrompida e um erro será retornado no status da operação.

Criar uma implantação azul-verde

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

Console

  1. No console do 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 de versão principal): para preparar e testar um upgrade de versão principal na instância verde antes da troca, selecione Upgrade de versão principal. Na lista Versão do banco de dados de destino, selecione a versão do banco de dados de destino (por exemplo, MySQL 8.4).

      Quando você cria uma implantação com intent, 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 bloqueios de upgrade.

    • Opção B (padrão): para criar um ambiente de preparo verde na mesma versão do banco de dados da instância de origem para testar as mudanças de configuração ou 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 intent (upgrade de versão principal)

Quando você cria uma implantação com intent, 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, é possível executar a pré-verificação de upgrade da versão principal na instância azul antes de criar a implantação para identificar possíveis bloqueios 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 a 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 região do Google Cloud da instância azul.

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

Omita a flag --target-database-version para provisionar um ambiente verde com a mesma versão de 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, especialmente ao realizar 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 intent (upgrade de versão principal)

Quando você cria uma implantação com intent, 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, é possível executar a pré-verificação de upgrade da versão principal na instância azul antes de criar a implantação para identificar possíveis bloqueios 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 região do Google Cloud da instância azul.
  • DEPLOYMENT_NAME: um nome exclusivo para a 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 intent (hardware ou configuração)

Omita o campo requestedConfig para provisionar um ambiente verde com a mesma versão de banco de dados da 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 intent (upgrade de versão principal)

Quando você cria uma implantação com intent, 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, é possível executar a pré-verificação de upgrade da versão principal na instância azul antes de criar a implantação para identificar possíveis bloqueios 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 região do Google Cloud da instância azul.
  • DEPLOYMENT_NAME: um nome exclusivo para a 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 intent (hardware ou configuração)

Omita o campo requestedConfig para provisionar um ambiente verde com a mesma versão de banco de dados da 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, na sigla em inglês). Durante o preparo, 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 implantação azul-verde:

Console

  1. No console do 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 ver as tarefas e o 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 para o 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 para o 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 do 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 alternância não pode ser iniciada (por exemplo, se a replicação estiver corrompida ou um problema for relatado em errorDetail).

Para mais informações sobre todas as fases do ciclo de vida da 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