Por Ben Slater , Diretor de Produto, Instaclustr.
Movendo uma implantação ativa do Apache Cassandra para um novo local? É natural ter algumas preocupações, como manter os clusters do Cassandra 100% disponíveis durante todo o processo. Mas, o fato é que, se seu aplicativo puder permanecer online durante as alterações de configuração de conexão, ele poderá permanecer totalmente disponível durante essa transição. Para proteção extra e tranquilidade, a técnica a seguir também inclui uma estratégia de reversão rápida para retornar à configuração original, até o momento em que a migração for concluída.
Aqui está uma ordem de operações de migração de cluster Cassandra recomendada em sete etapas que evitará qualquer tempo de inatividade:
1. Prepare seu ambiente existente.
Em primeiro lugar, certifique-se de que seu aplicativo esteja usando uma política de balanceamento de carga com reconhecimento de datacenter, bem como LOCAL_*. Além disso, verifique se todos dos keyspaces que serão copiados para o novo cluster são definidos para usar NetworkTopologyStrategy como sua estratégia de replicação. Também é recomendável que todos os keyspaces usem essa estratégia de replicação quando criados, pois alterá-la posteriormente pode se tornar complicado.
2. Crie o novo cluster.
Agora, é hora de criar o novo cluster para o qual você migrará. Alguns cuidados aqui:Certifique-se de que o novo cluster e o cluster original usem a mesma versão do Cassandra e o mesmo nome do cluster. Além disso, o novo nome do datacenter que você usa deve ser diferente do nome do datacenter existente.
3. Junte-se aos clusters.
Para fazer isso, primeiro faça as alterações necessárias nas regras de firewall para permitir a junção dos clusters, lembrando que algumas alterações no cluster de origem também podem ser necessárias. Em seguida, altere os nós de semente do novo cluster e inicie-os. Feito isso, o novo cluster será um segundo datacenter no cluster original.
4. Altere as configurações de replicação.
Em seguida, no cluster existente, atualize as configurações de replicação para os keyspaces que serão copiados, para que os dados agora sejam replicados com o novo datacenter como destino.
5. Copie os dados para o novo cluster.
Quando os clusters forem unidos, o Cassandra começará a replicar gravações no novo cluster. Ainda é necessário, no entanto, copiar quaisquer dados existentes com a função de reconstrução do nodetool. É uma prática recomendada executar essa função no novo cluster um ou dois nós por vez, para não colocar uma carga de streaming esmagadora no cluster existente.
6. Altere os pontos de conexão do aplicativo.
Depois que todos os usos da função de reconstrução forem concluídos, cada um dos clusters conterá uma cópia completa dos dados que estão sendo migrados, que o Cassandra manterá sincronizado automaticamente. Agora é hora de alterar os pontos de conexão iniciais do seu aplicativo para os nós do novo cluster. Quando isso for concluído, todas as leituras e gravações serão atendidas pelo novo cluster e, posteriormente, serão replicadas no cluster original. Por fim, é inteligente executar uma função de reparo no cluster para garantir que todos os dados tenham sido replicados com sucesso a partir do original.
7. Desligue o cluster original.
Conclua o processo com uma pequena limpeza pós-migração, removendo o cluster original. Primeiro, altere as regras de firewall para desconectar o cluster original do novo. Em seguida, atualize as configurações de replicação no novo cluster para interromper a replicação de dados no cluster original. Por fim, desligue o cluster original.
E aí está:sua implantação do Apache Cassandra foi totalmente migrada, com zero tempo de inatividade, baixo risco e de maneira totalmente transparente e transparente da perspectiva de seus usuários finais.
Sobre o autor
Ben Slater é Chief Product Officer da Instaclustr, fornecedora de infraestrutura de dados de código aberto Apache Cassandra de nível empresarial, hospedada e totalmente gerenciada na nuvem.