Gerenciar atualizações de manutenção do AlloyDB usando um cluster de staging

Para minimizar o risco para as cargas de trabalho de produção do AlloyDB para PostgreSQL, use um cluster de preparo para testar novos recursos, desempenho e funcionalidades antes de aplicar atualizações aos sistemas de produção. Um cluster de preparo é uma cópia do cluster de produção que adiciona uma camada de controle ao processo de atualização de manutenção. Usar um cluster de teste para testar as atualizações de manutenção permite identificar e resolver possíveis problemas em um ambiente de produção. Essa abordagem reduz o risco de inatividade e degradação do desempenho nos sistemas de produção.

As atualizações de manutenção do AlloyDB são periódicas, geralmente mensais. As atualizações incluem novos recursos, correções de bugs, upgrades de compatibilidade de banco de dados e correções relacionadas à segurança. Embora as versões do AlloyDB sejam compatíveis com versões anteriores, recomendamos que você teste as novas versões em um ambiente de teste para garantir a estabilidade e a previsibilidade do banco de dados para os aplicativos críticos no cluster de produção. Para mais informações, consulte Visão geral da manutenção.

Para usar um cluster de preparo, siga estas etapas gerais:

  1. Configurar um cluster de preparo.
  2. Configurar uma janela de manutenção em um cluster de produção.
  3. Gerenciar atualizações de cluster de preparo.
  4. Gerenciar atualizações de clusters de produção.

Essa abordagem de validação de preparo para a manutenção do AlloyDB garante que o ambiente de produção permaneça estável, com bom desempenho e seguro, enquanto se beneficia dos recursos e patches mais recentes do AlloyDB.

O diagrama a seguir mostra a relação entre o cluster de preparo e o cluster de produção, além do fluxo operacional do processo de atualização:

Relação entre os clusters de produção e de preparação

Para saber mais sobre como as atualizações de manutenção funcionam com os clusters do AlloyDB, consulte Visão geral da manutenção. Para saber mais sobre como gerenciar janelas de manutenção, consulte Gerenciar janelas de manutenção de cluster do AlloyDB para PostgreSQL.

Antes de começar

O projeto do Google Cloud que você usa precisa estar ativado para acessar o AlloyDB.

Para configurar um cluster de preparo, é necessário criar ou já ter um cluster de produção do AlloyDB. Para mais informações, consulte Criar um cluster e a instância primária dele.

Você precisa ter um dos seguintes papéis do IAM no projeto do Google Cloud que está usando:

  • roles/alloydb.admin: o papel predefinido do IAM de Admin do AlloyDB
  • roles/owner: o papel básico do IAM de Proprietário
  • roles/editor: o papel básico do IAM de Editor

Se você não tiver nenhum desses papéis, entre em contato com o Administrador da organização para solicitar o acesso.

Configurar um cluster de preparo

A chave para uma estratégia de preparo bem-sucedida é garantir que o cluster de preparo seja semelhante ao ambiente de produção e que receba atualizações antes da produção. Para configurar uma estratégia de preparo primeiro, não defina uma janela de manutenção no cluster de preparo. O AlloyDB atualiza primeiro os clusters sem janelas de manutenção.

Criar um cluster de preparo com base no backup de produção

Implante um cluster de preparo que espelhe seu ambiente de produção e verifique se ele tem a mesma versão, configuração e dados do AlloyDB que o cluster de produção.

Para garantir que o cluster de preparo seja idêntico ao ambiente de produção, use o comando restore para clonar o banco de dados de produção no cluster de preparo e garantir a similaridade de dados e a correspondência de configuração. Também recomendamos que você separe os ambientes de preparo e produção em projetos diferentes.

É possível usar os dois métodos a seguir para criar um backup de produção:

  • Crie um novo cluster de preparo realizando uma restauração completa de um backup de cluster de produção atual. Esse método não envolve a recuperação de um banco de dados. No entanto, dependendo da programação de backup, os dados podem ter até 24 horas. Para usar esse método, consulte Restaurar um cluster de um backup armazenado.
  • Crie um novo cluster de preparo executando a recuperação pontual (PITR) em um horário específico de um backup de banco de dados de produção, incluindo o horário mais recente. Com essa opção, você recebe os dados mais recentes, e o método é mais fácil. No entanto, dependendo do último horário de backup da PITR, pode levar mais tempo para restaurar ou recuperar os dados no horário especificado. Para usar esse método, consulte Usar a recuperação pontual (PITR).

