Internetdienste sind zu einem unverzichtbaren Bestandteil unseres Lebens geworden. Milliarden von Benutzern nutzen täglich Internetdienste, zum Beispiel zur Echtzeit-Kommunikation mit Video und kollaborativen Arbeit an Dokumenten. Darüber hinaus gibt es auch viele allgegenwärtige—teils versteckte—Internetdienste wie Kassensysteme für Restaurants und Sensoren in Industrieanlagen. Von Internetdiensten wird erwartet, dass diese stets in gewünschter Qualität verfügbar sind, auch bei hohem Nutzeraufkommen, und zu niedrigen Kosten genutzt werden können. Eine direkte Herangehensweise, um hohe Erreichbarkeit sicherzustellen, besteht in der Bereitstellung dedizierter Infrastruktur für jeden Dienst. Dieser Lösungsansatz führt wiederum sehr wahrscheinlich zu Überkapazität und ist mit dem Ziel niedriger Kosten praktisch schwer vereinbar. Eine alternative Lösung besteht darin, die zugrunde liegende Infrastruktur mittels Ressourcenplanung unter vielen verschiedenen Diensten zu teilen. Durch die gemeinsame Nutzung der Ressourcen wird es möglich, Dienste hochgradig skalierbar anzubieten, bei gleichzeitig niedrigen Betriebskosten für jeden einzelnen Dienst.
Eine breite Palette an Systemen zur Ressourcenplanung ist bereits in der verteilten Rechenlandschaft im Einsatz, sowohl auf Anwendungsebene als auch auf Infrastrukturebene. Die Systeme zur Ressourcenplanung haben das Ziel eine hohe Ressourcenauslastung bei gleichzeitig guter Servicequalität zu erreichen. Um diese Eigenschaften erreichen zu können und zur Gewährleistung einer breiten Einsetzbarkeit, basieren solche Systeme zu großen Teilen auf generischen Ressourcenabstraktionen, wie virtuelle Maschinen oder Container. Generische Ressourcenabstraktionen greifen auf Annahmen zurück, wie zum Beispiel Ressourcenhomogenität oder lineare Ressourcennutzung, die die Planung vereinfachen, jedoch für die jüngsten Entwicklungen verteilter Systeme in der nach-Mooreschen Ära überarbeitet werden müssen. Insbesondere der jüngste Trend zu programmierbaren Netzwerkgeräten, die eine neue Ära des “in-network computing” (INC) einläuten, passt nicht mehr zur generischen Abstraktion von Containern, die auf Servern ausgeführt werden. Darüber hinaus fehlt für viele solcher Ressourcenplaner die Möglichkeit zur dynamischen Planung zur Laufzeit, da die zugrunde liegenden Algorithmen zu hohe Laufzeiten aufweisen oder nicht für einen dynamischen Ansatz konzipiert wurden. Ohne dynamische Planung muss für viele Szenarien die Ressourcenplanung vorab ausgeführt werden und kann bestenfalls in regelmäßigen Zeitabständen Korrekturen vornehmen, was letztendlich zu ineffizienter Nutzung der Ressourcen führt.
Die ständig steigende Nachfrage nach Internetdiensten im Allgemeinen, und die zunehmende Hardware-Heterogenität kombiniert mit der Unbeständigkeit der Anwendungslast im Speziellen, erfordern dynamische Lösungen zur ganzheitlichen Ressourcenplanung, sowohl auf Anwendungsebene als auch auf Infrastrukturebene. In dieser Dissertation werden vier neue Lösungen vorgestellt, um eine ganzheitliche dynamische Ressourcenplanung für die verteilte Rechenlandschaft zu realisieren. Zwei davon auf Anwendungsebene sowie zwei auf Infrastrukturebene. Zunächst wird das Forschungsfeld der Ressourcenplanung für die verteilte Rechenlandschaft eingegrenzt, indem die beteiligten Systeme, Ressourcen, Bedarfe und Abstraktionen analysiert und klassifiziert werden. Aufbauend darauf wird eine Klassifizierung für INC vorgestellt um den Entwurfsraum für die Ressourcenplanung zu erschließen. Die Lösungen auf Anwendungsebene zeigen für zwei Szenarien, wie dynamische Ressourcenplanung zu einer effizienteren Nutzung der Ressourcen beitragen kann. Als erstes Szenario betrachten wir Big Data Aggregationssysteme und stellen das System ROME vor. ROME analysiert automatisch den Datenstrom und berechnet zur aktuellen Umgebung die optimale Zusammenschaltung der verfügbaren Ressourcen, mit dem Ziel, die Aggregation frühestmöglich abzuschließen. ROME zeigt selbst gegen manuell eingestellte Systeme ein besseres Laufzeitverhalten. Das zweite Szenario diskutiert die Ressourcenplanung von verteilten Funktionsketten. Wir präsentieren STEAM, der erste verteilte Ressourcenplaner für dieses Problem, der die Planung auf Paketebene während der Laufzeit durchführen kann, ohne globales Wissen und Vorabinformationen zur aufkommen Last zu benötigen. Im Gegensatz zu bisherigen Arbeiten erzielt STEAM bessere Servicequalität bei gleichen Ressourcen, bzw. reduziert die benötigten Ressourcen bei gleicher Nutzerlast.
Auf Infrastrukturebene werden zwei alternative Lösungen präsentiert. Zunächst wird IncSched vorgestellt, ein System welches bestehende Rechenzentren-Ressourcenplaner für INC nachrüstet. Aufbauend auf der vorgestellten INC Klassifikation, führt IncSched ein neues Ressourcenmodell ein, übersetzt dieses für bestehende Ressourcenplaner und kapselt die Logik zur Verwaltung von INC. Dadurch werden existierende Ressourcenplaner erstmals kompatibel zu INC, was auf breiter Basis die Zugänglichkeit zu INC in Rechenzentren positiv beeinflussen wird. Um INC noch besser in die Ressourcenplanung integrieren zu können, wird als letztes HIRE vorgestellt, ein eigenständiger Rechenzentren-Ressourcenplaner. HIRE erweitert das Ressourcenmodell von IncSched um automatisch alternative Ressourcen spezifizieren zu können, bildet die Nichtlinearität von INC-Ressourcen ab und berücksichtigt die wechselseitigen Abhängigkeiten zwischen Servern und INC. Durch diese Neuerungen bedient HIRE im Vergleich zu IncSchedLösungen mehr Anwendungen mit INC, reduziert die maximale Wartezeit, und trifft darüber hinaus noch qualitativ bessere Entscheidungen zur Auswahl der Ressourcen um Lokalität zu berücksichtigen. Alle vier Lösungen werden in umfangreichen Simulationen, zum Teil auch mittels Prototypen sowie integrierter Benchmarks, evaluiert.
Zusammenfassend präsentiert diese Dissertation vier neue Lösungen die zur ganzheitlichen dynamischen Ressourcenplanung der verteilten Rechenlandschaft beitragen. Damit zeigen wir die Relevanz dynamischer Ressourcenplanung und wie mittels ganzheitlicher Ressourcenplanung gemeinsam genutztes INC auf Rechenzentrumsebene zugänglich wird. | German |