Contexto
SaaS B2B multi-tenant (um schema por tenant e um schema central de controle) com desenvolvimento, homologação e produção em VMs provisionadas à mão ao longo de anos. O objetivo era levar os três ambientes para outro provedor de nuvem com um processo repetível, sem interromper os tenants ativos.
Problema
- Drift entre ambientes: versão de runtime e variáveis de ambiente diferentes.
- Provisionamento manual, sem script nem runbook.
- O plugin de autenticação padrão do MySQL novo era incompatível com o driver PDO legado, e a conexão falhava em todo ambiente recém-criado.
O que fiz
- Auditoria dos três ambientes (recursos, serviços, bancos, variáveis) e comparação com a proposta na nuvem nova, incluindo tuning de banco e de runtime.
- Diagnóstico da causa raiz no plugin de autenticação; recriar o usuário com o plugin legado virou passo obrigatório do runbook.
- Migração em ordem: homologação, desenvolvimento e produção, validando cada etapa. IP fixo, grupos de segurança e SSL por proxy reverso em cada ambiente.
- Segunda fase: arquivos e banco fora das instâncias de aplicação, em object storage e banco gerenciado, com instâncias menores.
Resultado
Três ambientes migrados sem perda de dados de tenant, com runbook documentado e repetível. A segunda fase baixou o custo mensal, com retorno estimado em menos de dois meses.