Enterprise Job Scheduler - Einführung in die Automation Engine

Heutzutage existiert wohl kaum noch ein Unternehmen, das ohne den Einsatz von IT auskommt. Das führt zwangsläufig dazu, dass immer wiederkehrende Aufgaben besonders in großen Unternehmen enorme Ressourcen verschlingen. Genau hier setzen Job Scheduler an – sie haben zum Ziel, solche Aufgaben in Prozessen abzubilden und automatisiert auszuführen. In diesem Artikel wird die Automation Engine von Automic vorgestellt, die besonders für den Einsatz in komplexen IT-Landschaften gedacht ist.

Einführung in das Job Scheduling

Die Idee eines Job Scheduler ist sicherlich nicht neu. Administratoren kennen seit jeher dutzende Routinetätigkeiten und lagern diese in Skripte aus. Unix und Windows haben auch entsprechende Werkzeuge im Bauch, um solche Skripte zeitgesteuert auszuführen. Während unter Unix der Cron-Daemon dafür zuständig ist, bildet die Aufgabenplanung das Gegenstück in der Windows Welt.

Die klassischen Dienste sind für einfache Wartungsjobs in jedem Fall ausreichend. Versucht man aber größere Geschäftsprozesse in Jobplänen abzubilden, so wird man meistens feststellen, dass hierfür viele Teilprozesse benötigt werden. Diese Teilprozesse müssen natürlich in einer bestimmten Abfolge abgearbeitet werden. Je komplexer der betrachtete Prozess ist, desto mehr Abhängigkeiten bestehen auch zwischen den Teilprozessen. 

Erschwerend kommt hinzu, dass größere IT-Landschaften sehr heterogen sein können. So sind zum Beispiel verschiedene Betriebssysteme und Derivate, unterschiedliche Datenbanken und eine Vielzahl an Applikationen in einem Rechenzentrum keine Seltenheit.

Diese Abhängigkeiten machen es nötig, dass der eingesetzte Job Scheduler die verschiedenen Teilprozesse auf abgeschotteten Systemen über das ganze Rechenzentrum hinweg ausführen, auf verschiedene Ereignisse reagieren und den gesamten Geschäftsprozess in einem Jobplan abbilden kann [Q1].

Automic bietet mit der Automation Engine ein Produkt, in dem Jobpläne sehr einfach erstellt werden können. Durch eine Vielzahl an Objekten können die unterschiedlichen Geschäftsprozesse modelliert werden. Innerhalb des Jobplans können die verschiedenen Abhängigkeiten und Reaktionen auf Jobereignisse mit diversen Mitteln sehr einfach implementiert werden. Weiterhin liefert die Automation Engine Agenten für alle gängigen Betriebssysteme sowie RA- und SAP-Agenten, wodurch eine unternehmensweite Automatisierung über das gesamte Rechenzentrum hinweg realisiert werden kann. Zudem ist die Automation Engine mandantenfähig. Dies bringt den Vorteil, dass beispielsweise voneinander unabhängige Bereiche im System als eigene gekapselte Umgebungen eingerichtet werden können.

Architektur der Automation Engine

Die Automation Engine besteht aus verschiedenen Bestandteilen und Diensten, die das gesamte System abbilden. Je nach Umgebung und Lizenz können natürlich noch weitere Agenten angebunden werden (z.B. SAP Agent). Um die Funktionsweise der Automation Engine zu verstehen, werden in den folgenden Abschnitten die wichtigsten Komponenten näher beschrieben.

Datenbank

Die Automation Engine kennt eine Vielzahl an Objekten, die in der Automation Engine verwendet werden können. Möchte man beispielsweise einen Standard Jobplan anlegen, dann braucht die Automation Engine Informationen darüber, wie dieses Objekt auszusehen hat. Diese Objektdefinitionen werden in der Datenbank angelegt. Die vom Benutzer generierten Objekte werden ebenfalls in dieser Datenbank gespeichert.
Ein weiteres Merkmal der Automation Engine ist, dass jeder Job und Jobplan bei der Ausführung Reports und Statistiksätze generiert und diese in die Datenbank schreibt.
Die Datenbank kann auf verschiedenen Plattformen installiert werden (Oracle, DB2, Microsoft SQL Server). Allerdings sollten die Ressourcen bereits im Vorfeld gut geplant werden, da besonders für große Umgebungen genügend Arbeitsspeicher und Festplattenkapazität bereitgestellt werden muss. Eine Empfehlung für die richtige Dimensionierung ist in der offiziellen Dokumentation zu finden [Q2].

Automation Engine Server

Für die eigentliche Arbeit und Steuerung im System ist der Automation Engine Server zuständig – er bildet sozusagen den Kern des ganzen Systems. Dieser Kern wird durch verschiedene Server-Prozesse abgebildet. Der Automation Engine Server kennt dabei zwei Arten von Prozessen – den Communication Process (CP) und den Work Process (WP). Auf jedem System laufen mehrere CPs und WPs.

