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.switchovercloudsql.blueGreenDeployments.getcloudsql.instances.switchovercloudsql.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:
- Estado da implantação:a implantação precisa estar no estado
SWITCHOVER_READY. - Validação da carga de trabalho:conclua todos os testes e validações na instância de pré-produção verde.
- 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:
- 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.
- 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.
- Redirecionamento de tráfego:o Cloud SQL troca os endpoints de conexão entre as instâncias azul e verde.
- 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 statusSWITCHOVER_READYdepende 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. InspecioneerrorDetaile 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
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome dela.
- No card Status da implantação azul-verde, clique em Detalhes para abrir a página Visão geral da implantação.
- Clique em Alternar implantação.
- 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:
- Verifique se o aplicativo se reconecta e se as operações do banco de dados de produção são retomadas.
- Monitore o throughput de consultas, os registros de erros e o status da replicação na nova instância de produção.
- 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
- Exclua uma implantação azul-verde para remover os metadados da implantação e excluir a antiga instância azul.
- Saiba como monitorar instâncias.
- Saiba mais sobre backup e recuperação.