Mobilidade de aplicações no Kubernetes: quando o backup vira ferramenta de migração

Mobilidade de aplicações no Kubernetes: quando o backup vira ferramenta de migração

Aqui no blog eu já mostrei na prática como migrar aplicações entre clusters, como gerenciar vários clusters e como testar o DR com o Veeam Kasten. Hoje a ideia é falar sobre o motivo que isso é importante. Quando uma aplicação precisa mudar de casa, o backup deixa de ser apenas proteção e vira, basicamente, uma ferramenta de migração.

Uma aplicação pode precisar sair de um cluster por vários motivos e nenhum deles tem a ver com desastre. Alguns cenários bem comuns:

  • Troca de distribuição: sair do K3s que nasceu no laboratório e ir para um OpenShift em produção ou o caminho contrário
  • Entrar ou sair da nuvem: levar a aplicação para EKS, AKS ou GKE, ou trazer de volta para o datacenter (perdi a conta de quantos clientes tem voltado para dentro de casa)
  • Atualização recriando o cluster: em vez de fazer o upgrade no próprio cluster, subir um cluster novo já na versão nova e mover as aplicações para ele
  • Evitar ficar preso a um fornecedor: manter a liberdade de trocar de plataforma quando o custo ou o suporte deixarem de fazer sentido

A própria Veeam coloca a portabilidade entre nuvens e o teste de upgrade de clusters entre os principais casos de uso de mobilidade de aplicações.

Tá bom, mas não basta pegar os YAMLs e aplicar no cluster novo? Não basta, e esse é o ponto que mais pega. O manifesto descreve a aplicação, mas os dados ficam nos volumes persistentes, ou seja, o banco de dados sobe vazio do outro lado. Além disso, o cluster de destino quase nunca é igual ao de origem. A storage class tem outro nome (o Longhorn do laboratório não existe no EKS, por exemplo) e o PVC fica pendente. O ingress aponta para outro hostname ou usa outra ingress class. E ainda tem Secrets e ConfigMaps que precisam acompanhar a aplicação. GitOps resolve bem a parte dos manifestos, mas não leva os dados junto.

É aí que o Kasten faz diferença. O backup dele já contém a aplicação inteira, manifestos e volumes. Esse backup é exportado para um location profile e importado no cluster de destino, onde é restaurado. No meio do caminho entram os Transforms, que, segundo a documentação, permitem modificar os recursos do Kubernetes durante o restore. Desta forma, a troca de storage class ou de hostname acontece na hora da restauração, sem editar nada na mão. Mostrei isso em detalhes no post sobre o Transform Set do Veeam Kasten. Para quem tem vários clusters, vale ver também o gerenciamento de múltiplos clusters com o Veeam Kasten.

Verdadeiramente acredito que essa é uma das funcionalidades mais subestimadas do Kasten. Quem já fez um restore em outro cluster sabe que a mecânica de uma migração e a de um DR é a mesma, só muda o motivo. Por isso eu sempre recomendo começar pelo teste de DR, como fiz no Testando o Disaster Recovery do Veeam Kasten. Se o restore funciona do outro lado, a migração já está praticamente pronta. 🙂

Por fim, mover aplicação no Kubernetes é mover dados e adaptar o ambiente, e não apenas copiar arquivos YAML. O importante é saber que a mesma ferramenta que protege as aplicações também ajuda a mudar de cluster, de distribuição ou de nuvem sem depender de nenhum fornecedor.

É isso aí, pessoal. Até a próxima!

Ricardo Conzatti é especialista em TI e apaixonado por virtualização e proteção de dados. É graduado em Sistemas de Informação, pós-graduado em Gestão de TI e acredita muito na teoria da pirâmide de aprendizagem de William Glasser. Ricardo também é blogger, palestrante, podcaster e muito envolvido com comunidades técnicas. Ex-líder do VMUG Paraná e ex-host do vBrownBag Brasil, além de ser VMware vExpert & vExpert PRO. Possui várias certificações técnicas VMware, Microsoft e Veeam.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *