Hot-staging, también conocido como 'pre-warming' o 'dark launch' en ciertas variantes, es una estrategia de despliegue que implica la preparación de una nueva versión de un componente de software (servicio, microservicio, aplicación) en un entorno de producción o muy cercano a él, sin dirigir tráfico en vivo hacia ella. La nueva versión se despliega, inicializa y se le permite alcanzar un estado 'listo' (warm-up), pero permanece en un estado 'inactivo' o 'sombra'. Esto permite verificar la funcionalidad básica, la conectividad con dependencias y el rendimiento inicial sin afectar a los usuarios finales. Una vez que la nueva versión está validada y lista, el tráfico puede ser conmutado instantáneamente o gradualmente hacia ella, a menudo utilizando técnicas de 'blue/green deployment' o 'canary release'.
Esta técnica es ampliamente utilizada en sistemas de alta disponibilidad y baja latencia. Por ejemplo, en plataformas de comercio electrónico o servicios financieros, donde el tiempo de inactividad es crítico, las nuevas versiones de los servicios de API o de procesamiento de transacciones se despliegan en instancias 'hot-staged' y se validan antes de desviar el tráfico. En entornos de 'cloud computing', servicios como AWS Elastic Load Balancing o Kubernetes con sus 'Deployment' y 'Service' objetos facilitan la implementación de hot-staging al permitir la creación de nuevos conjuntos de pods o instancias que no reciben tráfico hasta que se actualiza la configuración del balanceador de carga o del servicio. Las bases de datos distribuidas o los sistemas de caché también pueden usar hot-staging para precargar datos o calentar cachés en nuevas instancias antes de ponerlas en servicio.
Para un arquitecto, Hot-staging es fundamental para diseñar sistemas resilientes y con despliegues de bajo riesgo. Permite desacoplar el despliegue del software de su activación, reduciendo drásticamente el 'downtime' percibido por el usuario y el 'rollback time' en caso de problemas. Sin embargo, introduce complejidad en la infraestructura y los procesos de CI/CD, ya que requiere recursos adicionales para mantener ambas versiones (antigua y nueva) simultáneamente, así como mecanismos robustos para la conmutación de tráfico y la monitorización. La decisión de implementar hot-staging implica un 'trade-off' entre la complejidad operativa y el costo de infraestructura versus la fiabilidad, la velocidad de despliegue y la reducción del riesgo de fallos en producción. Es especialmente valioso en entornos donde la validación post-despliegue es compleja o donde el 'cold start' de una nueva versión es costoso en términos de rendimiento o tiempo.