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.createcloudsql.blueGreenDeployments.getcloudsql.instances.getcloudsql.instances.createcloudsql.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:
- 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.
- 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.
- Status da instância:a instância azul precisa estar no estado
RUNNINGsem operações em andamento ou janelas de manutenção conflitantes. 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:
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.
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
-
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.
- Na seção Configuração, clique em Criar implantação azul-verde.
- 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.
- 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.
- 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).
- 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
-
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.
- Localize o card Status da implantação azul-verde para conferir o status da implantação.
- 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 emerrorDetail).
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
- Descreva e liste as implantações azul-verde para inspecionar o status da implantação e recuperar os detalhes da conexão.
- Mude uma implantação azul-verde para converter a instância verde na instância de leitura e gravação de produção ativa.
- Exclua uma implantação azul-verde para cancelar o preparo e remover o ambiente verde.