Blog

Jenkins

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.

¬ŅQu√© es Jenkins?

jenkins
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.

¬ŅQu√© es la integraci√≥n continua?

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.

Recursos de Jenkins

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.

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

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.

Leave a Reply

Your email address will not be published.

Abrir chat