IT Implementation & Migration

Todo sistema de sustitución llega con una promesa y un peligro. La promesa es una plataforma mejor: más rápida, más económica de operar, más capaz, menos lastrada por los compromisos del panorama de TI al que sucede. El peligro es el propio momento de la transición, el intervalo en el que el negocio debe dejar de confiar en el sistema antiguo y empezar a confiar en el nuevo, y en el que cada supuesto latente sobre datos, procesos e integración se pone a prueba de golpe. La implementación y la migración son la disciplina de atravesar ese intervalo sin sufrir daños. No es la misma disciplina que construir software o configurar un paquete, y tratarla como un apéndice de esas actividades es una de las formas más fiables de perjudicar a un negocio durante un programa que, por lo demás, era sólido.

Este artículo aborda la travesía como el objeto primario de la ingeniería. Expone cómo se planifica el cambio a producción en lugar de improvisarlo, cómo se trasladan los datos y luego se demuestra que se han trasladado correctamente, cómo coexisten los sistemas antiguo y nuevo mientras un despliegue avanza en etapas controladas, y cómo se conserva una vía de retorno creíble hasta que se ha ganado la confianza. El tema unificador es que la conmutación debería ser el acontecimiento menos dramático del programa, precisamente porque todo lo que podría hacerlo dramático se ha eliminado por diseño de antemano.

What Nashua offers hereProyectos que llevan a producción nuevos sistemas y datos sin romper el negocio.See the engagements

Por qué la conmutación es el verdadero proyecto

Las organizaciones rara vez fracasan al comprar un sistema. La selección se comprende bien, los proveedores tienen práctica en las demostraciones y los casos de negocio se examinan con detalle. Donde los programas se desmoronan es en el momento de entrar en producción, cuando el optimismo acumulado del diseño y la construcción se topa con la realidad concreta de los datos de producción, los usuarios reales y unas dependencias posteriores que no perdonan. Los costes de equivocarse aquí no se reparten de forma uniforme a lo largo del calendario. Se concentran en las horas o los días en torno a la conmutación, y recaen directamente sobre el negocio operativo: pedidos que no pueden enviarse, facturas que no pueden emitirse, pacientes o clientes cuyos registros quedan momentáneamente inaccesibles.

Dos cambios han agravado esto en lugar de aliviarlo. El primero es la densidad de integración. Una aplicación moderna no es una isla, sino un nodo en una malla de interfaces, flujos de eventos y datos de referencia compartidos, de modo que mover un sistema perturba muchos otros. El segundo es el colapso de la ventana de mantenimiento. Los negocios que antes toleraban un fin de semana de inactividad ahora funcionan de forma continua, a través de husos horarios y canales, y la interrupción tolerable se ha reducido de días a minutos. La consecuencia es que la migración ya no puede tratarse como una ocurrencia técnica de última hora programada para un domingo tranquilo. Es la fase en la que el programa honra o traiciona al negocio al que debía servir, y merece el mismo rigor de diseño que el propio sistema.

Primeros principios de la conmutación

Una estrategia de conmutación es un conjunto de respuestas deliberadas a un pequeño número de preguntas difíciles, y las estrategias que reconocen los profesionales son en realidad puntos de un espectro definido por esas respuestas. La primera pregunta es si la transición se produce en un único movimiento decisivo o por etapas. Una conmutación big bang traslada la totalidad de la base de usuarios y del conjunto de datos al nuevo sistema en un momento designado. Es conceptualmente limpia y evita la carga de operar dos sistemas en paralelo, pero concentra todo el riesgo en un único instante irreversible y ofrece poco margen para aprender. Un enfoque por fases traslada la organización por tramos, por geografía, unidad de negocio, línea de producto o función, intercambiando la simplicidad de un único evento por la seguridad de una exposición incremental y la complejidad de un mundo intermedio en el que ambos sistemas están activos.

La segunda pregunta es qué ocurre con los datos. Una migración no es una mera copia: es una extracción a partir de un modelo de origen, una transformación hacia un modelo de destino cuya estructura y reglas casi nunca coinciden, y una carga que debe respetar la validación y la integridad referencial del destino. La tercera pregunta es el destino del sistema antiguo. Algunas transiciones lo retiran de inmediato, otras lo mantienen funcionando en paralelo para poder comparar resultados, y otras lo dejan en su sitio de forma indefinida como archivo de solo lectura. La última pregunta, y la más desatendida, es cómo sabrá la organización, en el momento de la conmutación, si la migración ha tenido éxito realmente. Sin una definición explícita y medible del éxito y una definición equivalente del fracaso, una conmutación no puede gobernarse. Solo puede afrontarse con esperanza, y la esperanza no es una estrategia que sobreviva al contacto con la producción.

Cómo está cambiando la práctica

