¿Qué es la entrega continua?
La entrega continua permite a los equipos de desarrollo automatizar el proceso que mueve el software a través del ciclo de vida de desarrollo de software
Suscríbase al boletín de IBM
Fondo negro y azul
¿Qué es la entrega continua?

La entrega continua permite a los equipos de desarrollo automatizar el proceso que mueve el software a través del ciclo de vida de desarrollo de software, y puede proporcionar muchas ventajas al aprovisionar una caja de herramientas integrada, incluidas las siguientes:

  • Reducir el tiempo de implementación mediante la realización contínua de pruebas y desarrollo

  • Disminuir los costes asociados con el desarrollo de software tradicional

  • Escalar el desarrollo de software según el tamaño del proyecto

  • Implementar código automáticamente en cada fase del ciclo de desarrollo

En el siguiente video, Eric Minick explica más sobre la entrega continua:

Mejores prácticas de entrega continua

Las siguientes son un conjunto de prácticas recomendadas a tener en cuenta al utilizar la entrega continua:

  • Haga que todos los cambios sean publicables: si utiliza la entrega continua para poder publicar todos los cambios, debe incluir la documentación del usuario, los manuales de operaciones e información sobre los cambios, con fines de auditoría.

  • Adopte el desarrollo basado en la conexión troncal: la entrega continua se basa en la integración continua. Evite en la medida de lo posible las ramas que retrasan la integración, de modo que todos los cambios se creen, prueben y desplieguen juntos para obtener una respuesta lo más rápida posible.

  • Entrega a través de un conducto automatizado: para implementar con éxito la entrega continua, necesita un canal de entrega automatizado y bien construido para garantizar que todas las versiones de su código pasen a sus entornos de prueba y producción de manera consistente.

  • Automatice en lo posible: en la entrega continua, debe automatizar tantos procesos como sea posible en su ciclo de vida de desarrollo de software, a fin de crear una Delivery Pipeline buena y fiable, no sólo para las compilaciones y despliegues de código, sino también para la creación de nuevos entornos de desarrollo.

  • No busque tiempo de inactividad: para garantizar la disponibilidad de la aplicación mientras realiza actualizaciones frecuentes y continuas, cuando introduzca una nueva función en producción, deberá validarla antes de desplegarla en la instancia pública de la aplicación en ejecución.

  • Lanzamiento con la granularidad de la prueba: si dos partes de un sistema deben probarse juntas, deben publicarse juntas para que sepa que las partes del sistema son compatibles. Las herramientas de automatización de versiones son buenas para coordinar este tipo de entrega. Alternativamente, desacople completamente.
Proceso/marco continuo

Para aprovechar las ventajas de la entrega continua, necesita otros elementos del marco continuo, como la exploración continua, la integración continua, la implementación continua y el lanzamiento bajo demanda.

Cuando utilice fases en la canalización de entrega continua, debe dividirlas en trabajos separados, que son unidades de ejecución dentro de una etapa:

  • Crear trabajos: compile el proyecto en el trabajo de compilación para prepararse para la implementación, donde se generan artefactos que se pueden enviar a un directorio de archivo de compilación.

  • Implementar trabajos: suba su proyecto a su canal de entrega continua como una aplicación a la que pueda acceder desde una URL. Después de implementar el proyecto, lo verá en su panel de control.

  • Trabajos de prueba: personalice e incluya trabajos de prueba antes o después de crear e implementar trabajos basados en su conjunto de pruebas unitarias o pruebas funcionales con servicios de prueba de terceros.

La canalización de entrega continua puede ayudar a los equipos de desarrollo:

  • Automatice las compilaciones, las pruebas unitarias y la implementación

  • Edite y envíe código usando repositorios Git, seguimiento de incidencias y su IDE basado en la web (entorno de desarrollo integrado)

  • Cree un conjunto de herramientas DevOps integrado para crear, implementar y gestionar sus aplicaciones con sus servicios, herramientas de código abierto y herramientas de terceros

  • Edite su código desde cualquier lugar donde elija usar su IDE para crear, editar, ejecutar, depurar y completar tareas de control de origen

  • Utilice su canalización automatizada para ofrecer compilaciones, pruebas e implementaciones de forma continua y repetible

  • Mejore la calidad al comprender el estado de su compilación, los resultados del análisis de seguridad, la cobertura del código y la cobertura de las pruebas para que pueda evaluar si desea promocionar su aplicación en el siguiente entorno (a través de puertas de políticas para garantizar automáticamente la calidad antes de la promoción).
Implementación continua frente a entrega continua

La implementación continua puede formar parte de una canalización de entrega continua. Específicamente, la entrega continua es el movimiento automatizado del código a través del ciclo de vida de desarrollo (a veces llamado ciclo de vida de entrega); la implementación continua es el movimiento automatizado de ese código en producción, una vez que pasa las pruebas automatizadas requeridas.

El hecho de que la implementación continua forme parte de su proceso de entrega depende de las necesidades de su negocio. Si la empresa necesita que el equipo de entrega lance software nuevo o actualizado a producción de forma repetida, fiable o lo más rápidamente posible, o si la solución tiene múltiples dependencias, entonces es probable que se beneficie del despliegue continuo.

