Saltar al contenido
RebLabs

Plataforma de consumo · +4 millones de usuarios

Mover producción a Kubernetes sin que nadie se entere

Una app de consumo con millones de usuarios, sobre máquinas virtuales envejecidas y una herramienta de despliegue en la que nadie confiaba. Migrada a Kubernetes por fases, contra tráfico real y sin downtime visible para el cliente.

La situación

Una plataforma de consumo con más de cuatro millones de usuarios activos, sobre máquinas virtuales con autoscaling y un pipeline de despliegue heredado. Las releases eran lentas y daban miedo, la capacidad se gestionaba a ojo, y la infraestructura acumulaba años de decisiones sin documentar. Los usuarios se concentran en una sola zona horaria, así que el tráfico se dispara durante cuatro horas cada noche: un mal deploy tiene muchísimo público.

Qué se hizo

Una migración a Kubernetes en cinco fases, moviendo tráfico real de producción por incrementos —3%, luego 6%, 12%, 50%, 100%— con DNS ponderado para poder revertir cualquier paso en minutos. Cada incremento se sostuvo una noche entera de pico y se midió antes de permitir el siguiente.

Por debajo: toda la plataforma reconstruida como código. Autoscaling gobernado por la profundidad real de las colas y la CPU en lugar de por un número fijo de réplicas, secretos sacados de los ficheros de configuración a un gestor de secretos, deploy por GitOps para que lo que corre coincida siempre con el repositorio, y monitorización capaz de responder de verdad a «¿este incremento está peor que el anterior?».

Después se desmanteló lo viejo, a propósito y como fase propia, porque una infraestructura a medio migrar es peor que cualquiera de los dos extremos.

Cómo acabó

Ningún downtime visible para el cliente en ningún momento. Tiempos de respuesta sin cambios durante el corte. Los servidores heredados y su pipeline de despliegue ya no existen, y el procedimiento para retirarlos está escrito.

La parte que merece la pena copiar: subir el tráfico por incrementos y negarse a avanzar hasta que el actual resulte aburrido. Convierte una migración de una noche grande e irreversible en una serie de noches pequeñas y reversibles.