Definición: Estrategia de despliegue que actualiza aplicaciones en produccion sin interrumpir el servicio a los usuarios, manteniendo disponibilidad continua durante el proceso.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Que es el despliegue zero downtime
El despliegue zero downtime es una estrategia de actualizacion de software que garantiza que la aplicacion permanece disponible para los usuarios durante todo el proceso de despliegue. A diferencia de los despliegues tradicionales que requieren una ventana de mantenimiento, esta tecnica permite actualizar el codigo, la configuracion o la infraestructura sin que ningun usuario experimente interrupciones ni errores.
Como funciona
Existen varias tecnicas para lograr zero downtime. El despliegue blue-green mantiene dos entornos identicos y conmuta el trafico del antiguo al nuevo una vez verificado. El despliegue rolling actualiza las instancias de forma gradual, manteniendo siempre un numero suficiente de instancias con la version anterior atendiendo peticiones. El despliegue canary enruta un porcentaje pequeno de trafico a la nueva version antes de completar la transicion. En todos los casos, las migraciones de base de datos deben ser compatibles con ambas versiones del codigo.
Casos de uso principales
- Actualizaciones frecuentes de aplicaciones SaaS con acuerdos de nivel de servicio de alta disponibilidad
- Despliegues en horario laboral sin necesidad de coordinar ventanas de mantenimiento nocturnas
- Lanzamiento gradual de nuevas funcionalidades con capacidad de rollback instantaneo ante problemas
- Actualizaciones de microservicios individuales en arquitecturas distribuidas sin afectar al resto del sistema
Ventajas y consideraciones
El zero downtime es esencial para servicios con usuarios globales donde no existe una “hora de baja actividad” universal. Mejora la experiencia del usuario y la confianza en el servicio. Como contrapartida, requiere infraestructura adicional durante el despliegue, migraciones de base de datos backward-compatible y health checks robustos. La complejidad de la implementacion aumenta significativamente cuando hay cambios de esquema de base de datos.