Este artículo describe dos migraciones complejas de la red de pagos de American Express, ambas logradas con cero downtime. La primera migración fue de una plataforma legacy a una nueva arquitectura basada en microservicios. La segunda fue una migración de infraestructura de un entorno Kubernetes legacy a uno nuevo. La clave del éxito en ambas migraciones fue una estrategia meticulosa de control de tráfico, implementada a través de un Global Transaction Router (GTR) y, en la segunda fase, con Envoy Proxy y un control plane personalizado.
La estrategia de migración se dividió en etapas bien definidas: migración de conexiones, tráfico sombra y enrutamiento canary. La migración de conexiones permitió introducir el GTR como un punto de control centralizado sin afectar la lógica de negocio. El tráfico sombra fue crucial para validar la paridad funcional de la nueva plataforma en un entorno de producción sin riesgo. Finalmente, el enrutamiento canary, aplicando principios de despliegue gradual, permitió desviar pequeños porcentajes de tráfico real a la nueva plataforma o entorno, con la capacidad de revertir instantáneamente en caso de anomalías. Esta aproximación minimizó el riesgo y evitó "big-bang cutovers".
Las salvaguardas clave que permitieron el éxito fueron una inversión profunda en observabilidad, la capacidad de rollback como una característica de primera clase, y el uso extensivo de Infrastructure-as-Code para la segunda migración. La observabilidad proporcionó la visibilidad necesaria para tomar decisiones informadas durante las fases de canary. La capacidad de rollback garantizó que cualquier problema detectado pudiera ser mitigado rápidamente sin impacto al cliente. Infrastructure-as-Code aseguró la consistencia y repetibilidad de los nuevos entornos. La lección más importante fue la paciencia y la disciplina, priorizando la fiabilidad sobre la velocidad.