DE112012005529T5 - Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung - Google Patents

Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung Download PDF

Info

Publication number
DE112012005529T5
DE112012005529T5 DE112012005529.2T DE112012005529T DE112012005529T5 DE 112012005529 T5 DE112012005529 T5 DE 112012005529T5 DE 112012005529 T DE112012005529 T DE 112012005529T DE 112012005529 T5 DE112012005529 T5 DE 112012005529T5
Authority
DE
Germany
Prior art keywords
scaling
application
resource allocation
virtual machine
workload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112012005529.2T
Other languages
English (en)
Inventor
Gargi Banerjee Dasgupta
Akshat Verma
Sankalp Gera
Balaji Viswanathan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012005529T5 publication Critical patent/DE112012005529T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Eine voraussichtliche Arbeitslast einer mehrschichtigen Anwendung wird für einen definierten Zeitraum ermittelt. Für die voraussichtliche Arbeitslast wird eine Änderung der Anwendungskapazität ermittelt. Für die Änderung der Anwendungskapazität wird dynamisch eine Skalierungsstrategie gewählt, wobei die Skalierungsstrategie ein vertikales und ein horizontales Skalieren beinhaltet.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft das Cloud-Computing und Cloud-Computing-Anwendungen und insbesondere das Skalieren einer Anwendung in Cloud-Computing-Umgebungen.
  • HINTERGRUND
  • Cloud-Computing betrifft allgemein servergestützte Datenverarbeitungsressourcen, auf die über ein Datenverarbeitungsnetzwerk wie beispielsweise ein Weitverkehrsnetzwerk, das Internet oder dergleichen zugegriffen werden kann. Die Datenverarbeitungsressourcen können beinhalten: Anwendungen, die über Fernzugriff auf Servern ausgeführt werden können, welche als Cloud-Server bezeichnet werden; Datenspeicher und dergleichen. In einer Cloud-Umgebung kann die gesamte Verarbeitung und Datenspeicherung auf Cloud-Servern und zugehörigen Speichereinheiten abgewickelt werden. Demgemäß brauchen Benutzer von Cloud-Computing-Ressourcen Daten nicht lokal zu speichern oder verwendete Anwendungen lokal auszuführen.
  • Cloud-Computing-Ressourcen können im Allgemeinen angepasst werden, um eine bestimmte Nachfrage oder einen bestimmten Bedarf zu befriedigen, indem zum Beispiel zusätzliche Verarbeitungs- oder Speicherressourcen bereitgestellt werden. Da der Speicherbedarf einer Cloud-Anwendung jedoch zeitlich schwanken kann, müssen die verfügbaren Ressourcen verwaltet werden. Wenn die verfügbaren Ressourcen für einen bestimmten Bedarf nicht ausreichen, kann die Leistungsfähigkeit der Cloud-Anwendung darunter leiden. Wenn hingegen die verfügbaren Cloud-Ressourcen den Bedarf übersteigen, können die Ressourcen nicht ausgelastet sein, was unnötige Kosten oder verschenkte Möglichkeiten bedeutet, die Ressourcen für andere Zwecke zu nutzen. Aktivitätsspitzen, in denen der Bedarf nach Ressourcen im Verlauf von Minuten oder einigen Stunden sehr schnell ansteigen kann, zum Beispiel eine Zunahme um ein Vielfaches oder um Größenordnungen, können an die Verwaltung von Cloud-Ressourcen große Anforderungen stellen.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Gemäß einer ersten Ausführungsform kann ein Skalierungsverfahren das Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum durch eine Datenverarbeitungseinheit beinhalten. Für die voraussichtliche Arbeitslast kann eine Änderung der Anwendungskapazität ermittelt werden. Für die Änderung der Anwendungskapazität kann dynamisch eine Skalierungsstrategie gewählt werden. Die Skalierungsstrategie kann vertikales Skalieren und horizontales Skalieren beinhalten.
  • Hierzu können ein oder mehrere der folgenden Merkmale gehören. Zu der Skalierungsstrategie kann ein Implementieren einer Vielzahl virtueller Maschinen gehören, auf denen die mehrschichtige Anwendung ausgeführt wird. Jeder aus der Vielzahl virtueller Maschinen können allgemein gleich konfigurierte Ressourcen zugeordnet sein. Mindestens eine virtuelle Maschine kann so implementiert sein, dass ihr geringere Ressourcen zugeordnet sind. Wenn die Änderung der Anwendungskapazität geringer als die Restkapazität der virtuellen Maschine mit den zugeordneten geringeren Ressourcen ist, kann die virtuelle Maschine mit den zugeordneten geringeren Ressourcen durch Wählen der Skalierungsstrategie vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung skaliert werden. Wenn die Änderung der Anwendungskapazität größer als eine Restkapazität in der virtuellen Maschine mit den zugeordneten geringeren Ressourcen ist, kann die virtuelle Maschine mit den zugeordneten geringeren Ressourcen durch Wählen der Skalierungsstrategie vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung und die Anwendung horizontal skaliert werden, was ein Implementieren einer neuen virtuellen Maschine beinhaltet, deren Ressourcenzuordnung geringer als die allgemein gleich konfigurierte Ressourcenzuordnung ist.
  • Zum dynamischen Wählen einer Skalierungsstrategie kann ein fortlaufendes Wählen einer Skalierungsstrategie zumindest teilweise auf der Grundlage der voraussichtlichen Arbeitslast gehören. Dem Ermitteln einer voraussichtlichen Arbeitslast können zumindest teilweise Langzeitbedarfsdaten für die Arbeitslast zugrunde gelegt werden. Das dynamische Wählen einer Skalierungsstrategie kann ein Skalieren von Ressourcen beinhalten, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  • Gemäß einer anderen Implementierung beinhaltet ein Computerprogrammprodukt ein computerlesbares Medium mit einer Vielzahl darauf gespeicherter Anwendungen. Bei Ausführung durch einen Prozessor können die Anwendungen diesen veranlassen, Operationen auszuführen, darunter Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum. Die Anwendungen können den Prozessor auch veranlassen, eine Änderung der Anwendungskapazität für die voraussichtliche Arbeitslast zu ermitteln. Für die Änderung der Anwendungskapazität kann dynamisch eine Skalierungsstrategie gewählt werden, wobei die Skalierungsstrategie vertikales Skalieren und horizontales Skalieren beinhaltet.
  • Hierzu können ein oder mehrere der folgenden Merkmale gehören. Die Skalierungsstrategie kann ein Implementieren einer Vielzahl virtueller Maschinen beinhalten, auf denen die mehrschichtige Anwendung ausgeführt wird. Jeder aus der Vielzahl virtueller Maschinen können allgemein gleich konfigurierte Ressourcen zugeordnet sein. Mindestens eine virtuelle Maschine kann so implementiert sein, dass ihr geringere Ressourcen zugeordnet sind. Wenn die Änderung der Anwendungskapazität geringer als die Restkapazität der virtuellen Maschine mit den zugeordneten geringeren Ressourcen ist, können die Anweisungen zum Wählen der Skalierungsstrategie Anweisungen zum vertikalen Skalieren der virtuellen Maschine mit den zugewiesenen geringeren Ressourcen auf die allgemein gleich konfigurierte Ressourcenzuordnung beinhalten. Wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit den zugeordneten geringeren Ressourcen ist, können die Anweisungen zum Wählen der Skalierungsstrategie Anweisungen zum vertikalen Skalieren der virtuellen Maschine mit den zugeordneten geringeren Ressourcen auf die allgemein gleich konfigurierte Ressourcenzuordnung und zum horizontalen Skalieren der Anwendung beinhalten, was ein Implementieren einer neuen virtuellen Maschine mit einer Ressourcenzuordnung beinhaltet, die geringer als die allgemein gleich konfigurierte Ressourcenzuordnung ist.
  • Zu den Anweisungen zum dynamischen Wählen einer Skalierungsstrategie können Anweisungen zum fortlaufenden Wählen einer Skalierungsstrategie zumindest teilweise auf der Grundlage der voraussichtlichen Arbeitslast gehören. Dem Ermitteln einer voraussichtlichen Arbeitslast können zumindest Langzeitbedarfsdaten für die Arbeitslast zugrunde gelegt werden. Zu den Anweisungen zum dynamischen Wählen einer Skalierungsstrategie können Anweisungen zum Skalieren von Ressourcen gehören, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  • Gemäß einer anderen Implementierung kann ein System einen Prozessor und eine mit den Prozessoren verbundene Speicherarchitektur beinhalten. Ein erstes Software-Modul kann durch den Prozessor und die Speicherarchitektur ausführbar sein. Das erste Software-Modul kann zum Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum konfiguriert sein. Durch den Prozessor und die Speicherarchitektur kann auch ein zweites Software-Modul ausführbar sein. Das zweite Software-Modul kann zum Ermitteln einer Änderung der Anwendungskapazität für die voraussichtliche Arbeitslast konfiguriert sein. Durch den Prozessor und die Speicherarchitektur kann auch ein drittes Software-Modul ausführbar sein. Das dritte Software-Modul kann zum dynamischen Wählen einer Skalierungsstrategie für die Änderung der Anwendungskapazität konfiguriert sein, wobei die Skalierungsstrategie vertikales Skalieren und horizontales Skalieren beinhaltet.
  • Hierzu können ein oder mehrere der folgenden Merkmale gehören. Zu der Skalierungsstrategie kann ein Implementieren einer Vielzahl virtueller Maschinen gehören, auf denen die mehrschichtige Anwendung ausgeführt wird. Jeder aus der Vielzahl virtueller Maschinen können im Allgemeinen gleich konfigurierte Ressourcen zugeordnet sein. Mindestens eine virtuelle Maschine kann so implementiert sein, dass ihr geringere Ressourcen zugeordnet sind. Wenn die Änderung der Anwendungskapazität geringer als eine Restkapazität der virtuellen Maschine mit zugeordneten geringeren Ressourcen ist, kann das dritte Software-Modul so konfiguriert sein, dass es die virtuelle Maschine mit den zugeordneten geringeren Ressourcen vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung skaliert. Wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit den zugeordneten geringeren Ressourcen ist, kann das dritte Software-Modul so konfiguriert sein, dass es die virtuelle Maschine mit den zugeordneten geringeren Ressourcen vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung und die Anwendung horizontal skaliert, wozu ein Implementieren einer neuen virtuellen Maschine gehört, deren Ressourcenzuordnung geringer als die allgemein gleich konfigurierte Ressourcenzuordnung ist.
  • Das dritte Software-Modul kann so konfiguriert sein, dass es fortlaufend eine Skalierungsstrategie zumindest teilweise auf der Grundlage der voraussichtlichen Arbeitslast wählt. Das erste Software-Modul kann so konfiguriert sein, dass es eine voraussichtliche Arbeitslast zumindest teilweise auf der Grundlage von Langzeitbedarfsdaten für die Arbeitslast ermittelt. Das dritte Software-Modul kann so konfiguriert sein, dass es Ressourcen skaliert, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  • Gemäß einer weiteren Implementierung beinhaltet ein Skalierungsverfahren ein Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum. Für die voraussichtliche Arbeitslast wird eine Änderung der Anwendungskapazität ermittelt. Für die Änderung der Anwendungskapazität wird dynamisch eine Skalierungsstrategie gewählt. Die Skalierungsstrategie beinhaltet ein Implementieren einer Vielzahl virtueller Maschinen, auf denen die mehrschichtige Anwendung ausgeführt wird, wobei jeder aus der Vielzahl virtueller Maschinen allgemein gleich konfigurierte Ressourcen zugeordnet sein können. Die Skalierungsstrategie kann auch ein Implementieren mindestens einer virtuellen Maschine mit zugeordneten geringeren Ressourcen beinhalten.
  • Die Einzelheiten einer oder mehrerer Implementierungen werden in den beiliegenden Zeichnungen und der folgenden Beschreibung dargelegt. Weitere Merkmale werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt schematisch einen Skalierungsprozess in Verbindung mit einer Cloud-Computing-Umgebung.
  • 2 ist ein Ablaufplan eines Prozesses, der durch den Skalierungsprozess von 1 ausgeführt wird.
  • 3 zeigt schematisch den Skalierungsprozess von 1 in Verbindung mit einem Cloud-Computing-System.
  • 4 stellt grafisch einen Zusammenhang zwischen der Auslastung eines physischen Servers, dem Ressourcenleerlauf und den Kosten des Dienstleistungsabkommens (Service Level Agreement, SLA) dar.
  • DETAILLIERTE BESCHREIBUNG ANSCHAULICHER AUSFÜHRUNGSFORMEN
  • Dem Fachmann ist klar, dass die vorliegende Erfindung als Verfahren, System oder Computerprogrammprodukt umgesetzt werden kann. Demgemäß kann die vorliegende Erfindung die Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint und die hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus kann die vorliegende Erfindung die Form eines Computerprogrammprodukts auf dem durch Computer verwendbaren Speichermedium mit einem in dem Medium verkörperten durch Computer verwendbaren Programmcode annehmen.
  • Es kann ein beliebiges durch Computer verwendbares oder computerlesbares Medium verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem durch Computer verwendbaren oder computerlesbaren Speichermedium (darunter eine Speichereinheit, die einer Datenverarbeitungseinheit oder einer elektronischen Client-Einheit zugehörig ist) kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Im Einzelnen kommen als Beispiele für das computerlesbare Medium (eine nicht erschöpfende Aufzählung) infrage: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein austauschbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit. In Verbindung mit diesem Dokument kann es sich bei einem durch Computer verwendbaren oder computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem codiert darin verkörperten computerlesbaren Programm beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine beliebige aus einer Vielfalt von Formen annehmen, darunter, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder eine beliebige geeignete Kombination derselben. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterverbreiten oder transportieren kann.
  • Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
  • Ein Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann in einer objektorientierten Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen geschrieben sein. Der Computerprogrammcode zum Ausführen von Operationen der vorliegenden Erfindung kann auch in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferner Computer durch ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN) mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Die vorliegende Erfindung wird im Folgenden unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in dem Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen umgesetzt werden.
  • Diese Computerprogrammanweisungen können in einem computerlesbaren Speicher gespeichert sein, der einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung veranlassen kann, in einer bestimmten Weise so zu funktionieren, dass die in dem computerlesbaren Speicher gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen beinhaltet, die die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbildes angegebenen Funktionen/Aktionen umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung geladen werden, um eine Folge auf dem Computer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Schritte zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Aktionen bereitstellen.
  • 1 zeigt einen Skalierungsprozess 10, mittels dessen die Zuordnung von Ressourcen innerhalb einer Cloud-Computing-Umgebung 12 zumindest teilweise gesteuert werden kann. Die Figur zeigt, dass die Cloud-Umgebung 12 Hardware-Ressourcen 14 und Software-Ressourcen 16 beinhalten kann. Zu den Hardware-Ressourcen 14 können, ohne darauf beschränkt zu sein, ein oder mehrere Server-Computer (z. B. die Server s1 bis sn) und eine oder mehrere Speichereinheiten (z. B. die Speichereinheiten d1 bis dn) gehören. Zu den Software-Ressourcen 16 können eine oder mehrere Cloud-gestützte Anwendungen (z. B. die Anwendungen a1 bis an) gehören. Außerdem kann zu der einen oder den mehreren Anwendungen a1 bis an eine mehrschichtige Anwendung gehören. Es ist klar, dass eine mehrschichtige Anwendung eine Vielzahl interagierender Module und/oder Komponenten oder eine Vielzahl diskreter interagierender Anwendungen enthalten kann. Zum Beispiel kann eine mehrschichtige Anwendung eine Benutzeroberflächenkomponente (die z. B. Anzeigen erzeugen und ausgeben kann, die durch Clients C1 bis Cn betrachtet werden können), eine Anwendungskomponente (die z. B. die Funktionalität von Anwendungen steuern kann) und eine Datenkomponente enthalten, (die z. B. Daten speichern und abrufen kann, die durch die Anwendungskomponente verwendet werden können). Weitere beispielhafte mehrschichtige Anwendungen können Komponenten unterschiedlicher Funktionalität enthalten, sodass das obige Beispiel nicht als Einschränkung der vorliegenden Offenbarung zu verstehen ist.
  • Ein Beispiel von Servern s1 bis sn (die z. B. einen oder mehrere Prozessoren und eine oder mehrere nicht gezeigte Speicherarchitekturen beinhalten können), kann einen Blade-Server (beispielsweise ein IBM BladeCenter PS704 Express), ohne darauf beschränkt zu sein, oder einen anderen Server-Computer beinhalten. Als Beispiele für Speichereinheiten d1 bis dn können, ohne darauf beschränkt zu sein, ein Festplattenlaufwerk, ein Halbleiterlaufwerk, ein optisches Laufwerk, ein Direktzugriffsspeicher, ein Nur-Lese-Speicher und dergleichen infrage kommen. Auf jedem der Server s1 bis sn kann ein geeignetes Betriebssystem wie beispielsweise Red Hat® Linux® ausgeführt werden, das auf einer oder mehreren Speichereinheiten d1 bis dn gespeichert sein kann. (Red Hat ist ein eingetragenes Warenzeichen von Red Hat Corporation in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden; und Linux ist ein eingetragenes Warenzeichen von Linus Torvalds in den Vereinigten Staaten von Amerika, anderen Ländern oder in beiden).
  • Die Cloud-Umgebung 12 kann weitere nicht gezeigte Hardware und Software beinhalten, mittels derer durch einen oder mehrere Clients (z. B. die Clients C1 bis Cn) auf Hardwareressourcen 14 und Softwareressourcen 16 zugegriffen werden kann. Solche weitere Hardware kann, ohne darauf beschränkt zu sein, z. B. Vermittlungscomputer, Brücken, Webserver und dergleichen beinhalten, mittels derer Clients C1 bis Cn auf Hardwareressourcen 14 und/oder Softwareressourcen 16 zugreifen können. Außerdem können Clients C1 bis Cn über ein oder mehrere Netzwerke, darunter, ohne darauf beschränkt zu sein, das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk oder ein anderes Datenverarbeitungsnetzwerk, auf Cloud-Umgebung zugreifen. Die Clients C1 bis Cn können unter Verwendung beliebiger geeigneter Datenverarbeitungseinheiten auf die Cloud-Computing-Umgebung 12 zugreifen, darunter, ohne darauf beschränkt zu sein, Arbeitsplatzcomputer, Desktop-Computer, Notebook-Computer, mobile Datenverarbeitungseinheiten (z. B. datentaugliche Mobiltelefone, Netbooks, persönliche digitale Assistenten usw.), die diverse Software wie beispielsweise Web-Browser oder anwendungsspezifische Software ausführen.
  • Gemäß 2 kann mittels des Skalierungsprozesses 10 in Schritt 50 eine voraussichtliche Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum ermittelt werden. Mittels des Skalierungsprozesses 10 kann in Schritt 52 ferner eine Änderung der Anwendungskapazität für die voraussichtliche Arbeitslast ermittelt werden. Ferner kann mittels des Skalierungsprozesses 10 in Schritt 54 dynamisch eine Skalierungsstrategie für die Änderung der Anwendungskapazität gewählt werden. Die Skalierungsstrategie kann vertikales Skalieren und horizontales Skalieren beinhalten.
  • Zum Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum in Schritt 50 können verschiedene Vorhersagemodelle verwendet werden, die z. B. für den definierten Zeitraum zu erwartende Arbeitslasten anzeigen können. Zum Beispiel können den Vorhersagemodellen zumindest teilweise Langzeitbedarfsdaten für die Arbeitslast zugrunde liegen. Zum Beispiel kann bekannt sein, dass zumindest für bestimmte Cloud-Anwendungen (z. B. Anwendung a1) der Arbeitslastbedarf zu Bedarfsspitzen neigen kann, in denen der Arbeitslastbedarf in relativ kurzer Zeit um ein Vielfaches oder um Größenordnungen zunehmen kann. Zum Beispiel kann die Anwendung a1 eine Anwendung für ein soziales Netzwerk enthalten, deren Bedarfsspitze üblicherweise am Ende eines Werktages auftritt. Gemäß einer solchen Ausführungsform kann das Vorhersagemodell eine Bedarfsspitze anzeigen, die zu einem bestimmten Zeitpunkt des Tages beginnt. Gemäß anderen Ausführungsformen kann das Vorhersagemodell zum Beispiel anzeigen, dass der Arbeitslastbedarf für die Anwendung a1 in den vergangenen fünfzehn Minuten um 20 Prozent zugenommen hat und im Lauf der nächsten Stunde letztlich (bezogen auf den anfänglichen Arbeitslastbedarf) auf einen Höchstwert von 800 Prozent steigen dürfte. Das heißt, dem Vorhersagemodell kann zumindest teilweise eine Änderungsrate des Arbeitslastbedarfs zur Ermittlung eines statistisch wahrscheinlichen Höchstwertes des Arbeitslastbedarfs für den definierten Zeitraum zugrunde liegen. Außerdem kann zumindest teilweise auf der Grundlage des Vorhersagemodells ein statistisch wahrscheinlicher Höchstwert des Arbeitslastbedarfs für die Anwendung a1 in dem definierten Zeitraum bekannt sein. Es ist einsichtig, dass verschiedene weitere/alternative Vorhersagemodelle verwendet werden können, sodass die obigen Beispiele nicht als Einschränkung der vorliegenden Offenbarung anzusehen sind.
  • 3 zeigt das Vorhersagemodell gemäß einer Ausführungsform, das für den Skalierungsprozess 10 durch die Vorhersageeinheit 100 bereitgestellt sein kann. Die Vorhersageeinheit 100 kann eine Komponente enthalten, die Langzeitbedarfsdaten für verschiedene an die Anwendung a1 (die z. B. eine mehrschichtige Anwendung mit einer Vielfalt von Komponenten oder Modulen und/oder eine Vielzahl kooperierender Anwendungen enthalten kann) gerichteter Anforderungen bewerten und statistische Anforderungsvorhersagemodelle für voraussichtliche Arbeitslasten, Anforderungstypen, Anwendungsschichten und dergleichen erzeugen kann. Gemäß einem anschaulichen Beispiel kann die Vorhersageeinheit 100 unter Verwendung einer Polynomnäherung eine Zeitreihenanalyse auf der Grundlage einer kurzfristigen Vorhersage für die Häufigkeit eingehender Anforderungen verwenden. Es ist einsichtig, dass ebenso auch verschiedene weitere/alternative Analyseverfahren verwendet werden können.
  • Übereinstimmend mit dem in 3 gezeigten anschaulichen Beispiel kann die Vorhersageeinheit 100 Langzeitbedarfsdaten von einem Datenspeicher 102 empfangen. Bei einem solchen Beispiel kann der Datenspeicher 102 eine Ablage überwachter Anwendungs- und Systemparameter (die z. B. von einem oder mehreren Servern, in dem veranschaulichten Beispiel z. B. den Servern s1, s2, s3 und s4 empfangen werden können) von einem oder mehreren Servern (z. B. den Servern s1, s2, s3, s4) und Anwendungen (in dem veranschaulichten Beispiel z. B. den Anwendungen a1 und a2) enthalten, die in der Cloud (z. B. in der Cloud-Umgebung 12) ausgeführt werden. Wenn die Anwendungen (z. B. die Anwendung a1) mehrere Anforderungstypen empfangen, kann der Datenspeicher 102 die Anzahl der während eines bestimmten überwachten Zeitraums (z. B. in Intervallen von einer Minute) für jeden Anforderungstyp erfüllten Anforderungen protokollieren. Außerdem kann der Datenspeicher 102 auch Daten sammeln, darunter Parameter für die Anwendung, die die Dienstgütevereinbarung (service level agreement, SLA) betreffen. Als Beispiele von Systemparametern, die durch den Datenspeicher 102 protokolliert werden können, kommen infrage, ohne darauf beschränkt zu sein, Ressourcenberechtigungen (z. B. CPU- oder Zeitscheibenzuordnungen und RAM- und/oder Speicherplatzzuordnungen) für jede virtuelle Maschine (z. B. VM1, VM2, VM3 und VM4, auf denen die Anwendung a1 ausgeführt wird, und VM5, VM6, VM7 und VM8, auf denen die Anwendung a2 ausgeführt wird) sowie der Grad der Nutzung der Ressourcenberechtigungen durch jede virtuelle Maschine.
  • Der Skalierungsprozess 10 kann zumindest teilweise auf der Grundlage der in Schritt 50 ermittelten voraussichtlichen Arbeitslast für einen definierten Zeitraum in Schritt 52 eine Änderung der Anwendungskapazität für die vorhergesagte Arbeitslast ermitteln. Der Datenspeicher 102 kann wie oben erwähnt mehrere Anforderungstypen protokollieren, und die Vorhersageeinheit 100 kann ein Vorhersagemodell bereitstellen, das nicht nur die Anzahl oder die Änderung der Anforderungshäufigkeit beinhaltet, sondern die Vorhersageeinheit 100 kann auch ein Vorhersagemodell bereitstellen, das den Typ der Anforderungen anzeigt. Es ist klar, dass die erforderliche Kapazität einer Anwendung (z. B. der Anwendung a1) durch die verschiedenen Anforderungstypen sowie die Schichten der Anwendung beeinflusst werden kann, auf denen die Anforderungen unterschiedlichen Typs ausgeführt werden können.
  • Gemäß der veranschaulichten Ausführungsform von 3 kann mittels des Skalierungsprozesses 10 zumindest teilweise in Schritt 52 auf der Grundlage von Daten, die von der Arbeitslast-Klassifizierungseinheit 104 empfangen wurden, eine Änderung der Anwendungskapazität ermittelt werden. In der Arbeitslast-Klassifizierungseinheit 104 können Arbeitslasten in eine oder mehrere Gruppen zuvor erzeugter Arbeitslastklassen klassifiziert werden. Demgemäß kann die Arbeitslast-Klassifizierungseinheit 104 von dem Datenspeicher 102 Daten über eine Mischung von Arbeitslasten für eine Anwendung empfangen. Zu den Daten über eine Mischung von Arbeitslasten für eine Anwendung kann, ohne darauf beschränkt zu sein, eine aktuelle Verteilung von Anforderungstypen gehören. Die Mischung von Arbeitslasten kann den Umfang und die Typen der Ressourcen beeinflussen, die eine Anwendung zum Erfüllen einer bestimmten Anzahl von Anforderungen benötigt, die eine bestimmte Verteilung von Anforderungstypen aufweisen. Demgemäß kann mittels des Skalierungsprozesses 10 zumindest teilweise auf der Grundlage des durch die Vorhersageeinheit 100 bereitgestellten Vorhersagemodells und der Mischung von Arbeitslasten (und/oder der gemäß dem Vorhersagemodell vorhergesagten Mischung von Arbeitslasten), die durch die Arbeitslast-Klassifizierungseinheit 104 bereitgestellt wurde, in Schritt 52 eine Änderung der Anwendungskapazität ermittelt werden, die zum Bewältigen der voraussichtlich eintreffenden Arbeitslast erforderlich ist, die eine vorhergesagte Verteilung der Anforderungstypen aufweist.
  • Zumindest teilweise auf der Grundlage der in Schritt 52 ermittelten Änderung der Anwendungskapazität, die der in Schritt 50 ermittelten vorhergesagten Arbeitslast zugehörig ist, kann mittels des Skalierungsprozesses 10 in Schritt 54 dynamisch eine Skalierungsstrategie für die Änderung der Anwendungskapazität gewählt werden. Die Skalierungsstrategie kann vertikales Skalieren und horizontales Skalieren der mehrschichtigen Anwendung (z. B. der Anwendung a1) beinhalten. Die hierin angewendete vertikale Skalierung kann ein Ändern der Ressourcenzuordnung einer bestimmten virtuellen Maschine beinhalten, auf der eine Anwendung ausgeführt wird (z. B. VM1, auf der die Anwendung a1 ausgeführt wird). Zum Beispiel kann das vertikale Skalieren zum Vergrößern der Kapazität ein Erweitern der CPU-Berechtigung einer virtuellen Maschine (z. B. Erweitern der Berechtigung von 0,5 Kernen auf 0,9 Kerne), ein Erweitern der Speicherberechtigung (z. B. Erweitern der RAM-Berechtigung von 2 GB RAM auf 4 GB RAM) sowie ein Erweitern beliebiger anderer Ressourcenberechtigungen der betreffenden virtuellen Maschine beinhalten. Horizontales Skalieren kann ein Erzeugen einer oder mehrerer neuer Instanzen der virtuellen Maschine beinhalten, die eigene Ressourcenzuordnungen aufweisen, wobei die Anwendung (z. B. die Anwendung a1) auf jeder der neuen (sowie allen bereits vorhandenen) virtuellen Maschinen ausgeführt wird. Beim horizontalen Skalieren kann die Anwendung a1 gemeinsam durch jede der neuen virtuellen Maschinen sowie alle bereits vorhandenen virtuellen Maschinen ausgeführt werden, um die vorhergesagte Arbeitslast zu bewältigen und die erforderliche Änderung der Anwendungskapazität bereitzustellen.
  • Die in Schritt 54 dynamisch gewählte Skalierungsstrategie kann zum Beispiel beinhalten, einen Virtualisierungsmanager 106 anzuweisen, die Ressourcenzuordnung einer oder mehrerer virtueller Maschinen (z. B. VM1) zu ändern, auf denen eine Anwendung (z. B. die Anwendung a1) ausgeführt wird. Zusätzlich/alternativ kann der Virtualisierungsmanager 106 eine oder mehrere neue Instanzen von virtuellen Maschinen (z. B. VM2, VM3, VM4) erzeugen, auf denen die Anwendung a1 ausgeführt werden kann. Der Virtualisierungsmanager 106 kann einen Hypervisor wie beispielsweise den IBM PowerVMTM enthalten, der online ein dynamisches Ändern der Größe von virtuellen Maschinen (z. B. Hinzufügen oder Verringern von CPU- oder Speicherressourcen, ohne die VM zum Neukonfigurieren herunterzufahren) sowie ein Erzeugen neuer Instanzen von virtuellen Maschinen und Konfigurationen unterstützen kann.
  • Zusätzlich kann mittels des Skalierungsprozesses 10 eine erforderliche Neukonfiguration der Anwendung umgesetzt werden. Wenn die Skalierungsstrategie zum Beispiel ein horizontales Aktualisieren vorsieht, kann mittels des Skalierungsprozesses 10 eine Zugangssteuereinheit/Lastausgleichseinheit 108 angewiesen werden, Hostlisten und dergleichen zu aktualisieren, sodass über einen Gateway 110 empfangene Anforderungen an die neu geschaffenen Instanzen virtueller Maschinen (VM2, VM3, VM4 sowie VM1) verteilt werden können. Eine solche Neukonfiguration der Anwendung kann erforderlich werden, um sicherzustellen, dass die Arbeitslast auf die verschiedenen virtuellen Maschinen verteilt wird, auf denen die Anwendung ausgeführt wird, oder um die Anwendungskapazität zum Bewältigen der voraussichtlichen Arbeitslast bereitzustellen.
  • Wenn eine vorhergesagte Arbeitslastspitze eintritt, kann die zum Bewältigen der vorhergesagten Arbeitslast erforderliche Anwendungskapazität die Kapazität der aktuell vorhandenen Instanzen virtueller Maschinen bei weitem übersteigen, sodass eine (oder mehrere) neue virtuelle Maschinen erzeugt werden müssen, auf denen die Anwendung ausgeführt wird. Gemäß einem Aspekt der vorliegenden Offenbarung kann mittels des Skalierungsprozesses 10 in Schritt 54 eine Skalierungsstrategie gewählt werden, um für die Anwendung ein Optimum von Leistungsfähigkeit und Kosten zu finden. Gemäß einem solchen Aspekt und dem in 3 gezeigten Server-Cluster kann die Skalierungsstrategie ein Implementieren einer Vielzahl virtueller Maschinen in Schritt 56 beinhalten, auf denen die mehrschichtige Anwendung ausgeführt wird. Jede aus der Vielzahl virtueller Maschinen kann allgemein gleich konfigurierte Ressourcenzuordnungen aufweisen. Mindestens eine virtuelle Maschine kann mit einer geringeren Ressourcenzuordnung implementiert sein.
  • Im Folgenden wird zum Beispiel eine Instanz einer virtuellen Maschine, auf der die Anwendung a1 ausgeführt wird, mit einer Konfiguration (z. B. einer Zuordnung von Prozessor-, Speicherressourcen usw.) erörtert, die für die Anwendung einen gewünschten Ausgleich zwischen Leistungsfähigkeit und Kosten bietet. Im Rahmen der folgenden Beschreibung kann eine solche Konfiguration als „optimale” Konfiguration bezeichnet werden. Es sollte jedoch einsichtig sein, dass der Begriff „optimal” einen subjektiv wünschenswerten Ausgleich zwischen Leistungsfähigkeit und Kosten der Anwendung anzeigen soll und nicht als Einschränkung der vorliegenden Offenbarung zu verstehen ist, da auch andere Leistungs/Kosten-Bilanzen vorteilhaft verwendet werden können. Für eine bestimmte erforderliche oder erwünschte Anwendungskapazität (z. B. die in Schritt 52 ermittelte Änderung der Anwendungskapazität) können mittels der in Schritt 54 dynamisch gewählten Skalierungsstrategie eine Vielzahl optimal konfigurierter virtueller Maschinen (z. B. eine Vielzahl virtueller Maschinen mit allgemein gleich konfigurierten Ressourcenzuordnungen) implementiert werden. Da es unwahrscheinlich ist, dass die in Schritt 52 ermittelte Anwendungskapazität für die voraussichtliche Arbeitslast für eine ganze Anzahl optimal konfigurierter virtueller Maschinen gleich ist, kann sich die in Schritt 54 dynamisch gewählte Skalierungsstrategie einer Vielzahl optimal konfigurierter virtueller Maschinen bedienen, um den Großteil der in Schritt 52 ermittelten Kapazität abzudecken, und eine oder mehrere virtuelle Maschinen mit einer Ressourcenzuordnung verwenden, deren Ressourcenzuordnung geringer als die der optimalen Konfiguration ist (z. B. können die eine oder die mehreren virtuellen Maschinen eine geringere CPU- oder Speicherzuordnung aufweisen).
  • Gemäß dem oben Gesagten kann eine in Schritt 52 ermittelte Kapazität C für die in Schritt 50 ermittelte voraussichtliche Arbeitslast auf M virtuelle Maschinen verteilt werden. Gemäß einer anschaulichen Ausführungsform können M – 1 virtuelle Maschinen mit einer Kapazität N optimal konfiguriert sein. Die virtuelle Maschine M kann eine Kapazität CM aufweisen, die sich aus der Formel ergibt: C – (M – 1)·N
  • Es ist einsichtig, dass gemäß anderen Ausführungsformen mehr als eine virtuelle Maschine eine Kapazität aufweisen kann, die von der Kapazität einer optimal konfigurierten virtuellen Maschine verschieden ist. Gemäß einer solchen Ausführungsform können X virtuelle Maschinen eine Kapazität aufweisen, die von der optimalen Kapazität verschieden ist. Gemäß einer solchen Implementierung kann die Gesamtkapazität der X virtuellen Maschinen durch die Formel gegeben sein: C – (M – X)·N
  • Gemäß einer solchen Ausführungsform kann die Gesamtkapazität der X virtuellen Maschinen je nach den Auslegungskriterien und den Benutzerwünschen gleich oder ungleich auf die X virtuellen Maschinen aufgeteilt werden.
  • Gemäß der obigen Beschreibung und unter Bezugnahme auf 3 sei angenommen, dass die Anwendung a1 zu Anfang nur auf einer einzigen virtuellen Maschine (VM1) installiert ist. Ferner sei angenommen, dass mittels des Skalierungsprozesses 10 auf der Grundlage der in Schritt 50 ermittelten voraussichtlichen Arbeitslast in Schritt 52 eine Änderung der voraussichtlichen Arbeitslast ermittelt werden kann, die sich auf mehr als das Dreifache der verfügbaren Kapazität einer optimal konfigurierten virtuellen Maschine beläuft, auf der die Anwendung a1 ausgeführt wird. Mittels des Skalierungsprozesses 10 kann in Schritt 54 dynamisch eine Skalierungsstrategie gewählt werden, um in Schritt 56 eine Vielzahl virtueller Maschinen (z. B. VM1, VM2, VM3) mit allgemein gleich konfigurierter Ressourcenzuordnung zu implementieren (die z. B. gemeinsam den Großteil der in Schritt 52 ermittelten Kapazitätsänderung für die vorhergesagte Arbeitslast abdecken können). Außerdem kann mittels des Skalierungsprozesses 10 in Schritt 56 eine virtuelle Maschine VM4 mit einer geringeren Ressourcenzuordnung implementiert werden, die z. B. die Differenz zwischen der in Schritt 54 ermittelten Kapazitätsänderung und der durch die virtuellen Maschinen VM1, VM2 und VM3 gemeinsam bereitgestellten Kapazität abdecken kann. Demgemäß können die virtuellen Maschinen VM1, VM2, VM3 und VM4 gemeinsam eine Kapazität bereitstellen, die zum Abdecken der in Schritt 52 ermittelten Kapazitätsänderung erforderlich ist. Demgemäß kann die obige Skalierungsstrategie vertikales Skalieren in Schritt 58 (z. B. durch Erhöhen einer anfänglich konfigurierten Ressourcenzuordnung von VM1 von einer anfänglichen suboptimalen Konfiguration auf eine optimale Konfiguration) sowie horizontales Skalieren in Schritt 60 beinhalten (z. B. durch Erzeugen zusätzlicher Instanzen virtueller Maschinen VM2, VM3, VM4). Zwar wurden in diesem Beispiel nur vier virtuelle Maschinen erörtert, jedoch ist einsichtig, dass dieses nur zur leichteren Erläuterung und Veranschaulichung dient, da die Anzahl virtueller Maschinen, die Anzahl der Server und die Vielgestaltigkeit der Cloud-Computing-Umgebung stark variieren können.
  • Gemäß der folgenden ausführlichen Erörterung ist einsichtig, dass sowohl horizontales Skalieren als auch vertikales Skalieren mit verschiedenen Aufwendungen, sowohl finanzieller Art als auch in Bezug auf die Systemleistung, verbunden sein kann. Ausgehend von dem Konzept einer optimal konfigurierten virtuellen Maschine und unter Bezugnahme auf 4 ist einsichtig, dass sowohl eine unzureichende Auslastung als auch eine übermäßig hohe Auslastung der Ressourcen eines physischen Servers mit Kosten verbunden sein kann. Wenn zum Beispiel ein Server wie gezeigt durch die auf dem Server ausgeführten Anwendungen (und zugehörige virtuelle Maschinen) nur unzureichend ausgelastet wird, können Ressourcen in relativ hohem Maße verschwendet werden. Das heißt, der Server ist in Bezug auf die verfügbaren Ressourcen nur gering ausgelastet. Durch Erhöhen der Auslastung des physischen Servers (z. B. vertikales Skalieren zum Erweitern der durch eine auf dem Server ausgeführte Anwendung) kann das Risiko von Ressourcenkonflikten mit anderen auf dem Server ausgeführten Anwendungen zunehmen, das Verlagern einer oder mehrerer Instanzen anderer Anwendungen von einem zu einem anderen physischen Server erforderlich machen und zur Verletzung des SLA dieser auf dem Server ausgeführten Anwendungen führen. Gemäß einer Ausführungsform kann eine wünschenswerte Auslastung eines Servers allgemein am Schnittpunkt der Kurven für verschwendete Ressourcen und der Kosten für die Verletzung des SLA liegen. Demgemäß kann es wünschenswert sein, die größtmögliche Anzahl physischer Server zu laden, um eine Auslastung der physischen Server an diesem Schnittpunkt zu erzielen.
  • Gemäß dem oben Gesagten können mittels des Skalierungsprozesses 10 die relativen Kosten für das Erzeugen einer neuen Instanz einer virtuellen Maschine zum Ausführen einer weiteren Instanz einer bestimmten Anwendung (z. B. der Anwendung a1) auf einem separaten Server (d. h. horizontales Aktualisieren der Anwendung a1) und das Erweitern der Ressourcenzuordnung einer virtuellen Maschine ermittelt werden, auf der eine vorhandene Instanz der Anwendung a1 (vertikales Skalieren der Anwendung a1) ausgeführt wird, was zu einer Auslastung eines physischen Servers über den Schnittpunkt der Kurve für verschwendete Ressourcen und der Kurve der Kosten für die Verletzung der SLA hinaus führt. Mittels des Skalierungsprozesses 10 können die Kosten für horizontales Skalieren der Anwendung a1 und vertikales Skalieren der Anwendung a1 zumindest teilweise anhand von Kostenmodellen 112 ermittelt werden.
  • Über die Kosten hinaus, die mit der Auslastung eines physischen Servers über den oben erörterten Schnittpunkt hinaus verbunden sind, ist einsichtig, dass vertikales Skalieren weiteren praktischen Einschränkungen und Kosten unterliegen kann. Gemäß dem oben Gesagten kann vertikales Skalieren einer Instanz der Anwendung a1 (z. B. Erweitern der der virtuellen Maschine zugeordneten Ressourcen, auf der die Instanz der Anwendung a1 ausgeführt wird) ein Verlagern anderer Anwendungen erfordern, um die für vertikales Skalieren der Anwendung a1 benötigten Ressourcen freizulenken (d. h., um diese Ressourcen der virtuellen Maschine zuzuordnen, auf der die Anwendung a1 ausgeführt wird). Demgemäß kann ein Grad der vertikalen Skalierung erreicht werden, bei dem durch Hinzufügen weiterer Ressourcen (z. B. zusätzlicher CPU- oder Speicherressourcen) keine größere Anwendungskapazität erzielt wird, und/oder es kann ein Zustand verringerter Effektivität erzeugt werden, in dem eine weitere Zunahme der Ressourcen für eine virtuelle Maschine zu einer geringeren Zunahme der Leistungsfähigkeit oder Anwendungskapazität (z. B. der Fähigkeit der Anwendung zum Bearbeiten von Anforderungen) führt, was entweder auf Einschränkungen seitens des physischen Servers, der Anwendungsarchitektur oder auf andere Einschränkungen zurückzuführen ist. Gemäß einer Ausführungsform kann der Punkt, an dem die maximale Leistungsfähigkeit pro zugeordnete Ressourcen erzielt wird, als optimale Kapazität der virtuellen Maschine genutzt werden. Andere Konfigurationen können natürlich andere Faktoren in Betracht ziehen und auf der Grundlage solcher Abwägungen zwischen Leistungsfähigkeit und Kosten andere Konfigurationen virtueller Maschinen mit optimaler Kapazität erzielen.
  • Außerdem können durch horizontales Skalieren der Anwendung (z. B. beim Erzeugen neuer Instanzen virtueller Maschinen, die die Anwendung auf weiteren Servern ausführen) verschiedene Kosten verbunden sein. Im Vergleich zum vertikalen Skalieren kann horizontales Skalieren zum Beispiel relativ langsam sein (z. B. Erzeugen von Instanzen und Konfigurieren neuer virtueller Maschinen, Aktualisieren von Hostlisten in Gateways und dergleichen erfordern). Demgemäß kann horizontales Skalieren zugehörige Leistungsverluste insofern aufweisen, als während der zum Erzeugen von Instanzen und Konfigurieren weiterer virtueller Maschinen und zum Aktualisieren von Hostlisten benötigten Zeit die (auf den vorhandenen virtuellen Maschinen ausgeführte) Anwendung nicht über die Kapazität zum Verarbeiten aller ankommenden Anforderungen verfügen kann. Außerdem können mit horizontalem Skalieren auch noch weitere Kosten wie beispielsweise Kosten für Softwarelizenzen, Ressourcenkosten für die neu erzeugten Instanzen virtueller Maschinen, die Fragmentierung usw. verbunden sein. Solche Kosten können z. B. durch Kostenmodelle 112 in den Skalierungsprozess 10 eingebracht werden.
  • Wenn die Änderung der Anwendungskapazität geringer als eine Restkapazität der virtuellen Maschine mit einer geringeren Ressourcenzuordnung ist, kann gemäß den obigen Erörterungen zum Wählen der Skalierungsstrategie vertikales Skalieren der Anwendung in Schritt 59 durch vertikales Skalieren der virtuellen Maschine mit der geringeren Ressourcenzuordnung gehören. Bei dem oben angegebenen Beispiel kann eine virtuelle Maschine (z. B. VM4) eine Ressourcenzuordnung beinhalten, die geringer als eine optimale Ressourcenzuordnung ist. Das heißt, innerhalb des gewünschten ausgewogenen Kosten/Leistungsverhältnisses können durch die virtuelle Maschine mehr Server-Ressourcen genutzt werden. Demgemäß kann dynamisches Wählen einer Skalierungsstrategie in Schritt 54 ein vertikales Skalieren der VM4 in Schritt 58 beinhalten, um die zusätzliche Kapazität zu bewältigen. Vertikales Skalieren der virtuellen Maschine in Schritt 58 kann ein vertikales Skalieren der virtuellen Maschine auf eine optimale Konfiguration beinhalten. Zusätzlich/alternativ kann vertikales Skalieren der virtuellen Maschine in Schritt 58 ein Skalieren der virtuellen Maschine auf eine Konfiguration mit einer Ressourcenzuordnung beinhalten, die entweder oberhalb oder unterhalb der optimalen Konfiguration liegt.
  • Gemäß der obigen Erörterung kann mittels des Skalierungsprozesses 10 in Schritt 52 außerdem eine der vorhergesagten Arbeitslast zugehörige Kapazitätsänderung ermittelt werden. Das Ermitteln der der vorhergesagten Arbeitslast zugehörigen Kapazitätsänderung in Schritt 52 kann zumindest teilweise auf Daten beruhen, die durch Ressourcenmodelle 114 bereitgestellt werden. Die Ressourcenmodelle 114 können profilorientierte Ressourcenmodelle enthalten, die auf Ressourcen hinweisen können, die unter bestimmten verschiedenen Skalierungskonfigurationen verwendet werden. Zum Beispiel können die Ressourcenmodelle 114 Daten über die Ressourcen (z. B. CPU-Ressourcen, Speicher und dergleichen) enthalten, die für einen bestimmten Durchsatz oder eine bestimmte Anzahl von Anforderungen oder Operationen pro Sekunde erforderlich sein können. Die Ressourcenmodelle können zumindest teilweise empirisch von Daten abgeleitet werden, die durch den Datenspeicher 102 protokolliert wurden. Zusätzlich/alternativ können die Ressourcenmodelle 114 statistische Modelle beinhalten, die zumindest teilweise auf Daten beruhen, die durch den Datenspeicher 102 protokolliert wurden.
  • Wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit der geringeren Ressourcenzuordnung ist, kann das Wählen der Skalierungsstrategie in Schritt 54 ferner ein horizontales Skalieren der Anwendung in Schritt 60 beinhalten. Gemäß den obigen Ausführungen kann das horizontale Skalieren der Anwendung in Schritt 60 ein Erzeugen zusätzlicher Instanzen virtueller Maschinen (z. B. VM2, VM3, VM4 in der anschaulichen Ausführungsform von 3) beinhalten, die die Anwendung (z. B. die Anwendung a1) ausführen. Gemäß den obigen Ausführungen kann das horizontale Skalieren der Anwendung in Schritt 60 auch ein Hinzufügen zusätzlicher virtueller Maschinen beinhalten, denen Ressourcen in unterschiedlichem Maße zugeordnet sind (z. B. optimal skalierte virtuelle Maschinen V2, V3 und die suboptimal skalierte virtuelle Maschine VM4).
  • Das dynamische Wählen einer Skalierungsstrategie in Schritt 54 kann ein fortlaufendes Wählen einer Skalierungsstrategie in Schritt 62 zumindest teilweise auf der Grundlage der voraussichtlichen Arbeitslast beinhalten. Das heißt, mittels des Skalierungsprozesses 10 kann in Schritt 54 eine Skalierungsstrategie für sich ändernde Bedingungen gewählt werden. Zum Beispiel kann mittels des Skalierungsprozesses 10 zumindest teilweise auf der Grundlage der in Schritt 50 vorhergesagten Arbeitslasten (die sich z. B. im Lauf der Zeit ändern können) und entsprechender in Schritt 52 ermittelter Änderungen der Anwendungskapazität für die voraussichtlichen Arbeitslasten die in Schritt 54 gewählte Skalierungsstrategie geändert werden, wenn sich zum Beispiel die voraussichtliche Arbeitslast ändert. Demgemäß kann mittels des Skalierungsprozesses 10 in Schritt 54 eine Skalierungsstrategie ständig und adaptiv gewählt werden, sowie sich die Bedingungen und die vorhergesagten Arbeitslasten ändern. Das ständige Ändern einer Skalierungsstrategie in Schritt 62 kann darin bestehen, dass an der gewählten Skalierungsstrategie fortlaufend in Echtzeit Anpassungen vorgenommen werden. Zusätzlich/alternativ kann das ständige Wählen einer Skalierungsstrategie in Schritt 62 durch periodisches (z. B. in vorgegebenen Zeitintervallen oder auf der Grundlage einer Änderung der Bedingungen wie beispielsweise der Leistungsfähigkeit der Anwendung oder der vorhergesagten Arbeitslast) Wählen einer Skalierungsstrategie in Schritt 54 erfolgen (darunter durch Korrigieren einer gewählten Gesamtstrategie).
  • Das dynamische Wählen einer Skalierungsstrategie in Schritt 54 kann ein Skalieren von Ressourcen in Schritt 64 beinhalten, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind. Gemäß den obigen Ausführungen kann die Anwendung a1 zum Beispiel eine Vielzahl von Modulen oder Komponenten beinhalten (die z. B. eine Vielzahl miteinander kooperierender Anwendungen enthalten). Die Anwendung a1 kann mehrere Anforderungstypen empfangen, deren Verarbeitung oder auszuführende Aktionen durch verschiedene Schichten der Anwendung a1 erfolgen sollen. Ferner können die Verarbeitung oder auszuführenden Aktionen unter Nutzung verschiedener Ressourcen (z. B. können für bestimmte Verarbeitungen oder Aktionen ein größerer RAM, für andere Verarbeitungen oder Aktionen hingegen größere CPU-Zuordnungen erforderlich sein) erfolgen und/oder durch Module oder Komponenten ausgeführt werden (die z. B. eine oder mehrere interagierende Anwendungen beinhalten), die durch verschiedene virtuelle Maschinen ausgeführt werden können. Demgemäß kann das dynamische Wählen einer Skalierungsstrategie in Schritt 54 ein Skalieren von Ressourcen in Schritt 64 (beispielsweise CPU-Zuordnungen, RAM-Zuordnungen oder einzelne oder Gruppen von virtuellen Maschinen), die einer bestimmten Schicht einer mehrschichtigen Anwendung zugehörig sind, zumindest teilweise auf der Grundlage einer in Schritt 50 vorhergesagten Arbeitslast und einer in Schritt 52 ermittelten Änderung der Anwendungskapazität in verschiedenen Schichten einer mehrschichtigen Anwendung beinhalten. In bestimmten Fällen können in Schritt 64 Ressourcen skaliert werden, die allen Schichten einer mehrschichtigen Anwendung zugehörig sind, jedoch kann sich das Skalieren (z. B. in Bezug auf den Skalierungsgrad; die Konfiguration virtueller Maschinen; die zugeordneten Ressourcen; Skalierungstyp und Grad des Skalierungstyps wie beispielsweise vertikales und horizontales Skalieren; und dergleichen) für verschiedene Schichten der mehrschichtigen Anwendung voneinander unterscheiden.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist auch, dass bei bestimmten alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge vorkommen können. Zum Beispiel können zwei nacheinander gezeigte Blöcke je nach vorgesehener Funktionalität tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaubilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezialisierte Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder Kombinationen von spezialisierter Hardware und Computeranweisungen umgesetzt werden können.
  • Die hierin gebrauchten Begriffe dienen lediglich dem Beschreiben einzelner Ausführungsformen und sind nicht als Einschränkung der Erfindung zu verstehen. Die hierin gebrauchten Einzahlformen „ein”, „eine” und „der, die, das” sollen gleichermaßen auch die Mehrzahlformen beinhalten, sofern aus dem Zusammenhang nicht anderes hervorgeht. Ferner ist klar, dass die Begriffe „weist auf” und/oder „aufweisend” bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder Hinzukommen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder deren Gruppen ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und gleichwertigen Entsprechungen aller Mittel oder Schritte zuzüglich Funktionselemente in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen beinhalten. Die Beschreibung der vorliegenden Erfindung ist mit dem Ziel der Veranschaulichung und Beschreibung vorgelegt worden, erhebt jedoch nicht den Anspruch auf Vollständigkeit oder Einschränkung auf die Erfindung in der offenbarten Form. Dem Fachmann sind viele Modifikationen und Varianten offensichtlich, ohne vom Schutzumfang und Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und deren praktische Anwendung bestmöglich zu erläutern und anderen Fachleuten das Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu ermöglichen, die für die jeweils vorgesehene Verwendung geeignet sind.
  • Aus der solchermaßen ausführlich und unter Bezugnahme auf deren Ausführungsformen beschriebenen Erfindung wird offensichtlich, dass Modifikationen und Varianten möglich sind, ohne vom Schutzumfang der Erfindung abzuweichen, der in den beiliegenden Ansprüchen definiert ist.

