Ir ao contido
RebLabs

Plataforma de consumo · máis de 4M de usuarios

Mover a produción a Kubernetes sen que ninguén o note

Unha app de consumo con millóns de usuarios, sobre máquinas virtuais avellentadas e unha ferramenta de deploy na que ninguén confiaba. Migrada a Kubernetes por fases, contra tráfico real e sen downtime visible para o cliente.

A situación

Unha plataforma de consumo con máis de catro millóns de usuarios activos, sobre máquinas virtuais con autoscaling e un pipeline de deploy legacy. As releases eran lentas e angustiosas, a capacidade xestionábase a ollo, e a infraestrutura acumulaba anos de decisións sen documentar. A base de usuarios está concentrada nun só fuso horario, así que o tráfico pica forte durante catro horas cada noite — un mal deploy faise diante de moitísima xente.

Que se fixo

Unha migración a Kubernetes en cinco fases, movendo tráfico real de produción en incrementos — 3%, logo 6%, 12%, 50%, 100% — con DNS ponderado para que calquera paso se puidese desfacer en minutos. Cada incremento mantívose unha noite enteira de pico e mediuse antes de permitir o seguinte.

Por debaixo: toda a plataforma reconstruída como código. Autoscaling guiado pola profundidade real das colas e pola CPU, e non por un número fixo de réplicas; segredos sacados dos ficheiros de configuración a un xestor de segredos; deploy por GitOps, para que o estado en execución coincida sempre co repositorio; e monitorización capaz de responder de verdade a «é este incremento peor có anterior?».

Despois desmantelouse o parque vello — a mantenta, como fase propia, porque unha infraestrutura a medio migrar é peor ca calquera dos dous extremos.

Onde rematou

Sen downtime visible para o cliente en ningún momento. Tempos de resposta sen cambios durante o cutover. Os servidores legacy e o seu pipeline de deploy xa non están, e o procedemento para retiralos quedou escrito.

A parte que paga a pena copiar: subir o tráfico en incrementos e negarse a avanzar ata que o actual sexa aburrido. Converte unha migración dunha gran noite irreversible nunha serie de noites pequenas e reversibles.