Integración Jenkins Git: útil para todos los profesionales de DevOps



Este blog trata sobre la integración de Git con Jenkins. También analiza las ventajas de integrar Git con Jenkins junto con la demostración.

ciertamente está incompleto sin Jenkins. Jenkins junto con Git es una combinación maravillosa. Entonces, en este artículo, hablaré sobre Jenkins Git Integration y sus ventajas. Los punteros que vamos a cubrir son los siguientes:

Así que comencemos con nuestro primer tema.





Qué es Git - Por qué Git ¿Llego a existir?

Todos sabemos que “la necesidad es la madre de todos los inventos”. Del mismo modo, Git surgió para satisfacer ciertas necesidades que los desarrolladores enfrentaban antes de Git. Entonces, demos un paso atrás para aprender todo sobre los sistemas de control de versiones (VCS) y cómo nació Git.

Control de versiones es la gestión de cambios en documentos, programas informáticos, grandes sitios web y otra recopilación de información.



Hay dos tipos de VCS:

  • Sistema de control de versiones centralizado (CVCS)

    cómo compilar en java
  • Sistema de control de versiones distribuido (DVCS)



VCS centralizado

Un sistema de control de versiones centralizado (CVCS) utiliza un servidor central para almacenar todos los archivos y permite la colaboración en equipo. Funciona en un único repositorio al que los usuarios pueden acceder directamente a un servidor central.

Consulte el diagrama a continuación para tener una mejor idea de CVCS:

El repositorio en el diagrama anterior indica un servidor central que puede ser local o remoto y que está conectado directamente a cada una de las estaciones de trabajo del programador.

Cada programador puede extraer o actualizar sus estaciones de trabajo con los datos presentes en el repositorio. También pueden realizar cambios en los datos o cometer al repositorio. Cada operación se realiza directamente en el repositorio.

Aunque parece bastante conveniente mantener un solo repositorio, tiene algunos inconvenientes importantes. Algunos de ellos son:

  • No está disponible localmente, lo que significa que siempre debe estar conectado a una red para realizar cualquier acción.

  • Dado que todo está centralizado, en cualquier caso, si el servidor central se bloquea o se corrompe, se perderán todos los datos del proyecto.

Aquí es donde Distributed VCS resuelve el problema.

VCS distribuido

Estos sistemas no dependen necesariamente de un servidor central para almacenar todas las versiones de un archivo de proyecto.En Distributed VCS, cada colaborador tiene una copia local o 'clon' del repositorio principal. Aquí todos mantienen un repositorio local propio que contiene todos los archivos y metadatos presentes en el repositorio principal.

Lo entenderá mejor consultando el diagrama a continuación:

Como puede ver en el diagrama anterior, cada programador mantiene un repositorio local por sí solo, que en realidad es la copia o clon del repositorio central en su disco duro. Pueden confirmar y actualizar su repositorio local sin ninguna interferencia.

Pueden actualizar sus repositorios locales con nuevos datos del servidor central mediante una operación llamada ' Halar 'Y afectar los cambios en el repositorio principal mediante una operación llamada' empujar ”De su repositorio local.

Ahora intentemos conocer la definición de Git.

  • Git es una herramienta de control de versiones distribuida que admite flujos de trabajo distribuidos no lineales al proporcionar garantía de datos para desarrollar software de calidad. Herramientas como Git permiten la comunicación entre el equipo de desarrollo y de operaciones.

  • Normalmente cuando estás desarrollando un gran proyecto tienes una gran cantidad de colaboradores. Por eso es muy importante tener comunicación entre los colaboradores al realizar cambios en el proyecto.

  • Los mensajes de confirmación en Git juegan un papel muy importante en la comunicación entre el equipo. Aparte de la comunicación, la razón más importante para usar Git es que siempre tienes una versión estable del código contigo.

  • Por lo tanto, Git juega un papel vital en el éxito en DevOps.

¿Qué es Jenkins?

Jenkins es una herramienta de automatización de código abierto escrita en Java con complementos creados para fines de integración continua. Jenkins se utiliza para crear y probar sus proyectos de software continuamente, lo que facilita a los desarrolladores la integración de cambios en el proyecto y facilita a los usuarios la obtención de una nueva versión. También le permite entregar continuamente su software mediante la integración con una gran cantidad de tecnologías de implementación y prueba.

