Ayuda: que es la entrega continua

Previamente, nosotros dicho sobre Integración Continua (CI). Sigamos con la Entrega Continua. Este es un conjunto de métodos de desarrollo de software. Ayuda a garantizar que su código esté listo para su implementación.

Ayuda: que es la entrega continua
/Pixabay/ periquito azul / PL

historia

La frase entrega continua se podía ver en manifiesto ágil desde 2001 al comienzo de la lista de principios básicos: “La prioridad es resolver los problemas de los clientes mediante la entrega continua de software actualizado”.

En 2010, Jez Humble y David Farley lanzaron libro por Entrega Continua. Según los autores, el CD complementa el enfoque Integración continua y le permite simplificar 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 sólo un par de años llegó a ser aceptado casi universalmente. De acuerdo a encuesta, realizado 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 bien, este enfoque sigue siendo uno de los más populares. Según un estudio de 2018 en el que participaron la comunidad de TI DevOps y Jenkins Community, usos la mitad de los más de mil encuestados.

¿Cómo funciona la entrega continua?

La base del CD es la preparación del código para su implementación. Para realizar esta tarea, se utiliza la automatización del proceso de preparación del software para su lanzamiento. Debería ser estándar en diferentes entornos de desarrollo, lo que ayudará a encontrar rápidamente puntos débiles y optimizarlos. Por ejemplo, acelerar las pruebas.

Un ejemplo de un proceso de entrega continua se ve así:

Ayuda: que es la entrega continua

Si el enfoque de Integración Continua es responsable de automatizar las dos primeras etapas, entonces la Entrega Continua es responsable de las dos siguientes. La estabilidad del proceso está garantizada, entre otras cosas, por sistemas gestión de configuración. Monitorean cambios en infraestructura, bases de datos y dependencias. La implementación en sí puede automatizarse o realizarse manualmente.

Se imponen los siguientes requisitos al proceso:

  • Disponibilidad de información sobre la preparación para ingresar al entorno de producción y la preparació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 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).

En CD se suele utilizar revisión de códigoy para recoger las opiniones de los clientes: el principio lanzamiento oscuro. Una nueva función se lanza por primera vez a un pequeño segmento de usuarios: su experiencia al interactuar con el producto ayuda a encontrar deficiencias y errores que no se detectaron durante las pruebas internas.

Cuál es el beneficio

La entrega continua ayuda a simplificar la implementación del código, lo que tiene un impacto positivo en la productividad y reduce la probabilidad de agotamiento de los empleados. En última instancia, esto reduce los costos generales de desarrollo. Por ejemplo, CD ayudó a uno de los equipos de HP reducir dichos costes en un 40%.

Además, según un estudio de 2016 (página 28 documento) - las empresas que han implementado CD resuelven los problemas de seguridad de la información un 50% más rápido que aquellas que no utilizan este enfoque. Hasta cierto punto, esta diferencia puede explicarse por el rendimiento de las herramientas de automatización de procesos.

Otra ventaja es la aceleración de los lanzamientos. Entrega continua en el estudio de desarrollo finlandés ayudado aumentar la velocidad de ensamblaje del código en un 25%.

Dificultades potenciales

El primer y principal problema es la necesidad de reconstruir procesos familiares. Para mostrar los beneficios del nuevo enfoque, vale la pena cambiar gradualmente al CD, sin comenzar con las aplicaciones que requieren más mano de obra.

El segundo problema potencial es la gran cantidad de ramas de código. La consecuencia de la "ramificación" son conflictos frecuentes y una mayor pérdida de una gran cantidad de tiempo. Posible solución - 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 una posible solución puede ser paralelizar las pruebas en las primeras etapas de la implementación del CD.

También debe capacitar a los empleados para que trabajen con nuevas herramientas: un programa educativo preliminar ahorrará tiempo y esfuerzo a los desarrolladores.

Ayuda: que es la entrega continua
/flickr/ h.ger1969 / CC BY-SA

Instrumentos

Aquí hay algunas herramientas abiertas para la entrega continua:

  • GoCD — servidor para entrega continua en Java y JRuby on Rails. Le permite controlar todo el proceso de entrega de la aplicación: compilación, prueba y lanzamiento. La herramienta se distribuye bajo la licencia Apache 2.0. Puedes encontrarlo en el sitio web oficial. Guia de preparacion.
  • 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 ella a través de SSH. Funciona con otras herramientas de entrega e integración continua, 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. Hay integración con Eclipse, IntelliJ y Jenkins.
  • Drone - Plataforma CD en idioma Go. El dron se puede implementar en las instalaciones o en la nube. La herramienta está construida sobre contenedores y utiliza archivos YAML para administrarlos.
  • Espinaquer – una plataforma para la entrega continua de código en sistemas multinube. Desarrollada por Netflix, los ingenieros de Google desempeñaron un papel importante en el desarrollo de la herramienta. Instrucciones de instalación encuéntralo en el sitio web oficial.

Qué leer en nuestro blog corporativo:

Fuente: habr.com

Añadir un comentario