¿Qué es Jenkins?

Que es Jenkins

Es un servidor automatizado basado en la integración continua de datos y está escrito totalmente en el lenguaje de programación Java. Fue desarrollado con un código abierto para poder organizar y ejecutar una serie de acciones que  hagan posible el proceso de integración continua de forma automática.

Tabla de contenido

El mundo de la programación es un tanto complicado con mucho tiempo implicado para solo desarrollar una simple aplicación u otro software; para estos casos hay herramientas como Jenkins.

Esta herramienta le permite al desarrollador revisar su código varias veces y detectar errores en cualquier etapa de su proyecto. Si eres programador, definitivamente, tienes que seguir leyendo para conocer más de este instrumento que te será muy útil en tu trabajo y proyectos.

Por si desconoces el termino, la integración continua es un proceso mediante el cual se ira compilando  y  ejecutando de manera continua un proyecto o código, para detectar errores o fallas cada cierto tiempo.

Cuando se habla de integración se refiere a compilación y ejecución. Mientras, que un proceso continuo, es un ciclo de implementación, ejecución, compilación  y actualización de un proyecto.

¿Para qué sirve, y cuáles son los usos de Jenkins?

Jenkins logro conseguir éxito y  popularidad, ya que sirve para supervisar las tareas repetitivas que surgen dentro del desarrollo de un proyecto. Este servidor se encargara continuamente  de las compilaciones del proyecto y será capaz de enseñarte los errores que surjan a lo largo de todas las etapas del trabajo.

Las compañías de software y los desarrolladores suelen usar Jenkins para acelerar el proceso de desarrollo del código, poder automatizar, agilizar y aumentar el ritmo de toda la compilación y las pruebas de los proyectos.

Esta herramienta permite implementarla a lo largo de todo el ciclo de vida o en cualquier fase del desarrollo. Puede usarse desde la fase inicial,  de pruebas, en la documentación del software, en su implementación y cualquier otra etapa que se le vaya  o quiera aplicar.

Modelo de seguridad

El modelo de seguridad  usado en Jenkins depende de los siguientes factores:

  1. Control de acceso: Esta herramienta permite personalizar el control de acceso por 2 medios, la autorización y la autenticación del usuario.
  2. Protección de amenazas externas: Jenkins puede protegerse de amenazas como ataques de falsificación de petición en sitios cruzados (CSRF) y compilaciones maliciosas.

Esta herramienta, con el fin de poder aumentar su potencialidad y sus funciones cuenta con varios recursos disponibles para los usuarios, los cuales te detallaremos a continuación.

Jenkins X

Esta es una solución guiada sobre la integración continua y entrega continua para aplicaciones nativas de la nube moderna con Jenkins para la plataforma Kubernetes.

James Strachan (líder del proyecto) y Kohsuke Kawaguchi (fundador del proyecto), ponen a la disposición  de los usuarios mucha información de Jenkins X, en varias publicaciones de su blog y en la página web oficial del proyecto que lleva el mismo nombre.

Jenkins Essentials

Un recurso creado por su fundador para que la comunidad de usuarios pudieran descargar e instalar y usar  Jenkins en cinco minutos.

Una de las mejores características de estos sistemas en este aspecto es el relacionado con la asignación dinámica de capacidades, protecciones y rendimiento. Al ser considerados los recursos como depósitos de almacenamiento asignables, vas a poder determinar los niveles más adecuados de estas tres según como tú mismo/a lo dispongas.

Blue Ocean UX gráfico

El Blue Ocean UX grafico permite que la experiencia del desarrollador sea más intuitiva y que la entrega continua sea accesible para todos los usuarios.

Tubería declarativa

Trata de una sintaxis declarativa simple y sirve para definir las tuberías de entrega como código.

Jenkins Pipeline

Permite a través de un potente lenguaje de secuencias de comandos recibir un código para crear y administrar la entrega de software.

Historia de Jenkins

Jenkins fue originalmente desarrollado con el nombre Hudson por Kohsuke Kawaguchi en el verano del 2004 en la empresa desarrollo de software Sun Microsystems.

Kawaguchi, cansado de perder tiempo corrigiendo códigos de manera repetitiva, creo este proyecto, el cual público su primera versión en febrero de 2005.