Verificar se uma janela de manutenção não está definida no cluster de preparo

Não defina uma janela de manutenção para o cluster de preparo. Por padrão, os clusters do AlloyDB recém-criados, mesmo aqueles restaurados de um backup, não têm uma janela de manutenção definida. Esse é o estado correto para seu ambiente de preparo. O AlloyDB atualiza os clusters que não têm janelas de manutenção programadas antes de atualizar os clusters com janelas de manutenção programadas.

Para verificar se não há uma janela de manutenção definida, faça o seguinte:

Console

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso. A página Visão geral será aberta.

  3. Na página Visão geral, na seção Manutenção, confira os detalhes da janela de manutenção do cluster.

  4. Opcional: na página Insights do sistema, é possível conferir os detalhes do status de funcionamento da operação de manutenção, como a Linha do tempo de eventos.

  5. Para acessar o gerenciamento da Unified Maintenance, digite "Cloud Hub maintenance" na barra de pesquisa e selecione Manutenção. Nesta página, é possível conferir um resumo da manutenção, a manutenção controlada pelo Google e os detalhes da manutenção planejada.

gcloud

  1. Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

    gcloud alloydb clusters describe STAGING_CLUSTER_ID \
        --region=LOCATION_ID \
        --project=PROJECT_ID
  2. Procure o campo maintenanceUpdatePolicy.maintenanceWindows na saída. Se nenhuma janela de manutenção for definida, esse campo estará ausente ou vazio. Se, por algum motivo, uma janela de manutenção estiver definida, limpe-a:

    gcloud alloydb clusters update STAGING_CLUSTER_ID \
        --region=LOCATION_ID \
        --maintenance-window-any \
        --project=PROJECT_ID

Gerenciar vários canais de lançamento para vários ambientes que não são de produção

Se a organização tiver uma cadência de lançamento bem definida e robusta e você tiver vários ambientes que não são de produção, aplique as novas versões passo a passo. Por exemplo, talvez você queira aplicar uma versão na seguinte sequência:

  1. Ambiente de desenvolvimento
  2. Ambiente de controle de qualidade
  3. Ambiente de preparo

Para ter um controle mais granular sobre o cronograma de lançamentos no AlloyDB, use a manutenção de autoatendimento. Com a manutenção de autoatendimento, é possível aplicar manualmente uma nova versão a qualquer ambiente a qualquer momento.

Para implementar esse tipo de cadência de lançamento, siga estas etapas gerais:

  1. Aplique a manutenção de negação a todos os ambientes que não são de produção para garantir que eles não recebam atualizações automaticamente.
  2. Use a manutenção de autoatendimento para aplicar atualizações aos ambientes de não produção com base na programação especificada.

Configurar uma janela de manutenção em um cluster de produção

Para o cluster de produção, é importante programar uma janela de manutenção. Isso permite que você controle quando as atualizações ocorrem e as alinhe com os períodos de baixo tráfego da sua empresa.

Definir uma janela de manutenção no cluster de produção

Programe uma janela de manutenção para o cluster de produção. Escolha um dia e horário em que o sistema de produção tenha a menor carga. O tempo total necessário para um único evento de manutenção pode variar.

O AlloyDB atrasa automaticamente as atualizações do cluster de produção por pelo menos uma semana depois de atualizar o cluster de preparo. Se você encontrar problemas após as atualizações do cluster de preparo, poderá negar as atualizações de manutenção de produção por até 30 dias e trabalhar com o suporte doGoogle Cloud para resolver os problemas.

Defina uma janela de manutenção no cluster de produção da seguinte maneira:

Console

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso.

  3. Na página Visão geral, na seção Manutenção, clique em Editar. Uma janela de configuração é aberta.

  4. Na seção Janela de manutenção preferencial, selecione o dia da semana para essa janela de manutenção. A opção padrão é "Qualquer janela".

    Quando você cria um cluster, o AlloyDB atribui essa janela de manutenção padrão a ele.

  5. Se você selecionar um dia para as atualizações de manutenção, selecione a hora do dia para a janela de manutenção.

  6. Clique em Atualizar para salvar as mudanças.

gcloud

Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

Para definir a janela de manutenção de um cluster do AlloyDB, execute o comando gcloud alloydb clusters update:

