Exploración de la entrega continua

Completado

La integración continua (CI) y la entrega continua (CD) están estrechamente relacionadas con los conceptos de DevOps, que representan dos fases distintas del proceso de entrega de software. Como sabe del módulo anterior, el propósito de CI (Integración Continua) es crear y probar artefactos de software. CD automatiza el proceso de entrega de estos artefactos a sus destinatarios previstos. Al implementar CD, las organizaciones como la descrita en el escenario de ejemplo pueden eliminar el esfuerzo manual implicado en la implementación de aplicaciones. En esta unidad, explore las características y ventajas de cd.

¿Qué es la entrega continua?

La entrega continua consta de las prácticas, que automatizan la generación de versiones de software, garantizan que se encuentran en un estado implementable y hacen que estén disponibles para sus consumidores. Su enfoque consiste en minimizar el tiempo de implementación y el tiempo para mitigar (TTM), también conocido como tiempo para corregir (TTR). Este último hace referencia a escenarios en los que una versión recién publicada de la aplicación alcanza el entorno de producción y debe revertirse.

Diagrama del flujo de entrega continua.

La entrega continua tiende a ser un proceso iterativo, donde el mismo artefacto que representa la última versión de software transita a través de varios entornos dedicados, por ejemplo, a pruebas de aceptación del usuario, entorno de preparación y producción. Esto proporciona amplias oportunidades para validar su funcionalidad y estabilidad.

Cabe destacar que la nomenclatura de DevOps incluye dos términos estrechamente relacionados, que tienen nombres similares y el mismo acrónimo: entrega continua e implementación continua. Ambos tratan de automatizar y simplificar el proceso de entrega de software. La distinción principal entre ellos es que este último se esfuerza por implementar la automatización completa, incluido el entorno de producción, mientras que en el caso de la primera, esa entrega final requiere una aprobación manual.

De forma similar a CI, la automatización se basa en las definiciones de versión creadas por los desarrolladores e implementadas en la plataforma de hospedaje del repositorio. Por ejemplo, GitHub ofrece para este fin el flujo de trabajo Acciones de GitHub, mientras que Azure DevOps se basa en Azure Pipelines.

¿Cuáles son las ventajas de la entrega continua?

Las ventajas asociadas a la entrega continua son resultados directos de su enfoque de automatización y de desplazamiento a la izquierda. Entre los más relevantes se incluyen:

  • Ciclos de lanzamiento acelerados: las organizaciones pueden aumentar la velocidad de entrega de nuevas características, mejoras y correcciones de errores, lo que se traduce en un tiempo de comercialización reducido, lo que finalmente beneficia a los clientes.
  • Mayor resistencia: las pruebas automatizadas permiten detectar problemas al principio del proceso de entrega. La implementación automatizada garantiza la coherencia entre entornos y minimiza el posible impacto de los errores humanos. La automatización también tiende a simplificar considerablemente el proceso de reversión en caso de que sea necesario revertir a una versión de software anterior. La implementación incremental (que trataremos más adelante en este módulo) facilita la detección de posibles problemas antes de que puedan tener un impacto más amplio en la escala. Los bucles de comentarios rápidos reducen el tiempo de respuesta si se detecta un problema.
  • Colaboración mejorada: CD promueve la interacción entre los equipos de desarrollo, operaciones y seguridad mediante la integración con CI, lo que da lugar a un proceso cohesivo que abarca la compilación, las pruebas y la entrega.
  • Uso eficaz de los recursos: la automatización tiende a minimizar el tiempo invertido en tareas manuales, repetitivas y que consumen mucho tiempo, lo que da lugar a un uso optimizado de los recursos humanos.