Para obtener más información sobre las diferencias entre el despliegue continuo y la entrega continua, consulte este vídeo:

Herramientas de entrega continua

Una herramienta de entrega continua le permite usar herramientas de código abierto para crear, implementar y administrar sus aplicaciones. Al integrar conjuntos de herramientas, puede crear tareas repetibles y manejables, no solo para su equipo de desarrollo, sino también para su equipo de operaciones.

Su caja de herramientas puede incluir sus servicios en la nube actuales, herramientas de código abierto y herramientas de terceros, pero también querrá considerar una herramienta de entrega continua que incluya lo siguiente:

  • Plantillas repetibles para la automatización de compilación e implementación. Si funciona para una de sus aplicaciones, debería funcionar para otras. No permita que todos los equipos tengan que lidiar con problemas de configuración por sí mismos.

  • Una canalización para que pueda compilar automáticamente al introducir cambios, desplegar en la nube, incorporar compilaciones y despliegues en sus cadenas de herramientas y gestionar despliegues en toda su cadena de herramientas.

  • Herramientas para la colaboración en equipo, la planificación, la gestión del código fuente y las pruebas.

  • Instrumentación que explica por dónde se mueve su equipo rápidamente y dónde se estancan las cosas, lo que proporciona una guía para ser «más continuo».

Las herramientas de entrega continua de código abierto que puede utilizar para una sólida canalización de entrega continua incluyen Jenkins, Conlot CI, Spinnaker, Travis CI, GoCD y GitLab CI.

Agilidad y DevOps

Entrega continua ágil

Antes, sólo se lanzaba el software una vez y luego se actualizaba. Y solo consultaría a los clientes al principio y al final para ver si el software se ajustaba sus necesidades.

La metodología ágil es una forma de producir software en iteraciones cortas en un cronograma de entrega continua, y el proceso de entrega continua ágil de hoy en día significa que se puede publicar código para el cliente a medida que cada función definida previamente esté disponible. El desarrollo ágil y la entrega continua son las claves para que las funciones lleguen al cliente tan pronto como estén listas para producción. Su objetivo es tener cada función lista para su lanzamiento cuando salga de la canalización.

Obtenga más información sobre los beneficios de los principios ágiles.

DevOps y entrega continua

En las últimas dos décadas, el desarrollo de software ha experimentado cambios significativos a medida que pasó del concepto de cascada estándar a la metodología ágil más eficiente. Para adaptarse, debe cambiar a un enfoque centrado en la metodología ágil, DevOps y entrega continua. Como parte de una canalización de entrega continua, estos procesos centrados permiten versiones y actualizaciones de software más fiables y de alta calidad.

A medida que haga lanzamientos de software más rápidos y pequeños a través del desarrollo ágil, su enfoque será más estricto en las etapas individuales del desarrollo de software. Al mismo tiempo, DevOps mantiene su mente centrada en la "Visión más amplia" y en el cambio cultural, a medida que el desarrollo y las operaciones se fusionan estrechamente en un solo equipo que trabaja en todo el ciclo de vida del desarrollo de software, desde la codificación hasta las pruebas, pasando por la implementación y el soporte.

Para ver más de cerca el proceso de DevOps, vea el siguiente vídeo:

Soluciones relacionadas
IBM® Cloud Continuous Delivery

IBM Continuous Delivery es un servicio en la nube que ayuda a aprovisionar cadenas de herramientas, automatizar compilaciones y pruebas, y controlar la calidad con analítica.

Explorar IBM® Cloud Continuous Delivery
IBM® UrbanCode

La familia de productos de software IBM® UrbanCode le ayuda a lanzar software al mercado más rápido acelerando la entrega de aplicaciones y reduciendo los procesos manuales.

Explore IBM® UrbanCode
Tekton en IBM® Cloud

Cree canalizaciones de CI/CD nativas de Kubernetes con la máxima velocidad y flexibilidad.

Explore Tekton en IBM Cloud
Recursos ¿Qué es DevOps?

DevOps acelera la entrega de software de mayor calidad combinando y automatizando el trabajo de los equipos de desarrollo de software y operaciones de TI.

¿Qué es la integración continua?

La integración continua es un proceso de desarrollo iterativo en el que los desarrolladores integran código nuevo en la base de código al menos una vez al día.

¿Qué son CI/CD y la canalización de CI/CD?

Guía práctica de la canalización de integración continua/entrega continua (CI/CD).

De el siguiente paso

¿Estás listo para DevOps? Ofrecer software y servicios a la velocidad que exige el mercado requiere que los equipos iteren y experimenten rápidamente, así como desplegar nuevas versiones con frecuencia, impulsadas por comentarios y datos. Los equipos de desarrollo en la nube más exitosos adoptan la cultura y las prácticas modernas de DevOps, adoptan arquitecturas nativas de la nube y ensamblan cadenas de herramientas a partir de las mejores herramientas de su clase para impulsar su productividad.

Encuentre su solución DevOps