Allokation von Cloud-Ressourcen in verteilten Workflows mittels Datenfluss-Analyse

Thomas Noll

Das Konzept Infrastructure-as-a-Service (IaaS) als wichtige Ausprägung von Cloud- Computing beschreibt die unkomplizierte Nutzung virtueller Server- Infrastruktur nach Bedarf. Ein System zur bedarfsgesteuerten Einbindung und gleichmäßigen Auslastung solcher Cloud-Ressourcen bei der Ausführung Webservicebasierter BPEL-Workflows wurde im Rahmen der Diplomarbeit entwickelt.

Es ermöglicht die Nutzung vorhandener „statischer“ Komponenten, wie z.B. eigener Server oder Cluster, die je nach Auslastung automatisch durch die Allokation von Cloud-Infrastruktur unterstützt werden.

Das Scheduling der einzelnen Workflow-Schritte findet unter Berücksichtigung von Datenabhängigkeiten statt, da diese bei der Ausführung zu Datenübertragungen führen, wenn die jeweiligen Schritte nicht auf einer Ressource ausgeführt werden. Die daraus resultierenden Verzögerungen wirken sich auf die Ausführungszeit des Prozesses aus, weshalb sie bei der Optimierung der Laufzeit berücksichtigt werden. Zusätzlich wird bei der Prognose der Durchlaufzeiten die Rechenleistung und Netzwerkanbindung der beteiligten Systeme beachtet. Damit soll ein optimales Zusammenspiel zwischen heterogenen statischen und dynamischen Ressourcen erzielt werden.

Das entwickelte Scheduling-Verfahren zerlegt den Datenflussgraphen des Prozesses in kritische Pfade. Diese werden mit einem genetischen Algorithmus optimiert, der an die spezifische Problemstellung angepasst wurde. Durch den Partitionierungsschritt entstehen lineare Vektoren, die sich im Gegensatz zu einem verzweigten Graphen als Eingabe für einen genetischen Algorithmus anbieten. Durch die gewählte Aufteilung kann es, im Gegensatz zu anderen genetischen Scheduling- Verfahren, nicht zu Verletzungen von Abhängigkeiten im Graphen kommen. Zur gleichmäßigen Auslastung der Ressourcen kommen zusätzlich Reservierungen zum Einsatz. Durch sie wird auch festgestellt, ob zusätzliche Cloud- Ressourcen benötigt werden. Da BPEL-Workflows aufgrund des while-Operators nicht-deterministisch sein können, wird der Prozessablauf überwacht, so dass Schleifen erkannt werden und ein dynamisches Re-Scheduling für den betroffenen Teilgraphen durchgeführt werden kann.

Bei zusätzlichem Ressourcenbedarf startet das System Virtuelle Maschinen, die je nach benötigtem Service-Typ unterschiedliche System-Images verwenden. Das entstandene System ermöglicht die Bereitstellung einer Ausführungsumgebung für BPEL-Workflows auf der Cloud-Ebene Platform-as-a-Service (PaaS). Dem Nutzer werden alle Ressourcenbelange abgenommen, da die Rechenanforderungen der auszuführenden Prozesse dynamisch durch die unterliegende IaaS-Schicht bedient werden. Dadurch wird die Möglichkeit eröffnet, komplexe Workflows auszuführen, ohne dauerhaft eine umfangreiche Server-Infrastruktur mit entsprechenden Fixkosten unterhalten zu müssen. Vor allem bei Prozessen, die nur einmalig oder in unregelmäßigen Abständen ausgeführt werden müssen, ergeben sich so völlig neue Möglichkeiten in Bezug auf Flexibilität und Skalierbarkeit der Recheninfrastruktur.