GuíaIntermedio
Guía de Modernización de Legacy y Migración
Aprende a modernizar un sistema legacy sin reescribirlo de cero: la reescritura grande casi siempre fracasa, y el camino que sí funciona es incremental, medido y reversible. Esta guía enseña a poner código legacy que da miedo bajo una red de seguridad con characterization tests, a desviar tráfico del sistema viejo al nuevo con el patrón strangler fig, y a migrar una implementación internamente con branch by abstraction cuando no hay forma de meter un proxy externo. Cubre cómo extraer un bounded context del monolito a un servicio con un anti-corruption layer, cómo migrar datos sin apagar el sistema (dual-write, backfill, parallel-run) y cómo medir si una migración avanza y cuándo terminó, para evitar la migración eterna que nunca apaga lo viejo. Todo se simula y se ejecuta en Python: el monolito, el router y la base de datos en memoria. Trabajas sobre Mercado, un marketplace legacy con catálogo, pedidos, pagos y envíos viviendo en un solo monolito sin tests. Cierra con un proyecto capstone donde modernizas una rebanada completa de Mercado de punta a punta, sin apagar el negocio.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Sí
- certificado
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Entender por qué la reescritura grande casi siempre fracasa y el caso a favor de modernizar de forma incremental
- Escribir characterization tests que fijan el comportamiento actual de un código legacy (incluidos sus bugs) antes de tocarlo, y encontrar el seam correcto para el cambio
- Implementar el patrón strangler fig: un facade que desvía tráfico incrementalmente del sistema legacy al nuevo, con la ruta vieja como fallback
- Aplicar branch by abstraction para migrar una implementación por dentro del código, sin proxy externo ni ramas de git de larga vida
- Extraer un bounded context del monolito a un servicio propio usando un anti-corruption layer que traduce entre el modelo viejo y el nuevo
- Migrar datos sin downtime con dual-write, backfill y parallel-run, detectando discrepancias antes del switch final de lectura
- Medir el progreso de una migración con métricas de tráfico, burn-down de llamadas al legacy y fitness functions que evitan que el legacy vuelva a crecer
- Ejecutar un proyecto capstone: modernizar de punta a punta una rebanada del monolito de Mercado (tests, strangler facade, extracción de servicio y migración de datos)
Antes de empezar
Qué necesitas traer
Es para ti si...
- Backend developers y tech leads que heredaron un monolito legacy y necesitan modernizarlo sin detener el negocio
- Equipos evaluando una reescritura grande y que quieren entender por qué casi siempre fracasa antes de comprometerse
- Devs que deben migrar datos en producción sin downtime
- Arquitectos que necesitan medir y comunicar el avance real de una migración en curso
Requisitos y materiales
- Experiencia construyendo APIs o servicios backend en producción (en cualquier stack)
- Nociones básicas de testing automatizado (unit tests)
- Python para seguir y ejecutar las simulaciones de la guía (monolito, router y base de datos en memoria)
- Recomendado (no obligatorio): Guía de Decisiones Arquitectónicas y Trade-offs completada, para el "por qué migrar" detrás de cada caso
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Presentación del módulo: por qué no reescribir
- Por qué la reescritura grande fracasa
- El síndrome del segundo sistema
- El conocimiento tácito enterrado en el legacy
- El caso a favor de lo incremental
- La metáfora de la higuera estranguladora
- Modernizar en su lugar vs empezar de cero
- Mini-proyecto: arma la defensa contra el rewrite de Mercado
- Presentación del módulo: entender y fijar el legacy
- Trabajar con código que da miedo y no tiene tests
- El characterization test: fija lo que hace HOY
- Encontrar el seam (la costura)
- Caracterizar por muestreo y el golden master
- Cuando el legacy hace algo raro (y alguien depende de ello)
- Leer y caracterizar antes de cambiar
- Mini-proyecto: fija el precio del catálogo de Mercado
- Presentación del módulo: el patrón strangler fig
- El facade delante del legacy
- Construir el servicio nuevo al lado
- Desviar el tráfico por porcentaje
- Formas de desviar: por ruta, por porcentaje, por flag
- Fallback y observar las dos rutas
- El corte final y retirar el legacy
- Proyecto: poner el catalog de Mercado detrás de un strangler facade
- Presentación del módulo: branch by abstraction
- La capa de abstracción como un seam
- Construir la implementación moderna detrás de la abstracción
- El feature flag como punto de conmutación
- Parallel-run para probar que el cambio es seguro
- Borrar la implementación vieja
- Sin rama de larga vida: evitar el merge hell
- Proyecto: moderniza el ShippingCalculator de Mercado
- Presentación del módulo: migrar datos sin downtime
- Expand-contract: nunca un cambio destructivo de golpe
- Dual-write: escribir a los dos almacenes
- Backfill: cargar los datos históricos
- Parallel-run: comparar los dos almacenes
- Reconciliar las discrepancias
- El read-switch y apagar el dual-write
- Proyecto: migrar los datos del catalog de Mercado sin downtime
- Presentación del módulo: medir el progreso de la migración
- Medir el resultado, no el esfuerzo
- El burn-down de llamadas al legacy
- La fitness function de la migración
- Impedir que el legacy vuelva a crecer
- Definir el "done": cuándo se borra el legacy
- Evitar la migración eterna
- Proyecto: medir y terminar la migración de Mercado
- Presentación del capstone: siete técnicas, un método
- Elegir y caracterizar la rebanada
- Poner la rebanada tras el facade
- Extraer el servicio con un anti-corruption layer
- Migrar los datos de la rebanada
- Medir el progreso de la rebanada
- Declarar el done y apagar el legacy
- Proyecto: modernizar el catalog de Mercado
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
Sí. Al terminar todas las lecciones se emite automáticamente, con un código verificable que puedes compartir en LinkedIn.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!