Implementación continua de Jenkins [con ejemplo práctico]
Publicado: 2020-12-28La implementación de Jenkins es un proceso acelerado de desarrollo de software automatizado complejo. Este artículo aclara cómo Jenkins integra todos los procesos del ciclo de vida del desarrollo o las etapas de DevOps, como la creación, la documentación, las pruebas, el empaquetado, la puesta en escena, la implementación, el análisis estático y muchos más, practicados en varias organizaciones.
Hoy, muchas organizaciones están adoptando DevOps en sus ofertas. En el ciclo de vida del desarrollo de software, debe lanzar el software continuamente como parte del proyecto.
Herramientas como Jenkins son muy populares por su potencial para permitir la integración y entrega continuas de las aplicaciones, independientemente de la plataforma. Jenkins es una herramienta gratuita y de una sola fuente que puede manejar cualquier tipo de compilación en la implementación de Jenkins , que se analizará en el artículo.
Jenkins se puede integrar con muchas tecnologías de prueba e implementación. Este artículo describe cómo se usa Jenkins para construir y probar sus proyectos de software de forma continua.
Aprenda el curso en línea de ingeniería de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Por lo tanto, antes de profundizar en cómo funciona Jenkins, debemos comprender los siguientes temas que son la base para aprender Jenkins:

- Despliegue continuo
- Entrega continua frente a implementación continua
- Un ejemplo práctico de implementación de Jenkins
- Beneficios de la implementación de Jenkins
¡Echemos un vistazo a todos ellos uno por uno!
Tabla de contenido
Implementación continua
En el despliegue continuo, el software se libera en los servidores de producción de forma continua con la automatización. El código pasa por etapas como la compilación del código fuente, la validación, la revisión, el empaquetado de la aplicación y la realización de pruebas unitarias y de integración.
Luego, el código se implementa en los servidores de prueba cuando se realiza la prueba de aceptación del usuario. El software se implementará en los servidores de producción para el lanzamiento del software. Lea sobre la integración continua con jenkins.
Entrega continua frente a implementación continua
La entrega continua y la implementación continua son dos etapas cruciales de un SDLC en las que la entrega continua no se implementa en producción para ningún cambio. El desarrollador debe asegurarse de que el código se pueda implementar siempre e implementarlo cuando sea necesario.
Credito de imagen
La implementación continua necesita que cada cambio se implemente automáticamente, sin ningún arbitraje humano.
En el diagrama anterior, una vez finalizadas las etapas de integración continua, la aplicación creada se implementa automáticamente en los servidores de producción, que no es más que una implementación constante.
O bien, si se requiere la aprobación humana para implementar la versión más nueva para automatizar todo, estamos ejecutando una entrega continua.
Debido a esta diferencia central, ha habido varias implicaciones que hacen que cada proceso sea adecuado para diferentes circunstancias.
Jenkins
Jenkins es una herramienta de código abierto que acelera el proceso de software a través de un servidor de automatización que se utiliza para crear y probar continuamente proyectos de software, lo que permite un entorno de CI/CD para los desarrolladores. Está escrito en Java, por lo que es realmente portátil.
Jenkins tiene miles de complementos e integraciones. Por lo tanto, es adecuado para grandes proyectos que requieren mucha personalización. Admite herramientas de control de versiones como Git, Maven, Mercurial y Subversion.
Un ejemplo práctico de implementación de Jenkins
Ahora que hemos aprendido qué tipo de herramienta es Jenkins y se puede aplicar para un proceso de desarrollo de software para implementación continua, veamos ahora cómo funciona en un entorno de producción.
Primero, Jenkins se configura en un servidor y se agrega el proyecto de un cliente para compilarlo y probarlo. El cliente puede entonces descargar la aplicación que ha sido probada. La implementación de los activos del proyecto en una nueva ubicación en el servidor puede ser complicada.