Claims (22)

  1. Verfahren zum Skalieren, das aufweist: Ermitteln einer vorhergesagten Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum durch eine Datenverarbeitungseinheit; Ermitteln einer Änderung der Anwendungskapazität für die vorhergesagte Arbeitslast durch die Datenverarbeitungseinheit; und dynamisches Wählen einer Skalierungsstrategie für die Änderung der Anwendungskapazität durch die Datenverarbeitungseinheit, wobei die Skalierungsstrategie ein vertikales Skalieren und ein horizontales Skalieren beinhaltet.
  2. Verfahren nach Anspruch 1, wobei die Skalierungsstrategie ein Implementieren einer Vielzahl virtueller Maschinen, die die mehrschichtige Anwendung ausführen, wobei jede aus der Vielzahl virtueller Maschinen allgemein gleich konfigurierte Ressourcenzuordnungen aufweist, und ein Implementieren mindestens einer virtuellen Maschine beinhaltet, die eine geringere Ressourcenzuordnung aufweist.
  3. Verfahren nach Anspruch 2, wobei das Wählen der Skalierungsstrategie ein vertikales Skalieren der virtuellen Maschine mit der geringeren Ressourcenzuordnung auf die allgemein gleich konfigurierte Ressourcenzuordnung beinhaltet, wenn die Änderung der Anwendungskapazität kleiner als eine Restkapazität der virtuellen Maschine mit einer geringeren Ressourcenzuordnung ist.
  4. Verfahren nach Anspruch 3, wobei das Wählen der Skalierungsstrategie ein vertikales Skalieren der virtuellen Maschine mit der geringeren Ressourcenzuordnung auf die allgemein gleich konfigurierte Ressourcenzuordnung und ein horizontales Skalieren der Anwendung beinhaltet, das ein Implementieren einer neuen virtuellen Maschine mit einer Ressourcenzuordnung beinhaltet, die kleiner als die allgemein gleich konfigurierte Ressourcenzuordnung ist, wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit der geringeren Ressourcenzuordnung ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das dynamische Wählen einer Skalierungsstrategie ein fortlaufendes Wählen einer Skalierungsstrategie zumindest teilweise auf der Grundlage der vorhergesagten Arbeitslast beinhaltet.
  6. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Ermitteln einer vorhergesagten Arbeitslast zumindest teilweise auf Langzeitbedarfsdaten der Arbeitslast beruht.
  7. Verfahren nach einem der Ansprüche 1 bis 4, wobei das dynamische Wählen einer Skalierungsstrategie ein Skalieren von Ressourcen beinhaltet, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  8. Computerprogrammprodukt, das ein computerlesbares Medium mit einer Vielzahl darauf gespeicherter Anweisungen beinhaltet, die bei Ausführung durch einen Prozessor diesen zum Ausführen von Operationen veranlassen, die aufweisen: Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum; Ermitteln einer Änderung der Anwendungskapazität für die voraussichtliche Arbeitslast; und dynamisches Wählen einer Skalierungsstrategie für die Änderung der Anwendungskapazität, wobei die Skalierungsstrategie ein vertikales Skalieren und ein horizontales Skalieren beinhaltet.
  9. Computerprogrammprodukt nach Anspruch 8, wobei die Skalierungsstrategie ein Implementieren einer Vielzahl virtueller Maschinen, die die mehrschichtige Anwendung ausführen, wobei jede aus der Vielzahl virtueller Maschinen allgemein gleich konfigurierte Ressourcenzuordnungen aufweist, und ein Implementieren mindestens einer virtuellen Maschine aufweist, die eine geringere Ressourcenzuordnung aufweist.
  10. Computerprogrammprodukt nach Anspruch 9, wobei die Anweisungen zum Wählen der Skalierungsstrategie Anweisungen zum vertikalen Skalieren der virtuellen Maschine mit der geringeren Ressourcenzuordnung auf die allgemein gleich konfigurierte Ressourcenzuordnung aufweist, wenn die Änderung der Anwendungskapazität kleiner als eine Restkapazität der virtuellen Maschine mit einer geringeren Ressourcenzuordnung ist.
  11. Computerprogrammprodukt nach Anspruch 10, wobei die Anweisungen zum Wählen der Skalierungsstrategie Anweisungen zum vertikalen Skalieren der virtuellen Maschine mit der geringeren Ressourcenzuordnung auf die allgemein gleich konfigurierte Ressourcenzuordnung und zum horizontalen Skalieren der Anwendung beinhalten, was ein Implementieren einer neuen virtuellen Maschine mit einer Ressourcenzuordnung beinhaltet, die kleiner als die allgemein gleich konfigurierte Ressourcenzuordnung ist, wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit der geringeren Ressourcenzuordnung ist.
  12. Computerprogrammprodukt nach einem der vorhergehenden Ansprüche, wobei die Anweisungen zum Wählen einer Skalierungsstrategie Anweisungen zum ständigen Wählen einer Skalierungsstrategie zumindest teilweise auf der Grundlage der vorhergesagten Arbeitslast beinhalten.
  13. Computerprogrammprodukt nach einem der Ansprüche 8 bis 11, wobei das Ermitteln einer vorhergesagten Arbeitslast zumindest teilweise auf Langzeitbedarfsdaten der Arbeitslast beruht.
  14. Computerprogrammprodukt nach einem der Ansprüche 8 bis 11, wobei die Anweisungen zum dynamischen Wählen einer Skalierungsstrategie Anweisungen zum Skalieren von Ressourcen beinhalten, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  15. System, das aufweist: einen Prozessor; eine mit den Prozessoren verbundene Speicherarchitektur; ein erstes durch den Prozessor und die Speicherarchitektur ausführbares Software-Modul, wobei das erste Software-Modul so konfiguriert ist, dass es eine vorhergesagte Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum ermittelt; ein zweites durch den Prozessor und die Speicherarchitektur ausführbares Software-Modul, wobei das zweite Software-Modul so konfiguriert ist, dass es eine Änderung der Anwendungskapazität für die vorhergesagte Arbeitslast ermittelt; und ein drittes durch den Prozessor und die Speicherarchitektur ausführbares Software-Modul, wobei das dritte Software-Modul so konfiguriert ist, dass es dynamisch eine Skalierungsstrategie für die Änderung der Anwendungskapazität wählt, wobei die Skalierungsstrategie ein vertikales Skalieren und ein horizontales Skalieren beinhaltet.
  16. System nach Anspruch 15, wobei die Skalierungsstrategie ein Implementieren einer Vielzahl virtueller Maschinen, die die mehrschichtige Anwendung ausführen, wobei jede aus der Vielzahl virtueller Maschinen allgemein gleich konfigurierte Ressourcenzuordnungen aufweist, und ein Implementieren mindestens einer virtuellen Maschine beinhaltet, die eine geringere Ressourcenzuordnung aufweist.
  17. System nach Anspruch 16, wobei das dritte Software-Modul so konfiguriert ist, dass es die Skalierungsstrategie wählt, und ferner so konfiguriert ist, dass es die virtuelle Maschine mit der geringeren Ressourcenzuordnung vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung skaliert, wenn die Änderung der Anwendungskapazität kleiner als eine Restkapazität der virtuellen Maschine mit einer geringeren Ressourcenzuordnung ist.
  18. System nach Anspruch 17, wobei das dritte Software-Modul so konfiguriert ist, dass es die Skalierungsstrategie wählt, und ferner so konfiguriert ist, dass es die virtuelle Maschine mit der geringeren Ressourcenzuordnung vertikal auf die allgemein gleich konfigurierte Ressourcenzuordnung skaliert und die Anwendung horizontal skaliert, was ein Implementieren einer neuen virtuellen Maschine mit einer Ressourcenzuordnung beinhaltet, die kleiner als die allgemein gleich konfigurierte Ressourcenzuordnung ist, wenn die Änderung der Anwendungskapazität größer als eine Restkapazität der virtuellen Maschine mit der geringeren Ressourcenzuordnung ist.
  19. System nach einem der vorhergehenden Ansprüche, wobei das zum dynamischen Wählen einer Skalierungsstrategie konfigurierte dritte Software-Modul ferner so konfiguriert ist, dass es fortlaufend eine Skalierungsstrategie zumindest teilweise auf der Grundlage der vorhergesagten Arbeitslast wählt.
  20. System nach einem der Ansprüche 15 bis 18, wobei das zum Ermitteln einer voraussichtlichen Arbeitslast konfigurierte erste Software-Modul so konfiguriert ist, dass es eine voraussichtliche Arbeitslast zumindest teilweise auf der Grundlage von Langzeitbedarfsdaten für die Arbeitslast ermittelt.
  21. System nach einem der Ansprüche 15 bis 18, wobei das zum dynamischen Wählen einer Skalierungsstrategie konfigurierte dritte Software-Modul ferner so konfiguriert ist, dass es Ressourcen skaliert, die einer bestimmten Schicht der mehrschichtigen Anwendung zugehörig sind.
  22. Skalierungsverfahren, das aufweist: Ermitteln einer voraussichtlichen Arbeitslast einer mehrschichtigen Anwendung für einen definierten Zeitraum durch eine Datenverarbeitungseinheit; Ermitteln einer Änderung der Anwendungskapazität für die voraussichtliche Arbeitslast durch die Datenverarbeitungseinheit; und dynamisches Wählen einer Skalierungsstrategie für die Änderung der Anwendungskapazität durch die Datenverarbeitungseinheit, wobei die Skalierungsstrategie ein Implementieren einer Vielzahl virtueller Maschinen, die die mehrschichtige Anwendung ausführen, wobei jede aus der Vielzahl virtueller Maschinen allgemein gleich konfigurierte Ressourcenzuordnungen aufweist, und ein Implementieren mindestens einer virtuellen Maschine beinhaltet, die eine geringere Ressourcenzuordnung aufweist.
