Architecture · Legacy Modernization|15 min de lectura|

Cómo Modernizar Sistemas Legacy Empresariales

Legacy no significa antiguo. Hay sistemas de 20 años que están bien mantenidos y evolucionan controladamente. El criterio real para clasificar un sistema como legacy problemático es: el equipo no puede modificar el sistema con confianza, el proceso de deploy es manual y riesgoso, no hay tests automatizados, y la arquitectura impide incorporar nuevas funcionalidades sin romper las existentes. Esta guía documenta las estrategias y procesos que aplicamos en proyectos reales de modernización empresarial.

Qué hace que un sistema sea realmente problemático

En la práctica, los sistemas legacy problemáticos que encontramos en empresas de la región comparten las mismas características: aplicación monolítica en lenguaje o framework sin soporte activo, base de datos con procedimientos almacenados que encapsulan lógica de negocio crítica, deploy manual al servidor mediante FTP o scripts frágiles, y conocimiento técnico concentrado en 1-2 personas que estuvieron desde el inicio.

Las señales concretas de que la situación es urgente: los deploys se hacen en horarios de baja actividad para minimizar el impacto de errores, hay incidentes frecuentes que tardan horas en resolverse, las estimaciones de nuevas funcionalidades son invariablemente más largas de lo esperado, y el equipo tiene miedo de tocar ciertos módulos.

Las cuatro estrategias de modernización

No existe una estrategia universalmente correcta. La elección depende del riesgo que puede asumir la empresa, el presupuesto disponible, el estado del equipo y el valor crítico del sistema.

Strangler Fig Pattern

La estrategia más conservadora y recomendada para sistemas críticos. Construyes la nueva solución en paralelo y migras funcionalidades gradualmente, estrangulando el sistema legacy mientras el nuevo crece. El sistema viejo sigue funcionando como fallback hasta que el nuevo lo reemplaza completamente. El riesgo en cada paso es mínimo.

Big Bang Rewrite

Reescribir completamente el sistema desde cero. La estrategia más riesgosa — históricamente la más propensa a fracasar. Solo recomendada cuando el sistema está tan acoplado que cualquier migración incremental es impráctica, o cuando el negocio puede permitirse un período de desarrollo sin nuevas funcionalidades. Estátidicamente, la mayoría de los proyectos de reescritura completa terminan sobre tiempo y presupuesto.

Lift and Shift (Containerización)

Envolver el sistema existente en contenedores Docker sin cambiar el código. No resuelve los problemas de arquitectura, pero moderniza la plataforma de deployment, elimina la dependencia de un servidor físico específico y habilita escalar horizontalmente. Es un primer paso pragmático que reduce el riesgo operacional mientras se planea una migración más profunda.

Phased Modernization

Identificar y modernizar los componentes del sistema con mayor valor de negocio o mayor riesgo técnico primero. Similar al Strangler Fig pero orientado por prioridades de negocio en lugar de flujo de usuario. Más fácil de justificar presupuestariamente porque cada fase tiene ROI demostrable.

El assessment técnico previo que nunca debe saltarse

Antes de proponer una estrategia de modernización, el assessment técnico estructurado no es un trámite — es lo que determina qué estrategia es realmente viable.

  • Inventario de dependencias: tecnologías, versiones, librerías de terceros. ¿Hay versiones con vulnerabilidades de seguridad conocidas sin parchear?
  • Análisis de la base de datos: ¿cuánta lógica de negocio vive en stored procedures? ¿Hay triggers con side effects? ¿El esquema tiene centenares de tablas sin documentar?
  • Análisis de acoplamiento: ¿el sistema se integra con otros sistemas? ¿Mediante qué mecanismos (base de datos compartida, FTP, APIs, archivos planos)?
  • Análisis de riesgo operacional: tiempo de deploy, frecuencia de incidentes, tiempo de resolución promedio
  • Análisis del equipo: ¿quién conoce el sistema? ¿Hay documentación? ¿Hay tests automatizados?

El resultado del assessment determina la estrategia — no al revés. Hemos visto proyectos donde la recomendación inicial era Strangler Fig pero el assessment reveló que la lógica de negocio en stored procedures era tan extensa que el Lift and Shift primero era el único camino pragmático.

La trampa de los procedimientos almacenados

En sistemas legacy empresariales, la lógica crítica de negocio con frecuencia vive en stored procedures de Oracle, SQL Server o MySQL. Este es el obstáculo técnico más complejo en una modernización: los SP pueden tener miles de líneas sin tests, con side effects implícitos, y el conocimiento de cómo funcionan puede estar concentrado en personas que ya no están en la empresa.

La estrategia que usamos: no reescribir los SP de golpe. Construir una capa de API sobre ellos, generar golden tests que documentan el comportamiento actual exhaustivamente, y luego migrar la lógica gradualmente al nuevo sistema mientras los tests verifican que el comportamiento es idéntico.

Los golden tests — pruebas que capturan el output actual del sistema para comparar con el nuevo — son tu seguro de vida durante una migración. No son tests de diseño correcto, son tests de equivalencia de comportamiento.

Containerización como primer paso pragmático

