Sobre a manutenção

Nesta página, explicamos como o Memorystore for Valkey realiza a manutenção em instâncias. Ele também fornece informações e recomendações de configuração que os aplicativos cliente precisam conhecer para aproveitar o design de manutenção sem inatividade do Memorystore for Valkey. Essas recomendações se aplicam a instâncias de alta disponibilidade e a instâncias sem réplicas. No entanto, para todos os casos de uso de produção, recomendamos o uso da configuração de alta disponibilidade.

O Memorystore for Valkey atualiza as instâncias de forma rotineira para garantir que o serviço seja confiável, seguro, atualizado e tenha um bom desempenho. Essas atualizações são chamadas de manutenção. A manutenção é totalmente gerenciada pelo serviço e foi projetada para não causar inatividade.

A manutenção geralmente se enquadra nas seguintes categorias:

  • Recursos do Memorystore. Para lançar alguns recursos, o Memorystore requer uma atualização de manutenção.
  • Patches do sistema operacional. Monitoramos continuamente as vulnerabilidades de segurança recém-identificadas no sistema operacional. Após a descoberta, aplicamos um patch ao sistema operacional para proteger você contra novos riscos.
  • Patches de banco de dados. A manutenção pode incluir uma atualização do Valkey para melhorar a segurança, o desempenho e a confiabilidade de uma instância. Isso vai além do que o Valkey de código aberto oferece.

Configurar o aplicativo cliente

Para configurar o aplicativo cliente para o melhor desempenho e disponibilidade durante a manutenção, siga estas etapas:

  1. Use e configure seu cliente de terceiros de acordo com as orientações em Práticas recomendadas para clientes do Valkey para garantir que as manutenções programadas não afetem o aplicativo cliente. Nossas configurações de cliente recomendadas podem evitar redefinições de conexão por meio de atualizações periódicas de topologia inline e rotações de conexão em segundo plano.
  2. Teste o aplicativo cliente com uma série de operações de atualização (como reduzir escalonamento horizontal ou vertical ou mudanças na contagem de réplicas) enquanto executa uma carga de trabalho representativa nos nós primários e de réplica e monitora o impacto no cliente. Essas atualizações testam a lógica de atualização de topologia inline nos clientes, o impacto da sincronização completa, a descoberta de novos nós e a capacidade de remoção de nós existentes. O teste ajuda a garantir que o cliente de terceiros esteja configurado corretamente para evitar qualquer impacto negativo no aplicativo.

Instâncias com o modo de cluster desativado

Durante a manutenção, as instâncias com o modo de cluster desativado passam por um failover, que redefine as conexões. Esse failover geralmente dura 15 segundos. Para reconectar os aplicativos cliente à instância após o failover, recomendamos que você crie um mecanismo de nova tentativa com espera exponencial. Depois de receber um e-mail que notifica sobre a manutenção futura, é possível executar uma manutenção simulada em uma instância de não produção para testar o impacto que a manutenção tem na instância. Para mais informações, consulte Executar simulação de manutenção em uma instância.

Também recomendamos que você mantenha a métrica /instance/memory/maximum_utilization em 50% ou menos quando a manutenção programada começar. As orientações para essa métrica se referem a um limite de 80% para o gerenciamento de memória. No entanto, recomendamos que você use uma proporção de 50% ou menos durante a manutenção. Para mais informações sobre a métrica, consulte Métricas do Cloud Monitoring.

Para garantir essa proporção, faça o seguinte:

  • Programe a manutenção para quando o tráfego da instância estiver baixo.
  • Aumente temporariamente o tamanho da instância durante a janela de manutenção.

Manutenção programada

O Memorystore for Valkey usa uma implantação gradual e uma estratégia de ciclo de vida de criar antes de destruir para evitar qualquer impacto de inatividade da manutenção programada do Memorystore nas instâncias do Valkey. O Memorystore for Valkey alcança manutenção sem inatividade usando os recursos de redirecionamento de solicitação do protocolo de instância do Valkey OSS com os seguintes mecanismos do Memorystore:

  1. Um failover coordenado sem perda de dados.
  2. Uma remoção de nó otimizada para permitir que os clientes acompanhem as atualizações da topologia de nós sem impacto na disponibilidade.
  3. Os endpoints do Private Service Connect da instância, que não são afetados pela manutenção. Para mais informações sobre esses endpoints, consulte Endpoints de instância.

O comportamento do serviço descrito nas seções a seguir se aplica apenas à manutenção programada. Para mais informações sobre o impacto de eventos não planejados, como falhas de hardware, consulte Comportamento do cliente durante um failover não planejado.

Janelas de manutenção padrão

Por padrão, o Memorystore atualiza a instância nas seguintes janelas de acordo com o fuso horário da instância:

  • Período da semana (de segunda a sexta-feira): das 22h às 6h
  • Janela de fim de semana: sexta-feira, das 22h à segunda-feira, às 6h