Con Jenkins, las organizaciones pueden acelerar el proceso de desarrollo de software mediante la automatización. Jenkins integra procesos de ciclo de vida de desarrollo de todo tipo, incluidos compilación, documentación, prueba, empaquetado, etapa, implementación, análisis estático y mucho más.

Jenkins logra la integración continua con la ayuda de complementos. Los complementos permiten la integración de varias etapas de DevOps. Si desea integrar una herramienta en particular, debe instalar los complementos para esa herramienta. Por ejemplo, Git, proyecto Maven 2, Amazon EC2, editor HTML, etc.

Las ventajas de Jenkins incluyen:

  • Es una herramienta de código abierto con un gran apoyo de la comunidad.

  • Demasiado fácil de instalar.

  • Tiene más de 1000 complementos para facilitar su trabajo. Si no existe un complemento, puede codificarlo y compartirlo con la comunidad.

  • Es gratis.

  • Está construido con Java y, por lo tanto, es portátil para todas las plataformas principales.

Ahora sabe cómo Jenkins supera las deficiencias tradicionales de SDLC. La siguiente tabla muestra la comparación entre 'Antes y después de Jenkins'.

Antes de JenkinsDespués de Jenkins
El código fuente completo fue construido y luego probado. Localizar y corregir errores en caso de falla de compilación y prueba fue difícil y consumió mucho tiempo, lo que a su vez ralentiza el proceso de entrega del software.Cada confirmación realizada en el código fuente se crea y se prueba. Entonces, en lugar de verificar todo el código fuente, los desarrolladores solo necesitan enfocarse en una confirmación en particular. Esto conduce a frecuentes lanzamientos de software nuevos.
Los desarrolladores tienen que esperar los resultados de las pruebasLos desarrolladores conocen el resultado de la prueba de cada confirmación realizada en el código fuente durante la ejecución.
Todo el proceso es manual.Solo necesitasconfirmar los cambios en el código fuente y Jenkins automatizará el resto del proceso por usted.

¿Por qué Jenkins y Git se utilizan juntos?

Como se discutió anteriormente, Vamos es un administrador de control de fuentes. Ahí es donde guarda su código fuente para rastrear todos los cambios de código que ocurren con el tiempo y para establecer una línea de base de las versiones cuando estén listas para su lanzamiento.

Jenkins , por otro lado, es una solución de integración continua. Está diseñado para automatizar la mayoría de las tareas que un desarrollador tiene que hacer mientras desarrolla una nueva aplicación (verificaciones de calidad del código, construcción, archivo de artefactos de construcción, pruebas de integración, implementación en varios entornos, etc.) Sin una solución de CI, un desarrollador tiene que pasar mucho tiempo haciendo estas tareas repetitivas no productivas.

Ventajas:

  • Git y Jenkins son muy poderosos, pero un gran poder conlleva una gran responsabilidad. Es bastante común justificar una cantidad innecesaria de complicación en una tubería de construcción simplemente porque puedes.
  • Si bien Jenkins tiene muchos trucos ingeniosos bajo la manga, es fácil aprovechar las características de Git, ya que hace que la administración de versiones y seguimiento de errores significativamente más fácil tiempo extraordinario.
  • Podemos hacer esto teniendo cuidado con las versiones de código que construimos y etiquetándolas apropiadamente. Esto mantiene información relacionada con la publicación cercana al código , en lugar de confiar en los números de compilación de Jenkins u otros apodos.
  • Protección de las ramas de Git reduce el riesgo de error humano y la automatización de tantas tareas como sea posible reduce la frecuencia con la que tenemos que molestar (o esperar) a esos humanos.

Ejemplo:

Tomemos el ejemplo de una nueva función en una aplicación web. Un desarrollador será identificado y asignado a la tarea, él toma la base de código existente del control de fuente, por ejemplo, Git, realiza sus cambios, realiza pruebas unitarias, garantiza la calidad del código manualmente y comprueba el nuevo código en Git.

Luego tiene que compilar el código, implementarlo en la instancia de integración, ejecutar las pruebas de integración y, una vez que el cambio parece satisfactorio, generar una solicitud de implementación de producción. Ahora, si solo tuviéramos un subordinado que se encargara de estas secciones de prueba, construcción, controles de calidad e implementación, el desarrollador pobre podría haberse enfocado mejor en esas cosas en las que es realmente bueno: implementar y mejorar la lógica de la función.

