Fazer uma troca de implantação azul-verde

Depois de testar e validar o ambiente verde, inicie uma substituição para converter o ambiente verde no novo ambiente de produção de leitura e gravação.

Antes de começar

Antes de iniciar uma troca, verifique se você tem as permissões necessárias e se a implantação está pronta para a transição.

Papéis e permissões necessárias

Para receber as permissões necessárias para executar um failover, peça ao administrador para conceder a você o seguinte papel do IAM no projeto:

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

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

  • cloudsql.blueGreenDeployments.switchover
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.switchover
  • 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.

Verificação pré-substituição

Antes de iniciar uma alternância, verifique as seguintes condições:

  1. Estado da implantação:a implantação precisa estar no estado SWITCHOVER_READY.
  2. Validação da carga de trabalho:conclua todos os testes e validações na instância de pré-produção verde.
  3. Baixo atraso de replicação:garanta que o atraso de replicação entre azul e verde seja mínimo para reduzir o tempo de transição.

Como funciona a troca

Ao iniciar um failover, o Cloud SQL executa a seguinte sequência automatizada:

  1. Validação pré-failover:antes da operação de failover, o Cloud SQL valida se a replicação não está interrompida e realiza uma série de verificações de configuração para garantir que a implantação esteja pronta.
  2. Execução do fluxo de trabalho de switchover:durante a execução do fluxo de trabalho, o Cloud SQL prepara as instâncias para a transição. Se o atraso de replicação for muito alto ou se uma transação ativa bloquear a migração, a operação de failover vai falhar e seu ambiente azul de produção vai permanecer on-line.
  3. Redirecionamento de tráfego:o Cloud SQL troca os endpoints de conexão entre as instâncias azul e verde.
  4. Conversão de função:a instância verde se torna a instância de leitura e gravação de produção ativa, e a instância azul se torna uma instância independente de leitura e gravação.

Durante a troca, as conexões de aplicativos passam por uma breve interrupção (normalmente em segundos) antes de se reconectarem automaticamente à instância de produção atualizada. O tempo de inatividade da troca varia de acordo com a edição do Cloud SQL:

  • Edição Cloud SQL Enterprise Plus:o tempo de inatividade de failover geralmente é inferior a um segundo.
  • Cloud SQL Enterprise Edition:o tempo de inatividade de failover geralmente é inferior a 60 segundos, dependendo da carga de trabalho e do atraso de replicação. Não é necessário fazer mudanças na configuração do aplicativo ou na string de conexão.

Estados do ciclo de vida da troca

Antes, durante e depois de uma alternância, a implantação passa pelos seguintes estados no campo de resposta state:

  • SWITCHOVER_READY:a replicação lógica de azul para verde está íntegra e a implantação está pronta para a troca. O status SWITCHOVER_READY depende apenas da integridade da replicação. O Cloud SQL não avalia o atraso de replicação ao definir esse status.
  • SWITCHOVER_NOT_READY:a implantação foi provisionada, mas a troca não pode ser iniciada. Isso acontece se a replicação lógica for interrompida, pausada ou paralisada, ou se ocorrer um erro no nó subjacente. O Cloud SQL não avalia o atraso de replicação ao definir esse status. Inspecione errorDetail e resolva o erro antes de tentar a troca.
  • SWITCHOVER_IN_PROGRESS:o comando de alternância está sendo executado. O Cloud SQL está trocando endpoints de conexão e convertendo o verde para a instância de leitura e gravação de produção.
  • SWITCHOVER_COMPLETED:a troca foi concluída. A instância verde agora é seu banco de dados de produção ativo, atendendo ao tráfego de leitura e gravação. A instância azul é mantida como uma instância independente de leitura e gravação até que você exclua a implantação.

Práticas recomendadas antes da troca

  • Agende durante períodos de baixo tráfego:embora o tempo de inatividade seja mínimo (normalmente em segundos), inicie a troca durante períodos de baixa atividade de gravação (por exemplo, fora dos horários de pico ou janelas de manutenção, quando as consultas por segundo [QPS] estão no mínimo). Isso minimiza o atraso na replicação e reduz o risco de transações canceladas.
  • Verifique o atraso da replicação:confira se ele é mínimo antes de iniciar a troca. A descrição de uma implantação azul-verde não mostra o atraso de replicação, e o Cloud SQL não verifica o atraso antes da operação de failover. No entanto, durante a execução do fluxo de trabalho, a troca falha se o atraso da replicação for muito alto. Para monitorar o atraso de replicação, verifique as métricas do Cloud Monitoring (como replica_lag) ou inspecione o status da replicação diretamente na instância verde. Para mais informações, consulte Atraso de replicação.
  • Verifique as transações ativas:confira se as operações DDL de longa duração ou gravações em lote foram concluídas antes de iniciar a alternância.

Iniciar uma troca

Inicie a operação de failover usando o console Google Cloud , a CLI gcloud ou a API Cloud SQL Admin:

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. No card Status da implantação azul-verde, clique em Detalhes para abrir a página Visão geral da implantação.
  4. Clique em Alternar implantação.
  5. Na caixa de diálogo Diferenças nas configurações da instância, revise as diferenças entre as instâncias de Origem e Destino e clique em Continuar para iniciar a substituição.

gcloud

Execute o comando blue-green-deployments switchover:

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

As operações de failover podem levar vários minutos para serem concluídas. 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

Para verificar o status da operação de alternância, execute o comando gcloud sql operations describe:

gcloud sql operations describe OPERATION_ID

Substitua:

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

REST v1

Envie uma solicitação POST para o método blueGreenDeployments.switchover:

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

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

Envie uma solicitação POST para o método blueGreenDeployments.switchover:

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

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.

Monitoramento pós-troca

Depois que a troca for concluída:

  1. Verifique se o aplicativo se reconecta e se as operações do banco de dados de produção são retomadas.
  2. Monitore o throughput de consultas, os registros de erros e o status da replicação na nova instância de produção.
  3. Mantenha a instância azul independente intacta durante a janela inicial de verificação pós-upgrade. Depois de confirmar a estabilidade, exclua a implantação. Para mais informações, consulte Excluir uma implantação azul-verde.

A seguir