07/03/2018 | Fran Menendez | 1,218 Visitas

Jenkins, automatización de tareas aplicada a las aplicaciones móviles

Anteriormente en nuestro blog ya hablamos de Jenkins de una manera general. Ahora queremos centrarnos en cómo el departamento de Hiberus Mobile aplica este software de despliegue en sus proyectos.

A la hora de realizar un proyecto nuevo o mantener uno existente, existen ciertos procedimientos invariantes que resultan tediosos de realizar constantemente. Estos procedimientos pueden ir desde generar reportes de los tests de las aplicaciones, generar las aplicaciones per se, o su despliegue en los distintos markets de apps. Para ello, existen ciertas herramientas que permiten la automatización de todas estas tareas y además ofrecen una serie de analíticas para monitorizar el proceso en sus distintas fases. En este ámbito de DevOps existen múltiples herramientas disponibles, entre otras, Jenkins.

¿Qué es Jenkins?

Jenkins se postula como una aplicación web, fácilmente desplegable en un entorno local, que permite automatizar tareas a través de la gran variedad de plugins. Estos pueden ser desde la obtención de código de repositorios GIT hasta la generación de una aplicación para iOS sin necesidad de abrir otras aplicaciones.

¿Qué ventajas ofrece?

En primer lugar, una de las ventajas más importantes que se puede encontrar una empresa que tenga pensado instaurar uno de estos sistemas, es que se trata de un producto gratuito. La otra es que Jenkins es capaz de realizar tareas complejas a través de una ejecución simple de código. Además dispone de una gran variedad de plugins que ofrecen la posibilidad de realizar múltiples acciones y una personalización completa del sistema. Finalmente, Jenkins ofrece diversas alternativas para ejecutar sus tareas, desde ejecuciones automatizadas cuando se suban cambios a los repositorios GIT, hasta una API REST para iniciar, actualizar descripciones o habilitar/deshabilitar tareas.

¿Qué desventajas tiene?

A pesar de que Jenkins como tal no tiene costes asociados, los servidores dedicados en los que se ejecuta, sí suponen un coste. Estos costes además pueden variar mucho dependiendo de la carga de trabajo del servidor y por tanto no es fácil predecir su impacto final. Por otra parte, a pesar de que obtener un funcionamiento básico puede resultar rápido y trivial, si se quieren realizar automatizaciones más complejas habrá que invertir tiempo y esfuerzo, ya que habrá que integrar y personalizar cada paso de una tarea, lo cual requiere de gente cualificada y con experiencia.

Finalmente, una de sus grandes ventajas (la capacidad de usar plugins para procesos que no se encuentran de forma nativa en la plataforma) también es una gran desventaja. Esto es porque si se requiere la ejecución de algo en concreto que no se encuentre ni de forma nativa ni en plugins habrá que buscar integraciones con otros sistemas externos, con los gastos que ello conlleva.

Ejemplo: Despliegue automatizado de aplicaciones iOS en la App Store. Habrá que recurrir a otras integraciones para poder realizar esta funcionalidad que ningún plugin ni la propia aplicación ofrecen de forma nativa.

Alternativas a Jenkins

A pesar de ser una de las principales herramientas de referencia en el ámbito de la Integración Continua / Entrega Continua (C.I. / C.D.) debido a la gran variedad de opciones que ofrece, existen otras alternativas similares en funcionalidad, destacando:

  • Fastlane: esta herramienta permite compilar y distribuir aplicaciones en los distintos markets de cada plataforma y es fácilmente integrable en otros sistemas de C.I. como Jenkins. Además, ofrece la posibilidad de realizar capturas de pantalla en los distintos idiomas y dispositivos a los que de soporte una aplicación, así como la distribución de versiones beta tanto para iOS como Android.
  • Travis C.I.: esta herramienta ofrece la posibilidad de ejecutar distintas tareas y la configuración de distintos entornos a través de ficheros YAML. Destaca la integración que ofrece con Github, permitiendo ver el estado del proyecto antes de aceptar cambios (especialmente útil para evitar que se acepten cambios que provoquen fallos en producción).
  • Circle C.I.: similar a Travis, esta herramienta ofrece la posibilidad de automatizar el testing y el despliegue de los distintos proyectos mediante una integración en Cloud con los principales proveedores VCS (Github, Github Enterprise y Bitbucket).
  • BuddyBuild: esta herramienta ofrece posibilidades de compilación y despliegue de aplicaciones, además de encargase de la tediosa labor de la firma y gestión de certificados para aplicaciones de iOS y Android. Recientemente ha sido comprada por Apple y ha eliminado la compatiblidad con Android.

 

En este otro artículos te damos más información sobre el uso de Jenkins en tus proyectos móviles así como los plugins más recomendados y utilizados por nuestro equipo de Hiberus Mobile en sus desarrollos.

 

Multicanalidad : Desarrollos para dispositivos móviles

Hiberus Mobile es nuestro departamento específico dedicado al desarrollo de aplicaciones para dispositivos móviles y soluciones omnicanal.

Hiberus cuenta con probada experiencia en el desarrollo de soluciones adaptadas a dispositivos móviles, que favorecen la accesibilidad y posibilitan la creación de nuevos modelos de negocio.

¿Te ayudamos?

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*

¡Contacta con nosotros!

¿ALGUNA DUDA?

Llámanos y nuestros expertos realizarán un asesoramiento personalizado sin compromiso

902 87 73 92

SOLICITAR INFORMACIÓN





Afirmo que he leido el aviso legal y acepto la Política de privacidad

Permito el tratamiento de mis datos personales con la finalidad informada