Opsio - Cloud and AI Solutions
9 min de leitura· 2035 palavras

Estratégia de testes de migração para a nuvem: fases, tipos de teste e checklist

Publicado: ·Atualizado:
Traduzido do inglês e revisto pela equipa editorial da Opsio. Ver original →
Estratégia de testes de migração para a nuvem: fases, tipos de teste e checklist

Uma estratégia de testes de migração para a nuvem define o que testa antes, durante e depois de cada onda de migração, e os critérios de aprovação ou reprovação que decidem se uma carga de trabalho entra em produção. Cobre funcionalidade, integridade dos dados, desempenho, segurança e rollback. O método: medir uma linha de base na plataforma antiga, executar uma migração de teste, comparar e só fazer o cutover quando os números coincidirem.

Pontos principais

  • Registe as linhas de base antes de mover qualquer coisa: tempos de resposta, taxas de erro, duração de jobs em lote e contagens de linhas.
  • Defina os critérios de aprovação e os gatilhos de rollback antes da primeira onda, não durante o cutover.
  • Use os recursos de teste das próprias ferramentas de migração: as migrações de teste do Azure Migrate e a validação de dados do AWS DMS existem para isso.
  • Os tipos de teste variam conforme o caminho de migração. Um lift-and-shift exige principalmente verificações de paridade; um refactor exige testes funcionais e de integração completos.
  • Execute as migrações de teste numa rede isolada. A Microsoft desaconselha migrações de teste para uma rede virtual de produção.
  • Continue a testar depois do cutover: acompanhe os indicadores de nível de serviço (SLIs) por pelo menos um ciclo de negócio completo.

O que são testes de migração para a nuvem?

Testes de migração para a nuvem são o conjunto de verificações que comprovam que uma aplicação, os seus dados e a sua infraestrutura funcionam pelo menos tão bem depois da mudança quanto antes. Eles ocorrem ao longo de toda a migração, e não apenas no final.

Diferem dos testes de release comuns em três aspetos:

  • A plataforma muda, não o código. Num lift-and-shift o código é o mesmo, então testa o ambiente: rede, identidade, desempenho de armazenamento, DNS e fusos horários.
  • Os dados movem-se. É preciso provar que cada linha e cada ficheiro chegaram sem alterações e que as mudanças em curso continuaram a sincronizar até o cutover.
  • A nuvem comporta-se de outro modo. Auto scaling, limites de serviços geridos, latência regional e infraestrutura partilhada podem alterar o desempenho mesmo quando nada mais mudou.

Os critérios de sucesso são os mesmos do ambiente local: as funções precisam funcionar, os dados precisam estar completos e corretos e os utilizadores não podem notar queda de velocidade.

As quatro fases de uma estratégia de testes de migração

Divida os testes em quatro fases, cada uma com as suas próprias evidências e aprovação.

FaseObjetivoPrincipais verificaçõesEvidências
1. Planear e medir a linha de baseSaber como é o "bom" hojeMapa de dependências, jornadas críticas do utilizador, tempos de resposta atuais, duração de jobs em lote, volumes de dadosRelatório de linha de base, critérios de aprovação acordados
2. Migração de testeProvar que a carga de trabalho corre no destinoBoot e conetividade, smoke tests funcionais, integrações, validação de dados, desempenho sob cargaResultados dos testes por carga de trabalho, lista de defeitos
3. CutoverMigrar com segurança, com um caminho de voltaSincronização e validação final dos dados, verificações de DNS e certificados, smoke tests, go/no-goRunbook de cutover com tempos, go/no-go assinado
4. Pós-migraçãoConfirmar a estabilidade e ajustarMonitorização de SLIs, aceitação do utilizador, teste de backup e restauração, verificação de custosRelatório de hypercare, defeitos encerrados

Fase 1: planear e medir a linha de base

Comece com um inventário de aplicações, bases de dados, interfaces e jobs agendados e depois classifique-os por risco para o negócio. Para cada carga de trabalho, registe os números com os quais vai comparar depois: tempo de resposta p95 das transações principais, taxa de erros, duração do lote noturno, tamanho da base de dados e contagem de linhas.

Transforme-os em critérios. Por exemplo: "p95 da pesquisa de pedidos dentro de 10% da linha de base", "zero divergências de linhas nas tabelas financeiras", "o lote noturno termina antes das 06:00". O livro SRE do Google define um SLI como "a carefully defined quantitative measure of some aspect of the level of service" (uma medida quantitativa cuidadosamente definida de algum aspeto do nível de serviço) e um SLO como um valor-alvo para ele (livro SRE do Google). Escrever os seus critérios nesse formato torna objetiva a decisão de go/no-go.

Fase 2: migração de teste

Migre uma cópia da carga de trabalho para o destino e teste-a lá enquanto a origem continua em operação. As duas principais plataformas suportam isso:

  • O Azure Migrate oferece uma migração de teste que inicia VMs replicadas numa rede virtual da sua escolha. A orientação da Microsoft diz que não se recomenda fazer a migração de teste para uma rede virtual de produção, porque ligações abertas com o ambiente local podem causar VMs duplicadas ou alterações de DNS.
  • O AWS Application Migration Service (MGN) inicia instâncias de teste a partir de servidores replicados continuamente, e a replicação prossegue após o teste. A AWS considera uma boa prática testar por pelo menos duas semanas antes do cutover planeado, para haver tempo de corrigir o que for encontrado.

Use esta fase para descobrir as surpresas: endereços IP fixos no código, regras de firewall ausentes, verificações de licença associadas a hardware e jobs que chamam servidores que esqueceu de migrar.

Fase 3: cutover

O cutover é um runbook ensaiado, não uma improvisação. Congele as mudanças, execute a sincronização final dos dados, valide os dados, altere os destinos de DNS ou do balanceador de carga e execute os smoke tests. Cada etapa tem um responsável, um horário planeado e uma ação de rollback.

Defina os gatilhos de rollback com antecedência, por exemplo: "se os smoke tests falharem ou a validação de dados mostrar divergências 60 minutos após a comutação, reverta o DNS para a origem". Ensaie o rollback pelo menos uma vez durante as migrações de teste.

Fase 4: validação pós-migração

Depois do go-live, compare os SLIs com a linha de base por pelo menos um ciclo de negócio completo, incluindo fecho de mês ou dias de pico, se possível. Execute os testes de aceitação do utilizador, teste uma restauração a partir dos novos backups e compare a primeira fatura da nuvem com a estimativa. Só então desative a origem.

Quais tipos de teste executar?

Ajuste os tipos de teste ao risco de cada carga de trabalho. Nem toda aplicação precisa de todos os testes.

Tipo de testeO que comprovaFerramentas típicas
Funcional e de regressãoOs recursos e as jornadas do utilizador continuam a funcionarSelenium, Playwright, suítes de teste existentes
IntegraçãoAPIs, filas de mensagens, transferências de ficheiros e serviços de terceiros ligam-seTestes de contrato, ferramentas de teste de API, transações sintéticas
Validação de dadosCada linha e cada ficheiro chegaram e coincidemValidação de dados do AWS DMS, checksums, contagem de linhas, ferramentas de diff de bases de dados
Desempenho e cargaTempos de resposta e throughput atingem as metas, e o auto scaling funcionaJMeter, k6, Gatling
Segurança e conformidadeAcessos, cifragem, regras de rede e registo estão corretosFerramentas de postura de segurança em nuvem, análises de vulnerabilidades, revisões de IAM
Resiliência e DRA carga de trabalho sobrevive a falhas e pode ser restauradaSimulações de failover, restaurações de backup, AWS Fault Injection Service
Aceitação do utilizadorOs utilizadores de negócio confirmam que o sistema está apto para usoUAT com guião e aprovação

Para testes de carga realistas, compatíveis com o seu tráfego de pico, veja o nosso serviço de testes de carga.

Como validar os dados durante uma migração?

Valide os dados em três níveis: contagens, checksums e comparação linha a linha para as tabelas críticas.

  1. Contagens: linhas por tabela, ficheiros por bucket, total de bytes. É rápido e deteta erros grosseiros.
  2. Checksums e agregados: somas de valores, hashes de colunas-chave. Deteta truncamento e problemas de codificação.
  3. Comparação ao nível da linha: em bases de dados, a validação de dados do AWS DMS compara cada linha de origem com a linha de destino e relata divergências, inclusive mudanças capturadas durante a replicação contínua.

Dois limites práticos da documentação da AWS merecem planeamento: a validação exige uma chave primária ou um índice único em cada tabela e adiciona carga de consultas tanto na origem quanto no destino. Agende as validações pesadas fora do horário comercial ou execute-as como tarefas separadas, só de validação.