Si el sistema corre en Windows Server 2008 con IIS, o en un servidor físico con Oracle instalado localmente, la containerización como primer paso elimina la dependencia del hardware y hace posible deployar en cualquier ambiente cloud.

dockerfile
# Containerizar una app .NET legacy con Windows containers
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019

# Copiar aplicación
COPY ./app /inetpub/wwwroot/app

# Configurar IIS
RUN powershell -NoProfile -Command \
    Import-Module WebAdministration; \
    New-WebApplication \
      -Site "Default Web Site" \
      -Name "legacy-app" \
      -PhysicalPath "C:\inetpub\wwwroot\app" \
      -ApplicationPool "DefaultAppPool"

EXPOSE 80

Esto no resuelve la deuda técnica, pero da movilidad operacional. El equipo puede deployar en cloud, hacer rollbacks controlados y gestionar múltiples versiones — sin tocar una línea del código de negocio. Es el punto de partida que desbloquea las fases siguientes.

Estrategia de migración de datos: el componente más complejo

La base de datos es invariablemente el componente más difícil de modernizar. El esquema tiene años de cambios acumulados sin planificación, y frecuentemente hay aplicaciones satélite que acceden directamente a las mismas tablas.

Las estrategias de migración de datos que usamos:

  • Dual write: el nuevo sistema escribe en ambas bases de datos durante la transición. Garantiza que la base legacy está siempre actualizada como fallback.
  • Change Data Capture (CDC): capturar cambios en la base legacy y replicarlos al nuevo sistema con herramientas como Debezium. Funciona sin modificar el sistema legacy.
  • Strangler fig en la capa de datos: migrar una tabla o dominio a la vez al nuevo esquema, con una capa de abstracción que oculta la migración al resto del sistema.

Cómo justificar el ROI internamente

La modernización de sistemas legacy raramente se justifica solo por deuda técnica. Los tomadores de decisión empresariales necesitan números. Los argumentos que funcionan en la práctica:

  • Costo de downtime actual: si el sistema tiene incidentes frecuentes de 2-4 horas, el costo por hora de operación detenida es un número concreto.
  • Velocidad de desarrollo: si una nueva funcionalidad tarda 6 semanas en el sistema legacy vs. 1 semana en el nuevo, el ROI se calcula directamente.
  • Riesgo de seguridad: sistemas en versiones sin soporte activo de seguridad son pasivos con riesgo regulatorio creciente (GDPR, PCI-DSS, etc.).
  • Dependencia de personas clave: si la persona que conoce el sistema se va, ¿cuánto valdría ese conocimiento perdido? El bus factor es un riesgo de negocio real.

Preguntas frecuentes

¿Cuánto tiempo tarda modernizar un sistema legacy empresarial?
Depende de la complejidad. Un sistema de tamaño mediano (10-20 módulos, 1 base de datos, 3-5 integraciones) con el Strangler Fig Pattern tarda 12-24 meses en modernizarse completamente. El Lift and Shift inicial puede completarse en 2-3 meses. El factor que más afecta el timeline es la disponibilidad del equipo que conoce el sistema actual para transferir conocimiento al nuevo equipo.
¿Es necesario migrar a microservicios?
No. Los microservicios son una opción, no un destino obligatorio. Un monolito bien construido, con CI/CD automatizado, tests y base de datos correctamente modelada, es una solución perfectamente válida para la mayoría de las empresas. Los microservicios agregan complejidad operacional real — solo se justifican cuando el equipo y la escala del sistema lo requieren. La alternativa más pragmática es un modular monolith que puede evolucionar gradualmente.
¿Qué hago si el proveedor del sistema legacy ya no existe?
Es una situación más común de lo que parece. Las opciones: buscar contratos de soporte de terceros (hay empresas especializadas en soporte de software descontinuado como Oracle EBS o SAP versiones antiguas), o iniciar una migración con mayor urgencia. El análisis de riesgo de seguridad suele ser el argumento más efectivo para obtener presupuesto de emergencia.
¿Cómo evitamos perder el conocimiento del sistema durante la migración?
A través de documentación forzada por el proceso de migración. Por cada módulo que se migra, el equipo debe escribir: qué hace el módulo, qué entradas y salidas tiene, qué casos edge maneja, y los tests que verifican el comportamiento. El conocimiento que antes estaba solo en la cabeza de personas queda capturado formalmente. La migración es también un proceso de documentación.
¿Cuándo tiene sentido una reescritura completa (Big Bang)?
Cuando el sistema es tan acoplado que no hay seam natural para el Strangler Fig, cuando el negocio puede permitirse 6-12 meses sin nuevas funcionalidades, y cuando el equipo que va a construir el nuevo sistema tiene acceso completo al equipo que conoce el sistema actual. Fuera de estas condiciones, el Big Bang es generalmente más riesgoso de lo que parece desde afuera.

¿Tienes un sistema legacy que está limitando el crecimiento del negocio? Podemos hacer un assessment técnico y proponer una estrategia de modernización sin interrumpir la operación.

Habla con el equipo

Artículos relacionados

IQS

Equipo de Ingeniería — IQS

Ingenieros de software, cloud y DevOps con experiencia en proyectos empresariales.