Die Ports und die Anzahl der Prozesse werden in der Konfigurationsdatei des Automation Engine Server definiert. Während die CPs für die Kommunikation verantwortlich sind, wie beispielsweise die Anmeldung über das User Interface, übernehmen die WPs die eigentliche Arbeit im System. Der zuerst gestartete WP hat eine besondere Bedeutung im System und wird primärer Arbeitsprozess genannt. Da es sich bei dem Automation Engine Server um das Herzstück des ganzen Systems handelt, wird in Abbildung 1 die Konfigurationsdatei ucsrv.ini examplarisch dargestellt. Diese Datei ist wie jede Konfiguration innerhalb der Automation Engine in Sektionen gegliedert. Weiterführende Informationen zu bestimmten Parametern können der offiziellen Dokumentation entnommen werden [Q3].
Abb. 1: Konfigurationsdatei ucsrv.ini des Automation Engine Server

Agenten

Damit die Automation Engine Jobs auf verschiedenen Systemen ausführen kann, müssen auf jedem Zielsystem spezielle Agenten installiert und eingerichtet werden. Automic liefert Agenten für alle gängigen Betriebssysteme und zusätzlich weitere Agenten für spezielle Applikationen wie SAP. Web Services können über RA-Agenten angebunden werden. Diese zusätzlichen Agenten ermöglichen die Kommunikation zwischen der Automation Engine und dem angebundenen Server. Während der Jobplan innerhalb der Automation Engine erstellt wird, findet die eigentliche Ausführung auf dem Betriebssystem oder der Applikation des Agenten statt. Hierfür nimmt der entsprechende Agent den Job entgegen, führt diesen aus und liefert eine Rückmeldung.

User Interface

Das User Interface ist eine Java-basierte Schnittstelle, die dem Benutzer das Arbeiten mit der Automation Engine ermöglicht. Über diese GUI kann der Benutzer beispielsweise alle zur Verfügung stehenden Objekte nutzen und Geschäftsprozesse in Jobplänen abbilden. Weiterhin können diese über das Interface einmalig oder periodisch ausgeführt werden.

Wenn für die Ausführung noch weitere Kriterien, wie zum Beispiel der Wochentag, berücksichtigt werden müssen, kann der Benutzer auch ein spezielles Schedule-Objekt erzeugen. Das Schedule-Objekt ermöglicht eine periodische Ausführung der zusammengefassten Jobs anhand der festgelegten Kriterien.

Doch das User Interface wird nicht nur von den normalen Anwendern genutzt, sondern bildet auch für die Administratoren der Automation Engine ein hilfreiches Werkzeug. Hierüber haben sie die Möglichkeiten, Mandanten zu administrieren und systemrelevante Einstellung vorzunehmen.

Allerdings wird das User Interface seit der Version V11 nicht mehr weiterentwickelt. Mit der Version V12 liefert Automic eine Web Interface als neue Benutzerschnittstelle. Für diese Schnittstelle muss ein Webserver als zusätzliche Komponente installiert werden.

Die neue Webschnittstelle kann den vollen Funktionsumfang des alten User Interfaces allerdings noch nicht abdecken, weshalb das alte User Interface auch noch mit der Version V12 ausgeliefert wird. Neue Features können im alten User Interface jedoch nicht mehr verwendet werden.

Service Manager

Bei dem Service Manager handelt es sich um ein sehr nützliches Programm, mit dem definierte Prozesse und Agenten der Automation Engine gestartet werden können. Über den Service Manager des Automation Engine Server kann beispielweise festgelegt werden, in welcher Reihenfolge die Serverprozesse zu starten sind.

Der Service Manager kann und sollte auch auf jedem Server mit einem Agenten installiert und eingerichtet werden. Wird der Service Manager konsequent auf allen Agenten eingerichtet, können diese Agenten über das Automation Engine System ferngesteuert werden. Beispielsweise lässt sich bei richtiger Konfiguration jeder Betriebssystemagent über das User Interface starten und stoppen.

Dienstprogramme

Automic liefert zusätzlich diverse Dienstprogramme. Diese Programme sind zwar kein direkter Bestandteil des Automation Engine Systems, erleichtern die Installation und Administration der Automation Engine jedoch ungemein.

Funktionsweise der Automation Engine

Nachdem nun alle Komponenten der Automation Engine vorgestellt wurden, werden noch einmal die Funktionsweise des gesamten Systems und die Abläufe im Hintergrund anhand eines simplen Beispiels vorgestellt. In diesem Beispiel meldet sich ein Benutzer an der Automation Engine an, erstellt einen Unix Job und führt diesen anschließend aus.

Anmeldung

Nach dem Starten des User Interface muss sich der Benutzer zunächst über eine Eingabemaske (siehe Abbildung 2) am System anmelden. Damit sich ein Anwender überhaupt an der Automation Engine anmelden und dort Jobpläne erstellen kann, sind zwei Voraussetzungen erforderlich:

  • Auf dem Client des Anwenders wurde das User Interface installiert und konfiguriert. In der Konfigurations- datei uc4config.xml müssen zwingend die Verbindungsparameter eingestellt werden. Diese teilen dem User Interface mit, wie das Automation Engine System erreicht werden kann

  • Der Anwender kennt seinen Mandanten im System und besitzt einen Benutzer mit ausreichenden Berechtigungen in diesem Mandanten

