Migrar dos caches de injeção de VNet para os caches de Link Privado

Este artigo descreve diversas abordagens para migrar instâncias de cache injetadas da Rede Virtual (VNet) do Cache do Azure para Redis para instâncias de cache de Link Privado do Cache do Azure para Redis.

O Link Privado do Azure simplifica a arquitetura de rede e protege a conexão entre os pontos de extremidade no Azure. Você pode se conectar a uma instância de cache do Azure a partir da sua rede virtual por meio de um ponto de extremidade privado, que é atribuído a um endereço IP privado em uma sub-rede dentro da rede virtual. As vantagens de usar o Link Privado do Azure para o Cache do Azure para Redis incluem:

  • Flexibilidade de camada – o Link Privado do Azure tem suporte em todas as nossas camadas de serviço: Básico, Standard, Premium, Enterprise e Enterprise Flash. Em comparação com a injeção de Rede Virtual, que só é oferecida em nossa camada premium.

  • Gerenciamento Simplificado de Regras do NSG (Grupo de Segurança de Rede) – as regras do NSG não precisam ser configuradas para cumprir os requisitos do Cache do Azure para Redis.

  • Suporte ao Azure Policy – verifique se todos os caches em sua organização foram criados com o Link Privado e audite os caches existentes para verificar se todos eles utilizam o Link Privado.

Opções de migração

Você pode alternar da injeção de VNet para o Link Privado usando diferentes maneiras. Dependendo de onde o cache está e de como seu aplicativo interage com ele, um método poderá ser mais útil do que outros. Algumas das estratégias de migração usadas com frequência estão detalhadas abaixo.

Se você estiver usando qualquer combinação de replicação geográfica, clustering ou VNet do ARM:

Opção Vantagens Desvantagens
Dados de gravação dupla em dois caches Nenhuma perda de dados ou tempo de inatividade Operações ininterruptas do cache existente. Teste mais fácil do novo cache. Precisa de dois caches para um longo período de tempo.
Criar um novo cache Mais simples de implementar. Precisa repopular os dados para o novo cache, o que pode não funcionar com muitos aplicativos.
Exportar e importar dados por meio de arquivo RDB A migração de dados é necessária. Alguns dados podem ser perdidos se forem gravados no cache existente depois que o arquivo RDB é gerado.
Migrar dados programaticamente Controle total sobre como os dados são movidos. É necessário código personalizado.

Gravar em dois caches Redis simultaneamente durante o período de migração

Em vez de mover os dados diretamente entre os caches, você pode usar seu aplicativo para gravar os dados em um cache já existente e em um novo cache que você esteja configurando. O aplicativo ainda lerá os dados inicialmente do cache existente. Quando o novo cache tiver os dados necessários, você alterna o aplicativo para esse cache e desativa o antigo. Digamos que, por exemplo, você use o Redis como um armazenamento de sessão e as sessões de aplicativo sejam válidas por sete dias. Depois de gravar nos dois caches por uma semana, você terá certeza de que o novo cache contém todas as informações de sessão não expiradas. Desse ponto em diante, você pode confiar nele com segurança sem se preocupar com a perda de dados.

As etapas gerais para implementar essa opção são:

  1. Crie uma nova instância do Cache do Azure para Redis com pontos de extremidade privados com o mesmo tamanho (ou maior que) o cache existente.

  2. Modifique o código do aplicativo para gravar tanto nas instâncias novas quanto nas originais.

  3. Continue lendo os dados da instância original até que a nova instância esteja suficientemente populada com os dados.

  4. Atualize o código do aplicativo para ler e gravar somente na nova instância.

  5. Exclua a instância original.

Criar um novo Cache do Azure para Redis

Tecnicamente, essa abordagem não é uma migração. Se a perda de dados não for uma preocupação, a maneira mais fácil de mudar para o Cache do Azure para Redis é criar uma instância de cache e conectar seu aplicativo a ela. Por exemplo, se você usar o Redis como um cache look aside de registros de banco de dados, poderá recriar o cache do zero facilmente.

As etapas gerais para implementar essa opção são:

  1. Criar uma nova instância do Cache do Azure para Redis com ponto de extremidade privado.

  2. Atualize seu aplicativo para usar a nova instância.

  3. Exclua a instância antiga do Redis.

Exportar dados para um arquivo RDB e importá-lo para o Cache do Azure para Redis (somente para camada Premium)

O Redis de código aberto define um mecanismo padrão para tirar um instantâneo do conjunto de dados na memória de um cache e salvá-lo em um arquivo. Esse arquivo, chamado RDB, pode ser lido por outro cache Redis. A camada Premium do Cache do Azure para Redis dá suporte à importação de dados para uma instância de cache por meio de arquivos RDB. Você pode usar um arquivo RDB para transferir dados de um cache existente para o Cache do Azure para Redis.

Importante

O formato de arquivo RDB pode mudar entre as versões do Redis e pode não manter a compatibilidade com versões anteriores. A versão do Redis do cache que você está exportando deve ser igual ou inferior que a versão fornecida pelo Cache do Azure para Redis.

As etapas gerais para implementar essa opção são:

  1. Crie uma nova instância do Cache do Azure para Redis com pontos de extremidade privados na camada Premium com o mesmo tamanho (ou maior) que o cache existente.

  2. Salve um instantâneo do cache Redis existente. Você pode configurar o Redis para salvar instantâneos periodicamente ou executar o processo manualmente usando os comandos SAVE ou BGSAVE. O arquivo RDB é denominado "dump.rdb" por padrão e fica localizado no caminho especificado no arquivo de configuração redis.conf.

    Observação

    Se você estiver migrando dados no Cache do Azure para Redis, consulte estas instruções sobre como exportar um arquivo RDB ou use o cmdlet de exportação do PowerShell.

  3. Copie o arquivo RDB para uma conta de armazenamento do Azure na região em que o novo cache está localizado. Você pode usar o AzCopy para essa tarefa.

  4. Importe o arquivo RDB para o novo cache usando essas instruções de importação ou o cmdlet de importação do PowerShell.

  5. Atualize seu aplicativo para usar a nova instância do cache.

Migrar programaticamente

Crie um processo de migração personalizado lendo programaticamente os dados de um cache existente e gravando-os no Cache do Azure para Redis. Essa ferramenta de código aberto pode ser usada para copiar os dados de uma instância do Cache do Azure para Redis para outra. Essa ferramenta é útil para mover dados entre instâncias de cache em diferentes regiões do Cache do Azure. Uma versão compilada também está disponível. Você também pode achar o código-fonte um guia útil para escrever sua própria ferramenta de migração.

Observação

Essa ferramenta não tem suporte oficial da Microsoft.

As etapas gerais para implementar essa opção são:

  1. Crie uma VM na região em que o cache existente esteja localizado. Se o seu conjuntos de dados for grande, escolha uma VM relativamente poderosa para reduzir o tempo de cópia.

  2. Criar uma nova instância do Cache do Azure para Redis com ponto de extremidade privado

  3. Libere os dados do novo cache para garantir que estejam vazios. Essa etapa é necessária porque a ferramenta de cópia em si não substitui nenhuma chave existente no cache de destino.

    Importante

    Certifique-se de NÃO liberar do cache de origem.

  4. Use um aplicativo como a ferramenta de código aberto acima para automatizar a cópia de dados do cache de origem para o de destino. Lembre-se de que o processo de cópia pode levar algum tempo para ser concluído, dependendo do tamanho do seu conjuntos de dados.

Próximas etapas