El Red-Black Deployment (también conocido como Blue-Green Deployment) es una técnica de despliegue que implica mantener dos entornos de producción idénticos pero separados. Uno de los entornos, 'Red' (o 'Blue'), es el que actualmente sirve el tráfico de producción. El otro entorno, 'Black' (o 'Green'), es donde se despliega y valida la nueva versión de la aplicación. Una vez que la nueva versión en el entorno 'Black' ha pasado todas las pruebas y se considera estable, el tráfico se redirige del entorno 'Red' al 'Black'. Si surge algún problema, el tráfico puede revertirse instantáneamente al entorno 'Red' previamente funcional, lo que proporciona una capacidad de rollback rápida y de bajo riesgo.
Esta estrategia es ampliamente adoptada en plataformas de orquestación de contenedores y servicios en la nube. Herramientas como Kubernetes, a través de sus objetos 'Deployment' y 'Service', facilitan la implementación de patrones similares, aunque el Red-Black puro a menudo requiere la gestión de dos conjuntos completos de recursos. Proveedores de nube como AWS con 'Elastic Load Balancing' y 'Auto Scaling Groups', o Azure con 'Traffic Manager' y 'Virtual Machine Scale Sets', permiten construir arquitecturas que soportan este tipo de despliegue. Plataformas de CI/CD como Spinnaker o Argo CD también ofrecen capacidades nativas o extensiones para gestionar despliegues Red-Black, automatizando la provisión, validación y conmutación de tráfico entre entornos.
Para un Arquitecto, el Red-Black Deployment es crucial por su capacidad para reducir drásticamente el tiempo de inactividad y el riesgo asociado a los despliegues. Permite rollbacks casi instantáneos, lo que es vital para sistemas de alta disponibilidad y misión crítica. Sin embargo, el principal trade-off es el costo: requiere duplicar la infraestructura de producción, lo que puede ser costoso, especialmente para sistemas a gran escala. La decisión de implementarlo depende de la tolerancia al riesgo, los requisitos de tiempo de actividad y el presupuesto. Es una estrategia excelente para servicios que no pueden permitirse ninguna interrupción y donde la validación exhaustiva en un entorno idéntico a producción es fundamental antes de exponer la nueva versión a los usuarios finales.