Contexto
SaaS B2B multi-tenant (un schema por tenant y un schema central de control) con desarrollo, homologación y producción en VMs provisionadas a mano durante años. El objetivo era llevar los tres ambientes a otro proveedor de nube con un proceso repetible, sin cortar el servicio a los tenants activos.
Problema
- Drift entre ambientes: versión de runtime y variables de entorno distintas.
- Provisionamiento manual, sin script ni runbook.
- El plugin de autenticación por defecto de MySQL nuevo no era compatible con el driver PDO legado y la conexión fallaba en todo ambiente recién creado.
Qué hice
- Auditoría de los tres ambientes (recursos, servicios, bases, variables) y comparación con la propuesta en la nube nueva, incluido el tuning de base y de runtime.
- Diagnóstico de la causa raíz en el plugin de autenticación; recrear el usuario con el plugin legado pasó a ser un paso obligatorio del runbook.
- Migración en orden: homologación, desarrollo y producción, validando cada etapa. IP fija, grupos de seguridad y SSL por proxy inverso en cada ambiente.
- Segunda fase: archivos y base fuera de las instancias de aplicación, en almacenamiento de objetos y base gestionada, con instancias más chicas.
Resultado
Tres ambientes migrados sin pérdida de datos de tenants, con runbook documentado y repetible. La segunda fase bajó el costo mensual, con retorno estimado en menos de dos meses.