Entrega continua (CD)


La entrega continua automatiza el proceso de lanzamiento de aplicaciones para que las implementaciones sean predecibles y repetibles.

¿Qué es la entrega continua (CD)?

Como su nombre lo indica, la entrega continua (CD) es una práctica de desarrollo de software que se complementa con la integración continua (CI) para automatizar el proceso de lanzamiento de aplicaciones. Los desarrolladores de software lanzan actualizaciones de código en ciclos cortos pero continuos, utilizando la automatización para acelerar el lanzamiento. La CD incluye todos los pasos del ciclo de producción: compilación, prueba, configuración e implementación. El objetivo final es poner el software en manos de los usuarios.

La CD se puede considerar como una extensión de la integración continua, a veces denominada CI/CD, que es la práctica de integrar código en un repositorio compartido y compilar/probar cada cambio lo antes posible, automáticamente y, por lo general, varias veces al día.

Una vez que la integración continua compila y prueba el código en un repositorio compartido, la entrega continua toma el control durante las etapas finales para garantizar que las versiones de software sean de bajo riesgo, consistentes y repetibles.

¿Cuál es la diferencia entre la entrega continua y la implementación continua?

Entrega continua a menudo se usa indistintamente con implementación continua, pero existe una sutil diferencia entre ambas. Implementación continua significa que todo el código validado por CI se implementa en producción automáticamente, mientras que entrega continua significa que ese código se puede implementar. La flexibilidad para que el código se implemente en cualquier momento es lo que diferencia la entrega de la implementación, y la práctica de la implementación continua solo es posible cuando la entrega continua ya está en marcha.

¿Cuáles son los beneficios de la entrega continua?

Los equipos de desarrollo verán muchos otros beneficios cuando entreguen software a través del ciclo de vida de desarrollo del software (SDLC). Estos incluyen:-

  • Automatización del proceso de lanzamiento de software

  • Costos más bajos que con el desarrollo de software tradicional

  • Mejora de la productividad

  • Identificación y solución rápidas de los problemas de errores

  • Tiempo de comercialización más rápido mediante pruebas y desarrollo continuos

Los lanzamientos son de bajo riesgo, es decir, sin complicaciones y aburridos. La CD también elimina los cuellos de botella de las implementaciones para que el pipeline fluya hasta los usuarios finales. Es más fácil de implementar con confianza porque el código se puede implementar y revertir bajo demanda.

¿Cómo funciona la entrega continua?

La CD a menudo se aplica en conjunto con DevOps y produce software en ciclos cortos. De esta manera, los equipos pueden compilar, probar, configurar y lanzar software con mayor frecuencia. El código se somete a pruebas exhaustivas para garantizar el correcto funcionamiento de todas las funciones y reducir los problemas de rendimiento inesperados en producción. Cualquier componente que pase las pruebas automatizadas es un candidato válido para el lanzamiento. En la etapa final, hay una última verificación humana y, a continuación, se realiza un push a la implementación.

¿Cuáles son los componentes de la entrega continua?

Etapas: compilación, prueba, configuración e implementación

Flujos de trabajo: por lo general, un desarrollador escribe código y verifica el código utilizando un sistema de control de versiones o una herramienta de gestión de configuración. Luego se compila y se empaqueta en un artefacto, que se almacena en un repositorio.

Entornos: esta es la infraestructura de destino para la implementación y puede incluir un clúster de Kubernetes, una instancia de nube pública o un centro de datos privado in situ.

Pipelines: los pipelines típicos se centran en áreas temáticas que incluyen compilaciones, pruebas e implementaciones de staging automatizadas en un proceso continuo.

Desencadenantes: Un desencadenante inicia un evento que activa el proceso de pipeline. Un desencadenante puede ser manual o automatizado en el pipeline de CI/CD. Los ejemplos podrían ser un nuevo artefacto o un tiempo recurrente.

¿Cuál es el rol de la automatización de pipelines en la entrega continua?