El centro de gravedad del trabajo de migración se ha desplazado de la carga masiva puntual hacia una transición continua, ensayable y cada vez más automatizada. La expresión más clara de esto es el auge de la captura de datos de cambios y de la replicación en tiempo casi real. En lugar de congelar el origen, extraerlo y volver a cargarlo en una única ventana angustiosa, los equipos ahora ponen en pie el sistema de destino, lo siembran a partir de una instantánea en un punto en el tiempo y luego transmiten en flujo los cambios continuos del origen al destino hasta que ambos están sincronizados. Cuando llega el momento, la diferencia restante es pequeña y la interrupción se mide en minutos. Esta técnica, a veces llamada migración por goteo o migración en línea, ha desplazado discretamente la carga tradicional de fin de semana en muchos panoramas de alta disponibilidad.

Los destinos en el cloud han reforzado la tendencia. Migrar a una base de datos gestionada o a una plataforma de software como servicio elimina parte del esfuerzo de infraestructura, pero endurece las restricciones sobre cómo pueden cargarse los datos y cuánto control conserva el equipo sobre el destino, lo que devuelve la disciplina a la extracción y la reconciliación. Al mismo tiempo, las herramientas en torno a la migración han madurado: herramientas de perfilado que examinan la calidad de los datos de origen antes de escribir una sola línea de mapeo, pipelines de transformación bajo control de versiones y probados como cualquier otro código, y suites de reconciliación automatizada que comparan origen y destino a escala en lugar de por muestreo. El cambio más importante es cultural. Los equipos líderes ahora ensayan la conmutación completa de forma repetida contra datos similares a los de producción, tratando el primer, segundo y tercer ensayo general como ingeniería ordinaria y no como un lujo, de modo que el evento en vivo es la ejecución de una rutina ya realizada muchas veces.

Diseñar la migración para que sea demostrable

Una buena arquitectura de migración se organiza en torno a una única exigencia: toda afirmación que haga debe poder demostrarse. Esto comienza separando las tres preocupaciones de extraer, transformar y cargar, de modo que cada una pueda razonarse y probarse de forma independiente. La extracción debe capturar una vista coherente y con marca de tiempo del origen, porque una instantánea tomada mientras el origen sigue cambiando produce un conjunto de datos que nunca existió realmente y que jamás podrá reconciliarse. La transformación debe ser explícita e inspeccionable, con las reglas de mapeo conservadas como artefactos en lugar de enterradas en scripts improvisados, de modo que la respuesta a por qué un campo dado contiene un valor dado esté siempre disponible. La carga debe respetar las propias reglas del destino en lugar de eludirlas, porque los datos forzados a saltarse la validación para cumplir un plazo se convierten en un defecto que aflora más tarde, en un momento peor y más lejos de su causa.

La reconciliación es el elemento portante de todo el diseño, y opera en varios niveles. El más grueso son los totales de control: recuentos de registros y sumas financieras o de cantidades que deben coincidir entre origen y destino dentro de tolerancias definidas. Más fina es la comparación a nivel de fila y de campo, que detecta la transformación que truncó silenciosamente un valor o mapeó incorrectamente un código de estado. La más fina es la reconciliación de reglas de negocio, que confirma no que los datos se movieron, sino que siguen significando lo mismo, que un pedido abierto sigue abierto y que el saldo de un cliente sigue cuadrando. Junto a la prueba de corrección, la arquitectura debe diseñarse para la coexistencia y para la retirada. La coexistencia significa decidir, para el periodo en el que ambos sistemas están activos, cuál de ellos es propietario de cada dato y cómo fluyen los cambios entre ellos, porque un despliegue por fases con una propiedad indefinida produce divergencias muy difíciles de deshacer. La retirada significa diseñar la reversión como una capacidad de primera clase: un disparador definido, un punto de restauración conocido y correcto, un procedimiento ensayado y, sobre todo, una decisión sobre qué ocurre con las transacciones que el negocio realizó después de la conmutación y antes de la decisión de revertir. Un plan de reversión que no puede dar cuenta de esas transacciones es un plan solo de nombre.

ExtractTransform &LoadReconcileCutover
The four disciplined stages of a migration, each producing evidence before the next begins.

Cómo fracasan estos programas

El fracaso en la migración sigue patrones en lugar de ser aleatorio, y merece la pena nombrar esos patrones porque cada uno tiene una contramedida específica. La calidad de los datos infravalorada es el más común y el más corrosivo. Los sistemas de origen acumulan años de duplicados, registros huérfanos, valores introducidos en los campos equivocados y códigos cuyo significado se fue desviando con el tiempo. Nada de esto es visible en una demostración, y todo ello aflora en el instante en que los datos reales se topan con la validación del destino. La contramedida es el perfilado temprano y un esfuerzo de depuración que comienza mucho antes de la carga, en el origen, donde el negocio todavía comprende los datos.

