Routineaufgaben im Rechenzentrum blockieren nicht nur personelle Ressourcen, ihre manuelle Abarbeitung birgt zudem ein hohes Fehlerrisiko. Eine leistungsfähige Enterprise-Job-Scheduling-Lösung kann Abhilfe schaffen. Eine solche Lösung will jedoch mit Bedacht gewählt sein - denn die Anforderungen sind hoch.Der Arbeitsalltag in jedem Rechenzentrum wird ganz wesentlich von immer wieder anfallenden Routinetätigkeiten bestimmt. Dies gilt sowohl für die im Bereich des IT-Housekeepings anfallenden Aufgaben als auch für die Durchführung komplexer Geschäftsprozesse wie etwa die Abwicklung von Bestellungen oder das turnusmäßige Reporting von Geschäftszahlen.
Die große Herausforderung: Im Kontext solcher Abläufe müssen von verschiedensten Applikationen auf unterschiedlichsten Systemen auszuführende Teilprozesse verlässlich angestoßen und aufeinander abgestimmt abgearbeitet werden. Dies bedeutet ein enormes Aufkommen von Skript- und Programmaufrufen, die zudem im Rahmen der Compliance und der Revisionssicherheit umfassend und nachvollziehbar zu protokollieren sind.
Die Zahl solcher Aufgaben erreicht schon in einem mittleren Rechenzentrum durchaus mittlere vierstellige Werte - täglich wohlgemerkt. Die manuelle Steuerung und Protokollierung dieses Arbeitsaufkommens ist, wenn überhaupt, nur mit sehr hohem Zeitaufwand und mit hohem Fehlerrisiko möglich. Leistungsfähige Lösungen für das so genannte Enterprise Job Scheduling wie etwa Streamworks von Arvato Systems schaffen hier Abhilfe. Sie ermöglichen die detaillierte Definition von Arbeitsabläufen, initiieren verlässlich deren Abarbeitung und stellen die umfassende Protokollierung sicher. Angesichts der Komplexität der Abläufe sowie der Ansprüche an die Nachvollziehbarkeit im Rahmen der Compliance sind die Anforderungen an eine solche Lösung naturgemäß hoch.
Was ist ein Prozess, was ein Job?
Geschäftsprozesse sind heutzutage von höchster Komplexität, die hohen zeitlichen Erwartungen etwa von Stakeholdern im Finanzbereich oder von Kunden im Online-Handel legen die Latte noch höher. Bestellen beispielsweise Kunden in einem Online-Shop mit garantiertem "Next-Day-Delivery", lösen sie damit vielstufige und von hohem Zeitdruck gekennzeichnete Prozesse aus, bei deren Abwicklung neben dem Händler auch dessen Logistikdienstleister und der Kurierdienst involviert sind. Der Händler muss zu jedem Zeitpunkt über den Stand der Dinge informiert sein, um wiederum den Kunden entsprechend informieren zu können. Jeder einzelne dieser Bestellprozesse besteht damit aus einer Vielzahl einzelner "Jobs", die mindestens national verteilt und über heterogene Systeme, aber dennoch aufeinander abgestimmt in einem Fluss, einem "Stream", abzuarbeiten sind.
Eine Enterprise-Job-Scheduling-Lösung muss daher in der Lage sein, zeitkritische Batch-Prozesse von ihrem Beginn bis zum Abschluss über Applikations- und Betriebssystemgrenzen hinweg sicher zu steuern. Eine solche Lösung besteht vereinfacht ausgedrückt aus einem zentralen Server-System und den so genannten Agenten - einer Software, die auf den Rechnern läuft, auf denen die jeweiligen Jobs arbeiten sollen. Diese Agenten steuert das zentrale System an, und sie liefern ihrerseits Rückmeldungen über den Status der jeweiligen Jobs. Es versteht sich von selbst, dass die Agenten für die verschiedensten Betriebssysteme wie etwa Windows, Unix, z/OS und andere zur Verfügung stehen müssen.
Das zentrale Server-System - geschildert am Beispiel von Streamworks - besteht aus der Datenbank sowie der Applikations- und der Processing-Schicht. Die Datenbank fasst die System- und Stream-Stammdaten sowie die Bewegungs- und Plandaten. Die System-Logs der Jobs und der Agenten stehen in einem separaten Dateisystem zur Verfügung.
Die Applikationsschicht steuert die Kommunikation der Benutzer mit den weiteren Server-Komponenten und übernimmt die Übermittlung der Benutzereingaben. Die Processing-Schicht dient der Durchführung der Abläufe, der Steuerung der gesamten Kommunikation mit den Agenten und übernimmt die Aufbereitung der tagesaktuellen Stream-Stammdaten.
Job-Definition
Angesichts der Komplexität der abzuwickelnden Prozesse ist klar, dass die bloße zeit- und datumsbasierende Steuerung allein längst nicht mehr ausreicht - die Scheduling-Lösung muss die Möglichkeit bieten, Jobs beim Erreichen bestimmter Status auszulösen. Dies kann etwa der fehlerfreie Abschluss des vorhergehenden Jobs sein, wobei der Agent das System mittels eines Ende-Codes über eben diese erfolgreiche Beendigung des Jobs informiert. Jobs müssen zudem über Ereignisse wie den Eingang bestimmter Dateien oder Nachrichten, vom Benutzer per Eingabe oder durch Applikationen veranlasste Events, das Erreichen eines bestimmten Umfangs von Verzeichnissen oder die Auslastung von Massenspeichern auszulösen sein.
Prinzipiell erfolgt die Definition in Form von Flussdiagrammen. Gerade bei komplexen Streams mit einer Vielzahl von Einzel-Jobs, die von internen und externen Status und Ereignissen bestimmt sind, ist es wichtig, dass diese möglichst übersichtlich sind und die Möglichkeit bieten, die fehlerfreien Beziehungen zwischen den einzelnen Jobs sicher verifizieren zu können.
Sehr hilfreich ist, wenn die Scheduling-Lösung so genannte Master Streams unterstützt. Sie basieren auf der Erkenntnis, dass sich viele Geschäftsabläufe zumindest in den Grundzügen ähneln. Diese werden nur einmal, eben im Master Stream, definiert und für neu zu definierende Streams als Vorlage herangezogen, die sich nach Bedarf abwandeln und erweitern lässt. Diese Option spart beträchtlich Zeit und mindert weiter das Fehlerrisiko.
Vertrauen ist gut, Kontrolle besser
Je höher der Automatisierungsgrad einer Job-Scheduling-Umgebung ausfällt, desto wichtiger sind umfassende Optionen für die Kontrolle der geschäftskritischen Abläufe. Das System sollte auch im Hinblick auf Compliance und Revisionssicherheit für jede Abwicklung eines jeden Prozesses sämtliche Informationen wie zum Beispiel Job-Logs und System-Logs erfassen und an zentraler Stelle zur Verfügung stellen - inklusive Angaben zur Behebung von Ausnahmesituationen.
Solche können auftreten, wenn etwa die von der Job-Scheduling-Lösung mit der Job-Abwicklung beauftragten Applikationen - sei es durch Programmabstürze oder Hardwareausfälle - nicht zur Verfügung stehen. Die Minimalforderung ist, dass das System zu jedem Zeitpunkt, also auch in Ausnahmesituationen, den genauen Status aller laufenden und anstehenden Jobs erfasst und die IT-Abteilung damit jederzeit den sofortigen Überblick über die aktuelle Situation hat.
Reaktion auf Ausnahmesituationen
Optimal ist es, wenn das verwendete Job-Scheduling-System die Möglichkeit bietet, die Reaktion auf solche Ausnahmesituationen seinerseits als eine Art Prozess zu definieren. Dies ist grundsätzlich möglich, da sich Jobs bekanntlich abhängig vom Ergebnis des jeweils vorhergehenden Jobs initiieren lassen. Auf diese Weise können Routinen zur Fehlerbehebung bereits in die Prozessdefinition einbezogen und der Bedarf für die manuelle Einflussnahme weiter gesenkt werden. Ungeachtet dessen sollte diese zu jedem Zeitpunkt möglich sein. Sehr hilfreich in diesem Zusammenhang sind Funktionen für die Benachrichtigung definierter Personen per SMS und E?Mail.
Es versteht sich von selbst, dass eine Enterprise-Job-Scheduling-Lösung Optionen bieten muss, die Hochverfügbarkeit der Lösung selbst zu sichern. Streamworks etwa ermöglicht den Einsatz von Windows-Clustern sowohl für den Processing- und Application-Server als auch für die Datenbank.
In einer von einer Job Scheduling-Lösung gesteuerten Umgebung herrscht naturgemäß reger Datenverkehr zwischen den Agenten und der Zentrale. Dieser muss etwa durch SSL-Verschlüsselung und Zertifikate unbedingt vor unbefugtem Zugriff geschützt sein - dies gilt für den Informationsaustausch ebenso wie für die Log-Dateien. Auch ein Benutzer- und Rollenkonzept hilft, für die nötige Sicherheit zu sorgen.
Fazit
Eine leistungsfähige und effiziente Enterprise-Job-Scheduling-Lösung entlastet die IT-Abteilung in hohem Maße von zeitaufwändigen Routineaufgaben, deren manuelle Ausführung mit hohen Fehlerrisiken behaftet ist - somit steigert das Job Scheduling signifikant die Qualität der Arbeitsergebnisse.