4 tecnologías Open Source básicas para tu stack de integración y despliegue continuo
Cuando hablamos de Integración Continua, lo hacemos teniendo en mente un modelo informático que consiste en hacer integraciones frecuentes y despliegues automáticos de un proyecto lo más a menudo posible, para así poder detectar fallos y realizar entregas a los usuarios lo antes posible.
Estamos ante un escenario donde el objetivo de los equipos es dar valor a los usuarios y clientes de forma frecuente, automatizada y libre de errores (o al menos pudiendo dar marcha atrás rápidamente); llegando incluso a varios despliegues en entornos de producción en un mismo día.
Es por eso que las metodologías ágiles, la integración continua y DevOps, forman parte del mismo ambiente y su relación se hace cada vez más estrecha.
En EXEVI llevamos años aplicando esta filosofía. Con un stack consolidado y funcionando en nuestros proyectos internos y en la mayoría de nuestros clientes que demandan desarrollo a medida, nuestros equipos tienen claro cuáles son las 4 piezas fundamentales que no pueden faltar para hacer ágiles nuestros proyectos software.
Generalmente, en nuestros desarrollos, tanto de Aplicaciones Web como Apps, siempre tenemos que realizar varias tareas. Suelen ser repetitivas y que aportan poco (o ningún) valor al proyecto, pero son imprescindibles. Crear estructuras de directorios, hacer limpieza, compilar, generar documentación, lanzar pruebas, desplegar, etc.
Por un lado, empezamos con herramientas que favorecen la convención sobre la configuración, como Maven o Gradle, permitiendo realizar las tareas arriba mencionadas y ya que no basta con hacer entregas, si no que estas tienen que ser funcionales y libres de errores, no podemos evitar incluir en la pila herramientas que aseguran la calidad del software desarrollado.
SonarQube es la herramienta de gestión de la calidad del código fuente más extendida para desarrollos Java, aunque también da soporte a otros lenguajes. Permite recopilar, analizar y visualizar métricas del código fuente.
Otro complemento inevitable también es Jenkins. Un servidor de integración continua, muy fácil de utilizar, y que también se encuentra entre los más aceptados. La base de Jenkins son las tareas y se utiliza habitualmente como centro del proceso de desarrollo: Jenkins es el trabajador que pone en funcionamiento y perfecta sincronización a todas las herramientas, asegurando que el código generado cumple con los estándares de calidad de EXEVI y que mediante las pruebas automatizadas, el código existente sigue funcionando correctamente (pruebas de regresión) y el nuevo código, también lo hace.
No por último y menos importante, estas tres herramientas que ya hemos comentado no sirven de nada si nos falta la cuarta pata de la suite básica: el repositorio de control de versiones, que es quién da soporte a la Integración Continua, en todo este proceso.
Los más experimentados habéis conocido muchos repositorios, pero si estáis a la última no hace falta decir que Git se ha convertido en la preferida por los desarrolladores modernos.
Seguro que a la mayoría de vosotros no hace falta que os expliquemos los beneficios de la integración continua o de las tecnologías Open Source, pero sí que coincidiréis en que es agradable observar en cualquier ranking sobre las mejores herramientas de integración continua que el Open Source siempre está presente y representado por herramientas como Maven, SonarQube, Jenkins y Git.
Autor del artículo: Ramón García, Ingeniero de Telecomunicación por la UPCT y Director de Desarrollo de Negocio en EXEVI.