Para eso, preliminarmente, supongamos que un proyecto de cliente está configurado en Jenkins, vinculado a su sistema de control de versiones.
Paso 1: crear un elemento de Jenkins
En el menú principal, seleccione 'Nuevo elemento' y asígnele un nombre. Exportará los archivos de su proyecto de cliente a una carpeta del servidor.
Paso 2: crear una acción posterior a la compilación
Vaya al proyecto del cliente y seleccione configurar. Ahora, inicie una acción posterior a la compilación y elija 'archivar artefactos' en el menú desplegable. Agregue los tipos de archivos que se archivarán y exportarán.
Después de esto, agregue otra acción posterior a la compilación, 'Construir otro proyecto' e ingrese el elemento de compilación creado antes.
Archivo
Paso 3: Instalación del complemento 'Copiar artefacto'
En el tercer paso, instalará el complemento 'Copiar artefacto' de Jenkins.
Vaya a 'Nombre del proyecto' para configurar y agregar un paso de compilación. A medida que se instala el complemento Copiar artefacto, verá la opción 'copiar artefactos de otro proyecto'. Designe la carpeta para copiar los artefactos y establezca la ruta de ubicación.
Establezca la ubicación en “var/www/clients/..” . Esto creará una nueva carpeta en el servidor. Especifique la ruta con una dirección HTTP (!).
Guardar el proyecto
Paso 4: Realización de pruebas
Después de las etapas primarias, ahora es el momento de probar la aplicación.
Para ello, inicie una compilación desde el proyecto del cliente. Esto provocará una nueva compilación. Compruebe la carpeta de implementación en el servidor. Aquí, verá los archivos implementados.
Pero, incluso después de todas las acciones, la compilación falló y obtuvo un error 'FileException'.
¿Por qué?
Las posibles razones pueden ser:
- Jenkins no tenía los permisos para escribir en la carpeta y no puede implementar los archivos.
- Enlace SSH al servidor.
- Compruebe los permisos de la carpeta de salida.
- Sabrás que nos enfrentamos a un problema.
Realice los siguientes pasos para resolver esto:
- Agregue Jenkins a un grupo, aquí, el grupo 'www-data'.
- Cambiar la propiedad de la carpeta de salida al grupo 'www-data' con el comando sudo chown – R : clientes 'www – data'.
- Permita el acceso de escritura en la carpeta con el comando sudo chmod .
- Reinicie el servidor y vea la aplicación implementada
¿Qué beneficios ofrece Jenkins?
- Jenkins es una herramienta de código abierto y proporciona un excelente apoyo a la comunidad.
- Jenkins es relativamente fácil de instalar.
- Jenkins tiene más de 1000 complementos. Si un complemento no está disponible, puede codificarlo fácilmente.
- Jenkins es gratuito.
- Jenkins está construido con Java; por lo tanto, portátil a todas las plataformas principales.
Lea también: Ideas y temas del proyecto Jenkins

Ultimas palabras
Jenkins es una sólida herramienta de automatización escrita en Java que se ha utilizado ampliamente para la integración continua. Con Jenkins, es más fácil construir y probar proyectos de software continuamente con lo que está escrito. Es la herramienta definitiva para entregar su software siempre al integrarse con una gran cantidad de tecnologías de prueba e implementación.
Desarrollo de software de aprendizaje: DevOps con upGrad
upGrad ofrece el programa Executive PG en desarrollo de software: especialización en DevOps en el que aprenderá a entregar aplicaciones y servicios a una velocidad muy alta en la organización. La facultad de upGrad le enseñará todos los entresijos de DevOps y por qué aprenderlo hará que su carrera sea rentable.
Puntos destacados del programa PG Diploma in Software Development de upGrad en DevOps:
Este curso en línea extendido de 12 meses ofrece las siguientes características:
- Sesiones en línea con conocimientos con conferencias en vivo
- Acceda al contenido valioso en Data Science & Machine Learning de forma gratuita
- Trabajando en más de 7 proyectos y asignaciones en vivo
- Aprendiendo diez lenguajes y herramientas de programación
- Garantía de colocación garantizada
- 360° Career Support con asistencia laboral