Migração de infraestrutura multi-ambiente pra uma plataforma SaaS multi-tenant
Migrei os três ambientes de uma plataforma SaaS multi-tenant de VMs legadas provisionadas manualmente pra uma nuvem moderna, diagnosticando pelo caminho uma incompatibilidade de driver de banco que travava todo ambiente novo.
- MySQL
- PHP
- Provisionamento/orquestração de servidores
- Object storage
- Banco de dados gerenciado
Contexto
Um cliente SaaS B2B com arquitetura multi-tenant (um schema de banco por tenant, mais um schema central de controle), operando três ambientes — desenvolvimento, homologação e produção — sobre infraestrutura legada de VMs provisionada e mantida majoritariamente à mão por vários anos. O objetivo: migrar os três ambientes pra um provedor de nuvem diferente, com um processo repetível e documentado, sem interromper o atendimento aos tenants ativos.
Desafio
O diagnóstico inicial revelou dívida técnica de infraestrutura e de aplicação: drift entre os ambientes (dev, homologação e produção divergindo em versão de runtime e variáveis de ambiente); provisionamento totalmente manual, sem script ou runbook; e uma incompatibilidade de plugin de autenticação entre a versão mais recente do MySQL e o driver PHP/PDO legado, que quebrava a conexão em todo ambiente recém-provisionado até ser corrigido à mão.
O que fiz
- Auditei os três ambientes de ponta a ponta — recursos, serviços, bancos, variáveis de ambiente — e comparei a infraestrutura legada com a proposta na nova nuvem, incluindo parâmetros de tuning de banco e de runtime.
- Diagnostiquei a incompatibilidade de plugin de autenticação do MySQL como causa raiz das falhas de conexão em todo ambiente novo, e tornei a recriação explícita do usuário com o plugin legado um passo obrigatório no runbook.
- Migrei homologação primeiro, depois dev, depois produção — validando cada etapa antes de avançar — provisionando IP fixo, grupos de segurança e SSL via proxy reverso do zero em cada ambiente.
- Rodei uma segunda fase de otimização: desacoplei armazenamento de arquivos e banco de dados das instâncias de aplicação, migrando pra serviços gerenciados equivalentes (object storage + banco como serviço), reduzindo o porte da computação e o custo mensal.
Stack
MySQL (multi-tenant, schema por tenant), aplicação PHP legada, fila/cache em memória, ferramenta de provisionamento/orquestração de servidores, migração de nuvem IaaS→IaaS/PaaS com fase de otimização pra serviços gerenciados.
Resultado
Migração dos três ambientes concluída sem perda de dados de tenant, com IP fixo, SSL funcional e um runbook de deploy documentado e repetível. A fase de otimização seguinte reduziu o custo mensal de infraestrutura ao desacoplar armazenamento e banco das instâncias de aplicação, com payback estimado em menos de dois meses.