Emil blog

Pipelines como código en Go-cd

Se habla mucho de Job DSL en Jenkins pero no se habla tanto de Go-cd y menos todavía de DSL en Go-cd. En este post vamos a tratar el tema sin profundizar demasiado e intentaremos dar un punto de partida para aquel que no conozca demasiado esta práctica y quiera saber más de ella.
Pero primero, aunque algunos ya sabrán el significado, vamos a comentar rápidamente unos cuantos conceptos básicos en torno al concepto de Job DSL.

¿Qué es Job DSL?

DSL no es un concepto nuevo, se refiere a las palabras Domain Specific Language. Todos conocemos muchos DSL’s, uno de los más conocidos sería CSS, por ejemplo. (Un buen libro para profundizar en el tema de los DSL’s en general se puede encontrar aquí). Por tanto, Job DSL se referirá a utilizar una particularización de algún lenguaje de programación de forma específica para un uso concreto; en este caso para definir jobs (de integración o despliegue continuo). Como ocurre en Jenkins, que se hace un uso particular de Groovy. Pero no hemos venido a hablar de Groovy y Jenkins, vamos a analizar primero el por qué se hace necesario utilizar DSL’s en despliegue continuo y qué opciones existen si queremos utilizar la alternativa de Go-cd en nuestro proyecto.

¿Por qué Job DSL?

Hace no mucho aparecieron unas herramientas sin las que hoy no podríamos vivir y que nos facilitaron mucho tanto la integración de código como su despliegue. Pero todas estas herramientas se volvían engorrosas de utilizar en el momento en el que nuestros entornos escalaban y nos encontrábamos con cientos o miles de jobs con sus correspondientes tareas, por ende mantener todo esto se volvía muy complicado. Aparecieron los templates, que ayudaron bastante a resolver este problema pero, de repente, algunos pensaron: “¿Por qué no automatizamos también  [Más…]

Top