Estratégia de implantação gradual

O Memorystore for Valkey realiza implantações com um escopo que aumenta progressivamente e em uma taxa que permite a detecção de falhas com antecedência suficiente para mitigar qualquer impacto e estabelecer confiança na estabilidade. Os tempos de aplicação (o tempo durante o qual a atualização é aplicada e monitorada antes de ser considerada um sucesso e seguir em frente) são integrados em toda a frota de instâncias do Memorystore na escala do serviço. Além disso, os tempos de bake são integrados às instâncias em zonas de uma região (vários domínios de falha) para reduzir o escopo do impacto, se houver.

Para a instância configurada para alta disponibilidade, o Memorystore for Valkey atualiza no máximo um domínio de falha ou zona a qualquer momento para garantir que um fragmento de instância, incluindo o principal e as réplicas, tenha alta disponibilidade durante a atualização. Além disso, o Memorystore for Valkey atualiza apenas alguns nós por vez. As atualizações usam um mecanismo de ciclo de vida de criação antes da destruição para maximizar a estabilidade de uma instância. Essa estratégia oferece mais benefícios ao atualizar uma instância com muitos fragmentos. Aplicar as atualizações apenas a uma pequena parte do keyspace geral do usuário a qualquer momento maximiza a disponibilidade dos dados.

Estratégia de ciclo de vida de criar antes de destruir

Uma instância do Valkey tem vários fragmentos. Cada fragmento tem um nó principal e zero ou mais nós de réplica. O Memorystore usa o seguinte processo para atualizar qualquer nó principal ou de réplica do Valkey em um fragmento:

  1. O Memorystore for Valkey adiciona uma nova réplica com a atualização de software mais recente ao fragmento. O Memorystore cria um novo nó, em vez de atualizar um nó atual, para garantir que a capacidade provisionada seja mantida se ocorrer uma falha inesperada de inicialização.
  2. Se um nó dentro do fragmento a ser atualizado for um nó primário, ele será convertido primeiro em uma réplica antes de ser removido usando um failover coordenado.
  3. O Memorystore remove a réplica que usa o software anterior.
  4. O Memorystore repete esse processo para cada nó na instância.

A estratégia de criação antes da destruição ajuda a reter a capacidade provisionada da instância, em comparação com uma implantação contínua típica que é atualizada no local, mas resulta em uma interrupção de disponibilidade (e, às vezes, perda de dados) para o aplicativo cliente. Para fragmentos sem réplicas, o Memorystore for Valkey ainda provisiona uma nova réplica primeiro, coordena o failover e, por fim, substitui o nó principal atual do fragmento.

Etapa 1: adicionar uma réplica

A primeira etapa do mecanismo de criação antes da destruição é adicionar um nó de réplica com o software mais recente usando o mecanismo de sincronização completa do OSS Valkey para copiar os dados do nó principal para o nó de réplica. Isso é feito bifurcando um processo filho e aproveitando a replicação sem disco para inicializar a réplica. O Memorystore for Valkey é compatível com a replicação sem disco. A menos que você ative a persistência, o Memorystore for Valkey não usa discos durante a replicação.

Para aproveitar melhor a arquitetura de escalonamento horizontal da instância, provisione um número maior de fragmentos para reduzir o tamanho do keyspace em um nó. Ter um conjunto de dados menor por nó ajuda a reduzir o impacto da latência de bifurcação de uma operação de sincronização completa. Ele também acelera a cópia de dados entre os nós.

Etapa 2: executar um failover primário coordenado

Se o nó do Valkey que precisa ser atualizado for um nó principal, o Memorystore vai executar um failover coordenado para o nó de réplica recém-adicionado. Em seguida, o Memorystore remove o nó. Durante o failover coordenado, o cliente e os nós do Valkey trabalham juntos e usam as seguintes estratégias para evitar inatividade do aplicativo:

  1. As solicitações de entrada do cliente são bloqueadas temporariamente no nó principal, fornecendo uma janela para garantir que a réplica atual seja sincronizada 100% com o nó principal.
  2. A réplica conclui o processo de eleição para assumir o papel principal.
  3. O nó primário anterior, que agora é um nó de réplica, desbloqueia as solicitações existentes e as redireciona para o novo nó primário usando o protocolo de instância do Valkey de OSS. Todas as novas solicitações enviadas ao nó de réplica anterior continuam sendo redirecionadas para o novo nó principal.
  4. O cliente compatível com o Valkey atualiza a topologia na memória. Ele aprende o endereço do novo endpoint principal e não precisa mais de redirecionamentos.

Os failovers coordenados geralmente levam dezenas de milissegundos. No entanto, os dados em trânsito pendentes de serem transferidos para réplicas e o tamanho total da instância podem aumentar a latência de failover. O tamanho da instância pode afetar a convergência entre os nós primários, o que afeta a tomada de decisões sobre a eleição do novo nó primário.

