Integración continua y entrega continua (CI/CD)

El flujo de integración continua y despliegue continuo (CI/CD) es una práctica recomendada para los equipos de DevOps. Permite a los desarrolladores realizar cambios de código con frecuencia y fiabilidad, sin fallos. Crear un flujo de CI/CD es un aspecto importante del desarrollo de software moderno a lo largo del ciclo de vida completo de una API, desde el diseño hasta la gestión y el despliegue.

¿Qué es la integración continua (CI)?

La integración continua es una práctica y filosofía de codificación que facilita que los equipos de desarrollo preparen, implementen y ejecuten controles de calidad en cada nueva versión. El objetivo es automatizar y garantizar la uniformidad en la manera en que los equipos de desarrollo crean, prueban y empaquetan las aplicaciones. Muchas de las aplicaciones actuales se crean a partir de código que se ha desarrollado con herramientas y plataformas diferentes. Por ello, los equipos de desarrollo necesitan una forma de integrar y validar sus cambios. La CI proporciona grandes ventajas, como la reducción de errores en el despliegue y una mayor visibilidad de los defectos.

¿Qué es la entrega continua (CD)?

La entrega continua (CD) es el otro extremo del flujo CI/CD. La CD automatiza la entrega de aplicaciones y las modificaciones de código, a menudo en varios entornos de infraestructura, como las pruebas y el desarrollo. Después, realiza llamadas a bases de datos, servidores web y servicios adicionales que deben actualizarse o reiniciarse tras el despliegue de la aplicación. Los equipos pueden desplegar sus producciones según un programa de despliegue por horas, diario o continuo.

CI/CD en acción

Cuando los equipos de TI despliegan un modelo de desarrollo de aplicaciones con funciones pluridimensionales y automatizadas para realizar pruebas e informes, que están integradas en su ciclo de vida de desarrollo de software (SDLC), y cuentan además con una integración y entrega totalmente continuas, la organización adquiere la capacidad de realizar pruebas y lanzar nuevas funciones y aplicaciones de forma muy rápida. Estas exitosas organizaciones aplican métricas de SDLC a la financiación de proyectos para medir y priorizar aquellos proyectos con mayor impacto de negocio.

Por ejemplo, los desarrolladores de Mule utilizan el modelo CI/CD para automatizar los despliegues con flujos GitHub y Jenkins. La mayoría de desarrolladores están familiarizados con la etapa de desarrollo; el trabajo realizado en Anypoint Studio se puede conectar fácilmente con el flujo de integración continua, aprovechando algunas de las tecnologías mencionadas anteriormente: GitHub para el control de versiones, Maven para la gestión de dependencias y la automatización de versiones, JUnit y MUnit para la automatización de pruebas, y JIRA o ServiceNow para la gestión de incidencias y reparaciones. Los clientes con inversiones en Microsoft que desarrollan aplicaciones de Mule a menudo utilizan Team Foundation y Visual Studio.

Cuando el código está listo para su entrega, los clientes de MuleSoft a menudo utilizan Jenkins, Puppet, Chet o HP ALM tanto para la automatización del despliegue como para la coordinación de los procesos de lanzamiento en diferentes entornos: desarrollo, prueba, ensayo y producción. Puppet y Chef también sirven para automatizar la instalación y configuración de los tiempos de ejecución de Mule. Por otro lado, Docker está ganando popularidad rápidamente a la hora de reducir las complejidades del despliegue continuo, y el tiempo de ejecución de MuleSoft se puede entregar en un contenedor de Docker. Asimismo, a través del agente de gestión, los usuarios de Anypoint Platform for APIs y Anypoint Platform CLI pueden automatizar los procesos aún más utilizando herramientas de gestión y automatización de la configuración como Puppet, Chef, Ansible y Salt en lugar de la interfaz de usuario de Anypoint Platform.