¿Qué es Jenkins?
Jenkins Es un servidor de Integración Continua de código abierto escrito en Java para organizar una cadena de acciones para lograr el proceso de Integración Continua de forma automatizada. Jenkins admite todo el ciclo de vida del desarrollo de software, desde la compilación, las pruebas, la documentación del software, la implementación y otras fases del ciclo de vida del desarrollo de software.
Jenkins es una aplicación ampliamente utilizada en todo el mundo con alrededor de 300k instalaciones y creciendo día a día. Al utilizar Jenkins, las empresas de software pueden acelerar su proceso de desarrollo de software, ya que Jenkins puede automatizar la construcción y las pruebas a un ritmo rápido.
Es una aplicación basada en servidor y requiere un servidor web como Apache Tomcat. Es por eso que el software de Jenkins es tan popular con el monitoreo que ha realizado en múltiples tareas que surgen durante el desarrollo del proyecto. Por ejemplo, si su equipo está desarrollando un proyecto, Jenkins probará continuamente la construcción de su proyecto y le mostrará los errores en las primeras etapas de su desarrollo.
En este tutorial, aprenderá
¿Qué es la integración continua?
Integración continua A menudo es un proceso de integración de cambios de código de varios desarrolladores en un solo proyecto. El software se prueba inmediatamente después de un compromiso de código. Con cada código dedicado, el código se crea y se prueba. Si se pasa la prueba, la construcción se prueba para su implementación. Si la implementación es exitosa, el código se envía a producción.
Este compromiso, construcción, prueba e implementación es un proceso continuo y de ahí el nombre de integración / implementación continua.
¿Cómo actúa Jenkins?
Jenkins es una aplicación basada en servidor y requiere un servidor web como Apache Tomcat para ejecutarse en varias plataformas como Windows, Linux, macOS, Unix, etc. Para usar Jenkins, necesita crear canalizaciones que son una serie de pasos que construirá un servidor Jenkins. Jenkins Continuous Integration Pipeline es un poderoso instrumento que consta de un conjunto de herramientas diseñadas para anfitrión, monitor, Compilacion y examen cambia el código, o código, como:
- Servidor de integración continua (Jenkins, Bamboo, CruiseControl, TeamCity y otros)
- Herramienta de control de fuente (por ejemplo, CVS, SVN, GIT, Mercurial, Perforce, ClearCase y otros)
- Construye una herramienta (Dean, ANT, Maven, Ivy, Gradle y otros)
- Marco de prueba automatizado (Selenium, Appium, TestComplete, UFT y otros)
Escalera Jenkin
- El desarrollador de Java Kohsuke Kawaguchi, que trabajaba en SUN Microsystems, estaba cansado de crear código y corregir errores repetidamente. En 2004, creó un servidor automatizado llamado Hudson que automatiza una tarea de construcción y prueba.
- En 2011, Oracle, propietario de Sun Microsystems, tuvo una disputa con la comunidad de código abierto de Hudson, por lo que bifurcaron a Hudson y lo rebautizaron como Jenkins.
- Hudson y Jenkins continuaron operando de forma independiente. Pero en poco tiempo, Jenkins consiguió muchos proyectos y contribuyentes y Hudson solo quedaron 32 proyectos. Con el tiempo, Jenkins se hizo más popular y Hudson ya no se mantiene.
¿Por qué utilizar la integración continua con Jenkins?
Algunas personas pueden pensar que la forma antigua de desarrollar el software es la mejor. Comprendemos los beneficios de CI con Jenkins con el siguiente ejemplo
Imaginemos que hay unos 10 desarrolladores trabajando en un tienda compartida. Algunos desarrolladores completan su tarea en 25 días y otros tardan 30 días en completarse.
Antes de Jenkins | Después de Jenkins |
---|---|
Una vez que cada desarrollador había completado sus tareas de codificación asignadas, solían dedicar su código de una vez. Posteriormente, Construction se prueba y se implementa. Se creó un compromiso de código y a menudo se producía un ciclo de prueba, y una compilación se realizaba después de largos días. | Cree el código y pruébelo tan pronto como el desarrollador lo proporcione. Jenkin compilará y probará el código muchas veces durante el día. Si la compilación es exitosa, Jenkins aplicará la fuente al servidor de prueba y notificará al equipo de implementación. Si la compilación falla, Jenkins notificará al equipo de desarrolladores de los errores. |
Dado que todo el código se compiló a la vez, algunos desarrolladores tuvieron que esperar hasta que otros desarrolladores terminaron de codificar para verificar su compilación. | El código se crea inmediatamente después de cualquier compromiso del desarrollador. |
Aislar, detectar y corregir errores para múltiples compromisos no es una tarea fácil. | Debido a que el código se crea después de cada compromiso individual del desarrollador, es fácil detectar qué código causó la compilación. |
Construcción de código y proceso de prueba son completamente manuales, por lo que hay muchas posibilidades de que falle. | Proceso de prueba y construcción automatizado que ahorra tiempo y reduce defectos. |
El código se utiliza cuando se corrigen y prueban todos los errores. | El código se usa después de cada compilación y prueba exitosa. |
El ciclo de desarrollo es lento | El ciclo de desarrollo es rápido. Las nuevas funciones están disponibles más fácilmente para los usuarios. Los beneficios aumentan. |
Un estudio de caso del mundo real sobre integración continua
Estoy seguro de que todos ustedes conocen un teléfono Nokia antiguo. Nokia utilizó un procedimiento llamado implementación nocturna. Después de numerosos compromisos de varios desarrolladores a lo largo del día, el software se creó todas las noches. Dado que el software solo se creó una vez al día, es muy complicado aislar, identificar y corregir los errores en una gran base de código.
Posteriormente, adoptaron un enfoque de Integración Continua. El software fue creado y probado tan pronto como un desarrollador desarrolló el código. Si se detecta algún error, el desarrollador respectivo puede solucionar rápidamente la falla.
Complementos
De forma predeterminada, Jenkins viene con un conjunto limitado de funciones. Si desea integrar su instalación de Jenkins con herramientas de control de versiones como Git, debe instalar complementos relacionados con Git. De hecho, para integrarse con herramientas como Maven, Amazon EC2, debe instalar los complementos respectivos en su Jenkins.
Ventajas de usar Jenkins
- Jenkins es administrado por una comunidad muy abierta. Cada mes, llevan a cabo reuniones públicas y reciben aportes de la comunidad para el desarrollo del proyecto Jenkins.
- Hasta la fecha se han cerrado alrededor de 280 tickets y el proyecto publica un lanzamiento constante cada tres meses.
- A medida que crece la tecnología, también lo hace Jenkins. Hasta la fecha, Jenkins ha publicado aproximadamente 320 complementos en su base de datos de complementos. Con los complementos, Jenkins se vuelve más poderoso y más rico.
- La herramienta Jenkins admite la 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 porque fue creado por un desarrollador.
Las desventajas de usar Jenkins
Si bien 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.
- Si bien a muchos desarrolladores les encanta Jenkins, su mantenimiento no es tan fácil 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 que muchas personas no implementan Jenkins es la dificultad de instalar y configurar Jenkins.
- La integración continua se rompe regularmente debido a algunos cambios menores en el sitio. La integración en curso se detendrá y, por lo tanto, requiere la atención del desarrollador.
Conclusión:
- En la Integración Continua, después de un compromiso de código, el software se construye y prueba inmediatamente
- Jenkins solía integrar una cadena de actividades para la integración continua en un proyecto de software
- Antes de Jenkins, cuando todos los desarrolladores habían completado sus tareas de codificación asignadas, solían dedicar su código al mismo tiempo. Posteriormente, Construction se prueba y se implementa.
- Después de Jenkins, el código se toma y se prueba tan pronto como el desarrollador proporciona el código. Jenkin compilará y probará el código muchas veces durante el día.
- De forma predeterminada, Jenkins viene con un conjunto limitado de funciones. Si desea integrar su instalación de Jenkins con herramientas de control de versiones como Git, entonces necesita instalar complementos relacionados con Git
- Las principales ventajas de Jenkins son que es administrado por la comunidad que realiza reuniones públicas y recibe aportes de la comunidad para desarrollar proyectos de Jenkins.
- La mayor desventaja de Jenkin es que su interfaz está desactualizada y no es fácil de usar en comparación con las tendencias actuales de la interfaz de usuario.