Etapa 3: remover a réplica

A última etapa do mecanismo de criação antes da destruição é remover o nó de réplica no software anterior. A remoção do nó afeta os aplicativos cliente, porque o Memorystore for Valkey descarta seus clientes. Como a atualização de topologia não é aplicável a instâncias com o modo de cluster desativado, recomendamos que você use um mecanismo de repetição com espera exponencial para reconectar o aplicativo aos novos endpoints de réplica depois que eles estiverem disponíveis.

Para instâncias com o modo de cluster ativado, o Memorystore for Valkey projetou a remoção de uma réplica do Valkey para ser simples e permitir que os aplicativos cliente atualizem a topologia antes de um desligamento forçado do nó. A topologia é personalizada para permitir que os clientes conheçam a nova réplica, mas também esqueçam a que será removida com antecedência.

O Memorystore for Valkey mantém o nó de réplica executando o software anterior por um determinado período de drenagem, normalmente na ordem de minutos, durante o qual ele começa a redirecionar as solicitações de leitura recebidas para o nó principal do fragmento. Esse processo permite que o cliente de terceiros atualize a topologia do nó e conheça os novos endpoints de réplica. Se o cliente tentar acessar um nó removido após o período de drenagem, a tentativa vai falhar. Essa falha aciona uma atualização da topologia do nó no cliente de conexão para que ele saiba sobre a mudança de réplica. As novas atualizações da topologia do nó não mostram o nó de réplica a ser removido.

Configurações de manutenção

Com o Memorystore para Valkey, é possível personalizar as programações de manutenção para atender às necessidades do aplicativo e minimizar as interrupções. Para personalizar uma programação de manutenção, configure uma janela de manutenção para sua instância.

Você define janelas de manutenção para cada instância do Memorystore para Valkey e tem as seguintes opções de configuração:

  • Dia da semana: o dia em que a manutenção ocorre.
  • Horário de início: o horário em que a manutenção começa.

A janela de manutenção dura uma hora. Em alguns casos, a manutenção pode se estender além da janela selecionada.

Depois que você configura uma janela de manutenção para uma instância, o Memorystore for Valkey programa a manutenção automática no futuro de acordo com as preferências que você definiu para as janelas de manutenção.

Janelas de manutenção padrão

Se você não definir uma janela de manutenção, o Memorystore for Valkey vai atualizar a instância em uma das seguintes janelas, de acordo com o fuso horário da instância:

  • Período da semana (de segunda a sexta-feira): das 22h às 6h
  • Janela de fim de semana: sexta-feira, das 22h à segunda-feira, às 6h

Exemplo de manutenção

Como desenvolvedor que gerencia um serviço de carrinho de compras em um varejista, você supervisiona um ambiente de produção que inclui uma instância do Memorystore para Valkey. Para garantir o desempenho ideal durante a manutenção, programe-a para quando a instância tiver o mínimo de tráfego. Isso geralmente ocorre por volta da meia-noite aos domingos.

Nesse caso, defina a janela de manutenção da instância de produção para o seguinte dia e horário:

  • Dia da semana: domingo
  • Hora de início: 1h

Notificações de manutenções futuras

Para ficar por dentro dos eventos de manutenção na sua instância, configure notificações por e-mail sobre as próximas manutenções pelo menos uma semana antes da data programada. Essas notificações têm a linha de assunto "Upcoming maintenance for your Cloud Memorystore instance [your-instance-name]".

O Memorystore para Valkey também envia uma notificação quando a manutenção começa na sua instância. A linha de assunto do e-mail é "Maintenance is undergoing for your Cloud Memorystore instance [your-instance-name]".

Depois que o Memorystore para Valkey conclui a manutenção, ele envia uma notificação de conclusão. A linha de assunto do e-mail é "Completed Maintenance for your Cloud Memorystore instance [your-instance-name]".

Se o Memorystore for Valkey reprogramar a manutenção, você vai receber um e-mail notificando sobre o cancelamento. O assunto do e-mail é "Canceled maintenance for your Cloud Memorystore instance [your-instance-name]".

Para receber notificações de manutenção, é preciso ativar essa opção. Para se inscrever para receber notificações de manutenção, faça o seguinte:

  1. Defina uma janela de manutenção.
  2. Ativar as notificações de manutenção.

Para receber notificações de manutenção do Memorystore para Valkey, conclua estas etapas pelo menos uma semana antes da atualização de manutenção programada para sua instância. Caso contrário, o Memorystore para Valkey não terá tempo suficiente para notificar você sobre a manutenção futura.

