Integración y despliegue continuo
Por Rafael Muñoz • 2 de agosto de 2022 • 5 min de lectura
Motivación
En este artículo quiero transmitir la importancia de la integración y despliegue continua (CI/CD) en los proyectos de software. Este artículo es teórico, pero nos será de bastante utilidad para entender que es algo básico y que deberíamos incluirlo en todos los proyectos de desarrollo Software.
Introducción
Empecemos con lo básico, ¿Qué es la integración y despliegue continuo de software?
La integración continua es la práctica en la que los desarrolladores integran el código en un repositorio común, teniendo de esta forma un control de versiones y un conjunto de tests para detectar y resolver posibles errores. Así conseguimos detectar errores y resolver conflictos de forma rápida y sencilla, reduciendo costes e incrementando la calidad y agilidad del desarrollo.
Para que esta práctica se cumpla, debemos integrar nuestro código en un repositorio de Git, como Azure Repos, GitHub, GitLab, etc.
El despliegue continuo es la práctica en la que se automatiza la entrega del software, permitiendo que pueda ser implementado en los entornos de forma confiable y sencilla sin la necesidad de realizar operaciones manuales. De esta forma se acelera la entrega de software al cliente.
Para que esta práctica se cumpla, debemos automatizar el despliegue de nuestro código, utilizando herramientas como Jenkins, Azure DevOps, GitHub Actions, etc.
Implementando integración continua
Como se dije anteriormente, es importante tener un repositorio común en el que todos los desarrolladores trabajen y tengan el código de la aplicación. El tipo de repositorio más utilizado es el basado en Git que utiliza ramas para integrar las nuevas funcionalidades y cambios. En un próximo artículo veremos todas las funcionalidades de este tipo de repositorios, pero por ahora quedémonos con que en este tipo de repositorio se pueden visualizar todos los cambios que se han ido realizando en cada rama y permite una fácil colaboración con más miembros del equipo de desarrollo.
Este tipo de repositorio es muy útil para saber en que momento se cambió una parte del código y quién realizó el cambio junto a posibles comentarios.
Implementando despliegue continuo
Automatizar la entrega del software para que se implemente en otros entornos sin realizar operaciones manuales es algo básico en los proyectos en los que se quieran ir realizando mejoras progresivamente, siguiendo la metodología ágil.
Para implementar el despliegue continuo debemos utilizar alguna herramienta como los pipelines de Azure DevOps. En este caso, debemos crear un fichero yml que se encargue de monitorizar que hay un cambio en una rama específica que queramos (en el caso del ejemplo main) y posteriormente ejecutar el despliegue que queramos realizar.
Se recomienda utilizar, al principio, el asistente de Azure DevOps, que permite generar código yml a partir de una interfaz de usuario:
Con esta herramienta podemos ejecutar todo tipo de comandos, Python, Azure PowerShell, Azure CLI, PowerShell, de forma que podamos desplegar nuestro código utilizando estas herramientas.
Además, el despliegue continuo permite realizar pruebas que confirmen que el código funciona correctamente antes de ser desplegado en el entorno. Para ello se suelen utilizar tests unitarios y tests de integración que veremos en un próximo artículo.
Conclusiones
Aunque puede parecer tedioso, si no hemos implementado este tipo de técnicas en nuestros proyectos, os aseguro que mejoran muchísimo la calidad de nuestro software y evitan muchos problemas y errores. Por eso, con este artículo hemos visto los conceptos más básicos sobre este tipo de técnicas:
- Qué es la integración continua
- Qué es el despliegue continuo
- Por qué es importante para los proyectos basados en software
- Con qué herramientas podemos aplicar estas técnicas
¿Necesitas implementar CI/CD en tu proyecto?
Te ayudamos a configurar pipelines de integración y despliegue continuo para mejorar la calidad y velocidad de tu desarrollo.
Consultar servicios DevOps