Job Scheduler, de los mejores planificadores de procesos

Por Miguel Barrio
Project Manager OpenSistemas

Cuando crecen las dimensiones de nuestro sistema de computación es frecuente la aparición de multitud de dependencias entre procesos que, en el caso de la computación distribuida, suelen estar ubicados en máquinas distintas y muchas veces de arquitecturas totalmente incompatibles. Para facilitar la orquestación de estos procesos disponemos de los llamados planificadores de procesos: un software destinado a planificar, sincronizar y monitorizar la ejecución de procesos de forma centralizada aunque éstos deban ejecutarse en distintas máquinas.

La solución Linux estándar, que pasa por usar el planificador “cron” junto con shellscripts programados ad-hoc, suele quedarse pequeña y resulta difícil de mantener. Job Scheduler es, de entre todos los planificadores disponibles, uno de los más completos además de disponer tanto de licencia Open Source como comercial. Su instalación y configuración inicial es bastante sencilla, admitiendo un amplio abanico de bases de datos para almacenar el estado de los procesos. Como la mayoría de planificadores, su arquitectura se basa en un modelo servidor – agentes: la orquestación de los procesos y la recopilación de datos se lleva a cabo en el servidor (o servidores, si tenemos una elevada carga de trabajo y optamos por la instalación en “cluster”), el cual se comunica con los agentes que deberán instalarse en las diferentes máquinas donde queramos ejecutar los procesos.

Además, presenta interfaces que le permiten interactuar con herramientas de monitorización como Zabbix o Nagios.

Dispone de un cliente pesado Java para la creación y edición de trabajos de ejecución de procesos, aunque al estar basado en ficheros XML siempre podremos editarlos manualmente, ya que su especificación se encuentra profusamente documentada. Pero donde Job Scheduler destaca es en las distintas APIs Java y JavaScript que ofrece para controlar cada aspecto de la ejecución de un proceso, permitiendo así incorporar condiciones basadas en lógica compleja. El producto se completa con una consola de monitorización Web bastante decente, desde donde podremos obtener de un vistazo el estado de todos los procesos que tenemos bajo control del planificador.

Job Scheduler se encuentra en un activo proceso de desarrollo, liberando versiones cada pocos meses y ampliando su funcionalidad de forma continua. La enorme flexibilidad que ofrece plantea un elevado coste de aprendizaje, pero como resultado obtendremos un control total sobre nuestro sistema.

Job Scheduler puede descargarse de la página oficial de Software und Organisations Service.