¡Hola! Soy Eric Minich, de IBM Cloud, y quiero hablar un poco sobre la diferencia entre despliegue continuo y entrega continua. Ambas prácticas tienen como objetivo llevar código nuevo y valioso a producción lo más rápido posible, donde ese código puede ser utilizado de manera provechosa. En resumen, se trata de tomar el código, construirlo con una herramienta de integración continua, desplegarlo en uno o varios entornos de prueba, ejecutar todas las pruebas automatizadas necesarias y luego moverlo a producción.
El despliegue continuo
El término «despliegue continuo» fue acuñado por Timothy Fitz en 2009 para describir un proceso en el que una empresa, llamada I in view, desplegaba en producción 50 veces al día sin que nadie más interviniera en el proceso hasta que estuviera en producción. ¿Cómo se logra eso sin ser completamente irresponsable? La clave está en la automatización y en contar con un entorno de pruebas robusto.
En este enfoque extremo, se utiliza un entorno de pruebas central donde se ejecutan miles de pruebas en un corto período de tiempo para asegurarse de que el código nuevo sea sólido y confiable. Además, se realiza una prueba en producción, monitoreando de manera exhaustiva para detectar cualquier problema. Si algo sale mal, se puede retirar rápidamente el cambio y corregirlo antes de volver a desplegarlo.
Este enfoque es adecuado para aplicaciones dirigidas al consumidor que no manejan datos sensibles, como tarjetas de crédito. Se puede desplegar el cambio en un pequeño porcentaje de usuarios para realizar una prueba adicional y asegurarse de que todo funcione correctamente antes de la implementación completa. En este caso, las pruebas en producción y el monitoreo constante garantizan una entrega segura y confiable.
La entrega continua
Por otro lado, la entrega continua es un enfoque más cauteloso que el despliegue continuo. Aquí, se automatiza tanto como sea posible, desde la codificación hasta las pruebas finales, pero se incluye un punto de decisión al final antes de la aprobación del despliegue. Esto significa que hay un chequeo adicional, una aprobación humana o una autorización, para confirmar que el cambio pueda pasar del entorno de pruebas al de producción.
La entrega continua sigue siendo un objetivo para muchas organizaciones, ya que requiere una mayor automatización en el área de pruebas. Aún así, es un paso en la dirección correcta, ya que reduce la dependencia de decisiones humanas y permite tomar decisiones basadas en datos y pruebas automatizadas. En última instancia, se busca llegar a un punto en el que la decisión de implementar o no se tome automáticamente en función de criterios predefinidos y pruebas rigurosas.
En resumen, el despliegue continuo implica una entrega rápida y automatizada de código nuevo, sin intervención humana después de las pruebas. Por otro lado, la entrega continua implica un proceso similar, pero con un punto de decisión antes del despliegue a producción. Ambos enfoques tienen sus ventajas y desafíos, y la elección depende del contexto y las necesidades específicas de cada organización.
Despliegue Continuo | Entrega Continua |
---|---|
Despliegue rápido y automatizado | Despliegue rápido y automatizado |
No hay intervención humana después de las pruebas | Requiere aprobación humana antes del despliegue |
Enfoque extremo y menos común | Enfoque más cauteloso y ampliamente adoptado |
Preguntas frecuentes
Aquí hay algunas preguntas comunes sobre despliegue continuo y entrega continua:
1. ¿Qué tipo de pruebas se realizan antes del despliegue?
Antes del despliegue, se ejecutan pruebas automatizadas para validar la funcionalidad y estabilidad del nuevo código. Esto puede incluir pruebas unitarias, pruebas de integración y pruebas de rendimiento.
2. ¿Es seguro implementar cambios frecuentes en producción?
Sí, siempre y cuando se tengan sistemas de monitoreo y buenos mecanismos de reversión en caso de problemas. La idea es encontrar y solucionar problemas rápidamente.
3. ¿Cuál es la diferencia entre despliegue continuo y entrega continua?
La diferencia radica en tener o no un punto de decisión humano antes del despliegue a producción. El despliegue continuo no requiere intervención humana adicional, mientras que la entrega continua incluye un paso de aprobación.
¡Gracias por leer! Si tienes preguntas, no dudes en hacérnoslas llegar. Y si quieres ver más contenido como este en el futuro, asegúrate de darle Me gusta y suscribirte a nuestro blog. ¡Hasta luego!
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!