Si buscas en google que es Jenkis, la mayoría de páginas te darán el mismo resultado. Es un servidor open source para la integración continua. Aunque dicha frase define a la perfección lo que es, dicho de una forma más coloquial, Jenkins es una herramienta que permite desplegar aplicaciones de forma sencilla y continua, sin necesidad de tengas que hacerlo tu manualmente.
Esto facilita al personal encargado de las aplicaciones el despliegue de las aplicaciones para ponerlas en funcionamiento facilmente.
Está escrito en Java y es multiplataforma. El uso de este se hace mediante una interfaz web:
Por qué es tan util?
Para saber la utilidad de Jenkins tenemos que entender que es la integración continua. Esto es una práctica que consiste en la integración habitual de cambios en el una aplicación, haciendo que en un período corto de tiempo despleguemos una aplicación para poder realizar pruebas y testear los cambios hechos.
A mayores de esto, Jenkins permite saber la calidad del código escrito, realizar pruebas sobre este, generar documentación sobre el código y tiene una gran cantidad de plugins para vincular estos despliegues con servicios como Amazon
Para entender mejor como funciona vamos a ver el caso con un ejemplo.
- Un desarrollador hace un cambio en el código de una aplicación en su repositorio Git.
- Podemos configurar Jenkins para que cada poco tiempo, compruebe si se han hecho cambios en el repositorio y, si ha sido así, este detectará los cambios.
- Compilará el código y preparará el paquete resultado con la aplicación (build). En caso de error notificará dicho error si así está configurado.
- Vuelta a empezar
Ventajas y Desventajas
Como ventajas:
- Gratuíto
- Facil de instalar. Incluso disponible sobre docker
- Muchos plugins disponibles
- Desarrollada en Java
En cuanto a los contras:
- Tiene una curva de aprendizaje algo compleja
- No tiene tanta documentación creada como pueden ser otras herramientas. Aunque quizás esto sea subjetivo