Una de las funcionalidades clave de un pipeline de CD automatizado es la capacidad de realizar pruebas y lanzamientos automatizados. La fase de prueba debe incluir pruebas funcionales y no funcionales. Un pipeline automatizado para los lanzamientos permite un enfoque de «falla rápida», y las pruebas que tienen más probabilidades de fallar primero son las que se ejecutan primero.

Un pipeline automatizado también proporciona visibilidad del código, lo que aumenta la confianza en su viabilidad a medida que avanza a través de las diversas etapas de la CD.

Con un pipeline de entrega de software automatizado, no hay necesidad de tareas manuales que suelen ser propensas a errores y además costosas. Los equipos también pueden detectar el código que no está listo para la entrega y rechazarlo, y luego proporcionar comentarios al instante.

¿Cómo funcionan juntas las pruebas de seguridad de las aplicaciones y la entrega continua?

La seguridad no debe sacrificarse en el SDLC. La clave es asegurarse de que los equipos de seguridad y desarrolladores se comuniquen y trabajen juntos para comprender sus diferentes prioridades y objetivos.

Cuando se aplica la mentalidad de entrega continua a las pruebas de seguridad, se optimizará el proceso y se reducirá la carga para los equipos de seguridad. Cada nuevo fragmento de código implementado en modelos de lanzamiento continuo se puede escanear más rápido, lo que hace que las fallas sean más fáciles de encontrar y corregir.

El modelo de línea de ensamblaje para el desarrollo de aplicaciones ya no es viable. Si los equipos de seguridad tienen que esperar a que se termine una aplicación antes de corregir las vulnerabilidades, nunca podrán mantenerse al día con el ritmo y la demanda de innovaciones.

Para utilizar la CD al máximo, los equipos deben estar en comunicación constante y colaborar a lo largo de todo el proceso de DevSecOps. Esto requiere un cambio de pensamiento para que los desarrolladores y los equipos de seguridad aprovechen sus beneficios.

¿Qué es la entrega continua (CD)?

Como su nombre lo indica, la entrega continua (CD) es una práctica de desarrollo de software que se complementa con la integración continua (CI) para automatizar el proceso de lanzamiento de aplicaciones. Los desarrolladores de software lanzan actualizaciones de código en ciclos cortos pero continuos, utilizando la automatización para acelerar el lanzamiento. La CD incluye todos los pasos del ciclo de producción: compilación, prueba, configuración e implementación. El objetivo final es poner el software en manos de los usuarios.

La CD se puede considerar como una extensión de la integración continua, a veces denominada CI/CD, que es la práctica de integrar código en un repositorio compartido y compilar/probar cada cambio lo antes posible, automáticamente y, por lo general, varias veces al día.

Una vez que la integración continua compila y prueba el código en un repositorio compartido, la entrega continua toma el control durante las etapas finales para garantizar que las versiones de software sean de bajo riesgo, consistentes y repetibles.

¿Cuál es la diferencia entre la entrega continua y la implementación continua?

Entrega continua a menudo se usa indistintamente con implementación continua, pero existe una sutil diferencia entre ambas. Implementación continua significa que todo el código validado por CI se implementa en producción automáticamente, mientras que entrega continua significa que ese código se puede implementar. La flexibilidad para que el código se implemente en cualquier momento es lo que diferencia la entrega de la implementación, y la práctica de la implementación continua solo es posible cuando la entrega continua ya está en marcha.

¿Cuáles son los beneficios de la entrega continua?

Los equipos de desarrollo verán muchos otros beneficios cuando entreguen software a través del ciclo de vida de desarrollo del software (SDLC). Estos incluyen:-

  • Automatización del proceso de lanzamiento de software

  • Costos más bajos que con el desarrollo de software tradicional

  • Mejora de la productividad

  • Identificación y solución rápidas de los problemas de errores

  • Tiempo de comercialización más rápido mediante pruebas y desarrollo continuos