En noviembre de 2010 surgieron problemas respecto a la administración y gestión del proyecto por parte de Oracle, propietario de Sun Microsystems. En la disputa, Oracle, en el diciembre del 2010 reclamó el derecho al nombre y marca registrada como Hudson, obligando a Kawaguchi y a su equipo a cambiar el nombre el 11 de Enero del 2011.

Luego de una reunión el 29 de enero de ese año en curso, se aprobó que el proyecto dejara de ser Hudson y se llamaría Jenkins. 3 días después de ese mismo año, Oracle, anuncio que Hudson y Jenkins continuarían su proyecto de forma independiente.

Para el año del 2016, en Julio, se hizo pública la primera versión 2.x con soporte LTS, a partir de ese momento muchos contribuyentes aparecieron y fueron ampliando el proyecto de Kawaguchi.

Al día de hoy, Jenkins ya va por la versión 2.62,  y su uso fue tan extendido que termino por descontinuar a Hudson.

El trabajo antes y después con Jenkins

Antes de la aparición de Jenkins, trabajar en un proyecto resultaba para el desarrollador una tarea larga y forzosa. Donde tenían que dedicar mucho tiempo a la parte de corrección del mismo.

Y no solo esto, si trabajaban en grupo o de forma individual tenían que esperar a que todas las partes estuvieran presente para su corrección y compilación. Lo que hacía perder, evidentemente, mucho tiempo  y más si se trabajaba en grupo donde se busca optimizar las horas trabajo.

Cuando apareció Jenkins y otros servidores parecidos con  el proceso de integración continua, le permitió al desarrollador, realizar la integración de su parte del proyecto sin esperar las demás. Se comenzó a optimizar tiempo y eficiencia, tanto si se trabajara en grupo o individual. Las ganancias aumentaron y los usuarios podían tener su software menos de lo esperado.

Ventajas

  • El servidor de Jenkins es administrado por una comunidad abierta a las opiniones, aportes que tiene cada usuario, y se encargan de implementarlos a la herramienta. También, suelen hacer reuniones y conferencias para ampliar más la funcionalidad de este proyecto.
  • Jenkins, al igual que la tecnología se encuentra en crecimiento, con 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 que logran adaptarse al desarrollador.
  • El servidor de Jenkins se puede implementar en plataformas basadas en la nube, ya que admite arquitectura basada en la nube.
  • Esta herramienta fue hecha por desarrolladores para desarrolladores, por lo que sus funciones se logran adaptar a las necesidades de cada programador. Por este motivo, también gano mucha fama.

Desventajas

  • Algo muy incómodo es que su interfaz está desactualizada y no es fácil de usar en comparación con otras interfaces actuales.
  • No es fácil poderlo mantener, porque Jenkins se ejecuta en un servidor y requiere de habilidades como administrador del servidor para monitorear su actividad, esto podría ser inconveniente para algunos desarrolladores.
  • Jenkins resulta difícil para instalar y configurarlo, por esta razón muchas personas no suelen usarlo mucho.
  • Las integraciones continuas tienden a ser regularmente interrumpida por a algunos pequeños cambios de configuración. Al ocurrir esta situación, el proceso se detendrá y requerirá la atención del desarrollador para ponerlo en marcha nuevamente.
  • Jenkins, al igual que la tecnología se encuentra en crecimiento, con 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 que logran adaptarse al desarrollador.
  • El servidor de Jenkins se puede implementar en plataformas basadas en la nube, ya que admite arquitectura basada en la nube.
  • Esta herramienta fue hecha por desarrolladores para desarrolladores, por lo que sus funciones se logran adaptar a las necesidades de cada programador. Por este motivo, también gano mucha fama.

Más entradas de blog como esta

¿Qué es Nginx y cómo funciona?

¿Qué es Nginx y cómo funciona?

¿Qué es Nginx y cómo funciona? NGINX es un servidor web de código abierto y

Qué es Kubernetes

Qué es Kubernetes

¿Qué es Kubernetes? Kubernetes, también conocido en inglés  como K8s, es una plataforma de código

Qué es Docker

Qué es Docker

¿Qué es Docker? Actualmente el software no es simple, incluso algunas App básicas pueden contener