Auditoría escrita del sistema
Mapa de módulos, dependencias, criticidad, obsolescencia y orden de ataque. El documento es tuyo aunque no continúes.
Sustituimos software legacy por fases, con el sistema antiguo funcionando todo el tiempo. Primero, una auditoría escrita de lo que hay: qué módulos, qué dependencias, qué es crítico y en qué orden conviene tocarlo. Después, módulo a módulo, verificando que lo nuevo hace exactamente lo que hacía lo viejo antes de darle el tráfico.
Actualizado:
Modernizar un sistema legacy no es reescribirlo entero y cambiarlo un domingo por la noche. Es sustituirlo por partes, con el sistema antiguo en producción, verificando que cada pieza nueva hace exactamente lo que hacía la anterior antes de darle el tráfico. El patrón se llama Strangler Fig y tiene una propiedad que ningún otro tiene: se puede parar a mitad sin haber roto nada.
Antes de tocar una línea de código hay una auditoría escrita. Qué módulos existen y de qué dependen. Cuáles son críticos y cuáles no los usa nadie desde hace tres años. Qué dependencias están obsoletas o arrastran vulnerabilidades conocidas. Qué comportamiento del sistema no está cubierto por ningún test —que suele ser casi todo— y, por tanto, qué hay que caracterizar antes de sustituirlo. Y en qué orden conviene atacar. Ese documento es tuyo aunque decidas no seguir: es el mapa técnico de tu propio sistema, y en muchas empresas es la primera vez que existe.
Los sistemas que llegan a este punto se parecen bastante entre sí: PHP 5 que nadie se atreve a actualizar, ASP.NET WebForms, Java 6 o 7 con frameworks que ya no reciben parches, un Access o un VB6 que sostiene un proceso crítico, o un ERP propietario que escribió alguien que ya no está. El problema nunca es solo la tecnología: es que el conocimiento de por qué el sistema hace lo que hace se fue con las personas que lo escribieron.
El destino de la migración es TypeScript sobre Node, PostgreSQL y Next.js, en Google Cloud. No es una preferencia estética: es el stack con el que están construidas nuestras plataformas y donde corre Perizial, en producción y con clientes de pago. Lo que no hacemos es migrar manteniendo la tecnología obsoleta: cambiar PHP 5 por PHP 5 en otro servidor no es modernizar, es mudar el problema.
Conviene decir el límite antes que después. Sustituir por completo un ERP propietario grande es un programa de varios años y de varias personas: no es un encargo que se pueda aceptar sin vender humo, y no se acepta. La auditoría escrita, la sustitución de módulos concretos y la integración del sistema actual con software nuevo, sí.
Mapa de módulos, dependencias, criticidad, obsolescencia y orden de ataque. El documento es tuyo aunque no continúes.
Lo nuevo crece al lado de lo viejo. El sistema antiguo se apaga cuando ya no queda nada dentro, no antes.
Antes de sustituir un módulo se escribe qué hace hoy de verdad, incluidos los comportamientos raros de los que nadie se acuerda.
Un módulo nuevo no recibe tráfico hasta que se ha comprobado que devuelve lo mismo que el antiguo con las mismas entradas.
Un enrutador delante decide qué va a lo nuevo y qué sigue en lo viejo. Los dos conviven durante todo el proceso.
Carga de datos con validación, deduplicación y reconciliación contra el origen, con un informe de qué registros no cuadran.
Si la tecnología aún es razonable, sale más barato y más seguro arreglar lo que hay que sustituirlo entero.
Las decisiones de arquitectura se escriben y viven en el repositorio, no en una carpeta compartida que nadie vuelve a abrir.
TypeScript, Node, PostgreSQL y Next.js sobre Google Cloud. Es donde corre Perizial hoy, en producción.
El destino de la migración no es una recomendación de catálogo: es donde corre nuestro propio producto. Perizial es un SaaS B2B multi-tenant construido sobre TypeScript, Node, PostgreSQL y Next.js, desplegado en Google Cloud, en producción con clientes de pago y con planes públicos desde 69,99 € al mes. Cuando decimos que un sistema legacy se puede sustituir por este stack, hablamos del stack que mantenemos todos los días, no de uno que hemos leído que funciona bien.
Cuando el sistema legacy no hay que sustituirlo, sino conectarlo con el resto del software.
Cuando lo que sustituye al legacy hay que diseñarlo y construirlo desde cero.
Dónde acaba corriendo el sistema nuevo, y por qué la región importa cuando el dominio está regulado.
Escribe a [email protected] y cuenta qué proceso quieres automatizar, qué datos toca y con qué sistemas tiene que hablar. Con eso se puede responder si tiene sentido, qué alcance tendría y en qué rango de precio cae.