Die Administration komplexer IT-Systeme erfordert einen hohen Aufwand, wobei mit geringeren Ressourcen eine immer höhere Prozessqualität bereitgestellt werden soll. Mit Autonomic Computing sind die Systeme in der Lage, sich selbst zu verwalten und zu optimieren. Scheduling-Lösungen wenden dieses Konzept nun auf die IT-Prozesse an und erreichen so eine effizientere Prozesssteuerung.
Die Administration von IT-Systemen ist in den letzten Jahren schwieriger geworden. Die Zusammenführung heterogener Landschaften, die Herstellung direkter IT-Verbindungen zwischen den Unternehmen, die umfassenden Webanbindungen, die Integration der Unternehmenskommunikation: All das hat dazu geführt, dass die Systeme erheblich komplexer geworden sind. Dabei hat sich die Rolle der IT im Unternehmen im letzten Jahrzehnt verschoben, von deren reibungslosen Funktionieren ein Unternehmen heute als Ganzes abhängig ist. Damit sind auch die Anforderungen an die Qualität der IT-Prozesse gewachsen: früher hat man sie notfalls manuell substituiert. Konnte die EDV etwa Lieferscheine nicht erstellen, musste man sie eben anders schreiben. Solche Behelfe funktionieren heute nirgends mehr: Lieferscheine enthalten beispielsweise Barcodes, ohne die die Verbuchung des Warenausgangs nicht erfolgen kann - und möglicherweise auch nicht der Wareneingang beim Kunden. Die gewachsene Bedeutung einzelner IT-Prozesse für die Unternehmen, aber auch für die gesamte Wirtschaft, hat im Übrigen auch in den übergreifenden Vorschriften zu IT-Compliance und -Governance ihren Ausdruck gefunden. Dabei stellen Regelwerke wie Basel II oder Sarbanes-Oxley an den IT-Betrieb erhebliche zusätzliche Anforderungen hinsichtlich Zuverlässigkeit, Dokumentation und Nachvollziehbarkeit.
Zugleich werden die IT-Budgets aber nun schon seit Jahren kurz gehalten und eine Entspannung ist nicht absehbar. Für die IT-Administration bedeutet dies, dass sie in einem technisch zunehmend schwieriger werdenden Umfeld höhere Anforderungen hinsichtlich der Prozessqualität mit tendenziell geringeren Ressourcen nachkommen muss. So war bis vor einigen Jahren die durchgängige Besetzung von Rechenzentren eine Selbstverständlichkeit; nur bei Anwesenheit von Administratoren ließ sich ein kontinuierlicher 24×7-Betrieb aufrechterhalten. Dies ist heute nur noch in Ausnahmefällen gegeben, die Mannschaften wurden reduziert, Reserven für Nacht- und Wochenendbetrieb oder die Urlaubszeit bestehen meist nicht mehr. Sogar Hochverfügbarkeitssysteme kommen ohne Anwesenheit des Bedienerpersonals aus. An die Stelle der physischen Anwesenheit sind aufwändige Fehlermanagementsysteme, automatische Alert-Verfahren per E-Mail oder SMS sowie der Remote-Zugriff von Mitarbeitern getreten.
Dass solche Lösungen die Komplexität der Systeme weiter erhöhen, mag man, solange sie funktionieren, noch hinnehmen. Grundsätzlich kann die Lösung des RZ-Dilemmas - mit immer geringeren Ressourcen muss eine immer höhere Prozessqualität bereitgestellt werden - jedoch nicht durch die Verlagerung von klassischen Verfahren zur Fehlerbehebung in die Remote-Sphäre bestehen. Es muss vielmehr eine Veränderung der betreffenden IT-Prozesse selbst erfolgen: Sie sollen sich in Zukunft um ihre Komplexität selber kümmern und so für einen effizienten, administrationsfreien IT-Betrieb sorgen.
Dem Autonomic Computing (AC) liegt die Idee zugrunde, dass die Automatisierung von Verfahren und Abläufen beim IT-Betrieb nicht ausreicht, um die komplexer werdenden Systeme zu beherrschen: Autonomic Computing erweitert die Automatisierung um den Aspekt der Autonomie. Die Systeme sollen damit unabhängig von manuellen Eingriffen eines Betreuers oder Administrators, ohne Korrekturen und Anpassungen laufen, sie sollen sich dabei selbst verwalten und organisieren, Störungen und Fehler selbstständig beheben. Als Vision ist AC schon länger im Gespräch und im Grund träumt die IT davon schon immer; konkret wurde vor rund zwei Jahren IBM, die das Konzept der "Self-Managing Computer Systems" seither propagiert und zum Beispiel mit der "eLiza"-Technik in ihre Serverprodukte hat einfließen lassen. Im Wesentlichen geht es bei AC darum, die aufwändigen, aber auch fehleranfälligen Eingriffe durch Administratoren oder Benutzer von vornherein durch geeignete Algorithmen überflüssig zu machen. Dies ist gerade in Hochverfügbarkeitsszenarien wichtig, wenn die Bediener nicht kontinuierlich zur Verfügung stehen.
Vier grundlegende Anforderungen sind dabei an das Self-Management zu stellen:
Self-configuration: Autonome Systeme müssen sich selbstständig installieren, konfigurieren und integrieren. Diese Arbeiten sind bisher besonders zeitaufwändig und fehlerträchtig. Zum Beispiel müssen bei steigender Last zusätzliche Ressourcen ohne spezielle Anforderungen und ohne manuellen Eingriff bereitgestellt werden. Die übrigen System-Komponenten müssen sich dem anpassen.
Self-optimization: Autonome Systeme versuchen selbstständig ihren Betrieb hinsichtlich Performance und Kosten zu verbessern; die dafür notwendigen Parameter werden automatisch überwacht.
Self-healing: Autonome Systeme suchen selbstständig nach Fehlern, führen Diagnosen durch und versuchen die ermittelten Probleme bei Soft- und Hardware automatisch zu beheben. So werden beispielsweise Indizes neu gebildet oder Datenbanken reorganisiert.
Self-protecting: Autonome Systeme schützen sich selbstständig gegenüber Angriffsversuchen oder Fehlersituationen, geben Warnungen weiter.
Wurde dieses Konzept bisher meist hardwareorientiert auf der Ebene der Server, Serverfarmen, Cluster etc. diskutiert, so rückt neuerdings auch der Aspekt der IT-Prozesse in den AC-Focus. Auch wenn die meisten Benutzer aus der eigenen Anschauung nur die Online-Welt kennen, so bilden in den Unternehmen die automatisch ablaufenden Prozesse nach wie vor das Rückgrat der IT-Verfahren. In diesem Bereich kommt es darauf an, die große Zahl von Batch-Jobs, in größeren Unternehmen können das zehntausende pro Tag sein, möglichst reibungslos durch die beteiligten Systeme, Server, Applikationen, Datenbanken, Drucker und so weiter zu steuern. Diese Batch-Prozesse sind auf großen Durchsatz ausgerichtet und haben häufig lange Laufzeiten. Sie werden deswegen oft in betriebsschwachen Zeiten, beispielsweise nachts oder am Wochenende ausgeführt, wenn die Beanspruchung der Systeme durch Onlineverfahren schwächer ist. Dann sind allerdings auch keine Administratoren direkt verfügbar. Auch kleine Störungen im Ablauf können daher gravierende Auswirkungen haben: nicht verbuchte Umsätze, weil eine Datenbank nicht verfügbar war, nicht ausgelieferte Sendungen, weil Lieferscheine nicht gedruckt werden konnten, nicht überwiesene Gehälter, weil ein Backup-Lauf nicht vorgenommen wurde etc. Deswegen will heute aber kein Unternehmen die Kosten für eine Rundum-Betreuung durch Fachpersonal tragen. Implizit erwarten die Anwender, dass gerade die Abarbeitung automatischer Prozesse möglichst autonom erfolgt.
Aus diesem Grund findet AC im Bereich des Prozessmanagements und des Job-Schedulings ein passendes Einsatzsatzgebiet und erste Anbieter haben ihre Applikationen auch schon auf das AC-Konzept abgestimmt. So der Hersteller Orsyp, dessen Scheduling-Lösung "Dollar Universe Solutions" in der Lage ist, während der Prozesslaufzeit auf äußere Ereignisse und Vorkommnisse selbstständig zu reagieren und die Ausführung der Prozesse laufend den neuen Gegebenheiten anzupassen. Die Software kann selbstständig die Verteilung des Workloads unter den beteiligten Servern steuern. Das Programm stellt während der Ausführung fest, wenn ein bestimmter Server nicht die benötigte Leistung bringt und verteilt die Prozesse daraufhin neu auf andere Server. Der Administrator legt lediglich die Ausgangs-Konfiguration fest, also welche Aufgaben zu erledigen sind und welche Server dafür verfügbar sein sollen. Weitere Konfigurationen führt das Paket autonom und on the fly in eigner Regie durch. Treten während der Ausführung Störungen auf, ändert er die Konfiguration wieder, ohne dass ein Administrator eingreifen müsste.
Neben der Self-Configuration werden hier auch die AC-Elemente Self-Optimization, Self-Healing und Self-Protecting auf Prozessebene realisiert: Während ein Job-Scheduler früher die Vorgaben einer statischen Jobliste abarbeiten musste, die festlegte, welche Jobs auf welche folgen, arbeitet das Programm Event-gesteuert und kann damit seine Workflows dynamisch optimieren. Der Benutzer beziehungsweise Administrator muss hier lediglich festlegen, auf welche Ereignisse ein Job reagieren soll und welche Aktions-Alternativen zur Verfügung stehen. Zur Laufzeit reagiert Dollar Universe Solutions nach Angaben des Herstellers sofort beim Auftreten des Events, der beispielsweise die Vollzugsmeldung eines anderen Prozesses, aber auch eine Fehlersituation wie "Papier aus" oder "Datenbank nicht verfügbar" sein kann.
Bei solchen Abweichungen oder Störungen muss der Workflow also nicht gestoppt werden, der Scheduler sucht auf Basis eines vordefinierten Fehlerszenarios nach Alternativen oder verschiebt die Ausführung bestimmter Jobs.
Natürlich ist unter diesen Bedingungen der exakte Ablauf in einem Jobnetz nicht mehr im Voraus bekannt, denn der Scheduler routet seine Jobs autonom durch die Infrastruktur - dies ist der Zweck der Self-Optimization. Selbstverständlich sind nach wie vor Ad-hoc-Eingriffe möglich, beispielsweise wenn sich der Benutzer entschließt, einen zusätzlichen Job nachzuschieben. Es ist dann die Aufgabe der Selbst-Optimierung sich auf die neuen Gegebenheiten einzustellen, also auch dafür zu sorgen, dass die schon laufenden Jobs nicht zu kurz kommen. Beanspruchen mehrere Jobs die selben Ressourcen, so kann die Software auch entscheiden, welche bevorzugt werden müssen, entweder auf Basis parametrisierter Prioritäten oder im Hinblick auf die weitere Ausführung des Gesamtprozesses, beispielsweise bei Jobs des kritischen Pfads.
Ohne AC müsste der Administrator vor dem Start des neuen Jobs festlegen, wo und wann dieser in den Prozess einsteigen kann, und anschließend auch die übrige Job-Kette mehr oder weniger neu definieren.
Wichtig ist dabei, dass alle autonomen Verfahren, also auch das Job-Scheduling, unabhängig von bestimmten Plattformen und Applikationen funktionieren müssen. Die Komplexität der heterogenen Systeme ließe sich nicht bewältigen, wenn für jedes System eine separate Lösung aufgesetzt werden müsste, die eventuell noch mit aufwändigen Schnittstellen verbunden wären.