En este art铆culo vas a poder conocer que es Jenkins y qu茅 es la integraci贸n continua, tambi茅n sus ventajas y desventajas, as铆 como numerosos enlaces hac铆a los mejores y m谩s importantes recursos con los que aprender a implementar Jenkins dentro de tus proyectos de la forma m谩s adecuada, 隆Al l铆o!

Qu茅 es Jenkins?

Jenkins es un servidor automatizado de integraci贸n continua de c贸digo abierto capaz de organizar una cadena de acciones que ayudan a lograr el proceso de integraci贸n continua (y mucho m谩s) de manera automatizada. Jenkins est谩 completamente escrito en Java y es una aplicaci贸n conocida y reconocida por DevOps de todo el mundo, m谩s de 300.000 instalaciones y + 15.500 estrellas en Github lo respaldan.

La raz贸n por la que Jenkins se hizo tan popular es porque se encarga de supervisar las tareas repetitivas que surgen dentro del desarrollo de un proyecto. Por ejemplo, si tu equipo est谩 desarrollando un proyecto, Jenkins probar谩 continuamente las compilaciones del mismo y ser谩 capaz de mostrarte los errores que aparezcan a lo largo de las primeras etapas del desarrollo.

Al usar Jenkins, las compa帽铆as de software pueden acelerar su proceso de desarrollo del c贸digo, ya que Jenkins puede automatizar, agilizar y aumentar el ritmo de toda la compilaci贸n y las pruebas de los proyectos.

Adem谩s, Jenkins puede ser implementado a lo largo de todo el ciclo de vida completo del desarrollo. Desde la fase construcci贸n inicial, la fase de pruebas, en la documentaci贸n del software, en su implementaci贸n y en todas las dem谩s etapas existentes dentro del ciclo de vida que desees aplicar.

Complementos de Jenkins

Por defecto, Jenkins viene con un conjunto limitado de caracter铆sticas y si deseas integrar la instalaci贸n de Jenkins con herramientas de control de versiones como Git, necesitar谩s instalar algunos complementos. Al igual, para crear la integraci贸n de Jenkins junto a otras herramientas; como Maven, Amazon EC2, etc.

馃捇 Web Oficial de Jenkins 馃搼 Documentaci贸n de Jenkins

La Historia de Jenkins

  • Kohsuke Kawaguchi, desarrollador de Java que trabajaba en SUN Microsystems, estaba cansado de construir el c贸digo y corregir errores repetidamente. En 2004, cre贸 un servidor de automatizaci贸n llamado Hudson que automatizaba la tarea de compilaci贸n y el trabajo de la realizaci贸n de pruebas.
  • En 2011, Oracle, propietario de Sun Microsystems, tuvo una disputa con la comunidad de c贸digo abierto de Hudson y decidi贸 bifucar el proyecto y renombrarlo como Jenkins.
  • Tanto Hudson como Jenkins continuaron operando de manera independiente. Pero en poco tiempo, Jenkins fue siendo utilizado en muchos m谩s proyectos y junto a ellos fueron apareciendo muchos m谩s nuevos contribuyentes al c贸digo fuente. Hudson, en la actualidad, se encuentra descontinuado; puesto que con el paso del tiempo, Jenkins se hizo m谩s y m谩s popular.

馃敐 Regresar al Inicio 馃敐 馃敄 Ir al 脥ndice

Qu茅 es la integraci贸n continua?

En la integraci贸n continua despu茅s de una confirmaci贸n del c贸digo, el software se va creando y probando instant谩neamente. En un proyecto grande con muchos desarrolladores, los 鈥渃ommits鈥 o cambios se realizan muchas veces todos los d铆as. Con cada env铆o del c贸digo confirmado, el proyecto se auto-genera y se prueba.

Si pasa la prueba, se prueba la compilaci贸n para la implementaci贸n; y si la implementaci贸n es exitosa, el c贸digo se env铆a a producci贸n.

Este ciclo de actualizaci贸n, compilaci贸n, prueba e implementaci贸n es lo que se denomina un proceso continuo y por esto; se le denomina integraci贸n continua, implementaci贸n continua u distribuci贸n continua.

Una tuber铆a de integraci贸n continua es un poderoso instrumento que consiste en un conjunto de herramientas dise帽adas para alojar, monitorear, compilar y probar c贸digo o m煤ltiples cambios del c贸digo, como por ejemplo:

  • Servidores de integraci贸n continua (Jenkins, Bamboo, CruiseControl, TeamCity y otros)
  • Herramientas de control de versiones (CVS, SVN, GIT, Mercurial, Perforce, ClearCase y otros)
  • Herramientas de compilaci贸n (Make, ANT, Maven, Ivy, Gradle y otras)
  • Framework de pruebas o 鈥渢esting鈥 automatizados (Selenium, Appium, TestComplete, UFT y otros)

Por qu茅 debemos realizar la integraci贸n continua con Jenkins?

Algunas personas podr铆an pensar que la forma tradicional de desarrollar el software es la mejor. Intentemos comprender las ventajas de la integraci贸n continua o CI con Jenkins, a trav茅s del siguiente ejemplo:

Imaginemos que hay alrededor de 10 desarrolladores que est谩n trabajando en un repositorio compartido, algunos desarrolladores completan su tarea en 25 d铆as, mientras tanto otros tardan 30 d铆as en completarla.

Antes de Jenkins Despu茅s de Jenkins
Una vez que todos los desarrolladores hayan completado sus tareas de codificaci贸n asignadas, esperaban a confirmar su c贸digo al mismo tiempo. M谩s tarde, se realizan las pruebas y se implementaba. Por tanto, la compilaci贸n del c贸digo y el ciclo de prueba era muy poco frecuente y se realizaba una sola compilaci贸n despu茅s de muchos d铆as. El c贸digo se crea y prueba tan pronto como el desarrollador lo confirma. Jenkins compilar谩 y probar谩 el c贸digo muchas veces durante el d铆a. Si la compilaci贸n es exitosa, Jenkins desplegar谩 la fuente en el servidor de prueba y notificar谩 al equipo de implementaci贸n. Si la compilaci贸n falla, Jenkins notificar谩 los errores al equipo de desarrolladores.
Dado que el c贸digo se creaba solamente una vez, algunos desarrolladores ten铆an que esperar hasta que el resto terminasen antes de verificar. El c贸digo se crea inmediatamente despu茅s de que cualquiera de los desarrolladores actualiza.
No era una tarea f谩cil aislar, detectar y corregir errores sobre m煤ltiples modificaciones cargadas en una sola actualizaci贸n. Dado que el c贸digo se construye despu茅s de cada actualizaci贸n de un solo desarrollador, es f谩cil detectar qu茅 c贸digo caus贸 los fallos a la hora de la compilaci贸n.
El proceso de creaci贸n y prueba de c贸digo es completamente manual, por lo que hay muchas posibilidades de que apareciesen fallos. El proceso automatizado de construcci贸n y pruebas ahorra mucho tiempo y reduce muchos posibles defectos.
El c贸digo se implementa para compilar, una vez que todos los errores se corrigen y prueban, retrasando as铆 las pruebas finales ante de producci贸n. El c贸digo se implementa despu茅s de cada compilaci贸n y prueba exitosas.
El ciclo de desarrollo es demasiado lento. El ciclo de desarrollo es m谩s r谩pido. Las nuevas funciones est谩n disponibles antes, para los usuarios por lo que se aumentan las ganancias.

馃敐 Regresar al Inicio 馃敐 馃敄 Ir al 脥ndice 馃巵 Visita Nuestra Tienda 馃巵

Antes de trabajar con Jenkins

  • Una vez que todos los desarrolladores hab铆an completado sus tareas de codificaci贸n asignadas, sol铆an confirmar su c贸digo al mismo tiempo. M谩s tarde, Build se prueba y se implementa.

  • Compilaci贸n de c贸digo construida, y el ciclo de prueba fue muy poco frecuente, y se realiz贸 una sola compilaci贸n despu茅s de muchos d铆as.
  • Dado que el c贸digo se cre贸 de una vez, algunos desarrolladores tendr铆an que esperar hasta que otros desarrolladores terminen de codificar para verificar su compilaci贸n.
  • No es una tarea f谩cil aislar, detectar y corregir errores para m煤ltiples confirmaciones.
  • El proceso de creaci贸n y prueba de c贸digo es completamente manual, por lo que hay muchas posibilidades de falla.
  • El c贸digo se implementa una vez que todos los errores se corrigen y prueban.
  • El ciclo de desarrollo es lento.

Despu茅s de trabajar con Jenkins

  • El c贸digo se crea y prueba tan pronto como el desarrollador lo confirma. Jenkin compilar谩 y probar谩 el c贸digo muchas veces durante el d铆a.
  • Si la compilaci贸n es exitosa, Jenkins desplegar谩 la fuente en el servidor de prueba y notificar谩 al equipo de implementaci贸n.
  • Si la compilaci贸n falla, Jenkins notificar谩 los errores al equipo de desarrolladores.
  • El c贸digo se crea inmediatamente despu茅s de que cualquiera de los desarrolladores se compromete.
  • Dado que el c贸digo se construye despu茅s de cada confirmaci贸n de un solo desarrollador, es f谩cil detectar qu茅 c贸digo caus贸 que fallara la compilaci贸n.
  • Proceso automatizado de construcci贸n y prueba que ahorra tiempo y reduce defectos.
  • El c贸digo se implementa despu茅s de cada compilaci贸n y prueba exitosas.
  • El ciclo de desarrollo es r谩pido. Las nuevas funciones est谩n m谩s disponibles para los usuarios. Aumenta las ganancias.

馃巵 Visita Nuestra Tienda 馃巵

Ventajas de usar Jenkins

  • Jenkins est谩 siendo administrada por la comunidad, que es muy abierta. Todos los meses, celebran reuniones p煤blicas y reciben aportes del p煤blico para el desarrollo del proyecto Jenkins.
  • Hasta ahora, alrededor de 280 entradas est谩n cerradas, y el proyecto publica un lanzamiento estable cada tres meses.
  • A medida que la tecnolog铆a crece, tambi茅n lo hace Jenkins. Hasta ahora, Jenkins tiene alrededor de 320 complementos publicados en su base de datos de complementos. Con los complementos, Jenkins se vuelve a煤n m谩s potente y rico en funciones.
  • Jenkins tambi茅n admite arquitectura basada en la nube para que pueda implementar Jenkins en plataformas basadas en la nube.
  • La raz贸n por la que Jenkins se hizo popular es que fue creado por un desarrollador para desarrolladores.

Desventajas de usar Jenkins

Aunque Jenkins es una herramienta muy poderosa, tiene sus defectos.

  • Su interfaz est谩 desactualizada y no es f谩cil de usar en comparaci贸n con las tendencias actuales de la interfaz de usuario.
  • Aunque Jenkins es amado por muchos desarrolladores, no es tan f谩cil mantenerlo porque Jenkins se ejecuta en un servidor y requiere algunas habilidades como administrador del servidor para monitorear su actividad.
  • Una de las razones por las cuales muchas personas no implementan Jenkins se debe a su dificultad para instalar y configurar Jenkins.
  • Las integraciones continuas se rompen regularmente debido a algunos peque帽os cambios de configuraci贸n. La integraci贸n continua se detendr谩 y, por lo tanto, requiere cierta atenci贸n del desarrollador.

馃敐 Regresar al Inicio 馃敐 馃敄 Ir al 脥ndice 馃巵 Visita Nuestra Tienda 馃巵

Recursos de Jenkins

Recursos adicionales sobre Jenkins

馃敐 Regresar al Inicio 馃敐 馃敄 Ir al 脥ndice

Relacionados

15 Mejores alternativas a Jenkins en 2020

鈻 Jenkins X: Divulgaci贸n, solicitud y b煤squeda de ayuda

鈻 驴Qu茅 es Tekton? Novedades y Cambios

鈻 隆Disponible Tekton Beta!

鈻 Screwdriver: Una plataforma de construcci贸n escalable

鈻 Introducci贸n a Zuul para mejorar el CI / CD

鈻 驴Qu茅 es la interoperabilidad dentro de la distribuci贸n continua?

鈻 Mapa Interactivo de Proyectos y Empresas de Cloud Native 2020

鈻 Escalado de entrega continua y la automatizaci贸n de runbooks a trav茅s de las interfaces de interoperabilidad

馃彌 Historia de entrega continua de Dailymotion con Jenkins, Jenkins X y Tekton

脥ndice

馃敟 Quiz谩s tambi茅n te interese: C贸mo aprender Python en 2020, 馃 鈻 C贸mo aprender aprendizaje autom谩tico o machine learning en 2020 馃, 鈻 M谩s de 200 de los mejores tutoriales de aprendizaje autom谩tico, PNL y Python

La Gu铆a de Jenkins fue creada el 22 de Mayo de 2020 y su 煤ltima edici贸n fue realizada el 22 de Mayo de 2020 馃槈