gcloud alloydb clusters update PRODUCTION_CLUSTER_ID \
    --region=LOCATION_ID \
    --maintenance-window-day=DAY_OF_WEEK \
    --maintenance-window-hour=HOUR_OF_DAY \
    --project=PROJECT_ID

Faça as seguintes substituições:

  • PRODUCTION_CLUSTER_ID: o ID do cluster de produção.
  • LOCATION_ID: a região do Google Cloud .
  • DAY_OF_WEEK: o dia preferencial para manutenção, como SUNDAY.
  • HOUR_OF_DAY: a hora preferida para manutenção em UTC (0-23).

    O exemplo a seguir mostra como definir a janela de manutenção para os domingos às 2h UTC:

    gcloud alloydb clusters update my-prod-cluster \
        --region=us-central1 \
        --maintenance-window-day=SUNDAY \
        --maintenance-window-hour=2 \
        --project=my-production-project

Verificar a janela de manutenção no cluster de produção

Para confirmar se a janela de manutenção está definida para o cluster de produção, execute o comando gcloud alloydb clusters describe:

gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
--region=LOCATION_ID \
--project=PROJECT_ID

A saída retorna o campo maintenanceUpdatePolicy.maintenanceWindows com o dia e a hora de manutenção especificados.

Ativar as notificações de manutenção

Recomendamos que você ative as notificações sobre eventos de manutenção programada para seu cluster de produção. As notificações ajudam você a planejar quando começar os testes.

Para ativar as notificações de manutenção, siga estas etapas:

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso. A página Visão geral será aberta.

  3. Na página Visão geral, na seção Manutenção, clique em Mostrar detalhes para expandir a seção. Em seguida, clique em Editar na linha Notificações. A página Comunicação será aberta.

  4. Na página Comunicação, selecione a guia Comunicações sobre o produto.

  5. Na linha do AlloyDB, na coluna E-mail, mude o botão de notificação para Ativado.

Depois que você configurar a janela de manutenção do cluster de produção, o AlloyDB vai atualizá-lo no mínimo sete dias após a atualização do cluster de teste. Ao optar por receber notificações, você recebe uma notificação por e-mail informando que uma atualização de manutenção está programada para o cluster de produção.

Atualizações do cluster de preparo

Use o ambiente de teste para validar a próxima atualização de produção.

Verificar o status pré-atualização

Como o cluster de preparo não tem uma janela de manutenção, ele está entre os primeiros clusters a receber a atualização. No entanto, o AlloyDB não envia notificações para clusters que não estão configurados com a janela de manutenção. Mesmo assim, é possível monitorar quando as atualizações de manutenção ocorrem usando a Análise de registros no console do Google Cloud .

  1. No console do Google Cloud , acesse a página Análise de registros:

    Acessar a Análise de registros.

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Geração de registros.

  2. Selecione Todos os recursos, escolha o cluster de preparo e clique em Aplicar.

  3. Selecione Todos os nomes de registros, selecione maintenance_events e clique em Aplicar.

  4. No painel Linha do tempo, selecione o período em que o cluster de preparo recebe atualizações.

Realizar a verificação funcional pós-atualização

Depois que o AlloyDB atualizar o cluster de preparo, realize testes funcionais para confirmar se as atualizações são seguras e adequadas para aplicação no ambiente de produção.

Realizar a verificação de desempenho pós-atualização

Verifique o cluster de preparo após a conclusão da atualização de manutenção. Avalie os impactos no desempenho do banco de dados após as atualizações do cluster de preparo. Realize testes funcionais e de desempenho abrangentes para garantir que os aplicativos se comportem conforme o esperado e atendam aos SLAs de desempenho.

Para garantir a estabilidade e o funcionamento ideal, faça o seguinte:

  • Compare as referências anteriores à atualização com as principais métricas.
  • Execute testes de carga para identificar regressões.
  • Analisar o desempenho das consultas.
  • Monitorar o uso de recursos.

Entre em ação com base nos resultados da verificação

Analise os resultados da verificação e realize as seguintes ações com base neles:

  • A verificação é bem-sucedida: se os testes funcionais e de desempenho no cluster de preparo forem bem-sucedidos, isso significa que o ambiente de preparo não tem erros e que você pode permitir que a manutenção de produção prossiga conforme programado no período de agendamento de horários. Prepare-se para a atualização de produção e informe as partes interessadas relevantes.
  • Falha na verificação: se os testes funcionais e de desempenho no cluster de teste falharem e você encontrar erros funcionais, degradações de desempenho ou comportamento inesperado no ambiente de teste após a atualização de manutenção, será necessário negar a manutenção de produção.