Teste também o que muda de propósito. Se converte de Oracle para PostgreSQL, tipos de dados, collation e ordem de classificação diferem, então compare os resultados das consultas, e não apenas os valores armazenados. O nosso serviço de migração de bases de dados cobre essas conversões.

Como os testes mudam conforme o caminho de migração

  • Rehost (lift and shift): concentre-se na paridade do ambiente. Verifique rede, DNS, identidade, throughput de armazenamento, jobs de backup e agentes de monitorização. O teste funcional pode ser um smoke test mais as jornadas críticas.
  • Replatform: ao mover uma base de dados para um serviço gerido ou uma aplicação para contentores, acrescente validação de dados, testes de desempenho e verificações dos limites do serviço gerido, como o número de ligações.
  • Refactor: trate como software novo. Execute testes funcionais, de integração e de desempenho completos e use releases canary ou blue/green com feature flags para limitar a exposição.

Checklist de testes de migração para a nuvem

  • Inventário e mapa de dependências concluídos para a onda
  • Linhas de base registadas para jornadas críticas, jobs em lote e volumes de dados
  • Critérios de aprovação e gatilhos de rollback aprovados pelo responsável do negócio
  • Ambiente de teste isolado das redes de produção
  • Infraestrutura definida como código para que teste e produção sejam iguais (veja o nosso serviço de infraestrutura como código com Terraform)
  • Dados de teste mascarados quando contêm dados pessoais
  • Migração de teste concluída, defeitos corrigidos e retestados
  • Validação de dados aprovada para todas as tabelas no âmbito
  • Teste de carga no pico esperado aprovado
  • Revisão de segurança concluída: IAM, cifragem, security groups, registo
  • Rollback ensaiado e cronometrado
  • Runbook de cutover com responsáveis e horários aprovado
  • Dashboards e alertas de monitorização pós-migração ativos
  • Restauração de backup testada na nova plataforma

Como a Opsio ajuda

A Opsio planeia e executa migrações para a nuvem com testes incorporados a cada onda. Para a SilverRail Technologies, a Opsio migrou a filial nórdica da empresa para a AWS e a integrou à organização global. A fase Mobilize incluiu uma migração-piloto de teste de cargas de trabalho selecionadas, e o processo de migração e os serviços da AWS foram ajustados com base nesse teste. Os dados foram movidos com ferramentas nativas do PostgreSQL, sob um plano detalhado de cutover, e os cutovers ocorreram em janelas de serviço curtas para limitar o impacto sobre os clientes. Leia o estudo de caso da SilverRail.

Perguntas frequentes

O que é uma estratégia de testes de migração para a nuvem?

É um plano que define quais testes são executados antes, durante e depois de cada onda de migração, os critérios de aprovação ou reprovação de cada um e quem dá a aprovação. Cobre funcionalidade, dados, desempenho, segurança e rollback.

Quais são as fases dos testes de migração para a nuvem?

Planeamento e linha de base, migração de teste, cutover e validação pós-migração. Cada fase gera evidências, como relatórios de linha de base, resultados de testes, um go/no-go assinado e um relatório de hypercare.

Como testar os dados após uma migração para a nuvem?

Compare contagens de linhas e checksums de todas as tabelas e faça comparações ao nível da linha nos dados críticos. Na AWS, a validação de dados do DMS compara as linhas de origem e de destino e relata divergências; ela exige uma chave primária ou um índice único em cada tabela.

Qual a diferença entre testar um lift-and-shift e um refactor?

Um lift-and-shift exige principalmente verificações de paridade do ambiente e das jornadas críticas, porque o código não muda. Um refactor exige testes funcionais, de integração e de desempenho completos, pois na prática está a lançar um software novo.

Por quanto tempo monitorizar após o cutover?

Por pelo menos um ciclo de negócio completo, incluindo dias de pico como o fecho do mês, antes de desativar os sistemas de origem. Mantenha a opção de rollback aberta até que os critérios acordados sejam satisfeitos.

Sobre o autor

Oscar Bergenbrink
Oscar Bergenbrink

CTO

Technology leadership, cloud architecture, and digital transformation strategy

Normas editoriais: Este artigo foi escrito por um profissional certificado, indicado acima como autor. Atualizamo-lo quando a tecnologia ou a regulamentação que aborda muda; as datas acima indicam a última atualização. A Opsio mantém independência editorial — recomendamos soluções pelo seu mérito técnico, não por relações comerciais.

Quer implementar o que acabou de ler?

Os nossos arquitetos podem ajudá-lo a transformar estas ideias em ação.