Jenkins
¿Qué es CI/CD?
CI/CD (Integración Continua/Despliegue Continuo o Entrega Continua) es una práctica de desarrollo de software que automatiza y optimiza el proceso de integración, prueba y despliegue de código.
- Integración Continua (CI): Automatiza la integración de cambios de código en un repositorio compartido, garantizando que cada cambio sea probado de inmediato para identificar errores rápidamente.
- Entrega/Despliegue Continuo (CD): Automatiza el despliegue del código en entornos de producción o preproducción de forma regular, asegurando entregas rápidas, consistentes y de alta calidad.
¿Para qué sirve Jenkins?
Jenkins es una herramienta de integración continua (CI) y entrega continua (CD) ampliamente utilizada en el desarrollo de software. Su principal propósito es automatizar tareas repetitivas en el ciclo de vida del desarrollo de software, como la construcción, prueba y despliegue de aplicaciones.
Se integra con una amplia gama de herramientas de desarrollo, sistemas de control de versiones y servidores de despliegue, lo que permite mantener la calidad del software mientras se acelera el proceso de desarrollo.
Características principales
-
Automatización Extensible:
Jenkins admite cientos de complementos que se pueden agregar para ampliar su funcionalidad, incluyendo integración con Docker, Kubernetes, Git, Maven y más. -
Open Source:
Jenkins es una herramienta gratuita y de código abierto, con una comunidad activa que constantemente mejora su funcionalidad. -
Compatibilidad Multiplataforma:
Funciona en casi cualquier sistema operativo, incluidos Windows, macOS y Linux. -
Interfaz Amigable:
Proporciona una interfaz web para configurar y gestionar pipelines y trabajos, lo que facilita su uso incluso para desarrolladores menos experimentados. -
Distribución de Tareas:
Permite distribuir las tareas en varios nodos (agentes), lo que mejora la eficiencia y reduce los tiempos de ejecución. -
Soporte para Pipelines como Código:
Los pipelines se pueden definir utilizando archivos de configuración comoJenkinsfile
, escritos en Groovy, permitiendo versionar la configuración junto con el código fuente. -
Integración con Sistemas de Control de Versiones:
Compatible con Git, Subversión, Mercurial y otros sistemas de control de versiones. -
Notificaciones y Reportes:
Ofrece notificaciones por correo, Slack, y otras plataformas, además de reportes detallados de construcción y pruebas.
Fecha de lanzamiento
Jenkins fue lanzado en 2005 bajo el nombre de Hudson, creado por Kohsuke Kawaguchi mientras trabajaba en Sun Microsystems para automatizar tareas en el desarrollo de software. En 2011, tras desacuerdos con Oracle, el proyecto se bifurcó y adoptó el nombre de Jenkins. Desde entonces, se ha consolidado como una herramienta clave de CI/CD con una comunidad activa y constante evolución.
Instalación
- Instalaremos Jenkins en nuestro equipo mediante docker. Ingresa este comando en tu cmd. Nota: La ruta que esta en negrita sera tu ruta en donde almacenes la instalación de Jenkins con docker. Te recomiendo en Documentos y que el directorio tenga un nombre sin espacios.
- Si el puerto 8080 lo tienes ocupado cámbialo en el comando según tu necesidad.
docker run -d –name jenkins-RecursoIterativo -u root -p 8089:8080 -p 50000:50000 -v D:Documentos5.RecursoInteractivoJenkins:/var/jenkins_home -v //var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
Implementación
- Después de tener instalado Jenkins. Crearemos un repositorio en github donde albergaremos nuestro proyecto. El repositorio deberá estar publico para una configuración mas sencilla.
- En nuestro proyecto añadiremos en la raíz del proyecto. Los archivos Jenkisnfile y Dockerfile. (Estos dos archivos deberán tener el nombre que acabamos de mencionar. Si el nombre cambia de alguna forma El pipeline que configuraremos no los podrá reconocer.)
- A continuación tendremos la configuración del pipeline de Jenkins y la configuración del Dockerfile para la correcta implementación.
- Para este punto en el pipeline tendrás que reemplazar el link del repositorio con el que estés trabajando,
-
Jenkinsfile
-
Dockerfile
# Usar la imagen base oficial de NginxFROM nginx:alpine# Copiar los archivos del proyecto al directorio predeterminado de NginxCOPY . /usr/share/nginx/html# Exponer el puerto 3000EXPOSE 80
Resultados
Una vez creados los archivos, nos dirigimos a nuestro panel de Jenkins , accederemos con la url http://localhost:8080/. Si cambiaste el puerto en la instalación bastara con que remplaces 8080 por el puerto elegido.
Creamos y configuramos un trabajo y el pipeline para la ejecución.
Damos permisos y añadimos nuestro link del repositorio.
Ejecutamos nuestra tarea en Construir Ahora. Y podremos observar el dashboard de los resultados con el flujo de trabajo del pipeline. Si quisieras ver el historial de cambios con los commits de tu proyecto podrás acceder a la pestaña de Changes y observaras todos los cambios.
Video Tutorial
Te presentamos un video tutorial en donde realizamos todas las acciones que contienen la practica completa. El video contiene todos los pasos para la correcta implementación de la practica.
Link: Tutorial de Jenkins
¡Gracias por llegar hasta el final del blog! 😊
Espero que este recorrido por el mundo de Jenkins y CI/CD haya sido interesante y enriquecedor. Desde los conceptos básicos hasta la instalación y configuración, hemos explorado cómo esta poderosa herramienta puede transformar el flujo de trabajo en proyectos de desarrollo.
Si tienes alguna duda o quieres profundizar en algún tema, no dudes en compartir tus comentarios. Recuerda que la clave del éxito en CI/CD es la práctica constante y la exploración de nuevas posibilidades.
¡Hasta la próxima, y mucho éxito en tus proyectos de desarrollo! 🚀👩🏻💻👨🏻💻
0 comentarios