La automatización sin esfuerzo: crear tareas de Jenkins con Jenkins DSL

Últimamente he visto muchos artículos y conversaciones sobre DevOps. DevOps se refiere a un conjunto de prácticas que automatizan los procesos entre los equipos de desarrollo de software e informática con el fin de recortar los ciclos de desarrollo, aumentar la frecuencia de despliegue y publicar versiones más fiables siempre según las necesidades de la empresa.

Cada vez más las empresas adoptan prácticas de DevOps por medio de metodologías ágiles y herramientas de automatización, como Jenkins, Bamboo, TeamCity etc. Aquellas que han empezado a utilizar Jenkins para configurar una integración, entrega y despliegue continuos suelen crear sus tareas con la IU de Jenkins. Al principio les encanta, porque es un sistema maravilloso para gestionar compilaciones, pero a medida que distintos grupos de la empresa empiezan a adoptar este método, se topan con ciertos problemas, como por ejemplo:

  • El mantenimiento se resiente por la magnitud de todas las tareas en Jenkins
  • Se dan incongruencias entre las tareas por todo el copia y pega y divergencias no deseadas
  • Reusabilidad y complejidad
  • No hay copias de seguridad de las tareas
  • No hay métodos de recuperación en caso de catástrofes

El complemento Jenkins Job DSL intenta resolver estos problemas permitiendo definir las tareas con el mínimo esfuerzo necesario en formato programático. Analizaremos un script de muestra para lograr un despliegue continuo en el Talend Administration Center con ayuda del complemento Jenkins DSL.

Creación de una tarea de entrega continua en Jenkins

El «Job DSL / Plugin» de Jenkins contiene dos partes: El Lenguaje de dominio específico (DSL, en inglés) en sí permite a los usuarios describir tareas con un lenguaje en Groovy y un complemento (plugin) Jenkins, que gestiona las actualizaciones y, en última instancia, las tareas de Jenkins que crea y mantiene.

Fase 1:

Dando por hecho que ha instalado el complemento DSL del apartado “Manage Plugins” (Administrar complementos), el script para una tarea de entrega continua para crear tareas automáticamente y desplegarlas en el Talend Administration Center (TAC) tendrá un aspecto parecido a este:

Según la automatización necesaria, se puede cambiar a cualquier requisito de Ciclo de vida de desarrollo del software (SDLC, en inglés) que cada empresa configure. En el script de arriba, además de ajustar la configuración para GIT, TAC y sus credenciales respectivas, puede enviar el script en Groovy a través de un complemento de archivos gestionados que necesita para:

  • Analizar el archivo de solicitud JSON (task_list.json)
  • Invocar la API MetaServlet para crear tareas en TAC con ayuda del mensaje codificado BASE64
  • Desplegar las tareas en el JobServer y crear los activadores opcionales

Fase 2:

A continuación, cree su tarea de Jenkins usando el estilo de proyecto libre para ejecutar sus scripts del DSL. Esto suele formularse como tarea SEED, que utiliza el script creado anteriormente.

Fase 3:

Ejecute la Tarea SEED de arriba para crear la Tarea de Jenkins que necesita para la entrega continua, como aparece indicado abajo.

Al final de este proceso obtendrá la tarea necesaria para crear tareas de Talend automáticamente en TAC y desplegarlas en JobServers.

Conclusión:

El complemento de DSL de Jenkins ofrece capacidad de mantenimiento para contextos empresariales. Puede reforzar aún más el diseño guardando los scripts SEED en GIT o cualquier herramienta de SCM y ejecutarlos para tener constancia en historial de cualquier cambio realizado a la tarea. De esta forma, si pierde su tarea en Jenkins, podrá recrearla de forma idéntica desde GIT. Por último, el complemento DSL le permite crear plantillas de scripts siguiendo patrones de diseños regulares para asegurar una uniformidad en la forma de crear o desplegar tareas los diferentes equipos. Como siempre, se agradecen comentarios y opiniones. Ya me dirán qué les ha parecido. ¡Hasta la próxima!

Participe en las conversaciones

0 Comments

Leave a Reply