# Fully Booked - Migración sin Tiempo de Inactividad a Kubernetes Autoalojado

Company: Fully Booked
Service: Ingeniería DevOps
Period: 2026-05 - 2026-06
Tech: Kubernetes, Docker, Cloudflare, Terraform, CI/CD, Linux, Node.js, PostgreSQL
Web: https://fully-booked.uk
Canonical: https://webanion.com/es/portfolio/fully-booked-zero-downtime-migration-to-self-hosted-kubernetes

Fully Booked funcionaba sobre infraestructura gestionada en la nube, con una factura que crecía cada mes y una pila que nadie controlaba del todo. Trasladamos toda la plataforma a un clúster de Kubernetes autoalojado sin un minuto de interrupción para quienes la usaban. El cambio abarcó DNS, ingress, bases de datos y el pipeline de despliegue, escalonado de modo que el tráfico se movía solo una vez probada cada capa en el clúster nuevo. Nadie que usara la aplicación esa semana notó nada, que era exactamente el objetivo. La factura recurrente pasó a ser hardware propio, y ese mismo clúster sostiene hoy las publicaciones semanales de la plataforma.

## La historia completa

De una factura de nube que crecía a hardware propio con cero downtime registrado. Así se planificó, se probó y se ejecutó la migración.

### Una factura que crecía, una pila que nadie poseía

<p>Fully Booked corría en droplets de DigitalOcean que ya le quedaban pequeños: alrededor de mil personas al día sobre infraestructura alquilada, cada decisión de escalado con el precio puesto por el proveedor, y una factura mensual que solo se movía en una dirección. El encargo era fácil de decir y difícil de hacer. Mover toda la plataforma a hardware propiedad del negocio, sin que nadie que usa la app notara que algo había cambiado.</p>

### Primero la paridad, después el tráfico

<p>La migración se organizó para ganarse la confianza antes de mover el tráfico. Un clúster k3s multinodo se levantó sobre hardware propio, endurecido con UFW y fail2ban, y cada servicio se containerizó para correr idéntico en ambas infraestructuras. Certificados, backups programados y monitoreo estaban en su sitio antes del cambio, no añadidos después. Solo entonces el tráfico empezó a moverse, superficie por superficie, con rollback instantáneo disponible en cada paso.</p>

### El cutover como un cambio de proxy

<p>Cloudflare ya estaba delante de la plataforma para DNS, caché y TLS, y eso es lo que hizo tranquilo el paso final: el cutover fue un cambio de proxy y no una apuesta de DNS. Detrás del edge, el clúster corre un plano de control y nodos worker con los pods del portal, el admin, el backend y los jobs, con monitoreo vigilando y backups en su calendario. El diagrama no muestra IPs ni hostnames, porque la forma del sistema no es su secreto.</p>

### Cero downtime, medido

<p>Se registró cero downtime durante el cutover, y nadie que usó la app esa semana supo que algo había pasado, que era exactamente el punto. La factura recurrente de nube se convirtió en infraestructura propia, el cliente controla cada capa desde el DNS hasta el disco, y el mismo clúster lleva ahora los lanzamientos semanales de la plataforma. La plataforma que este movimiento sostuvo se cuenta en <a href="/portfolio/fully-booked-all-in-one-smart-booking-solution">la historia de Fully Booked</a>.</p>
