Aplicaciones MóvilesEstrategia Digital

Jenkins: Cómo automatizar tareas, despliegues y testing

4 Mins de lectura

Conoce cómo podemos crear tu ecosistema de herramientas QA

Como empresa tecnológica tenemos que estar actualizados en cuanto a nuevos lenguajes de programación, nuevas librerías, nuevos estándares… en definitiva, muchas cosas que es realmente difícil de asimilar sin un proceso de aprendizaje continuo. A veces esta continua revisión deja de lado el testing, la automatización de pruebas, despliegues semi-automáticos… una parte muy importante del día a día. Por ello en Hiberus intentamos dedicar tiempo también en este aspecto usando Jenkins.

¿Qué es Jenkins?

Jenkins es un aplicativo para la automatización del proceso completo de desarrollo de software, con tareas comunes como la integración continua pero sobretodo potenciando los equipos para implementar la parte técnica de la entregas continuas.

Para una persona que no está en contacto con el mundo tecnológico puede parecer un juego de palabras, pero básicamente esto viene a decir que disponemos de un software que nos permite automatizar los procesos de despliegue, la actualización de entornos, revisión de calidad de código y testing. Esto finalmente se traduce en entregas periódicas a cliente, en tiempo y forma con resultados que garantizan un producto funcional y listo para su explotación.

Jenkins debe su potencial a su ampli y versátil sistema de plugins que nos permiten realizar diferentes conjuntos de acciones, que permiten modularizar y extender la funcionalidad.

¿Qué son los plugins?

Jenkins está respaldado una gran comunidad, dónde cualquier desarrollador puede programar su propio plugin y ofrecer de nueva funcionalidad a nuestra aplicación de Jenkins. Algunos plugins realmente interesantes que usamos en nuestro día a día son FTP, SSH, GIT Conector, Task… existen cientos de plugins.

Publicación de contenidos mediante FTP

Este plugin nos permite publicar contenido en una máquina dónde dispongamos de acceso mediante FTP. Este plugin es muy usado en máquinas dónde no se dispone de un usuario SSH con el que acceder a la máquina.

Publicación de contenidos mediante SSH

Uno de mis preferidos por la potencia que nos brinda. Este plugin permite conectarnos a una máquina remota mediante SSH y realizar operaciones básicas como limpiar la cache de una aplicación, cambiar permisos a unas carpetas o ejecutar scripts en el servidor de destino.

Control de calidad

Mas que a través de un plugin en concreto, el control de calidad y pruebas emplea toda una suite la cual nos permite realizar la ejecución de pruebas funcionales y unitarias y que valida cada entrega o cambio realizado a una aplicación .

Como complemento contamos con plugins de control de calidad de código, que nos dan brindan una serie de reportes basado en estándares de métricas que nos permiten aseverar que desarrollamos aplicaciones robustas y seguras .

Gestión de usuarios

Otro aspecto muy importante a tener en cuenta a la hora de usar Jenkins es configuración o ejecución de tareas por usuario, lo que nos permite segmentar el acceso a los proyectos y entornos a los miembros autorizados.

Satisfacción del cliente

Los errores humanos, por muy profesionales que sean los equipos, están a la orden del día. Jenkins nos permite que casi cualquier persona del equipo sea capaz de realizar un despliegue, interpretar los resultados obtenidos y generar un producto listo para entregar al cliente.

Pondremos un ejemplo de un entorno algo complejo: se ha desarrollado una nueva funcionalidad que se encuentra lista para pasar a producción. Bajo este escenario  una vez concluidas todas las pruebas se notifica a nuestro equipo de sistemas, los cuales recibirán un paquete de actualización con los cambios a propagar a producción, y un listado de tareas a ejecutar: actualización de bases de datos, limpiar memoria del sistema, limpiar caches de aplicación y servidor, actualizar nodos dónde se tiene la aplicación replicada para mejorar la tasa de respuestas, etc. Como véis no son tareas triviales, y saltarnos cualquiera de estos pasos puede terminar en una aplicación caída en un entorno de producción que pudiera ser un comercio electrónico grande o una página de turismo con millones de visitas mensuales.

Con Jenkins todas estas tareas se planifican y configuran desde el minuto 0 incluyendo contramedidas si cualquiera de ellas falla, reduciendo al mínimo la ocurrencia de errores, los problemas de despliegue y el downtime entre actualizaciones.

Control de lo que desplegamos

A veces es difícil mantener informado al cliente de todo lo que va a recibir en un sprint o entrega. Con Jenkins y su integración con Git (el sistema de control de versiones que empleamos), este reporte es ta sencillo como darle al botón de Ejecutar tarea y obtendremos los cambios realizados con respecto al despliegue anterior. Hay que recalcar que en este aspecto es importantísimo que nuestro desarrolladores realicen trabajos atómicos, que no mezclen funcionalidades en cada trabajo que realizan y que se sigan algunas recomendaciones sobre escritura de mensajes. Estos mensajes finalmente pueden ser extraidos por el encargado de despliegues o el jefe de proyecto y se emplean para la elaboración de un documento más formal para entregar a los clientes con las tareas realizadas desde la última versión del aplicativo.

Pantalla de ejecución de tarea sobre Jenkins

Ejemplo de despliegue en un entorno de validación con visibilidad a cliente

 

En Hiberus intentamos ofrecer tecnología a la última, sin perder de vista la calidad de nuestros aplicativos entregados, su estabilidad, su mantenimiento y su fiabilidad en el proceso de despliegues. Si te ha gustado el artículo no dudes en compartir plugins interesantes, contarnos tu proceso de despliegues u otras cuestiones similares.

¿Quieres más información sobre nuestros servicios de QA?

Contacta con nuestro equipo de expertos en QA y Testing

    Artículos relacionados

    3 Comentarios

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ¡No te pierdas nada!

    Te mantenemos al dia de tendencias y novedades sobre el futuro del trabajo, formas de hacer crecer tu negocio, liderazgo digital y muchas cosas más..

    Newsletter