¿Qué es la entrega continua?
La entrega continua permite a los equipos de desarrollo automatizar el proceso que mueve el software a lo largo del ciclo de vida de desarrollo
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 del desarrollo de software, y puede proporcionar muchos beneficios al aprovisionar una caja de herramientas integrada, incluyendo lo siguiente:

  • Reduzca el tiempo de despliegue a través de pruebas continuas y desarrollo

  • Reduzca los costos asociados con el desarrollo de software tradicional

  • Escalar el desarrollo de software basado en el tamaño del proyecto

  • Desplegar 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 mejores prácticas a tener en cuenta cuando se utiliza la entrega continua:

  • Hacer que cada cambio sea liberable: Si utiliza la entrega continua para hacer que cada cambio sea liberable, debe incluir documentación de usuario, manuales de ejecución de operaciones e información sobre lo que se ha cambiado, con fines de auditoría.

  • Adopte el desarrollo basado en troncos: 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ápido posible.

  • Entrega a través de un pipeline 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 tanto como sea posible: en la entrega continua, debe automatizar tantos procesos como sea posible en su ciclo de vida de desarrollo de software para crear un pipeline de entrega bueno y confiable, no solo para el despliegue e implementaciones de código, sino también para la creación de nuevos entornos de desarrollo.

  • Procure no tener 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, primero debe validarla antes de desplegarla en la instancia pública de la aplicación en ejecución.

  • Liberar en la granularidad de la prueba: si dos partes de un sistema deben probarse juntas, deben liberarse juntas para saber que las partes de su sistema son compatibles. Las herramientas de automatización de lanzamientos son buenas para coordinar este tipo de entrega. Alternativamente, desacople completamente.
Pipeline/infraestructura continua

Para aprovechar los beneficios de la entrega continua, necesita otros elementos de la infraestructura continua, como exploración continua, integración continua, despliegue continua y lanzamiento bajo demanda.

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

  • Crear trabajos: compile su proyecto en la tarea de compilación para prepararlo para el despliegue, donde puede generar artefactos que puedes enviar a un directorio de archivos de compilación.

  • Desplegar trabajos: cargue su proyecto a su canal de entrega continua como una aplicación a la que puede acceder desde una URL. Después de desplegar el proyecto, podrá verlo en su panel de control.

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

El pipeline de entrega continua puede ayudar a los equipos de desarrollo a:

  • Automatizar compilaciones, pruebas unitarias e implementación

  • Editar e insertar código mediante repositorios Git, seguimiento de incidencias y su IDE basado en la web (entorno de desarrollo integrado)

  • Cree una caja de herramientas DevOps integrada para crear, desplegar y administrar sus aplicaciones con sus servicios, herramientas de código abierto y herramientas de terceros

  • Edita tu código desde cualquier lugar que elijas para usar tu IDE para crear, editar, ejecutar, depurar y completar tareas de control de código fuente

  • Utilice el pipeline automatizado para entregar continuamente compilaciones, pruebas y despliegues de manera repetible

  • Mejora la calidad al comprender el estado de tu compilación, los resultados del análisis de seguridad, la cobertura del código y la cobertura de prueba para que puedas evaluar si quieres promocionar tu aplicación en el siguiente entorno (a través de la política para garantizar automáticamente la calidad antes de la promoción)
Despliegue continuo frente a entrega continua

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

La decisión de incluir el despliegue continuo en su proceso de entrega depende de las necesidades de su empresa. Si la empresa necesita que el equipo de entrega publique software nuevo o actualizado en producción repetidamente, confiable o lo más rápido posible, o si la solución tiene múltiples dependencias, es probable que se beneficie de la implementación continua.

Para obtener más información sobre las diferencias entre el despliegue continuo y la entrega continua, vea este video:

Herramientas de entrega continua

Una herramienta de entrega continua le permite utilizar herramientas de código abierto para compilar, desplegar 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 compilaciones y despliegue. Si funciona para una de tus aplicaciones, debería funcionar para otras. No permita que todos los equipos tengan problemas con la configuración.

  • Un pipeline para que pueda compilar automáticamente al realizar cambios, desplegar en su 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 de código fuente y las pruebas.

  • Instrumentación que expone dónde se mueve rápidamente tu equipo y dónde se atascan las cosas, proporcionando una guía para volverse “más continuo”.

Las herramientas de entrega continua de código abierto que puede usar para un pipeline de entrega continua sólida incluyen Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD y GitLab CI.

Agilidad y DevOps

Entrega continua ágil

Anteriormente, el software sólo se publicaba una vez y luego se actualizaba. Entonces solo consultaría a los clientes al principio y al final para ver si el programa satisface sus necesidades.

Agile es una forma de producir software en iteraciones cortas en un cronograma de entrega continuo, y el proceso de entrega continua ágil de hoy significa que puede liberar el código al cliente a medida que cada característica definida esté disponible. El desarrollo ágil y la entrega continua son clave para que las características lleguen al cliente tan pronto como estén listas para la producción. Su objetivo es tener cada característica lista para su lanzamiento cuando salga del proceso.

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 sufrido cambios significativos a medida que se ha pasado del concepto de cascada estándar a la metodología ágil más eficiente. Para adaptarse, debe cambiar a un enfoque centrado en una entrega ágil, DevOps y continua. Como parte de un pipeline de entrega continua, estos procesos enfocados permiten lanzamientos y actualizaciones de software más confiables y de alta calidad.

A medida que realice lanzamientos de software más rápidos y más pequeños a través de un desarrollo ágil, su atención se centrará más en las etapas individuales del desarrollo de software. Al mismo tiempo, DevOps mantiene su mente enfocada en el "Imagen más grande" y el cambio cultural, ya 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 programación hasta las pruebas, pasando por el despliegue y el soporte.

Para ver más de cerca el proceso de DevOps, vea el siguiente video:

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.

Conozca IBM® Cloud Continuous Delivery
IBM® UrbanCode

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

Conozca IBM® UrbanCode
Tekton en IBM® Cloud

Cree tuberías CI/CD nativas de Kubernetes con máxima velocidad y flexibilidad.

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

DevOps acelera la entrega de software de mayor calidad al combinar y automatizar 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 el proceso de CI/CD?

Una guía práctica para el pipeline de integración/entrega continua (CI/CD).

Dé 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,y desplieguen nuevas versiones con frecuencia, impulsadas por comentarios y datos. Los equipos de desarrollo en la nube más exitosos adoptan una cultura y prácticas modernas de DevOps, adoptan arquitecturas nativas de la nube y ensamblan cadenas de herramientas de las mejores para liberar su productividad.

Encuentre su solución DevOps