DE112012005529.2T 2011-12-30 2012-11-14 Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung Ceased DE112012005529T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USUS-13/340,985 2011-12-30
US13/340,985 US8756609B2 (en) 2011-12-30 2011-12-30 Dynamically scaling multi-tier applications vertically and horizontally in a cloud environment
PCT/CN2012/084552 WO2013097552A1 (en) 2011-12-30 2012-11-14 Dynamically scaling multi-tier applications in a cloud environment

Publications (1)

Publication Number Publication Date
DE112012005529T5 true DE112012005529T5 (de) 2014-10-02

Family

ID=48696038

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005529.2T Ceased DE112012005529T5 (de) 2011-12-30 2012-11-14 Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung

Country Status (4)

Country Link
US (2) US8756609B2 (de)
CN (1) CN104025055B (de)
DE (1) DE112012005529T5 (de)
WO (1) WO2013097552A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022201291A1 (de) 2022-02-08 2023-08-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756307B1 (en) * 2007-07-30 2014-06-17 Hewlett-Packard Development Company, L.P. Translating service level objectives to system metrics
US8793766B2 (en) * 2012-03-13 2014-07-29 International Business Machines Corporation Method and apparatus for security-aware elasticity of application and services
US9590879B2 (en) * 2012-03-21 2017-03-07 Tier 3, Inc. Cloud application scaling framework
EP2828742A4 (de) 2012-03-22 2016-05-18 Tier 3 Inc Flexible speicherbereitstellung
US9069606B2 (en) * 2012-05-08 2015-06-30 Adobe Systems Incorporated Autonomous application-level auto-scaling in a cloud
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US10057179B2 (en) * 2012-07-20 2018-08-21 Hewlett Packard Enterprise Development Company Lp Policy based scaling of network resources
CN103793276A (zh) * 2012-10-31 2014-05-14 英业达科技有限公司 负载预测方法与电子装置
US10127084B2 (en) * 2012-11-15 2018-11-13 Red Hat Israel, Ltd. Pre-provisioning resources for composite applications
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US9817699B2 (en) 2013-03-13 2017-11-14 Elasticbox Inc. Adaptive autoscaling for virtualized applications
US9542294B2 (en) * 2013-07-09 2017-01-10 International Business Machines Corporation Method to apply perturbation for resource bottleneck detection and capacity planning
CN103365727B (zh) * 2013-07-09 2017-02-15 南京大学 一种云计算环境中的主机负载预测方法
US9727355B2 (en) * 2013-08-23 2017-08-08 Vmware, Inc. Virtual Hadoop manager
US9386086B2 (en) 2013-09-11 2016-07-05 Cisco Technology Inc. Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes
US10552745B2 (en) * 2013-10-18 2020-02-04 Netflix, Inc. Predictive auto scaling engine
CN103559072B (zh) * 2013-10-22 2016-08-17 无锡中科方德软件有限公司 虚拟机双向自动伸缩服务实现方法及其系统
US9727332B2 (en) * 2013-11-22 2017-08-08 International Business Machines Corporation Information technology resource management
US9729466B2 (en) * 2013-11-22 2017-08-08 International Business Machines Corporation Information technology resource management
US9246840B2 (en) 2013-12-13 2016-01-26 International Business Machines Corporation Dynamically move heterogeneous cloud resources based on workload analysis
US9495238B2 (en) 2013-12-13 2016-11-15 International Business Machines Corporation Fractional reserve high availability using cloud command interception
US20150172204A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Dynamically Change Cloud Environment Configurations Based on Moving Workloads
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US9432267B2 (en) 2014-03-12 2016-08-30 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US9722945B2 (en) 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources
US9842039B2 (en) * 2014-03-31 2017-12-12 Microsoft Technology Licensing, Llc Predictive load scaling for services
WO2015163915A1 (en) * 2014-04-25 2015-10-29 Hewlett-Packard Development Company, L.P. Optimizing scaling based on real user experience
US20150341229A1 (en) * 2014-05-20 2015-11-26 Krystallize Technologies, Inc Load generation application and cloud computing benchmarking
US9356883B1 (en) 2014-05-29 2016-05-31 Amazon Technologies, Inc. Allocating cloud-hosted application resources using end-user metrics
US9882836B2 (en) * 2014-06-03 2018-01-30 International Business Machines Corporation Adjusting cloud resource allocation
US10129112B2 (en) 2014-08-14 2018-11-13 At&T Intellectual Property I, L.P. Workflow-based resource management
US9547534B2 (en) * 2014-10-10 2017-01-17 International Business Machines Corporation Autoscaling applications in shared cloud resources
CN105610592A (zh) * 2014-10-30 2016-05-25 中兴通讯股份有限公司 一种部署虚拟核心网的方法和装置
US10171379B2 (en) * 2014-11-23 2019-01-01 International Business Machines Corporation Dynamic service level agreement (SLA) adjustment based upon application capabilities
CN105700955A (zh) * 2014-11-28 2016-06-22 英业达科技有限公司 服务器系统的资源分配方法
US10355934B2 (en) * 2014-12-03 2019-07-16 Amazon Technologies, Inc. Vertical scaling of computing instances
EP3035619B1 (de) * 2014-12-15 2019-02-13 Alcatel Lucent Verfahren und System zum Skalieren und ein Fernmeldenetz
DE102015015196A1 (de) * 2014-12-16 2016-06-16 Canon Kabushiki Kaisha Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem
US9785474B2 (en) 2015-07-23 2017-10-10 International Business Machines Corporation Managing a shared pool of configurable computing resources using a set of scaling factors and a set of workload resource data
US10073880B2 (en) 2015-08-06 2018-09-11 International Business Machines Corporation Vertical tuning of distributed analytics clusters
US10169086B2 (en) 2015-09-13 2019-01-01 International Business Machines Corporation Configuration management for a shared pool of configurable computing resources
EP3188017A1 (de) 2015-12-29 2017-07-05 Harmonic Inc. Prozessplaner mit zeitgesteuerten vorhersagen von berechnungslasten
EP4357922A3 (de) * 2016-01-18 2024-06-26 Huawei Technologies Co., Ltd. System und verfahren zur bereitstellung von cloud-arbeitslasten
US20170214634A1 (en) * 2016-01-26 2017-07-27 Futurewei Technologies, Inc. Joint autoscaling of cloud applications
EP3420454B1 (de) * 2016-02-22 2022-05-25 Synopsys, Inc. Techniken zur selbstabstimmung von rechensystemen
US10498857B2 (en) * 2016-03-29 2019-12-03 Amazon Technologies, Inc. System interaction monitoring and component scaling
US10362141B1 (en) * 2016-03-29 2019-07-23 Amazon Technologies, Inc. Service group interaction management
EP3226134B1 (de) * 2016-04-01 2021-02-24 Alcatel Lucent Verfahren und system zum skalieren von ressourcen und computerprogrammprodukt
CN109075994B (zh) 2016-04-28 2022-04-05 斯诺弗雷克公司 多集群仓库
US10152357B1 (en) * 2016-05-02 2018-12-11 EMC IP Holding Company LLC Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure
US10069869B2 (en) * 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10193762B2 (en) * 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources
US10387198B2 (en) 2016-08-11 2019-08-20 Rescale, Inc. Integrated multi-provider compute platform
US20180176089A1 (en) * 2016-12-16 2018-06-21 Sap Se Integration scenario domain-specific and leveled resource elasticity and management
WO2018127297A1 (en) * 2017-01-09 2018-07-12 Huawei Technologies Co., Ltd. Action space reduction for cloud auto-scaling applications
US10324765B2 (en) * 2017-01-20 2019-06-18 Microsoft Technology Licensing, Llc Predicting capacity of shared virtual machine resources
EP3602292A4 (de) * 2017-03-24 2020-11-04 Nokia Technologies Oy Verfahren und vorrichtungen zur mehrstufigen virtualisierten netzwerkfunktionsskalierung
WO2018207152A1 (en) * 2017-05-12 2018-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for generation and automated usage of characterization metadata for application deployment and scaling
US10496150B2 (en) 2017-07-13 2019-12-03 Red Hat, Inc. Power consumption optimization on the cloud
US11030069B2 (en) 2017-09-08 2021-06-08 International Business Machines Corporation Multi-layer autoscaling for a scale-up cloud server
US9882784B1 (en) 2017-09-26 2018-01-30 Tesuto Llc Holistic validation of a network via native communications across a mirrored emulation of the network
US10608890B2 (en) 2017-09-26 2020-03-31 Tesuto Inc. Holistic validation of a network via native communications across a mirrored emulation of the network
US10893000B2 (en) 2017-11-21 2021-01-12 International Business Machines Corporation Diagonal scaling of resource allocations and application instances in a distributed computing environment
US10812407B2 (en) 2017-11-21 2020-10-20 International Business Machines Corporation Automatic diagonal scaling of workloads in a distributed computing environment
US10721179B2 (en) 2017-11-21 2020-07-21 International Business Machines Corporation Adaptive resource allocation operations based on historical data in a distributed computing environment
US10635501B2 (en) 2017-11-21 2020-04-28 International Business Machines Corporation Adaptive scaling of workloads in a distributed computing environment
US10733015B2 (en) 2017-11-21 2020-08-04 International Business Machines Corporation Prioritizing applications for diagonal scaling in a distributed computing environment
US10887250B2 (en) 2017-11-21 2021-01-05 International Business Machines Corporation Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment
US10862774B2 (en) * 2018-05-29 2020-12-08 Capital One Services, Llc Utilizing machine learning to proactively scale cloud instances in a cloud computing environment
EP3591526A1 (de) * 2018-07-05 2020-01-08 Siemens Aktiengesellschaft Verfahren zum skalieren einer applikation in einer platform as a service, paas, -plattform
US10620987B2 (en) 2018-07-27 2020-04-14 At&T Intellectual Property I, L.P. Increasing blade utilization in a dynamic virtual environment
US11379254B1 (en) * 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
JP7081514B2 (ja) * 2019-01-30 2022-06-07 日本電信電話株式会社 オートスケール型性能保証システム及びオートスケール型性能保証方法
JP7331386B2 (ja) * 2019-03-05 2023-08-23 日本電気株式会社 ジョブ制御システム、方法、及びプログラム
US11228643B2 (en) * 2019-06-04 2022-01-18 Capital One Services, Llc System and method for fast application auto-scaling
CN114930293A (zh) * 2019-06-12 2022-08-19 Snyk有限公司 预测性自动扩展和资源优化
WO2020258098A1 (en) * 2019-06-26 2020-12-30 Orange Deploying computing tasks on client computing apparatus
US11036608B2 (en) 2019-09-27 2021-06-15 Appnomic Systems Private Limited Identifying differences in resource usage across different versions of a software application
US11843525B2 (en) * 2019-11-19 2023-12-12 Vmware, Inc. System and method for automatically scaling virtual machine vertically using a forecast system within the computing environment
US11200091B2 (en) * 2020-02-03 2021-12-14 Dell Products L.P. Adaptive memory optimization for thin clients
US11392418B2 (en) 2020-02-21 2022-07-19 International Business Machines Corporation Adaptive pacing setting for workload execution
US11907766B2 (en) * 2020-11-04 2024-02-20 International Business Machines Corporation Shared enterprise cloud
US11803414B2 (en) * 2021-01-28 2023-10-31 Red Hat, Inc. Diagonal autoscaling of serverless computing processes for reduced downtime
US12014196B2 (en) 2021-03-22 2024-06-18 Kyndryl, Inc. Architecture generation for standard applications
CN113225211B (zh) * 2021-04-27 2022-09-02 中国人民解放军空军工程大学 细粒度的服务功能链扩展方法
CN115686827A (zh) * 2022-09-30 2023-02-03 上海慧程工程技术服务有限公司 基于容器的工业物联网边缘计算资源分配方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4035600B2 (ja) 2002-05-22 2008-01-23 国立大学法人 東京大学 イマチニブに対する感受性の判定方法
JP4071668B2 (ja) 2003-04-16 2008-04-02 富士通株式会社 システムの使用資源を調整する装置および方法
US7886055B1 (en) 2005-04-28 2011-02-08 Hewlett-Packard Development Company, L.P. Allocating resources in a system having multiple tiers
US7437730B2 (en) 2003-11-14 2008-10-14 International Business Machines Corporation System and method for providing a scalable on demand hosting system
US8566835B2 (en) 2007-12-13 2013-10-22 Hewlett-Packard Development Company, L.P. Dynamically resizing a virtual machine container
US7925785B2 (en) 2008-06-27 2011-04-12 Microsoft Corporation On-demand capacity management
US8271974B2 (en) 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8930731B2 (en) * 2009-07-21 2015-01-06 Oracle International Corporation Reducing power consumption in data centers having nodes for hosting virtual machines
CN101635635B (zh) * 2009-08-25 2011-12-07 北京原力创新科技有限公司 云模式流媒体服务平台
CN101917418B (zh) * 2010-07-30 2015-11-25 中兴通讯股份有限公司 通过无线应用协议访问云服务器的方法及wap服务器
CN102004671B (zh) 2010-11-15 2013-03-13 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
CN102279771B (zh) 2011-09-02 2013-07-10 北京航空航天大学 一种虚拟化环境中自适应按需资源分配的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022201291A1 (de) 2022-02-08 2023-08-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Cloud-Applikation und zum Auswählen einer Skalierungstrategie