Für die Kommunikation zwischen dem User Interface und dem Automation Engine Server wird der konfigurierte CP genutzt. Nach erfolgreicher Authentifizierung wird eine aktive Verbindung durch diesen Prozess aufrechterhalten.

Joberstellung

Die Automation Engine verfügt über eine Vielzahl an Objekten. Eine kleine Auswahl der verfügbaren Objekte kann der Abbildung 3 entnommen werden. Ein Beispiel für eines dieser Objekte ist der Job, in dem genau definiert ist, wie die Verarbeitung auf dem Zielserver auszusehen hat. Entsprechend existieren für verschiedene Agenten auch unterschiedliche Typen (Unix Job, Windows Job, …).
Die genaue Definition des Unix Job befindet sich in der Datenbank. Der Automation Engine Server lädt mit Hilfe eines WP die genaue Definition aus der Datenbank und ermöglicht unserem Benutzer nun, einen Unix Job mit der GUI anzulegen. In diesem Job muss der Anwender ebenfalls den Unix Agenten und die Zugangsdaten hinterlegen. Diese Informationen stellen Attribute des Job Objekts dar und können entweder statisch im Job oder dynamisch mit Skriptsprachmitteln in der Automation Engine festgelegt werden. Über einen WP speichert der Automation Engine Server diesen Job anschließend in der Datenbank des Systems.

Jobausführung

Agenten werden in der Automation Mandaten zugeordnet. Damit der erstellte Job also auf dem ausgewählten Unix-Agenten ausgeführt werden kann, muss sich dieser Agent im gleichen Mandanten befinden und mit der Automation Engine verbunden sein. Ähnlich wie bei dem User Interface, müssen die Verbindungsparameter auch auf dem Agenten eingestellt werden. Die Zuordnung zu einem Mandanten obliegt jedoch dem Administrator. An dieser Stelle sei darauf hingewiesen, dass ein Agent durchaus in mehreren Mandanten verwendet werden kann.
Sofern diese Bedingungen gegeben sind, kann der Benutzer den erstellten Job ausführen. Während die Verbindung zwischen dem Agent und dem Automation Engine Server durch einen CP aufrechterhalten wird, sorgt ein WP für die Aktivierung und Ausführung des Jobs. Dieser Job wird an den Agenten übergeben und anschließend ausgeführt. Solange der Job noch aktiv ist, wird er durch den WP zusätzlich überwacht. Der Agent meldet das Ergebnis nach der Ausführung wieder an den Automation Engine Server, der wiederum den Jobreport und Statistiksatz zu diesem Job in der Datenbank speichert.

Fazit

Automic bietet mit der Automation Engine einen Job Scheduler, mit dem komplexe Geschäftsprozesse über die gesamte IT-Landschaft im Unternehmen abgebildet und automatisiert werden können. Da die Automation Engine eine Vielzahl an Agenten und vordefinierten Objekten mitbringt, kann sie ohne weiteres auch in heterogenen Server-Umgebungen eingesetzt werden. 

Trotz aller Ressourceneinsparung durch die Automatisierung sollte nicht vergessen werden, dass die Einführung und der Betrieb eines solchen Systems durchaus sehr zeitintensiv sein kann. Personelle Ressourcen werden nicht nur für die Installation und Konfiguration benötigt, sondern vor allem für die Administration. Der administrative Aufwand hängt natürlich von der Größe des Automation Engine System ab. Während kleinere Umgebungen sicherlich mit einem Administrator auskommen, bedarf es in Umgebungen mit mehreren tausend Agent auch ganzen Abteilungen, die den Betrieb sicherstellen. Neben dem zusätzlichen Aufwand für den Betrieb, dürfen die Lizenzkosten für einen solchen Enterprise Job Scheduler nicht außer Acht gelassen werden.

Glossar

CP 

Hinter der Abkürzung versteckt sich der Begriff Communication Process. Hierbei handelt es sich um die Kommunikationsprozesse des Automation Engine Server. Diese Prozesse benötigt die Automation Engine, damit sich sowohl Benutzer über das User Interface als auch alle Agenten mit dem Automation Engine Server verbinden können. 

RA

Mit dem Begriff Rapid Automation beschreibt Automic eine Technologie, um weitere Services an die Automation Engine anzubinden. Der Einrichtungsaufwand hängt hierbei stark von dem anzubindenden Service ab. Mit dieser Funktionalität kann beispielsweise eine Anbindung an einen Web Service realisiert werden.

WP 

Der Work Process, auch Arbeitsprozess genannt, ist für die eigentliche Arbeit in der Automation Engine zuständig. Wenn zum Beispiel ein Job ausgeführt oder der Report eines Jobs in die Datenbank geschrieben wird, erfolgt dies durch die Arbeitsprozesse.

Links/Quellen

0
Open Source Software Ansible - Continous Ansible m...
Mit der Datenbank durch die Zeit reisen (Teil I): ...

Related Posts

Unsere Autoren

Technologie Blogs

Tutorials

4 members

Webentwicklung

3 members

Java

3 members

Archiv | Blog-Beiträge

Login