En nuestro día a día nos encontramos con una diversidad de tareas repetitivas y muchas veces tediosas. Como sysadmins, tenemos nuestros maravillosos scripts para realizar tareas de monitoreo y gestión de servidores, mientras que para usuarios comunes tareas de respaldo y limpieza de directorios suelen ser útiles y apropiadas.
Jenkins CI se presenta como una herramienta de Integración Continua (CI, por sus siglas en inglés) cuyo propósito es el de automatizar fases repetitivas del desarrollo de software como las compilaciones y pruebas unitarias con el fin de garantizar entregas continuas de software funcional. Con paquetes para las distribuciones principales de Linux y BSD.
Sin embargo, contiene un amplio abanico de opciones que pueden interesarnos a Sysadmins y usuarios, tal como la ejecución de Comandos Shell o invocar scripts de forma similar a como lo haríamos en un Terminal.
Una de sus cualidades más atractivas es la posibilidad de realizar la configuración de forma sencilla a través de una interfaz gráfica web, con similitudes a crontab pero con retroalimentación visual inmediata.
Su panel principal nos ofrece, de forma muy gráfica y entretenida, el status de todas nuestras tareas programadas para verificar si han corrido de forma exitosa o no.
Adicionalmente, está la posibilidad de establecer dependencias entre las tareas y acciones posteriores dependiendo del resultado de la ejecución de cada una de ellas, lo que nos resulta muy útil para automatizar tareas de mayor complejidad. Otro de sus beneficios es que cuenta con un backend web, que nos permite enlazar varios servidores de forma de distribuir tareas entre ellos o implementar arquitecturas Maestro-Esclavo para que un servidor maestro dispare tareas en los servidores asociados a este como esclavo. Incluso ofrece capacidades de Alta Disponibilidad de forma que al existir errores en el servidor Maestro, un esclavo pueda ocupar su rol y orquestar las tareas en el resto de los servidores.
Jenkins CI se encuentra desarrollada en Java y aprovecha las últimas potenciales de este lenguaje para permitir la extensión de sus funcionalidades haciendo uso de plug ins, los cuales varían desde estadísticas y reportes de ejecución a manejo de clusters y sistemas distribuidos.
¡Te invitamos a probar Jenkins CI e incrementar tu productividad al máximo!
Buenisimo para hacer automatizacion, no conocia esta herramienta, muchas gracias !!!
Todo iba bien hasta que dijiste que estaba desarrollada en Java.
Java? Ya me basta para no usarlo ni recomendarlo. Tuve muchos dolores de cabeza ya con sistemas hechos en Java.
¿Te refieres al Java de Oracle o al OpenJDK? Porque el OpenJDK en muchos casos ha sido el principal dolor de cabeza para muchos desarrolladores de JAVA.
Probe con ambos, y si vien el OpenJDK me dio mas problema, el JDK de oracle tambien.
El dia que Java se compile en lenguaje de maquina, al menos sea intepretado a algo directo, o que se base en algo tipo un CLR (sin bytecode, VM, ni cosas extrañas en el medio), quiza lo considere nuevamente.
No me parece mal lenguaje Java (al contrario como lenguaje me parece muy bueno), pero su implementacion me parece asquerosa y desastrosa.
Yo prefiero fabric, para crear script que se ajusten a lo que quiero hacer, ademas es python
Está muy bien la automatización de tareas para sysadmin, pero creo que lo más importante de Jenkins es lo de integración continua. Especialmente el despliegue de aplicaciones combinándolo con herramientas como Ant o Phing (el Ant de PHP). Sumado a la gran cantidad de plugins de QA que se le pueden agregar.
Lamentablemente hay muy poca documentación en internet. Y por otro lado, la interfaz web es bastante poco intuitiva, incluso para usuarios con bastante experiencia.
Muy buen artículo. Es una herramienta que hay que difundir.
Para los que no saben:
Jenkins se usa en algunos repositorios de desarrolladores de CyanogenMod que compilan ROM’s que no tienen soporte oficial garantizado de Cyanogen para modelos de celulares como el Samsung Galaxy Mini.
Está bueno, pero es para servidores, yo pensé que era para el escritorio. debe ser una herramienta muy potente pero esta fuera de mi alcance de usario normal.
Esta bien y funciona para integracion continua de componentes de software, daily y nightly builds