La conmutación sin ensayar es el fracaso de suponer que un runbook escrito sobre papel se ejecutará limpiamente bajo la presión del tiempo. Pasos que se leen como triviales resultan llevar horas, se descubre una dependencia a mitad de ejecución y no hay holgura porque no se midió ninguna. La contramedida es el ensayo a escala completa contra volúmenes realistas, cronometrando cada paso, hasta que el runbook sea un registro de lo que ya se ha hecho y no un pronóstico esperanzado. La reconciliación como ocurrencia tardía es la decisión de demostrar la corrección más tarde, lo que en la práctica significa nunca, y que permite que un error de transformación sutil se propague a cada informe e interfaz posteriores antes de que nadie lo advierta. La reversión fantasma es el plan que existe en el documento pero que nunca se probó, de modo que cuando se necesita el punto de restauración está caducado, el procedimiento es erróneo o las transacciones posteriores a la conmutación no tienen adónde ir. Por último, el alcance congelado durante la coexistencia es el fracaso organizativo de dejar que el periodo intermedio se prolongue indefinidamente mientras se mantienen ambos sistemas, duplicando el coste operativo y multiplicando la superficie de divergencia. Cada uno de estos fracasos es evitable, pero solo tratando la migración como una actividad de ingeniería con sus propias pruebas, ensayos y criterios de aceptación, y no como el último tramo del proyecto de otra persona.

Cómo aborda Nashua la implementación y la migración

Nashua trata la travesía como un evento diseñado desde el principio, en lugar de una tarea que improvisar cerca de la puesta en producción. Los proyectos comienzan con el descubrimiento del panorama de TI real: no el diagrama de arquitectura idealizado, sino las interfaces reales, los flujos no documentados, los datos de referencia compartidos entre sistemas y el verdadero estado de los datos de origen tal como lo revela el perfilado. A partir de esa imagen seleccionamos deliberadamente una estrategia de conmutación, sopesando la tolerancia del negocio a la inactividad, la densidad de sus integraciones y el apetito por la coexistencia, y dejamos por escrito esa elección con sus consecuencias, en lugar de recurrir por defecto al enfoque que resulte más cómodo para el equipo de entrega.

La migración en sí se construye como pipelines probados y bajo control de versiones con mapeos explícitos, y la reconciliación se diseña en paralelo con la carga en lugar de añadirse después, de modo que cada etapa produce evidencia. Ensayamos la conmutación de forma repetida contra datos similares a los de producción, cronometrando cada paso y refinando el runbook hasta que el evento en vivo no depara sorpresas, y diseñamos la reversión como una capacidad real y ejercitada, con disparadores definidos y una explicación clara de las transacciones posteriores a la conmutación. Cuando un despliegue por fases es lo correcto, definimos con precisión la propiedad de los datos durante el periodo de coexistencia y establecemos un calendario de reconciliación entre los sistemas, de modo que la divergencia se detecta cuando todavía es pequeña. En todo momento mantenemos al negocio cerca del trabajo, porque las personas que comprenden lo que significan los datos son las únicas que pueden confirmar que siguen significando lo mismo al otro lado. El objetivo es una conmutación que el negocio operativo experimente como algo sin incidencias, que es el mayor elogio que puede recibir una migración.

Dónde marca la diferencia Nashua

La diferencia que aporta Nashua no es una única herramienta ni un atajo propietario, sino la insistencia en que una migración solo está completa cuando se ha demostrado, ensayado y hecho reversible, y la disciplina para mantener ese estándar cuando un plazo aprieta y la tentación de saltarse la prueba es más fuerte que nunca. Hemos atravesado este intervalo suficientes veces, en suficientes panoramas, para saber que el drama que los equipos temen en la conmutación es casi siempre el coste diferido de una prueba que nunca se hizo o de un ensayo que nunca se realizó, y organizamos nuestros proyectos para que esas deudas se paguen pronto, a plena luz, y no en la madrugada de un evento en vivo.

Hay además un corolario práctico que cambia lo que el trabajo puede dar por supuesto. Cuando un proyecto requiere una capacidad que todavía no existe, no tiene por qué esperar a un ciclo de compras ni a la hoja de ruta de un proveedor. La Nashua 360 Enterprise Platform está construida para acomodar casi cualquier funcionalidad a buen ritmo, mediante extreme vibe coding: lo que se necesita se describe en lenguaje llano y se genera con rapidez, pero siempre dentro de principios de arquitectura firmes y bajo un aseguramiento de la calidad estricto, de modo que la velocidad nunca se produce a costa de la coherencia, la seguridad o el control. El efecto es estratégico más que meramente cómodo. Desplaza la frontera entre construir y comprar, mantiene barata la opcionalidad y permite que la arquitectura siga a la estrategia en lugar de que la estrategia se doblegue a lo que hubiera disponible en el estante.

Lo que esto significa en la práctica es continuidad de criterio desde el primer perfilado de datos hasta el momento en que el sistema antiguo se retira finalmente. Las mismas personas que diseñaron la reconciliación están presentes cuando se ejecuta, el plan de reversión se asume en lugar de archivarse, y el periodo de coexistencia se gobierna hasta su cierre en lugar de dejarse a la deriva. Los clientes de Nashua no recuerdan sus mejores migraciones, porque una migración bien hecha no deja cicatriz en el negocio. Esa ausencia de incidentes es precisamente el resultado que se nos contrata para producir, y es la medida más segura de que la travesía se diseñó con ingeniería en lugar de sobrevivirse.