Also Published As

Publication number Publication date
CN104025055A (zh) 2014-09-03
CN104025055B (zh) 2017-06-23
US8756610B2 (en) 2014-06-17
US20130174149A1 (en) 2013-07-04
US20130174146A1 (en) 2013-07-04
WO2013097552A1 (en) 2013-07-04
US8756609B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
DE112012005529T5 (de) Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112011103369B4 (de) Erweitern von Verarbeitungskapazität auf Serverseite
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE102016205297A1 (de) Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf
DE112012003505T5 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112017003688T5 (de) Technologien zur Durchführung einer Orchestrierung mit Online-Analyse von Telemetriedaten
DE112012004999T5 (de) Beschleunigungselement zur Cloud-Bereitstellung
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE202012013464U1 (de) Bandbreitendrosselung virtueller Festplatten
DE112013004805T5 (de) Unterstützen eines koordinierten Zugriffs auf einen gemeinsam genutzten Speicher eines Dateisystems unter Verwendung einer automatischen Ausrichtung eines Protokolls für einen parallelen Dateizugriff und einer Metadatenverwaltung
DE102012219907A1 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektischer Leistungsaufnahme
DE112018005268T5 (de) Priorisieren von anwendungen für eine diagonale skalierung in einer verteilten datenverarbeitungsumgebung
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE102013216735A1 (de) Ressourcenzuweisung in einer virtualisierten Datenverarbeitungsumgebung
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102012215436A1 (de) Optimierung der Verwendung eines gebündelten, an ein Netzwerk angeschlossenen Speichers (clustered network attached storage (NAS))
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE112021004473T5 (de) Lastausgleich auf speicherebene
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE112015004564T5 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE102017120361B4 (de) Zuordnung und Drosselung verteilter Bandbreite

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final