Anteriormente
hablamos sobre Integración Continua (CI). Continuar con la entrega continua. Este es un conjunto de métodos de desarrollo de software. Ayuda a garantizar que el código esté listo para la implementación.
/ Pixabay / bluebudgie / PLLa historia
La combinación de entrega continua podría verse en el
manifiesto ágil de 2001 al comienzo de la lista de principios básicos: "La prioridad es la solución de los problemas del cliente utilizando el suministro continuo de software relevante".
En 2010, Jez Humble y David Farley lanzaron un
libro sobre Entrega continua. Según los autores, el CD complementa el enfoque de
Integración Continua y facilita la preparación del código para la implementación.
Después de la publicación del libro, el enfoque comenzó a ganar popularidad y en solo un par de años se hizo casi universalmente aceptado. Según una
encuesta realizada entre más de 600 desarrolladores y gerentes de TI en 2014, el 97% de los gerentes técnicos y el 84% de los programadores estaban familiarizados con la entrega continua.
Ahora este enfoque sigue siendo uno de los más populares. Según un estudio de 2018 que atrajo a la comunidad de TI de DevOps y Jenkins Community
, la mitad de los más de mil encuestados lo usan.
Cómo funciona la entrega continua
La base del CD es la disponibilidad del código para la implementación. Para realizar esta tarea, se utiliza la automatización del proceso de preparación del software para su lanzamiento. Debe ser estándar para varios entornos de desarrollo, lo que lo ayudará a encontrar rápidamente las debilidades y optimizarlas. Por ejemplo, acelerar las pruebas.
Un ejemplo del proceso de entrega continua es el siguiente:

Si el enfoque de Integración continua es responsable de la automatización de las dos primeras etapas, entonces, para las dos siguientes: Entrega continua. La estabilidad del proceso está asegurada, entre otras cosas, debido a
los sistemas de
gestión de configuración . Supervisan los cambios en la infraestructura, las bases de datos y las dependencias. El despliegue en sí mismo puede automatizarse o puede hacerse manualmente.
El proceso tiene los siguientes requisitos:
- Disponibilidad de información sobre la disponibilidad para ingresar al entorno de producción y la disponibilidad para el lanzamiento inmediato (las herramientas de CD prueban el código y permiten evaluar el efecto de los cambios en el lanzamiento).
- Responsabilidad general del producto final. El equipo del producto (gerentes, desarrolladores, evaluadores) piensa en el resultado y no solo en su área de responsabilidad (el resultado es una versión funcional, que está disponible para los usuarios del producto).
Un CD generalmente usa la
revisión de código , y el principio del
lanzamiento oscuro se usa para recopilar opiniones de los clientes. Primero, se lanza una nueva función para un pequeño segmento de usuarios: su experiencia en la interacción con el producto ayuda a encontrar fallas y errores que no se notaron durante las pruebas internas.
Cual es el beneficio
La entrega continua ayuda a simplificar la implementación del código, lo que tiene un efecto positivo en la productividad y reduce la probabilidad de agotamiento de los empleados. Finalmente, esto reduce los costos generales de desarrollo. Por ejemplo, un CD ayudó a uno de los equipos de HP a
reducir dichos costos en un 40%.
Además, según un estudio de 2016 (página 28 del
documento ), las empresas que han implementado CD son un 50% más rápidas en la resolución de problemas de IS en comparación con aquellas que no utilizan el enfoque. Hasta cierto punto, esta diferencia puede explicarse por el trabajo de las herramientas de automatización de procesos.
Otra ventaja es la aceleración de los lanzamientos de versiones. En el estudio de desarrollo finlandés, la entrega continua
ayudó a aumentar la velocidad de ensamblaje del código en un 25%.
Posibles dificultades
El primer y principal problema es la necesidad de reconstruir procesos familiares. Para mostrar los beneficios del nuevo enfoque, vale la pena pasar al CD gradualmente, comenzando no con las aplicaciones más laboriosas.
El segundo problema potencial es una gran cantidad de ramas de código. La consecuencia de la "ramificación" son conflictos frecuentes y pérdidas posteriores de una gran cantidad de tiempo. Una posible solución es el enfoque
sin ramas .
En particular, en algunas empresas, las principales dificultades surgen con las pruebas: lleva demasiado tiempo. Los resultados de las pruebas a menudo deben analizarse manualmente, pero la paralelización de las pruebas en las primeras etapas de la implementación del CD puede ser una posible solución.
También debe capacitar a los empleados para que trabajen con nuevas herramientas: un programa educativo preliminar ahorrará tiempo y esfuerzo a los desarrolladores.
/ Flickr / h.ger1969 / CC BY-SALas herramientas
Aquí hay algunas herramientas abiertas para la entrega continua:
- GoCD es un servidor para entrega continua en Java y JRuby on Rails. Le permite controlar todo el proceso de entrega de la aplicación: compilar, probar y liberar. La herramienta está licenciada bajo Apache 2.0. En el sitio web oficial puede encontrar la guía de configuración .
- Capistrano : un marco para crear scripts que automatizan la implementación de aplicaciones en Ruby, Java o PHP. Capistrano puede ejecutar comandos en una máquina remota, conectándose a través de SSH. Funciona con otras herramientas de integración y entrega continuas, como el servidor Integrity CI.
- Gradle es una herramienta multiplataforma que automatiza todo el ciclo de desarrollo de aplicaciones. Gradle funciona con Java, Python, C / C ++, Scala, etc. Existe integración con Eclipse, IntelliJ y Jenkins.
- Drone es una plataforma Go CD. Drone se puede implementar en las instalaciones o en la nube. La herramienta está construida sobre la base de contenedores y utiliza archivos YAML para administrarlos.
- Spinnaker es una plataforma para la entrega continua de código en sistemas de múltiples nubes. Desarrollado por Netflix, los ingenieros de Google desempeñaron un papel importante en el desarrollo de la herramienta. Las instrucciones de instalación se pueden encontrar en el sitio web oficial .
Qué leer en nuestro blog corporativo: