¿Qué es Jenkins¿Por qué utilizar una herramienta de integración continua (CI)?
⚡ Resumen inteligente
Jenkins Es el servidor de automatización de código abierto que compila y prueba el código cada vez que un desarrollador realiza una confirmación, convirtiendo la integración continua de una tarea nocturna en un proceso que se ejecuta de forma continua durante toda la jornada laboral.
¿Qué es Jenkins?
Jenkins es un servidor de integración continua de código abierto escrito en Java para orquestar una cadena de acciones que permitan lograr el proceso de integración continua de forma automatizada. Jenkins Admite el ciclo de vida completo del desarrollo de software, desde la compilación, las pruebas y la documentación del software, hasta la implementación y otras etapas del ciclo de vida del desarrollo de software.
Jenkins es una aplicación ampliamente utilizada en todo el mundo, con cientos de miles de instalaciones y creciendo día a día. Al usar Jenkins, las empresas de software pueden acelerar su proceso de desarrollo de software, ya que Jenkins Puede automatizar la compilación y las pruebas a un ritmo rápido.
Es una aplicación basada en servidor y requiere un servidor web como Apache Tomcat. La razón Jenkins El software se ha vuelto tan popular por su monitoreo de tareas repetitivas que surgen durante el desarrollo de un proyecto. Por ejemplo, si su equipo está desarrollandoping un proyecto, Jenkins Probaremos continuamente las compilaciones de tu proyecto y te mostraremos los errores en las primeras etapas de tu desarrollo.
Nota: desplegar la GUERRA en APACHE Tomcat sigue funcionando, pero las versiones actuales incluyen un contenedor de servlets integrado, por lo que Jenkins Normalmente se ejecuta por sí solo. La línea 2.555.x LTS requiere Java 21.
¿Qué es la integración continua?
Integración continua es un proceso de integración de cambios de código de múltiples desarrolladores en un solo proyecto muchas veces. El software se prueba inmediatamente después de la confirmación del código. Con cada confirmación de código, el código se crea y se prueba. Si se pasa la prueba, se prueba la compilación para su implementación. Si la implementación es exitosa, el código se envía a producción.
Este compromiso, compilación, prueba e implementación es un proceso continuo y de ahí el nombre de integración/implementación continua.
¿Cómo Jenkins funciona?
Jenkins es una aplicación basada en servidor y requiere un servidor web como Apache Tomcat para ejecutarse en diversas plataformas como Windows, Linux, macOS, Unix, etc. Para usar Jenkins, necesitas crear pipelines que son una serie de pasos que un Jenkins El servidor lo tomará. Jenkins La canalización de integración continua es un instrumento potente que consta de un conjunto de herramientas diseñadas para alojar, supervisar, compilar y probar código o cambios en el código, como por ejemplo:
- Servidor de integración continua (Jenkins, Bamboo, CruiseControl, TeamCity, y otros)
- Herramienta de control de versiones (por ejemplo, CVS, SVN, GIT, Mercurial, Perforce, ClearCase y otras)
- Herramienta de compilación (Make, ANT, Maven, Ivy, Gradle, y otros)
- Marco de pruebas de automatización (Selenium, Appium, TestComplete, UFT, y otros)
En las versiones actuales esos pasos se encuentran en un Jenkinsarchivo adjunto al código. Jenkins El controlador lee ese archivo y entrega cada etapa a un agente, que es la máquina que realmente ejecuta el trabajo.
Jenkins Nuestra historia
- Kohsuke Kawaguchi, un Java El desarrollador, que trabajaba en SUN Microsystems, estaba cansado de crear código y corregir errores repetidamente. En 2004, creó un servidor de automatización llamado Hudson que automatiza las tareas de construcción y prueba.
- En 2011, Oracle Quien era propietario de Sun Microsystems tuvo una disputa con la comunidad de código abierto Hudson, por lo que bifurcaron Hudson y lo renombraron como Jenkins.
- Tanto Hudson como Jenkins continuó operando de forma independiente. Pero en un corto período de tiempo, Jenkins adquirió muchos proyectos y colaboradores mientras que Hudson se quedó con solo 32 proyectos. Con el tiempo, Jenkins Se hizo más popular y Hudson ya no recibe mantenimiento.
¿Por qué utilizar la integración continua con? Jenkins?
Algunas personas podrían pensar que la forma anticuada de desarrolloping El software es la mejor manera. Entendamos las ventajas de CI con Jenkins con el siguiente ejemplo
Imaginemos que hay alrededor de 10 desarrolladores trabajando en un repositorio compartido. Algunos desarrolladores completan su tarea en 25 días, mientras que otros tardan 30 días.
| Antes Jenkins | Después Jenkins |
|---|---|
|
Una vez que todos los desarrolladores habían completado las tareas de codificación asignadas, solían enviar su código todos al mismo tiempo. LaterLa compilación se prueba y se implementa. Code Se realizó la compilación del commit, y el ciclo de pruebas fue muy poco frecuente; solo se realizó una compilación después de muchos días. |
El código se compila y se prueba tan pronto como el desarrollador lo envía. Jenkins compilará y probará el código muchas veces durante el día. Si la compilación es exitosa, entonces Jenkins desplegará el código fuente en el servidor de pruebas y notificará al equipo de despliegue. Si la compilación falla, entonces Jenkins Se notificará de los errores al equipo de desarrollo. |
| Dado que el código se creó todo a la vez, algunos desarrolladores tendrían que esperar hasta que otros desarrolladores terminaran de codificar para verificar su compilación. | El código se crea inmediatamente después de que cualquiera de los desarrolladores confirme. |
| No es una tarea fácil aislar, detectar y corregir errores de múltiples confirmaciones. | Dado que el código se compila después de cada confirmación de un solo desarrollador, es fácil detectar qué código causó el fallo de compilación. |
| Code construir y proceso de prueba son completamente manuales, por lo que hay muchas posibilidades de fallar. | Proceso automatizado de construcción y prueba que ahorra tiempo y reduce defectos. |
| El código se implementa una vez que se corrigen y prueban todos los errores. | El código se implementa después de cada compilación y prueba exitosas. |
| El ciclo de desarrollo es lento. | El ciclo de desarrollo es rápido. Las nuevas funciones están más disponibles para los usuarios. Aumenta las ganancias. |
Estudio de caso del mundo real de integración continua
Estoy seguro de que todos ustedes conocen el antiguo teléfono Nokia. Nokia solía implementar un procedimiento llamado compilación nocturna. Después de múltiples confirmaciones de diversos desarrolladores durante el día, el software se desarrolló todas las noches. Dado que el software se creó solo una vez al día, es muy complicado aislar, identificar y corregir los errores en una base de código grande.
LaterAdoptaron el enfoque de Integración Continua, que se muestra a continuación. El software se compilaba y probaba tan pronto como un desarrollador enviaba código. Si se detectaba algún error, el desarrollador correspondiente podía corregirlo rápidamente.
Jenkins Plugins
Por defecto, Jenkins viene con un conjunto limitado de funciones. Si desea integrar su Jenkins Instalación con herramientas de control de versiones como Git, entonces necesitas instalar complementos relacionados con Git. De hecho, para la integración con herramientas como Maven, Amazon EC2, necesitas instalar los complementos correspondientes en tu Jenkins, como muestra el administrador de complementos a continuación.
Ventajas de usar Jenkins
- Jenkins está siendo gestionado por la comunidad, que es muy abierta. Cada mes, celebran reuniones públicas y recogen aportaciones del público para el desarrollo de Jenkins proyecto.
- El proyecto mantiene un ritmo de lanzamiento predecible: cada doce semanas se elige una nueva versión base de soporte a largo plazo y, a continuación, se publican parches programados.
- A medida que la tecnología crece, también lo hace. JenkinsLa base de datos de complementos ahora contiene más de dos mil complementos. Con los complementos, Jenkins se vuelve aún más potente y con más funciones.
- Jenkins La herramienta también admite arquitectura basada en la nube para que pueda implementarla. Jenkins en plataformas basadas en la nube.
- La razón por la cual Jenkins Su popularidad se debe a que fue creada por un desarrollador para desarrolladores.
Desventajas de usar Jenkins
Frente a Jenkins Es una herramienta muy potente, pero tiene sus defectos.
- Su interfaz está desactualizada y no es fácil de usar en comparación con las tendencias actuales de diseño de interfaces de usuario, aunque las versiones recientes han modernizado gran parte del diseño de la pantalla.
- Frente a Jenkins Aunque es muy apreciado por muchos desarrolladores, no es tan fácil de mantener porque Jenkins Se ejecuta en un servidor y requiere ciertos conocimientos de administración de servidores para supervisar su actividad.
- Una de las razones por las que muchas personas no implementan Jenkins Esto se debe a la dificultad de instalación y configuración. Jenkins.
- Las integraciones continuas se interrumpen periódicamente debido a algunos pequeños cambios de configuración. La integración continua se detendrá y, por lo tanto, requerirá cierta atención del desarrollador.
- Los conflictos de dependencias de los complementos aparecen cuando se actualizan muchos complementos en momentos diferentes, por lo que las actualizaciones de los complementos necesitan su propia ventana de mantenimiento.
Si esas compensaciones son importantes para tu equipo, compara las mejor Jenkins Herramientas alternativas y la lista más amplia de principales herramientas de integración continua antes de optar por un servidor autogestionado.


