schedulix

Job-Scheduling mit Open-Source-Software

05.09.2018
Von 
Ludger Schmitz war freiberuflicher IT-Journalist in Kelheim. Er ist spezialisiert auf Open Source und neue Open-Initiativen.

Die Features von schedulix

schedulix kann mehr, als nur die zeitlichen Abläufe von IT-Prozessen zu steuern. Es berücksichtigt beispielsweise Abhängigkeitsbeziehungen, so dass ein Teilprozess C von den Teilprozessen A und B abhängig werden kann. Teilprozess C startet dann erst, wenn A und B erfolgreich abgeschlossen wurden. Falls zwischen A und B keine Abhängigkeitsbeziehungen bestehen, lassen sich diese Teilprozesse parallel ausführen. Die Teilprozesse von B können laufen, obwohl in A ein Unterprozess noch nicht gestartet ist. Dabei lassen sich A, B und C hierarchisch beliebig tief in weitere Teilprozesse zerlegen, zwischen denen ebenfalls Abhängigkeitsbeziehungen bestehen können.

Eine wichtige Rolle spielt dabei der Exit-Status von Prozessen. Er ist frei definierbar, das heißt: schedulix erlaubt hier nicht nur Success, Warning oder Failure, sondern ermöglicht die freie Definition beliebiger eigener Exit-Status. Der Exit-Code eines Betriebssystem-Prozesses wird auf diese Exit-Status abgebildet. Damit lassen sich unter anderem Verzweigungen und Schleifen implementieren. So kann zum Beispiel ein Prozess, der neue Daten in eine Datenbank zu laden hat, einen Exit-Code zurückgeben, der auf einen Exit-Status No_New_Data abgebildet wird, um im Falle, dass keine neuen Daten geladen waren, aufwändige Folgeprozesse zu überspringen.

Mehrere Exit-Status lassen sich zu Exit-Status-Profilen zusammenfassen, welche unter anderem definieren, wie der jeweilige Exit-Status vom System zu behandeln ist. So kann unterschieden werden, ob ein Exit-Status final ist (beispielsweise Success) oder es sich um einen restartable Status handelt, der eine Wiederholung beziehungsweise einen Neustart des Betriebssystem-Prozesses ermöglicht. Ein Exit-Status kann auch als "pending" definiert werden, was bedeutet, dass das System diesen Job so behandelt, als würde er noch laufen. Damit lassen sich Teilprozesse in andere Workflow-Systeme umleiten, deren Erledigung über eine API an den Job zurückgemeldet werden.

Mit Hilfe von Triggern ermöglicht das System, auf Basis des Exit-Status weitere Aktionen anzustoßen, etwa im Falle eines Fehlers eine E-Mail an den Administrator zu versenden. Asynchrone Trigger können schon während der Laufzeit eines Prozesses eingesetzt werden, um etwa Laufzeitüberschreitungen frühzeitig zu eskalieren.

Abläufe melden sich selbständig nicht nur bei ihrem Abschluss, sondern ein Admin kann sich jederzeit tief in die Teilprozess-Hierarchie hineinklicken. So erkennt er, welcher Betriebssystem-Prozess dafür verantwortlich ist, dass ein Ablauf zu langsam läuft oder gescheitert ist.

Teilprozesse in Folder-Struktur organisieren

Die Liste der verfügbaren Teilprozesse würde bald so unübersichtlich wie Zettelwirtschaft, weshalb sich diese in einer Folder-Struktur organisieren lassen. Das bietet eine interessante Möglichkeit: Einem Folder lassen sich Ressourcen zuordnen. Diese stehen dann allen Jobs unter diesem Folder zur Verfügung. Und über sogenannte Folder-Environments lassen sich gleich die Ausführungsumgebungen zuordnen, zum Beispiel Entwicklung, Test oder Produktion.

Über Ressourcen können Admins unter anderem die möglichen Ausführungsorte eines Jobs bestimmen. Die Verfügbarkeit von Ressourcen ist für Ausführungsumgebungen konfigurierbar. Dadurch sind Lastkontrolle und Loadbalancing unkompliziert zu implementieren. Die Ressourcenanforderungen lassen sich für jeden Job definieren, also für kleine Teilprozesse auch begrenzen, um keine Kapazitäten zu blockieren und den Hauptabläufen mehr Raum zu geben. Wenn ein Job besonders wichtig ist, kann er eine höhere Priorität bekommen, wodurch er Vorrang vor anderen wartenden Jobs erhält.

schedulix sichert den Zugang zum System bis auf die Ebene von Jobs durch IDs und Passwörter. Die Benutzung ist ohne Client-Software möglich, weil sie über Standard-Webbrowser erfolgt. Seine Steuerung ist per Kommandozeile oder aus Programmen (Java, Python, Perl etc.) möglich. Die modellierten Abläufe und die Echtzeit-Runtime-Daten speichert schedulix in einer relationalen Open-Source-Datenbank, also etwa Postgres oder MySQL.

Soweit ein knapper Abriss der schedulix-Funktionen. In den meisten IT-Umgebungen von mittelständischen Unternehmen sollten die Fähigkeiten ausreichen. Ein schedulix-Forum bietet weitere Hilfe bei Installation und Betrieb. Der Hersteller IndependIT bietet auch einen Support-Vertrag auf Subskriptionsbasis und darüber hinausgehende Consulting-Leistungen an.

schedulix ist funktional identisch mit der kommerziellen Basic-Edition der BICsuite, die auch noch die Installation und die Integrationsmöglichkeit von proprietären Datenbanksystemen umfasst. Für größere IT-Umgebungen offeriert IndependIT die Editionen "Professional" und "Enterprise". Wichtige Zusatzfunktionen sind beispielsweise die Auditierbarkeit von Ablaufereignissen und Operator-Aktionen sowie die Zuordnung unterschiedlicher Privilegien und Zugriffsrechte auf Objekte. Weiterhin wird ab der Professional-Edition der Export und Import beziehungsweise das Deployment zwischen getrennten BICsuite-Installationen in Entwicklung, Test und Produktion unterstützt. (hv)