O Memorystore for Valkey envia notificações para o endereço de e-mail associado à sua Conta do Google. Não é possível configurar um alias de e-mail personalizado (por exemplo, um alias de e-mail de equipe). Além disso, não é possível enviar notificações para outro endereço de e-mail.

Ao se inscrever para receber notificações de manutenção, você recebe alertas para todas as instâncias do Memorystore for Valkey que têm manutenção programada em um projeto do Google Cloud . Para cada instância, você recebe uma notificação separada.

Para mais informações sobre como encontrar uma manutenção programada, consulte Encontrar manutenção programada.

Reprogramar manutenção

Nesta seção, fornecemos diretrizes sobre como reprogramar a manutenção. Por exemplo, se um novo serviço estiver programado para ser lançado durante a janela de manutenção atual, talvez seja melhor adiar a janela de manutenção para alguns dias após o lançamento.

É possível reprogramar a manutenção em até 14 dias após o horário programado originalmente. Como parte da reprogramação da manutenção, escolha uma das seguintes opções:

  • Atualizar agora: em vez de esperar pela janela de manutenção programada, é possível aplicar as atualizações à instância imediatamente.
  • Dia e horário personalizados: escolha qualquer horário em até 14 dias após o horário de manutenção programado originalmente.

Ao reprogramar a manutenção, as seguintes restrições se aplicam:

  • Se faltar menos de uma hora para o horário de manutenção programado, não será possível reprogramar a manutenção.
  • Depois que você reprogramar a manutenção, o Memorystore for Valkey vai enviar uma notificação por e-mail confirmando o cancelamento da manutenção anterior. Além disso, você recebe uma nova notificação de manutenção com a programação atualizada.

Para mais informações sobre como reprogramar a manutenção, consulte Reprogramar a manutenção.

Perguntas frequentes

Esta seção contém perguntas frequentes sobre a manutenção do Memorystore for Valkey.

Como saber quando a manutenção está programada para sua instância?

Para saber quando a manutenção está programada para sua instância, recomendamos que você se inscreva para receber notificações e configure uma janela de manutenção. Também é possível verificar a instância manualmente para conferir se o parâmetro maintenanceSchedule aparece na resposta.

Quando o Memorystore for Valkey notifica você sobre as próximas manutenções?

Se você se inscrever para receber notificações de manutenção e definir uma janela de manutenção, o Memorystore for Valkey vai enviar uma notificação por e-mail pelo menos uma semana antes de um evento de manutenção.

Por quanto tempo é possível adiar a manutenção?

Depois de programar a manutenção da instância, é possível iniciar a atualização imediatamente ou adiá-la por até duas semanas a partir da data e hora originalmente programadas.

Por exemplo, se você programar a manutenção para 11 de outubro às 23h15, poderá adiá-la até 25 de outubro às 23h15. Se você não fizer nada, a manutenção será executada na data e hora programadas.

Para mais informações, consulte Reprogramar manutenção.

Quais práticas recomendadas resultam em uma experiência tranquila de atualização de manutenção?

Para garantir uma experiência de atualização de manutenção tranquila, recomendamos que você faça o seguinte:

  1. Siga as instruções para configurar o aplicativo cliente.
  2. Defina a janela de manutenção para um dia e horário em que a instância tenha tráfego mínimo (por exemplo, domingos à meia-noite).
  3. Ative as notificações de manutenção. Como resultado, o Memorystore para Valkey notifica você por e-mail pelo menos sete dias antes de uma atualização de manutenção ser programada para sua instância.
  4. Se você não tiver um horário de baixo ou nenhum impacto para o uso do aplicativo, use o padrão de serviço dos lançamentos graduais. Esse padrão contém práticas recomendadas para atualizações de manutenção. Para mais informações, consulte Manutenção programada.

Quando recomendamos que você aplique uma atualização de manutenção imediatamente?

É possível aplicar uma atualização de manutenção imediatamente em uma instância de teste para ver como ela afeta seu aplicativo. Você pode observar o impacto dessa atualização. Se houver problemas com a atualização, adie a manutenção nas instâncias de produção até que eles sejam resolvidos.

Se o dia e o horário atuais forem adequados para a instância e você espera uma carga alta nela no futuro, execute a atualização de manutenção imediatamente.

As atualizações de manutenção sempre são concluídas dentro da janela de manutenção?

O Memorystore for Valkey inicia uma atualização de manutenção dentro da janela de manutenção especificada. O Memorystore for Valkey geralmente conclui a atualização dentro da janela, mas nem sempre é assim.

É possível desativar a manutenção ou programá-la primeiro em determinadas instâncias?

Não é possível desativar a manutenção ou controlar a ordem de manutenção das instâncias. No entanto, depois de receber a notificação de manutenção inicial, é possível reprogramar a manutenção para adiá-la por até duas semanas.

A seguir

  • Confira as permissões necessárias para gerenciar as janelas de manutenção da sua instância.