Los lanzamientos son de bajo riesgo, es decir, sin complicaciones y aburridos. La CD también elimina los cuellos de botella de las implementaciones para que el pipeline fluya hasta los usuarios finales. Es más fácil de implementar con confianza porque el código se puede implementar y revertir bajo demanda.

¿Cómo funciona la entrega continua?

La CD a menudo se aplica en conjunto con DevOps y produce software en ciclos cortos. De esta manera, los equipos pueden compilar, probar, configurar y lanzar software con mayor frecuencia. El código se somete a pruebas exhaustivas para garantizar el correcto funcionamiento de todas las funciones y reducir los problemas de rendimiento inesperados en producción. Cualquier componente que pase las pruebas automatizadas es un candidato válido para el lanzamiento. En la etapa final, hay una última verificación humana y, a continuación, se realiza un push a la implementación.

¿Cuáles son los componentes de la entrega continua?

Etapas: compilación, prueba, configuración e implementación

Flujos de trabajo: por lo general, un desarrollador escribe código y verifica el código utilizando un sistema de control de versiones o una herramienta de gestión de configuración. Luego se compila y se empaqueta en un artefacto, que se almacena en un repositorio.

Entornos: esta es la infraestructura de destino para la implementación y puede incluir un clúster de Kubernetes, una instancia de nube pública o un centro de datos privado in situ.

Pipelines: los pipelines típicos se centran en áreas temáticas que incluyen compilaciones, pruebas e implementaciones de staging automatizadas en un proceso continuo.

Desencadenantes: Un desencadenante inicia un evento que activa el proceso de pipeline. Un desencadenante puede ser manual o automatizado en el pipeline de CI/CD. Los ejemplos podrían ser un nuevo artefacto o un tiempo recurrente.

¿Cuál es el rol de la automatización de pipelines en la entrega continua?

Una de las funcionalidades clave de un pipeline de CD automatizado es la capacidad de realizar pruebas y lanzamientos automatizados. La fase de prueba debe incluir pruebas funcionales y no funcionales. Un pipeline automatizado para los lanzamientos permite un enfoque de «falla rápida», y las pruebas que tienen más probabilidades de fallar primero son las que se ejecutan primero.

Un pipeline automatizado también proporciona visibilidad del código, lo que aumenta la confianza en su viabilidad a medida que avanza a través de las diversas etapas de la CD.

Con un pipeline de entrega de software automatizado, no hay necesidad de tareas manuales que suelen ser propensas a errores y además costosas. Los equipos también pueden detectar el código que no está listo para la entrega y rechazarlo, y luego proporcionar comentarios al instante.

¿Cómo funcionan juntas las pruebas de seguridad de las aplicaciones y la entrega continua?

La seguridad no debe sacrificarse en el SDLC. La clave es asegurarse de que los equipos de seguridad y desarrolladores se comuniquen y trabajen juntos para comprender sus diferentes prioridades y objetivos.

Cuando se aplica la mentalidad de entrega continua a las pruebas de seguridad, se optimizará el proceso y se reducirá la carga para los equipos de seguridad. Cada nuevo fragmento de código implementado en modelos de lanzamiento continuo se puede escanear más rápido, lo que hace que las fallas sean más fáciles de encontrar y corregir.

El modelo de línea de ensamblaje para el desarrollo de aplicaciones ya no es viable. Si los equipos de seguridad tienen que esperar a que se termine una aplicación antes de corregir las vulnerabilidades, nunca podrán mantenerse al día con el ritmo y la demanda de innovaciones.

Para utilizar la CD al máximo, los equipos deben estar en comunicación constante y colaborar a lo largo de todo el proceso de DevSecOps. Esto requiere un cambio de pensamiento para que los desarrolladores y los equipos de seguridad aprovechen sus beneficios.

Más del 50 % de las empresas de Fortune 100 confían en GitLab

Comience a entregar mejor software más rápido

Descubra lo que su equipo puede hacer con la plataforma inteligente de

DevSecOps.