Referencia: ¿Qué es la Entrega Continua?

Anteriormente hemos informaron La Integración Continua (CI). Continuemos con la Entrega Continua. Este es un conjunto de métodos de desarrollo de software. Ayuda a asegurar que el código esté listo para el despliegue.

Referencia: ¿Qué es la Entrega Continua?
/ Pixabay / bluebudgie / PL

Historia

La expresión entrega continua se podía ver ya en el manifiesto ágil de 2001 al inicio de la lista de principios básicos: "La prioridad es resolver las necesidades del cliente mediante el suministro continuo de software relevante".

En 2010, Jez Humble y David Farley publicaron un libro sobre Entrega Continua. Según los autores, CD complementa el enfoque Integración Continua y permite simplificar la preparación del código para el despliegue.

Después de la publicación del libro, el enfoque comenzó a ganar popularidad y en solo un par de años se volvió prácticamente estándar. Según una encuesta, realizada entre más de 600 desarrolladores y gerentes de TI en 2014, el 97% de los líderes técnicos y el 84% de los programadores estaban familiarizados con la Entrega Continua.

En la actualidad, este enfoque sigue siendo uno de los más populares. Según un estudio de 2018 que involucró a la comunidad de especialistas en TI de DevOps y Jenkins Community, su utiliza la mitad de los más de mil encuestados.

Cómo funciona la Entrega Continua

La base de CD es la preparación del código para el despliegue. Para llevar a cabo esta tarea se utiliza la automatización del proceso de preparación del software para el lanzamiento. Debe ser estándar para diferentes entornos de desarrollo, lo que ayudará a detectar más rápidamente los puntos débiles y optimizarlos. Por ejemplo, acelerar las pruebas.

Un ejemplo del proceso de Entrega Continua se presenta de la siguiente manera:

Referencia: ¿Qué es la Entrega Continua?

Si la automatización de las dos primeras etapas es responsabilidad del enfoque de Integración Continua, los siguientes dos recaen en la Entrega Continua. La estabilidad del proceso se asegura también mediante sistemas de gestión de configuraciones. Monitorizan los cambios en la infraestructura, bases de datos y dependencias. El propio despliegue puede ser automatizado o puede realizarse manualmente.

Al proceso se le plantean los siguientes requisitos:

  • Disponibilidad de información sobre la preparación para entrar en el entorno de producción y disposición 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 por el producto final. El equipo del producto — gerentes, desarrolladores, testers — piensa en el resultado, no solo en su área de responsabilidad (el resultado es un lanzamiento funcional que está disponible para los usuarios del producto).

En CD generalmente se aplica revisión de código, y para recopilar opiniones de los clientes, el principio de lanzamiento oscuro. La nueva función se lanza primero a un segmento pequeño de usuarios; su experiencia con el producto ayuda a identificar errores y fallos que no se notaron en las pruebas internas.

¿Cuál es el beneficio?

La entrega continua ayuda a simplificar el despliegue de código, lo que impacta positivamente en la productividad y reduce la probabilidad de agotamiento emocional de los empleados. En última instancia, esto también reduce los costos generales de desarrollo. Por ejemplo, CD ayudó a uno de los equipos de HP a reducir esos costos en un 40%.

Además, según un estudio de 2016 (página 28 del documento), las empresas que implementaron CD resuelven problemas de seguridad de la información un 50% más rápido en comparación con aquellas que no utilizan el enfoque. En cierta medida, esta diferencia puede explicarse por el uso de herramientas de automatización de procesos.

Otro beneficio es la aceleración en el lanzamiento de versiones. En un estudio de desarrollo en Finlandia, la entrega continua ayudó a aumentar la velocidad de compilación de código en un 25%.

Dificultades potenciales

El primer y principal problema es la necesidad de reconstruir los procesos habituales. Para mostrar los beneficios del nuevo enfoque, es recomendable hacer la transición a CD gradualmente, comenzando por aplicaciones que no requieran tanto esfuerzo.

El segundo problema potencial es el gran número de ramas de código. La consecuencia de la "diversificación" son conflictos frecuentes y la pérdida de una gran cantidad de tiempo. Una posible solución es el enfoque sin ramas.

. En particular, en algunas empresas, las principales dificultades surgen en las pruebas, ya que se requiere demasiado tiempo para realizarlas. A menudo, los resultados de las pruebas deben analizarse manualmente, pero una posible solución puede ser la paralelización de las pruebas en las primeras etapas de la implementación de CD.

También es importante capacitar a los empleados en el uso de las nuevas herramientas; un curso introductorio ahorrará esfuerzo y tiempo a los desarrolladores.

Referencia: ¿Qué es la Entrega Continua?
/ Flickr / h.ger1969 / CC BY-SA

Herramientas

Presentamos algunas herramientas de código abierto para entrega continua:

  • GoCD — servidor para entrega continua en Java y JRuby on Rails. Permite controlar todo el proceso de entrega de aplicaciones: build—test—release. La herramienta se distribuye bajo la licencia Apache 2.0. En el sitio oficial se puede encontrar guía de configuración.
  • Capistrano — 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 ella a través de SSH. Funciona con otras herramientas de integración y entrega continua, como el servidor CI Integrity.
  • Gradle — herramienta multiplataforma que automatiza todo el ciclo de desarrollo de aplicaciones. Gradle trabaja con Java, Python, C/C++, Scala, entre otros. Tiene integración con Eclipse, IntelliJ y Jenkins.
  • Drone — plataforma para CD en Go. Drone se puede implementar on-premise o en la nube. La herramienta está construida sobre contenedores y utiliza archivos YAML para gestionarlos.
  • Spinnaker — plataforma para entrega continua de código en sistemas multicloud. Desarrollada en Netflix, los ingenieros de Google jugaron un papel importante en el desarrollo de la herramienta. La guía de instalación la puede encontrar en el sitio oficial.

Lecturas recomendadas en nuestro blog corporativo:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster