Jairo Méndez | QA Lead en Grupo Onetec |

Tips para un sistema DevOps en Jenkins

A estas alturas no os vamos a contar qué es Jenkins, pero por si acaso y resumiendo, es un servidor de integración continua, gratuito, open source y lo más importante: una de las mejores elecciones a la hora de crear un entorno DEVOPS.

Una de las principales razones por las que se usa Jenkins, es porque se encarga de las tareas repetitivas que surgen en el entorno de desarrollo. Si revisamos todas las tareas que se realizan a diario en un equipo de desarrollo (subir código, compilar, pasar pruebas de código y calidad, desplegar en el entorno adecuado y el reporting final), todas ellas deberían estar automatizadas.

Usando Jenkins para esta automatización, el equipo ganará tiempo y sobre todo seguridad.

Pero habíamos dicho que no íbamos a hablar de Jenkins en sí, sino a dar una serie de consejos para aprovechar esta herramienta con buenas prácticas y que así no caigáis en los mismos errores en los que ya hemos caído.

Divide y vencerás: Pipeline

Cuando un proyecto tiene, o se quieren integrar, varios pasos en un mismo proceso, lo más recomendable es crear un pipeline. Con esto, lo que conseguimos es dividir un proceso en mini tareas, de tal manera que nos da una visión clara de qué procesos funcionan y cuáles no.

Si sigues este consejo conseguirás algo como esto:

Ahí podrás ver, de manera rápida, los procesos pasados y sus tiempos de ejecución.  Además podrás filtrar, para poder ver el log de determinado Stage, posicionándote encima de él.

¿Dónde guardar el JenkinsFile?

Si tu elección ha sido crear un pipeline, necesitarás un script JenkinsFile para que Jenkins sepa los Stages que tiene que realizar. Este fichero debe tener tantos Stages como pasos se requieran (descargar última versión del código, analizar, compilar, probar, desplegar, reportar…)

El fichero se puede incluir en el propio Job de Jenkins, pero es una práctica que no recomiendo, ya que no tiene control de versiones y si quieres recuperar algún cambio anterior, no podrás.

La mejor opción es tener el fichero JenkinsFile en la raíz del propio proyecto. De esta manera, el control de versiones estará en el repositorio del proyecto.

Facilítate la búsqueda de errores

Una vez dentro del fichero JenkinsFile no escatimes en Stages. Es mucho más fácil de depurar y de observar el estado de un pipeline cuantos más Stages haya, así podrás ver los logs de cada uno de ellos en caso de error, (como se muestra en imagen de arriba).

También es útil meter logs dentro del script. Con ellos, la depuración de errores en la consola será más sencilla, fácilmente localizarás el error o los datos usados en tiempo de ejecución.

Plugins para dar, tomar y regalar

Jenkins es open source y cuenta con una gran comunidad, por eso existen multitud de complementos para instalar que te ayudarán a crear tu entorno de integración continua de la mejor forma posible.

Alguno de los plugins más usados por nuestro equipo DEVOPS, son:

Con este plugin podrás crear una red de seguridad dando acceso a las funcionalidades a usuarios/as a nivel de proyecto. Esto es muy útil cuando Jenkins es usado por diferentes personas y no todas tienen que tener acceso a todos los proyectos.

Con este complemento podrás integrar tu herramienta SonarQube en Jenkins para incorporarlo como step en los diferentes pipelines y garantizar la calidad de código de los nuevos desarrollos.

Con estas herramientas podrás interaccionar con la suite de AWS y desplegar en las máquinas o Buckets. En nuestro caso, lo usamos para desplegar compilaciones front en máquinas o para almacenar aplicaciones generadas tras la compilación.

Con este tipo de plugins podrás generar reportes en Jenkins tanto de Cucumber, como HTML o XML, para, posteriormente, visualizarlos en Jenkins a nivel de la ejecución.

Esperamos que estos tips os ayuden si estáis arrancando con Jenkins vuestro entorno de integración continua.

¡Hasta la próxima!

Jairo Méndez
Jairo Méndez | QA Lead en Grupo Onetec |

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir al contenido