Negar um evento de manutenção programado

Para negar um evento de manutenção programada para o cluster de produção, defina as datas de início e término e o horário em que o intervalo começa e termina.

As datas de início e término precisam estar no seguinte formato: YYYY-MM-DD. As datas de início e término e o horário estão no fuso horário UTC.

Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

Para adicionar um período de manutenção de negação a um cluster do AlloyDB, siga estas etapas:

  1. Execute o comando gcloud alloydb clusters update com as flags deny-maintenance-period-start-date, deny-maintenance-period-end-date e deny-maintenance-period-time:

    gcloud alloydb clusters update CLUSTER_ID \
        --region LOCATION_ID \
        --deny-maintenance-period-start-date START_DATE \
        --deny-maintenance-period-end-date END_DATE \
        --deny-maintenance-period-time TIME
  2. Substitua:

    • CLUSTER_ID: o cluster a ser configurado para o período sem manutenção.
    • LOCATION_ID: a região do Google Cloud em que o cluster está localizado, por exemplo, us-central1.
    • START_DATE: a data de início do período sem manutenção no formato UTC YYYY-MM-DD.
    • END_DATE: o fim do período sem manutenção no formato UTC YYYY-MM-DD.
    • TIME: o horário do período sem manutenção no formato UTC HH:MM. As horas são representadas no formato de 24 horas, em que os valores variam de 00:00 a 23:59, por exemplo, 16:45.
  3. Documente todos os problemas, incluindo mensagens de erro, métricas de performance e etapas para reproduzir os problemas.

  4. Abra um caso de suporte de alta prioridade com o Google Cloud e forneça todos os problemas documentados. O Google Cloud trabalha com você para analisar e resolver os problemas.

Atualizações de cluster Production

Se a verificação de preparo for bem-sucedida e você permitir que a manutenção de produção prossiga, as atualizações vão ocorrer durante a janela de manutenção programada.

Verificar a janela de manutenção

Para monitorar os próximos eventos de manutenção no cluster de produção, siga estas etapas:

Console

  1. Acesse a página Clusters.

    Acessar Clusters

  2. Clique em um cluster na coluna Nome do Recurso. A página Visão geral será aberta.

  3. Na página Visão geral, na seção Manutenção, confira os detalhes da janela de manutenção do cluster.

  4. Opcional: na página Insights do sistema, é possível conferir os detalhes do status de funcionamento da operação de manutenção, como a Linha do tempo de eventos.

  5. Para acessar o gerenciamento da Unified Maintenance, digite "Cloud Hub maintenance" na barra de pesquisa e selecione Manutenção. Nesta página, é possível conferir um resumo da manutenção, a manutenção controlada pelo Google e os detalhes da manutenção planejada.

gcloud

Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

Execute o seguinte usando gcloud alloydb clusters describe:

gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
    --region=LOCATION_ID \
    --project=PROJECT_ID

Se um evento de manutenção estiver planejado, a saída vai incluir maintenanceSchedule e startTime. Se você optar por receber notificações, também vai receber notificações por e-mail.

Monitorar a produção durante uma janela de manutenção

Embora o Google Cloud automatize o processo de manutenção, recomendamos que você monitore o ambiente de produção para o seguinte durante a janela de manutenção programada:

  • Integridade do aplicativo: monitore os registros do aplicativo e as verificações de integridade para detectar sinais de interrupção.
  • Conectividade do banco de dados: confirme se os aplicativos podem se reconectar ao banco de dados após a interrupção.
  • Métricas do AlloyDB: use o Google Cloud Monitoring para observar as métricas do AlloyDB (CPU, memória, conexões e atraso de replicação) e garantir que elas voltem aos níveis esperados após a atualização.

Verificação de atualização pós-manutenção

Após a conclusão da atualização de manutenção, verifique se o ambiente de produção tem funcionalidades e indicadores de desempenho críticos.

  • Funcionalidade principal do aplicativo: execute um teste de fumaça dos recursos mais críticos do aplicativo.
  • Verificações básicas de desempenho: analise os painéis em busca de picos de latência ou consumo de recursos.

A seguir