Este minion es Jenkins. Actúa como un orquestador para ejecutar todas estas actividades una vez que el cambio se registra en el control de código fuente (Git) y, por lo tanto, brinda información rápida al desarrollador si los cambios que ha realizado son lo suficientemente buenos para la implementación de producción o no.Es extremadamente flexible, de código abierto y tiene un montón de complementos que pueden hacer casi cualquier cosa que desees.

Manifestación

Aquí veremos cómo integrar Git con Jenkins. Hay 5 pasos que debes seguir:

1. Cree un programa de muestra:

Puede crear cualquier programa de muestra que desee, como Java o Python o cualquier otro programa. Aquí escribiremos un sencillo Programa de Python que imprime ¡Hola, mundo!

2. Cree un trabajo de Jenkins:

  • Aquí primero necesitas iniciar Jenkins usando el símbolo del sistema.

  • Para eso, primero debe navegar a la ubicación de Jenkins en su sistema y usar el comando java -jar jenkins.war

  • Después de ejecutar este comando, abra el navegador web y vaya a la página de inicio de Jenkins usando el enlace localhost: 8080 . Este es el número de puerto predeterminado.

  • Abra la página de inicio de Jenkins por ingresando el nombre de usuario y la contraseña.

  • Para crear un proyecto, haga clic en Nuevo artículo y entrar en el nombre del proyecto y seleccione Proyecto Freestyle . Haga clic en Aceptar.

3. Agregue este programa a Github:

  • Abrir git bash en su sistema. Navegar a la ubicación de su programa. Inicialice un repositorio vacío usando el comando git init .

  • Usa el comando git add. para agregar el archivo al área de ensayo desde el directorio de trabajo.

  • Ahora agregue el archivo al repositorio local usando el comando git commit -m 'archivo demo.py agregado' .

  • Ahora tienes que empujar este archivo al repositorio remoto. Para hacerlo, vaya a su cuenta de GitHub y cree un nuevo repositorio público. Ahora copia la ubicación de este repositorio y ve a la terminal git bash. Aquí escribe el comando git remoto agregar origen . Dado que ahora se ha conectado al repositorio remoto, ahora puede enviar su código allí usando el comando git push -u origin master. Para verificar esto, vaya a la cuenta de GitHub y actualice la página. Verá el archivo agregado allí.

4. Agregue el complemento Git en Jenkins:

  • En la página de inicio de Jenkins, vaya a Administrar Jenkins .

  • Luego haga clic en Administrar complementos . Aquí verifique el complemento Git obtenido en la sección instalada. Si no está disponible aquí, búsquelo en la sección disponible y descárguelo.

5. Configure el trabajo de Jenkins para activar la compilación:

  • Vaya al proyecto en Jenkins que creamos en el paso 2. Aquí, en la sección Administración de código fuente, seleccione git e ingrese el enlace del repositorio público que creó en el paso 3. A continuación, en el Crear sección de activadores , haga clic en Opción de encuesta SCM . Aquí, en la parte del Programa, debe ingresar cinco asteriscos separados por un espacio. Esto no es más que sintaxis cron para su trabajo. Esto significa que Jenkins comprobará si hay cambios en el código fuente cada minuto y, si hay algún cambio, activará la compilación de Jenkins.

    ¿Qué es un objeto inmutable en Java?
  • Haga clic en Aplicar y luego en Salvar . A continuación, en la página de inicio de su proyecto, haga clic en Construye ahora . Esto ejecutará el proyecto y en la salida de la consola, puede ver la salida de su programa del estado de su trabajo de Jenkins. Si todo está bien, se mostrará como Éxito .

Entonces, así es como se realiza la integración de Jenkins Git. Con esto, llegamos al final de este artículo sobre la integración de Jenkins Git. Espero que hayas disfrutado de este artículo.

Ahora que has entendido lo que Integración Jenkins Git es, mira esto por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso Edureka DevOps Certification Training ayuda a los alumnos a comprender qué es DevOps y a adquirir experiencia en varios procesos y herramientas de DevOps, como Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack y GIT para automatizar varios pasos en SDLC.

Tienes una pregunta para nosotros? Por favor, menciónalo en la sección de comentarios y nos comunicaremos contigo.