DE112012002941T5 - Anwendungsressourcenverwalter über eine Cloud - Google Patents

Anwendungsressourcenverwalter über eine Cloud Download PDF

Info

Publication number
DE112012002941T5
DE112012002941T5 DE112012002941.0T DE112012002941T DE112012002941T5 DE 112012002941 T5 DE112012002941 T5 DE 112012002941T5 DE 112012002941 T DE112012002941 T DE 112012002941T DE 112012002941 T5 DE112012002941 T5 DE 112012002941T5
Authority
DE
Germany
Prior art keywords
cloud
application
resource manager
computer
resources
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.)
Withdrawn
Application number
DE112012002941.0T
Other languages
English (en)
Inventor
Murthy V. Devarakonda
Nikolai A. Joukov
Birgit Pfitzmann
Shaya Potter
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 DE112012002941T5 publication Critical patent/DE112012002941T5/de
Withdrawn 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Ein Anwendungsressourcenverwalter erhält eine Projektion kommenden Bedarfs für eine Anwendung, die in einer Cloud ausgeführt wird. Die Cloud enthält mindestens eines von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud. Der Anwendungsressourcenverwalter stellt auf der Grundlage der Projektion fest, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; als Reaktion auf das Feststellen wird eines von Erweitern und Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind, ausgeführt.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die elektrische, elektronische und Computertechnik und genauer Cloud-Computing und Ähnliches.
  • Hintergrund der Erfindung
  • Clouds mit Infrastruktur als Dienst (Infrastructure-as-a-Service (IaaS)) und Plattformen als Dienst (Platform-as-a-Service (PaaS)) bieten grundlegende Fähigkeiten für eine schnelle Bereitstellung (Provisionierung) von Images, wobei Images verborgen (stashed) werden, so lange sie nicht verwendet werden, sowie möglicherweise direkte (live) oder quasi-direkte Veränderungen an den Ressourcen, die Images zugewiesen sind. Dies betrifft jedoch nicht unmittelbar die Anwendungsschicht (hierin austauschbar als die Arbeitslastenschicht bezeichnet), d. h. auf der Anwendungsschicht sind nach wie vor Menschen erforderlich, um die Auslastung zu beobachten und zu entscheiden, wann und wie es möglich ist, die Infrastruktur für eine Anwendung zu erweitern oder zu verringern. Ausnahmen stellen Anwendungen dar, die nur für eine relativ kurze Zeit bereitgestellt und dann vollständig entfernt werden, wie Entwicklungs- und Testanwendungen. Tatsächlich handelt es sich dabei um die verbreitetsten Anwendungen, die derzeit für das Ausführen auf IaaS- und PaaS-Clouds in Betracht kommen.
  • Software-as-a-Service(SaaS)-Clouds arbeiten auf der Anwendungsschicht, sind jedoch sehr spezifisch für bestimmte Anwendungstypen konzipiert, wie beispielsweise die Lösung IBM LotusLive (Marke der International Business Machines Corporation, Armonk, New York, USA) oder die von Salesforce_Punkt_com, Inc., aus San Francisco, Kalifornien, USA, erhältlichen („.” wurde durch „_Punkt_” ersetzt, um das Einfügen von durch Browser ausführbarem Code zu vermeiden).
  • Es gibt zudem übergeordnete Clouds, die erfordern, dass Anwendungen in speziellen neuen Programmiermodellen und -sprachen codiert sind, wie beispielsweise Amazon Web Services (Marke von Amazon Web Services LLC, Seattle, Washington, USA), Microsoft Azure (Marke der Microsoft Corporation, Redmond, Washington, USA) und Hadoop (erhältlich von der Apache Software Foundation).
  • Kurzdarstellung der Erfindung
  • Grundgedanken der Erfindung stellen Techniken für einen Anwendungsressourcenverwalter über eine Cloud bereit. In einem Aspekt beinhaltet ein Verfahren den Schritt eines Erhaltens einer Projektion kommenden Bedarfs für eine Anwendung, die in einer Cloud ausgeführt wird, durch einen Anwendungsressourcenverwalter. Die Cloud enthält mindestens eines von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud. Zusätzliche Schritte beinhalten ein Feststellen durch den Anwendungsressourcenverwalter auf der Grundlage der Projektion, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und als Reaktion auf den Feststellungsschritt Ausführen entweder eines Erweiterns oder Verringerns der Ressourcen der Cloud, die der Anwendung zugesprochen sind.
  • In einem weiteren Aspekt enthält ein beispielhaftes System eine Cloud; die Cloud enthält mindestens eines von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud. Ebenfalls im System enthalten sind mindestens eine Anwendung, die in der Cloud ausgeführt wird, und ein Anwendungsressourcenverwalter. Der Anwendungsressourcenverwalter erhält eine Projektion kommenden Bedarfs für die Anwendung; stellt auf der Grundlage der Projektion fest, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und führt als Reaktion auf das Feststellen entweder ein Erweitern oder ein Verringern der Ressourcen der Cloud durch, die der Anwendung zugesprochen sind.
  • Das hierin verwendete „Erleichtern” einer Aktion schließt ein, die Aktion durchzuführen, die Aktion einfacher zu gestalten, dazu beizutragen, die Aktion auszuführen, oder zu veranlassen, dass die Aktion durchgeführt wird. Somit können in beispielhafter Weise und ohne Einschränkung auf einem Prozessor ausgeführte Anweisungen eine Aktion erleichtern, die durch Anweisungen ausgeführt wird, die auf einem entfernt angeordneten Prozessor ausgeführt werden, indem geeignete Daten oder Befehle gesendet werden, um zu veranlassen oder dazu beizutragen, die Aktion durchzuführen. Um Zweifel zu vermeiden: Wenn ein Aktor eine Aktion durch etwas anderes als Durchführen der Aktion erleichtert, wird die Aktion nichtsdestoweniger durch eine Entität oder Kombination von Entitäten durchgeführt.
  • Eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon können in der Form eines Computerprodukts realisiert werden, wozu ein computerlesbares Speichermedium mit durch Computer verwendbarem Programmcode zum Durchführen der angegebenen Verfahrensschritte zählt. Des Weiteren können eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon in der Form eines Systems (oder einer Vorrichtung) realisiert werden, die einen Speicher und mindestens einen Prozessor enthält, der mit dem Speicher verbunden und in der Lage ist, beispielhafte Verfahrensschritte durchzuführen. Darüber hinaus können in einem weiteren Aspekt eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon in der Form eines Mittels zum Ausführen eines oder mehrerer hierin beschriebener Verfahrensschritte realisiert werden; das Mittel kann einschließen (i) Hardware-Modul(e) (ii) Software-Modul(e) oder (iii) eine Kombination aus Hardware- und Software-Modulen; jedes von (i) bis (iii) realisiert die hierin dargelegten spezifischen Techniken, und die Software-Module sind in einem computerlesbaren Speichermedium (oder mehreren solchen Medien) gespeichert.
  • Techniken der vorliegenden Erfindung können wesentliche vorteilhafte technische Wirkungen bereitstellen. Zum Beispiel können eine oder mehrere Ausführungsformen einen oder mehrere der folgenden Vorteile bereitstellen:
    • • kürzere Einrichtzeiten, wenn sich Anforderungen an eine Anwendung und ihre zugrundeliegende IT-Infrastruktur ändern
    • • höhere Zuverlässigkeit
    • • Vermeiden von Energieverschwendung bei nicht ausgelasteten Prozessoren, da die Menge an Ressourcen einfach erhöht und/oder verringert werden kann
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den begleitenden Zeichnungen zu lesen ist.
  • Kurzbeschreibung der Zeichnungen
  • 1 stellt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 2 stellt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 3 stellt Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 4 zeigt ein Übersichts-Systemblockschaubild gemäß einem Aspekt der Erfindung;
  • 5 zeigt ein detailliertes Systemblockschaubild gemäß einem Aspekt der Erfindung;
  • 6 stellt beispielhafte Komponenten eines Anwendungsressourcenverwalters gemäß einem Aspekt der Erfindung dar.
  • Detaillierte Beschreibung bevorzugter Ausführungsformen
  • Cloud-Computing ist ein Modell der Dienstbereitstellung zum Ermöglichen von einfachem bedarfsgesteuertem (on demand) Netzwerkzugriff auf einen gemeinsamen Bestand konfigurierbarer Datenverarbeitungsressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Datenspeicher, Anwendungen, virtuelle Maschinen und Dienste), die rasch und mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Dienstes provisioniert und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Charakteristika, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle einschließen.
  • Die Charakteristika sind die folgenden:
    Bedarfsgesteuerte Selbstbedienung: Ein Cloud-Abnehmer kann einseitig Computerkapazität wie Serverzeit oder Netzwerkspeicher nach Bedarf automatisch provisionieren, ohne dass menschliche Interaktion mit dem Anbieter des Dienstes erforderlich ist.
  • Breiter Netzwerkzugang: Kapazitäten sind über ein Netzwerk verfügbar und durch Standardmechanismen zugänglich, welche die Verwendung durch heterogene schlanke (thin) oder umfangreiche (thick) Client-Plattformen (z. B. Mobiltelefone, Laptops und PDAs) fördern.
  • Ressourcengruppierung: Die Computerressourcen des Anbieters werden gruppiert, um mehrere Abnehmer unter Verwendung eines mandantenfähigen Modells (multitenant model) mit unterschiedlichen, bedarfsabhängig dynamisch zugewiesenen und neu zugewiesenen physischen und virtuellen Ressourcen bedienen zu können. Es ist insofern in gewissem Sinne eine Ortsunabhängigkeit vorhanden, als der Abnehmer allgemein keine Kontrolle und kein Wissen über den exakten Standort der bereitgestellten Ressourcen besitzt, jedoch in der Lage sein kann, Standorte auf einer höheren Abstraktionsebene zu spezifizieren (z. B. Bezirk, Staat oder Rechenzentrum).
  • Schnelle Elastizität: Kapazitäten können in manchen Fällen automatisch zur schnellen Aufwärtsskalierung (scale out) rasch und elastisch provisioniert und zur schnellen Abwärtsskalierung (scale in) rasch freigegeben werden. Für den Abnehmer erscheinen die zur Provisionierung verfügbaren Ressourcen oft unbegrenzt und können zu jeder Zeit in jeder Menge erworben werden.
  • Gemessene Dienstleistung: Cloud-Systeme steuern und optimieren die Ressourcennutzung automatisch, indem auf einer gewissen Abstraktionsebene Messfähigkeiten eingesetzt werden, die der Art des Dienstes entsprechen (z. B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und berichtet werden und so Transparenz für sowohl den Anbieter als auch den Abnehmer der genutzten Dienste bieten.
  • Die Dienstmodelle sind die folgenden:
    Software as a Service (SaaS): Die dem Abnehmer bereitgestellten Kapazitäten dienen der Nutzung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur ausgeführt werden. Die Anwendungen sind von vielfältigen Client-Einheiten aus über eine schlanke Client-Schnittstelle wie beispielsweise einem Web-Browser zugänglich (z. B. internetgestützte E-Mails). Der Abnehmer verwaltet oder steuert nicht die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungskapazitäten mit der möglichen Ausnahme begrenzter benutzerspezifischer Einstellungen der Anwendungskonfiguration.
  • Platform as a Service (PaaS): Die dem Abnehmer bereitgestellten Kapazitäten dienen dem Bereitstellen benutzererstellter oder erworbener Anwendungen in der Cloud, die mittels vom Anbieter unterstützter Programmiersprachen oder Werkzeuge erstellt wurden. Der Abnehmer verwaltet oder steuert nicht die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerke, Server, Betriebssysteme oder Speicher, hat jedoch die Kontrolle über die bereitgestellten Anwendungen und möglicherweise Konfigurationen der die Anwendung beherbergenden Umgebung.
  • Infrastructure as a Service (IaaS): Die dem Abnehmer bereitgestellten Kapazitäten dienen dem Provisionieren von Verarbeitung, Speicher, Netzwerken und anderen grundlegenden Computerressourcen, wobei der Abnehmer in der Lage ist, beliebige Software einzusetzen und auszuführen, was Betriebssysteme und Anwendungen einschließen kann. Der Abnehmer verwaltet oder steuert nicht die zugrundeliegende Cloud-Infrastruktur, hat jedoch die Kontrolle über Betriebssysteme, Speicher, bereitgestellte Anwendungen und möglicherweise begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls).
  • Die Bereitstellungsmodelle sind die folgenden:
    Private Cloud: Die Cloud-Infrastruktur wird allein für eine Organisation betrieben. Sie kann durch die Organisation oder Dritte verwaltet werden und vor Ort oder außerhalb angeordnet sein.
  • Gemeinschafts-Cloud (community cloud): Die Cloud-Infrastruktur wird durch mehrere Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Interessen hat (z. B. Überlegungen zu Mission, Sicherheitsanforderungen, Richtlinien und Einhaltung von Bestimmungen (compliance). Sie kann durch die Organisationen oder Dritte verwaltet werden und vor Ort oder außerhalb angeordnet sein.
  • Öffentliche Cloud (public cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zugänglich gemacht und befindet sich im Besitz einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid-Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr Clouds (privat, Gemeinschaft, oder öffentlich) zusammen, die separate Entitäten bleiben, jedoch durch standardisierte oder proprietäre Technologie verbunden sind, welche die Übertragbarkeit von Daten und Anwendungen ermöglicht (z. B. Cloud-Erweiterung (cloud bursting) für den Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit einem Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantische Kompatibilität. Das Herz des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk miteinander verbundener Knoten aufweist.
  • Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 stellt nur ein Beispiel eines geeigneten Cloud-Computing-Knotens dar und soll nicht auf irgendeine Einschränkung im Hinblick auf den Umfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung hindeuten. Unabhängig davon ist der Cloud-Computing-Knoten 10 in der Lage, jede der hierin dargelegten Funktionalitäten auszubilden und/oder durchzuführen.
  • Im Cloud-Computing-Knoten 10 befindet sich ein Computersystem/Server 12, das/der mit zahlreichen anderen universellen oder zweckbestimmten Computersystemumgebungen oder Konfigurationen betrieben werden kann. Zu Beispielen allgemein bekannter Computersysteme, Umgebungen und/oder Konfigurationen, die für die Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, schlanke Clients, umfangreiche Clients, handgeführte (handheld) oder Laptop-Einheiten, Mehrfachprozessorsysteme, mikroprozessorgestützte Systeme, Decoder (set top boxes), programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die jedes beliebige der oben genannten Systeme oder jede beliebige der oben genannten Einheiten oder Ähnliches beinhalten.
  • Das Computersystem/der Server 12 kann im allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen beschrieben werden, wie beispielsweise Programmmodule, die durch ein Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen ausbilden. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen ausgebildet sein, bei denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien einschließlich Arbeitsspeichereinheiten befinden.
  • Wie in 1 gezeigt, ist das Computersystem/der Server 12 im Cloud-Computing-Knoten 10 in Form einer universellen Computereinheit gezeigt. Zu den Komponenten des Computersystems/des Servers 12 können, ohne auf diese beschränkt zu sein, ein oder mehrere Prozessoren oder eine oder mehrere Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 gehören, der vielfältige Systemkomponenten einschließlich des Systemspeichers 28 mit dem Prozessor 16 verbindet.
  • Der Bus 18 steht für eine oder mehrere beliebige Arten von Busstrukturen, wozu ein Speicherbus oder eine Speichersteuereinheit, ein Peripherieeinheiten-Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus unter Verwendung jeder beliebigen einer Vielfalt von Busarchitekturen zählen kann. Als Beispiel und ohne Einschränkung können zu solchen Architekturen der ISA-Bus (Industry Standard Architecture (ISA) bus), der MCA-Bus (Micro Channel Architecture (MCA) bus), der erweiterte ISA-Bus (Enhanced ISA (EISA) bus), der lokale VESA-Bus (Video Electronics Standards Association (VESA) local bus) und der PCI-Bus (Peripheral Component Interconnects (PCI) bus) gehören.
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch Computersysteme lesbaren Medien. Bei solchen Medien kann es sich um jedes beliebige verfügbare Medium, auf welches durch das Computersystem/den Server 12 zugegriffen werden kann, sowie um sowohl flüchtige als auch nichtflüchtige, Wechsel- oder Nicht-Wechsel-Medien handeln.
  • Zum Systemspeicher 28 können durch Computersysteme lesbare Medien in Form von flüchtigem Speicher wie Speicher mit wahlfreiem Zugriff (random access memory (RAM)) 30 und/oder Cachespeicher 32 zählen. Zum Computersystem/Server 12 können weiterhin weitere Wechsel-/Nicht-Wechsel-, flüchtige/nichtflüchtige Computersystem-Speichermedien gehören. Lediglich als Beispiel kann das Datenspeichersystem 34 für das Lesen von und Schreiben auf ein nichtflüchtiges magnetisches Nicht-Wechsel-Medium bereitgestellt werden (nicht gezeigt und üblicherweise als „Festplattenlaufwerk” bezeichnet). Obwohl nicht abgebildet, kann auch ein magnetisches Festplattenlaufwerk zum Lesen von und Schreiben auf eine nichtflüchtige magnetische Wechselspeicherplatte (z. B. eine „Floppy Disk”) oder ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine nichtflüchtige optische Wechselplatte wie beispielsweise eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In solchen Beispielen kann jedes Element durch eine oder mehrere Medienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiterhin gezeigt und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt enthalten, das einen Satz (z. B. mindestens eines) von Programmmodulen enthält, die eingerichtet sind, die Funktionen von Ausführungsformen der Erfindung auszuführen.
  • Ein Programm/Dienstprogramm 40 mit einem Satz (mindestens einem) von Programmmodulen 42 kann im Speicher 28 in beispielhafter Weise und ohne Einschränkung auch als Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten gespeichert sein. Jedes von Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination aus ihnen kann eine Realisierung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen allgemein die Funktionen und/oder Verfahrensweisen von Ausführungen der hierin beschriebenen Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie beispielsweise eine Tastatur, eine Zeigeeinheit, eine Anzeige 24 usw.; eine oder mehrere Einheiten, mit denen ein Benutzer mit dem Computersystem/dem Server 12 interagieren kann; und/oder jede beliebige Einheit (z. B. Netzwerkkarte, Modem usw.), durch die das Computersystem/der Server 12 mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten austauschen kann. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe(E/A)-Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie beispielsweise einem Nahbereichsnetzwerk (local area network (LAN)), einem allgemeinen Weitverkehrsnetzwerk (wide area network (WAN)) und/oder einem öffentlichen Netzwerk (z. B. dem Internet) über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es ist festzuhalten, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können, auch wenn sie nicht gezeigt sind. Zu Beispielen gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
  • Unter Bezugnahme auf 2 wird nun eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale, durch Cloud-Abnehmer verwendete Datenverarbeitungseinheiten wie zum Beispiel ein persönlicher digitaler Assistent (personal digital assistant (PDA)) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computersystem 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können (nicht gezeigt) physisch oder virtuell in einem oder mehreren Netzwerken, wie beispielsweise privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie hierin vorstehend beschrieben, oder einer Kombination daraus gruppiert sein. Dadurch kann die Cloud-Computing-Umgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Abnehmer keine Ressourcen auf einer lokalen Computereinheit bereithalten muss. Es versteht sich, dass die Typen der in 2 gezeigten Computereinheiten 54A bis N nur veranschaulichend gedacht sind, und dass die Computerumgebung 10 und die Cloud-Computing-Umgebung 50 mit jeder beliebigen Art von computergesteuerter Einheit über jede beliebige Art von Netzwerk und/oder netzwerk-adressierbarer Verbindung (z. B. unter Verwendung eines Web-Browsers) Daten austauschen kann.
  • Unter Bezugnahme auf 3 wird ein Satz funktionaler Abstraktionsschichten dargestellt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es ist im Vorfeld zu beachten, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend gedacht sind und Ausführungsformen der vorliegenden Erfindung nicht darauf beschränkt sind. Wie abgebildet, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    Eine Hardware- und Software-Schicht 60 beinhaltet Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen Großrechner, in einem Beispiel IBM® zSeries®-Systeme; auf RISC-Architektur (Reduced Instruction Set Computer – Computer mit verringertem Anweisungssatz) beruhende Server, in einem Beispiel IBM pSeries®-Systeme; IBM xSeries®-Systeme; IBM BladeCenter®-Systeme; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Zu Beispielen für Software-Komponenten zählen Software für Netzwerkanwendungsserver-Software, in einem Beispiel die Anwendungsserversoftware IBM WebSphere®; und Datenbanksoftware, in einem Beispiel die Datenbanksoftware IBM DB2®. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind in vielen Rechtsprechungsgebieten weltweit registrierte Marken der International Business Machines Corporation.)
  • Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtuelle Speicher; virtuelle Netzwerke einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann eine Verwaltungsschicht 64 die nachstehend beschriebenen Funktionen bereitstellen. Die Ressourcenprovisionierung stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen bereit, die verwendet werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung durchzuführen. Die Messung und Preisbildung stellt eine Kostenverfolgung bereit, wenn Ressourcen innerhalb der Cloud-Computing-Umgebung verwendet werden, sowie die Abrechnung oder Rechnungserstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Die Sicherheit stellt eine Identitätsüberprüfung für Cloud-Abnehmer und Tasks sowie Schutz für Daten und andere Ressourcen bereit. Das Benutzerportal stellt Zugang zur Cloud-Computing-Umgebung für Abnehmer und Systemadministratoren bereit. Die Dienstgüteverwaltung (service level management) stellt die Zuweisung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass erforderliche Dienstgüten erreicht werden. Die Dienstgütevereinbarungs-Planung und -Erfüllung (Service Level Agreement (SLA) planning and fulfillment) stellt gemäß einer Dienstgütevereinbarung (SLA) eine Voranordnung für und eine Beschaffung von Cloud-Computing-Ressourcen bereit, für die eine zukünftiger Bedarf zu erwarten ist.
  • Eine Arbeitslastenschicht 66 stellt Beispiele für Funktionalität bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen von Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, zählen: Zuordnung und Navigation; Softwareentwicklung und Lebensdauer-Verwaltung; Bereitstellung von Ausbildung in virtuellen Klassenzimmern; Datenanalyseverarbeitung; Transaktionsverarbeitung und mobiler Arbeitsplatz.
  • Eine oder mehrere Ausführungsformen realisieren vorteilhaft einen Anwendungsressourcenverwalter über eine Cloud, wie beispielsweise eine IaaS- oder PaaS-Cloud.
  • Wie vorstehend festgehalten, bieten Information-as-a-Service(IaaS)- und Platform-as-a-Service(PaaS)-Clouds grundlegende Fähigkeiten für eine schnelle Bereitstellung (Provisionierung) von Images, wobei Images verborgen werden, so lange sie nicht verwendet werden, sowie potenziell direkt oder quasi-direkt erfolgende Veränderungen an den Ressourcen, die den Images zugewiesenen sind. Dies betrifft jedoch nicht unmittelbar die Anwendungsschicht (hierin austauschbar als die Arbeitslastenschicht 66 bezeichnet), d. h. in der Anwendungsschicht 66 sind nach wie vor Menschen erforderlich, um die Auslastung zu beobachten und zu entscheiden, wann und wie es möglich ist, die Infrastruktur für eine Anwendung zu erweitern oder zu verringern. Ausnahmen stellen Anwendungen dar, die nur für eine relativ kurze Zeit bereitgestellt und dann vollständig entfernt werden, wie Entwicklungs- und Testanwendungen. Tatsächlich handelt es sich dabei um die verbreitetsten Anwendungen, die derzeit für das Ausführen auf IaaS- und PaaS-Clouds in Betracht kommen.
  • Es ist zu beachten, dass die Virtualisierungs- und Verwaltungsschichten 62 und 64 in Iaas- und PaaS-Clouds nur die Hardware und möglicherweise grundlegende Software, jedoch nicht die Arbeitslasten, verwalten. Dementsprechend geschah dies bislang separat und üblicherweise mit menschlichem Eingreifen.
  • Wie ebenfalls vorstehend festgehalten, arbeiten Software-as-a-Service(SaaS)-Clouds in der Anwendungsschicht, sind jedoch sehr spezifisch für bestimmte Anwendungstypen konzipiert, wie beispielsweise die Lösung IBM LotusLive (Marke der International Business Machines Corporation, Armonk, New York, USA) oder die von Salesforce_Punkt_com, Inc., aus San Francisco, Kalifornien, USA, erhältlichen („.” wurde durch „_Punkt_” ersetzt, um das Einfügen von durch Browser ausführbarem Code zu vermeiden).
  • Wie wiederum vorstehend festgehalten gibt es zudem übergeordnete Clouds, die erfordern, dass Anwendungen in speziellen neuen Programmiermodellen und -sprachen codiert sind, wie beispielsweise Amazon Web Services (Marke von Amazon Web Services LLC, Seattle, Washington, USA), Microsoft Azure (Marke der Microsoft Corporation, Redmond, Washington, USA) und Hadoop (erhältlich von der Apache Software Foundation).
  • Eine oder mehrere Ausführungsformen ermöglichen in vorteilhafter Weise, dass normale, weitgehend unveränderte Anwendungen mit schwankendem oder nur wachsendem Ressourcenbedarf die Möglichkeiten von IaaS- oder PaaS-Plattformen einfach nutzen können.
  • Es sollte festgehalten werden, dass auch frühere Arbeiten im Hinblick auf dynamische Infrastruktur im Kontext von Netzen vorliegen, Netze jedoch nicht dieselbe Art von Schnittstellen zum Provisionieren und Verwalten von Bildern wie IaaS- und PaaS-Clouds besitzen und sich somit das Anwendungsverwaltungsproblem für Gitter von Clouds unterscheidet. Gleichermaßen funktionierten ältere große Projekte mit verteilter Infrastruktur, wie beispielsweise das Projekt „Oceano computing utility powerplant” von IBM, nicht mit zugrundeliegenden getrennten Schichten 60, 62, 64 wie in einer Cloud.
  • Unter Bezugnahme auf die einfache Systemübersicht von 4 verwenden eine oder mehrere Ausführungsformen eine Anwendungsressourcenverwalter-Komponente 401, die dem normalen System der IaaS- oder PaaS-Cloud 10 hinzugefügt wurde, und Anwendungskomponenten 403. Dieser Anwendungsressourcenverwalter erweitert und verringert Cloud-Ressourcen entsprechend dem Anwendungsbedarf.
  • Um diese Aufgaben auszuführen, interagiert der Anwendungsressourcenverwalter mit der Verwaltungsschnittstelle der zugrundeliegenden IaaS- oder PaaS-Cloud, d. h. der oberen Schnittstelle der Verwaltungsschicht 64, während die Anwendung Images und andere durch die Cloud bereitgestellte Ressourcen nutzt. Hier wird das Wort „Images” sowohl für reine Betriebssystem-Images, die eine IaaS-Cloud bietet, als auch für die Images mit Middleware, die eine PaaS-Cloud bietet, verwendet. Hinsichtlich 3 handelt es sich bei IaaS-Images um virtuelle Server, und es gibt üblicherweise einen Katalog verfügbarer, einfach zu provisionierender Images, diesem Katalog entsprechende Image-Dateien und tatsächliche Instanzen-Images, die provisioniert wurden und ausgeführt werden. Die Ressourcenprovisionierungskomponente der Verwaltungsschicht 64 bietet den Katalog den potenziellen Arbeitslasten der Schicht 66 an, enthält die Image-Dateien und veranlasst das Einrichten von Instanzen-Images (virtuellen Servern) in der Virtualisierungsschicht 62. Gelegentlich wird nur von „Images” gesprochen, wenn dieser Prozess klar ist. Über den für eine Anwendung provisionierten Images gibt es den Code, die Daten, die Konfigurationen und Ähnliches der normalen Anwendungskomponenten. In anderen Worten: Der oder die Teile der Arbeitslast, die nicht über die Cloud-Verwaltungsschicht provisioniert wurden, bilden die Anwendungskomponenten.
  • Die Verwaltungsschnittstellen, die der Anwendungsressourcenverwalter nutzt, können OSS-Aspekte (Operations Support System (Operationsunterstützungssystem), z. B. eine direkte Schnittstelle zu einer Ressourcen provisionierenden Komponente) und BSS-Aspekte enthalten (Business Support Services (Betriebsunterstützungsdienste), z. B. eine Schnittstelle zur Preisbildungskomponente, falls zum Zeitpunkt zusätzlicher Provisionierung eine weitere Bezahlungsvereinbarung erforderlich ist). All dies kann durch das Benutzerportal gefiltert werden, es wird hier jedoch davon ausgegangen, dass dieses entweder eine API (Application Programming Interface (Anwendungsprogrammierschnittstelle)), eine Webdienstschnittstelle usw. zur Verwendung durch automatisierte Programme aus der Arbeitslastenschicht 66 enthält oder Schnittstellen zu den einzelnen Komponenten, wie beispielsweise der Ressourcenprovisionierung für die Programme der Arbeitslastenschicht 66 direkt zugänglich sind.
  • Der Anwendungsressourcenverwalter 401 kann von kommendem Bedarf von einem Anwendungsbesitzer 513 erfahren (der Name wird hierin für einen Menschen verwendet, der ermächtigt ist, Anwendungsbedarf vorauszusagen, um diese Funktion von normalen Benutzern 515 zu unterscheiden – siehe 5) oder kann momentane Nutzung und Trends aus Berichten, die von der Cloud-Verwaltung erhalten werden, sowie durch Beobachten der Anwendung ableiten. Der Anwendungsressourcenverwalter 401 kann zudem von Fehlern bei der Infrastruktur erfahren und auf sie reagieren, um bestimmte Verfügbarkeitsziele zu erreichen.
  • Bei einer gegebenen Bedarfsänderung provisioniert der Anwendungsressourcenverwalter zumindest in manchen Ausführungsformen Images oder verbirgt sie oder ändert ihre Ressourcenzuschreibung, wie beispielsweise virtuelle Speicher oder Zuweisung von virtueller Netzwerkbandbreite. Optional provisioniert er im Falle von Provisionierung auf den neuen Images auch Software auf Anwendungsebene und/oder Daten.
  • Somit stellen eine oder mehrere Ausführungsformen ein System bereit, das eine Cloud 10, mindestens eine Anwendungskomponente 403 und einen Anwendungsressourcenverwalter 401 enthält, wobei der Anwendungsressourcenverwalter Cloud-Ressourcen für die Anwendungskomponente erweitert und/oder verringert, um den Anwendungsressourcenbedarf zu decken.
  • In einer oder mehreren Ausführungsformen nutzt der Anwendungsressourcenverwalter die Dienste einer IaaS- oder PaaS-Cloud. Weitere Einzelheiten über diese Komponenten und ihre Interaktionen sind in 5 gezeigt, die eine detailliertere Systemübersicht bereitstellt.
  • Es sollte festgehalten werden, dass der Anwendungsressourcenverwalter 401 unter Umständen selbst in der Cloud 10 ausgeführt werden kann, dies aber nicht muss.
  • Der Anwendungskasten 511 ist virtuell; er zeigt an, dass der Anwendungsressourcenverwalter zu einer bestimmten Anwendung gehört und Kenntnis über die Anwendungsstruktur haben sollte.
  • Unter fortgesetzter Bezugnahme auf 5 interagiert der Anwendungsbesitzer 513 mit dem Anwendungsressourcenverwalter 401 über die Anwendungsverwaltungsschnittstelle (in 3 ist dies die obere Schnittstelle der Arbeitslastenschicht 66, d. h. wo die Anwendungen/Arbeitslasten mit ihren Benutzern interagieren). Der Anwendungsressourcenverwalter 401 ist der Anwendung 511 zugeordnet und führt die durch normale Benutzer verwendete Einrichtung der Anwendungssoftware 517 sowie ein Überwachen der Anwendungssoftware 517 und entsprechender Images 519 durch. Die Images werden Teil der Cloud-Laufzeitumgebung 521. Block 521 ist im Wesentlichen analog zur Virtualisierungsschicht 62 von 3 (oder den Schichten 60 und 62 zusammen), wohingegen eine Cloud-Verwaltungsplattform 523 analog zur Schicht 64 ist. Die Cloud-Verwaltungsplattform 523 verwaltet die Cloud-Laufzeitumgebung 521, die über eine geeignete Provisionierungsschnittstelle (d. h. eine Schnittstelle zur Ressourcenprovisionierungskomponente entweder direkt oder mittelbar über eine BSS-Schnittstelle und/oder das Benutzerportal) mit dem Anwendungsressourcenverwalter 401 interagiert, und die Cloud-Verwaltungsplattform 523 stellt zudem dem Anwendungsressourcenverwalter 401 Nutzungs- und Fehlerberichte bereit (diese könnten z. B. von der Messkomponente oder der Dienstgüte-Verwaltungskomponente von 3 stammen).
  • In einer oder mehreren Ausführungsformen kann ein Anwendungsressourcenverwalter wie 401 wie in 6 gezeigt aufgebaut sein, wobei die Komponenten die folgenden beispielhaften Funktionen bereitstellen:
    Richtlinien 631 legen Langzeitziele fest, z. B. Leistungs- und Verfügbarkeitsziele, die als Dienstgüteziele der Anwendung (im Gegensatz zu denjenigen der Cloud) vorgegeben sein können; in anderen Worten sind dies Ziele für die Schicht 66 und nicht für die Schicht 64, wie sie die Dienstgüte-Verwaltungskomponente erfüllt. Kurzfristigere Ziele von einem Anwendungsbesitzer, wie beispielsweise die zu einer kurzfristigen Vorhersage für erhöhten Leistungsbedarf gehörenden, können ebenfalls als Richtlinien bezeichnet werden.
  • Eine Verwaltungskomponente 633 nimmt die Richtlinien sowie, was sie von der Anwendung und der Cloud erfährt, und legt Aktionen fest. Zu diesen Aktionen zählt insbesondere das Provisionieren, Verbergen oder Deprovisionieren von Anfragen an die Cloud, und welche weiteren Aktionen auch immer die Cloud-Verwaltungsplattform zulässt, z. B. Erhöhen und Verringern von Image-Ressourcen, Live-Migration zu unterschiedlichen Servern oder Auswählen einer höheren Dienstgüte von der Cloud (wozu z. B. bessere Leistungsgarantien ebenso zählen wie höhere Verfügbarkeits- oder Zuverlässigkeitsgarantien zählen können).
  • Eine Steuerkomponente 635 übersetzt abstrakte Anfragen von der Verwaltungskomponente in konkrete Interaktionen mit der Cloud-Verwaltungsplattform, z. B. über eine Anwendungsprogrammierschnittstelle (API) oder eine Webdienstschnittstelle. Bei solch einer Interaktion kann es sich um eine Sequenz mit mehreren Schritten handeln, die auch Schritte auf OSS- und BSS-Ebene enthalten kann, wie beispielsweise Wählen einer Image-Größe und Auswählen eines Bezahlverfahrens oder vorhandenen Kontonummer.
  • Im Gegensatz zur Steuerkomponente interpretiert eine Interpretationskomponente (interpretation component) 637 Berichte von der Cloud, wie beispielsweise Nutzungsinformationen sowohl über die eigenen Images der Anwendung als auch andere virtuelle Ressourcen und die gesamte Cloud, oder Fehlerberichte.
  • Ein Vorteil der Abspaltung einer Steuerkomponente und einer Interpretationskomponente aus der Verwaltungskomponente liegt darin, dass sich der Anwendungsressourcenverwalter leichter an unterschiedliche Clouds anpassen lässt. Im Beispiel in 6 darf der Anwendungsressourcenverwalter dennoch direkt mit den Anwendungskomponenten interagieren, da er für diese Anwendung spezifisch ist.
  • Zusätzliche nicht einschränkende beispielhafte Details werden nun in Hinblick auf mögliche Funktionen des Anwendungsverwalters bereitgestellt.
  • Im Hinblick auf das Überwachen kann der Anwendungsverwalter in manchen Fällen die Anwendungskomponenten 403 und deren Nutzung entweder an den Benutzerschnittstellen der Anwendung (wo z. B. eine Anwendungs-Dienstgütevereinbarung (SLA) gelten kann) oder für einzelne Komponenten (wie beispielsweise 517, 519) oder beides überwachen; insbesondere die auf unterschiedlichen Images bereitgestellten. Der Anwendungsmanager kann zudem Informationen über die aktuelle Nutzung seiner Cloud-Images über die Cloud-Schnittstelle (z. B. von 523) und/oder Informationen über die aktuelle Gesamtnutzung der Cloud über die Cloud-Schnittstelle erhalten – dies kann interessant sein, um die Wirkung des Erhaltens weiterer Ressourcen vorherzusagen, wenn die Ressourcen gemeinsam genutzt werden.
  • Des Weiteren kann der Anwendungsverwalter ebenfalls im Hinblick auf das Überwachen in manchen Fällen Informationen über Fehler bei seinen eigenen Images (von 523) und die allgemeine Zuverlässigkeit der Cloud erhalten; kann ein Vorhersagen auf der Grundlage von Nutzungsentwicklungen verwenden, um den zukünftigen Bedarf abzuschätzen (z. B. Vorhersagen monatlicher Spitzen oder Vorhersagen eines langsamen Gesamtanstiegs des Bedarfs); und/oder kann von Zeit zu Zeit die Anwendungsstruktur durch Erkennungswerkzeuge neu bewerten (andernorts hierin weiter erläutert und austauschbar als „Neuerkennung” bezeichnet). Diese werden auf die Images 519 der Anwendung und die Anwendungssoftware 517 angewandt, da die Benutzer 515 der Anwendung auch gewisse Rechte besitzen können, um Änderungen vorzunehmen. Erkennungswerkzeuge können zudem dazu beitragen, Leistungsparameter auf Anwendungsebene zu finden, wie beispielsweise aktuelle Datenbankgrößen.
  • Im Hinblick auf Ziele kann der Anwendungsverwalter in manchen Fällen entweder absolute oder auf die aktuelle Leistung bezogene kurzfristige Ziele vom Anwendungsbesitzer erhalten. Diese Ziele beziehen sich üblicherweise auf die Anwendung als Ganzes (z. B. Transaktionsdurchsatz oder Reaktionszeit für die Endbenutzer) anstatt auf die Leistung einzelner Anwendungssoftwarekomponenten auf den einzelnen Images. Des Weiteren kann der Anwendungsverwalter übergeordnete Ziele (Langzeitrichtlinien) vom Anwendungsbesitzer erhalten, z. B. immer bestimmte SLAs bereitzustellen oder immer über eine gewisse Menge an Spielraum für plötzliche Änderungen zu verfügen; und/oder Kostenziele oder -grenzen erhalten, um immer den billigsten Gesamtsatz an Ressourcen zu wählen, um eine gewünschte SLA bereitzustellen oder um immer die bestmögliche Leistung jedoch nur bis zu einer gewissen Kostengrenze zu bieten.
  • Im Hinblick auf mögliche Entscheidungen kann der Anwendungsverwalter in manchen Fällen entscheiden, die Ressourcen, die den einzelnen der Anwendung zugewiesenen Cloud-Images zugewiesen sind, zu erweitern oder zu verringern. Abhängig von der Cloud kann dies vor Ort oder durch Migrieren der entsprechenden Anwendungskomponente 517 zu einem größeren Image 519 erfolgen. Darüber hinaus kann der Anwendungsverwalter entscheiden, zur Verwendung der Anwendung ganze Cloud-Images zu provisionieren, zu löschen oder zu verbergen. In diesem Fall sollte er zudem geeignete Software auf ihnen bereitstellen. In dieser Hinsicht kann der Anwendungsverwalter zu diesem Zweck ein oder mehrere Gold-Images, d. h. ruhende Images, die bereits alle wiederholbaren Teile der Anwendung enthalten, aufbewahren; und/oder auch Migrationswerkzeuge verwenden, um Softwarekonfigurationen entsprechend dem aktuellen Anwendungsgesamtstatus bereitzustellen.
  • Des Weiteren kann der Anwendungsverwalter ebenfalls im Hinblick auf mögliche Entscheidungen in manchen Fällen entscheiden, zusätzliche Speicher- und/oder Netzwerkressourcen anzufordern, wenn die Cloud solche Wahlmöglichkeiten separat anbietet; er kann entscheiden, den Benutzer zu warnen, wenn er seine aktuellen Richtlinien oder Anfragen nicht erfüllen kann; und/oder er kann den Benutzer auf regelmäßiger Grundlage oder auf Anfrage über die Situation auf Anwendungsebene informieren.
  • Im Hinblick auf das Treffen von Entscheidungen kann der Anwendungsverwalter in manchen Fällen Entscheidungen treffen, indem ein optimierendes Löserwerkzeug verwendet wird, oder er kann den die Entscheidungen treffenden Code direkt enthalten. Er kann Entscheidungen auf der Grundlage dynamischer Cloud-Kosten treffen, wenn die Cloud ein dynamisches Preisbildungsschema besitzt (z. B. niedrigere Kosten an Wochenende). Das Verwenden dynamischer Cloud-Kosten ist besonders nützlich, wenn die Anwendung Aspekte enthält, die nicht zeitkritisch sind und zu Zeiten preisgünstigerer Ressourcen durchgeführt werden können.
  • Es sollte festgehalten werden, dass Richtlinien zumindest in manchen Fällen durch Parameter in einer Datendatei oder Ähnlichem realisiert werden können, wobei zulässige Werte und andere Variablen festgelegt werden können, ohne die zugrundeliegende Codierung ändern zu müssen; das bedeutet eine Datenstruktur, die zulässige Werte oder Wertbereiche festlegt.
  • Im Hinblick auf den Richtlinienblock 631 ermittelt dieser in einem oder mehreren Beispielen Ziele oder Anforderungen oder gelegentlich, was in einer bestimmten Situation geschehen sollte. Insbesondere kann er Richtlinien (d. h. formalisierte Ziele oder Anforderungen) auf der Anwendungsebene enthalten, zum Beispiel, welche Latenzzeiten für Transaktionen auf Anwendungsebene akzeptabel sind, wie nahe man sich Fristen mit wie vielen lange laufenden noch nicht erfüllten Jobs nähern darf oder wie viel Belastung z. B. am Monatsende zu erwarten ist. Er kann gelegentlich auch Richtlinien auf Infrastrukturebene enthalten, z. B. welche Menge an freiem Speicherplatz immer verfügbar sein sollte, welches Auslastungsniveau einer virtuellen Maschine (VM) für eine anhaltende Zeitdauer erlaubt sein sollte.
  • Der Verwaltungsblock 633 enthält Logik, welche die Werte aus den Richtlinien 631 liest und eine Dateneingabe darüber erhält, was im System vorgeht (sagen wir von einer Sonde oder Ähnlichem auf Anwendungsebene sowie dem Interpretationsblock 637, aus Cloud-Berichten oder durch Überwachung auf Image-Ebene) und setzt die Richtlinien 631 in Kraft. Zu Beispielen zählt ein Feststellen, dass VMs zugewiesen, verborgen oder Dienste auf anderen VMs gestartet werden sollten; Ermitteln, ob ein Speicher einer VM und oder eine CPU-Zuweisung erhöht werden sollten; Ermitteln, ob Datenspeicher erhöht und/oder verringert werden sollte; und Ähnliches.
  • Der Steuerblock 635 stellt eine Schnittstelle zu unterschiedlichen Architekturen bereit; wenn es sich bei der Cloud zum Beispiel einfach um vmware handeln würde, würde er mit einer vmrun-Schnittstelle interagieren, um die VMs zu steuern. Das bedeutet, das Steuermodul 635 übersetzt Anweisungen vom Verwaltungsmodul 633, damit sie von einem Ressourcenprovisionierungsmodul (siehe Schicht 64 in 3) oder Ähnliches, das die Cloud-Ressourcen verwaltet, verstanden werden können.
  • Im Hinblick auf den Interpretationsblock 637 stellt dieser eine Schnittstelle zu unterschiedlichen Cloud-Architekturen bereit; wenn es sich bei der Cloud zum Beispiel einfach um vmware handeln würde, könnte er Leistungsberichte von vmware-Schnittstellen interpretieren; und/oder eine Abstraktion an Sonden, die innerhalb von VMs laufen können. In manchen Fällen kann die Cloud eine CPU-Nutzung von Images bereitstellen (siehe z. B. Messen und Preisbildung in Schicht 64 in 3). Der Verwaltungsblock 633 rät dem Interpretationsblock 637, dass er die CPU-Nutzung aller Images benötigt, der Block 637 übersetzt dies und gibt dem Mess- und Preisbildungsblock den erforderlichen Befehl und überführt die cloudspezifischen Ergebnisse in ein allgemeines Format. In manchen Fällen stellt der ARV (Anwendungsressourcenverwalter) 401 zusätzlich oder statt der Cloud-Schnittstelle eine Verbindung mit den Images her, die er auf seiner eigenen Schicht verwaltet, um z. B. die Latenzzeiten auf Anwendungsebene zu überwachen (d. h. wie lange normale Anwendungsbenutzer 515 auf Ergebnisse warten müssen) oder um den Status lang laufender Anwendungen zu erfahren. In solchen Fällen kann durch die Anwendungssoftware 517 ein IP-Mithördienst oder eine Webschnittstelle für die Verwaltung bereitgestellt werden, und der Anwendungsverwalter baut entsprechende Verbindungen auf und sendet entsprechende Verwaltungsabfragen.
  • In manchen Fällen besitzt der ARV 401 ein Konto auf dem normalen Image und kann dieses verwenden, um sich beim normalen Image anzumelden und einen geeigneten Befehl auszuführen, um die CPU-Nutzung direkt aus dem Image auszulesen. In manchen Fällen kann die Anwendung programmiert sein, auf geeignete Anfragen zu reagieren, beispielsweise wie viele Transaktionen in den letzten 10 Minuten ausgeführt wurden.
  • Um Zweifel zu vermeiden, bezieht sich die „Anwendung” in diesem Kontext auf Code, der die letztlich gewünschte Funktion ausführt (und nicht durch die Cloud bereitgestellt wurde), sagen wir JAVA-Code innerhalb von WEBSPHERE-Software oder ein bestimmtes Datenbankschema innerhalb von DB2-Software oder üblicherweise eine Kombination solcher Codetypen, z. B. alle Codestücke, die zum Bereitstellen einer Warenkorbanwendung oder einer Reiseberichtsanwendung nötig sind. Bei den Sonden handelt es sich im Gegensatz zu physikalischen Sonden wie Thermoelementen um Softwareteile, die mit anderer Software Daten austauschen, um gewünschte Werte zu erhalten.
  • Mithilfe eines detaillierten aber nicht einschränkenden Beispiels wird eine Architektur mit drei Ebenen mit einem Webserver, einem Anwendungsserver und einer Datenbank betrachtet (üblicherweise jeweils mehr als eines). Es ist wünschenswert, die durchschnittliche Latenzzeit für die Endbenutzer-Anfragen unter einem bestimmten Grenzwert zu halten. Latenzzeiten können durch Überlasten irgendeines der Elemente verursacht werden. Es ist wünschenswert, die Latenzzeiten beim Reagieren auf Anfragen zu messen (anwendungsspezifisch – Beispiel – wie lange ein Http-Server braucht, um auf eine Anfrage zu reagieren).
  • In diesem Beispiel legt Block 631 fest, welche Latenzzeiten zum Antworten auf eingehende Anfragen zur Verfügung stehen sollten und möglicherweise, welches der reguläre Zustand des Systems sein sollte. Der Interpretationsblock 637 stellt eine Verbindung mit Sonden her, die Informationen über einzelne Komponenten bereitstellen. Der Verwaltungsblock 633 trifft mithilfe des Richtlinienblocks 631 und von Daten aus dem Interpretationsblock 637 sowie direktem Datenaustausch mit der Anwendungssoftware Entscheidungen, wie beispielsweise die Anzahl von eingehende Anfragen abwickelnder VMs zu erhöhen, um die Latenzzeiten zu senken, falls sie zu hoch sind, wobei möglicherweise entschieden wird, welche der 3 Ebenen einen Engpass darstellt und vergrößert werden muss. Der Verwaltungsblock 633 stellt eine Verbindung mit dem Steuerblock 635 her, um die Cloud anzuweisen, eine vorhandene Haupt-Vorlagen-VM zu klonen und sie online zu stellen, und ist dann dafür zuständig, geeignete Daten darauf zu platzieren und sie in die Anwendung einzubinden, so dass sie ihren Anteil der Last übernehmen kann.
  • Wenn im Gegensatz hierzu die Latenzzeiten weit unterhalb der Grenzen liegen und (laut der Richtlinie 631) mehr als die normale Anzahl von VMs in stabilem Zustand vorhanden ist, kann die Verwaltung 633 die Steuerung 635 anweisen, VMs langsam abzuschalten, und sie ist für das Zurücksetzen der Anwendung zuständig, so dass alle Arbeitslasten durch die verbleibenden VMs abgewickelt werden, z. B. durch Modifizieren einer Lastausgleichsrichtlinie auf Anwendungsebene.
  • Als weiteres Detail zu diesem nicht einschränkenden Beispiel legt Block 631 fest, welche Latenzzeiten zum Antworten auf eingehende Anfragen zur Verfügung stehen sollten und welches der reguläre Zustand des Systems sein sollte:
    Figure DE112012002941T5_0002
  • Dadurch wird eine Richtlinie festgelegt, dass die durchschnittliche Latenzzeit über eine Periode von einer Minute nicht über 500 ms liegen sollte. Üblicherweise sollten mehr Maschinen zugewiesen werden, wenn dies beginnen sollte. Wie vorstehend erläutert, erhält die Logik im Verwaltungsmodul 633 Daten von der Sonde, untersucht die Richtlinien 631 und führt geeignete Maßnahmen durch, falls Richtlinien verletzt werden; Anweisungen, um dies zu bewirken, werden an den Steuerblock 635 gesendet, wo sie übersetzt werden, wie ebenfalls vorstehend erläutert wurde.
  • Der Verwaltungsblock 633 kann zudem Mikrotests an jeder einzelnen Anwendungssoftware-Komponente 517 durchführen.
  • Der Verwaltungsblock 633 setzt optional Logik in Kraft, um zu versuchen, zu ermitteln, welche Schicht die Latenzzeiten verursacht. Er besitzt die Fähigkeit, Mikro-Benchmarktests an jeder Schicht durchzuführen, was keine Auswirkungen auf jede andere Schicht hat. Zum Beispiel kann er eine statische Webseite vom Webserver abrufen, um nur die Latenzzeit des Webservers zu messen. Er kann eine einfache Abfrage am Anwendungsserver durchführen, welche die Datenbank nicht betrifft, sowie einfache Datenbankabfragen durchführen. Dadurch kann er zusammen mit den durch den Interpretationsblock 637 bereitgestellten Messungen auf VM-Ebene genau feststellen, welche Komponente überlastet ist und daher, welche Komponente vergrößert werden muss. In dieser Hinsicht ist zu beachten, dass ausschließlich Messungen verwendet werden können, ausschließlich Mikro-Benchmarktests verwendet werden können oder beides zusammen verwendet werden kann. Des Weiteren können Mikro-Benchmarktests zum Beispiel auf einem Vorabtest an einem gut laufenden System beruhen, um die gewünschten Werte zu kennen.
  • Wenn zum Beispiel der Verwaltungsblock 633 feststellt, dass das Webserver-Front-End überlastet ist und die beste Entscheidung darin besteht, mehr Front-Ends hinzuzufügen, weist er den Steuerblock 635 an, eine neue VM zuzuweisen und spielt dann alle notwendige zusätzliche Software und Anwendungsdaten auf und integriert sie in die Anwendung.
  • Wenn es sich bei einer Cloud nur um VMware handeln würde, kopiert der Steuerblock 635 eine Gold-Haupt-VM des Webserver-Front-End auf eine neue VM. Dann verwendet er die „RegisterVm()”-Funktion der VMware API, um die VM der VM-Infrastruktur hinzuzufügen. Nach dem Hinzufügen verwendet der Steuerblock 635 die API, um eine Verbindung mit der neuen VM herzustellen, und verwendet ihr „Start()”-Verfahren, um die Maschinen hochzufahren. Der Verwaltungsblock 633 fügt sie dann zum Cluster der Maschinen hinzu, welche Front-End-Aufgaben abwickeln. In einem einfacheren Beispiel könnte die Größe einer Maschine erhöht werden.
  • In einem weiteren nicht einschränkenden Beispiel wird das Überwachen der Speicherauslastung betrachtet. Die Richtlinie 631 legt fest, welche Menge an freiem Speicherplatz verfügbar sein sollte, sowie, was zu viel freier Speicherplatz ist. Der Interpretationsblock 637 stellt eine Verbindung mit normalen Schnittstellen (du, df, quota, ...) her, um die Menge an freiem Speicherplatz zu ermitteln. Der Verwaltungsblock 633 verwendet diese beiden Informationen, um zu ermitteln, ob genügend freier Speicherplatz (oder zu viel) verfügbar ist. Der Verwaltungsblock 633 weist den Steuerblock 635 an, gemäß der Richtlinie mehr freien Speicherplatz zuzuweisen (oder ihn zu verringern). Ein geeigneter Befehl könnte die Form „increase-disk <Image-ID> <Festplatten-ID> <Größe>” besitzen.
  • Zum Beispiel können manche VMs in der Lage sein, abhängig von der Last der VM einen oder mehrere Dienste auszuführen. In manchen Fällen ist es dann möglich, die VM-Last von der VM-Infrastruktur aus zu überwachen und zur Überwachung der Ressourcennutzung (CPU, E/A) einzelner Dienste Sonden in jeder VM zu besitzen, um zu erfahren, wie viel jeder einzelne Dienst gerade nutzt.
  • Die Richtlinie 631 kann ermitteln, unter welcher dauerhaften Last der Betrieb einer VM erlaubt werden sollte und welche dauerhafte Last den einzelnen auf der VM ausgeführten Diensten erlaubt werden sollte. Der Interpretationsblock 637 stellt eine Verbindung mit der Lastüberwachung der VM-Infrastruktur her (VM-Gesamtlast) und führt Sondierungen innerhalb der VM durch (um für jeden einzelnen Dienst die Lastmessungen auf Betriebssystemebene zu überwachen). Der Verwaltungsblock 633 kann Entscheidungen treffen, die VM zu teilen, so dass einzelne Dienste auf unabhängigen VMs ausgeführt werden können, wenn die Last auf einer einzelnen VM zu hoch ist, oder sie wieder miteinander gruppieren, wenn sich die Last verringert hat. Er stellt eine Verbindung mit dem Steuerblock 635 her, um bei Bedarf neue VMs zu starten oder vorhandene abzuschalten sowie auf den einzelnen VMs ausgeführte Dienste zu beenden oder zu starten.
  • In noch einem weiteren nicht einschränkenden Beispiel wird ein Erhöhen des Speichers und der CPU-Nutzung einer VM betrachtet. Die Richtlinie 631 ermittelt, welcher dauerhafte Speicherplatz und welche dauerhafte CPU-Last auf einer einzelnen Maschine erlaubt werden sollte. Der Interpretationsblock 637 erhält Berichte der CPU-Nutzung und des freien Speicherplatzes und gibt diese in den Verwaltungsblock 633 ein. Der Verwaltungsblock 633 kann entscheiden, die CPU- und Speicherzuweisung einer einzelnen VM zu erhöhen (oder zu verringern). Er weist den Steuerblock 635 an, dies zu tun. Der Steuerblock 635 kann die VM abschalten (bei Bedarf unterstützen manche VMs das Hot-Plugging von CPUs), sie rekonfigurieren, um die Anzahl von CPUs und den zugewiesenen Speicherplatz zu erhöhen, und sie mithilfe der Schnittstellen der VM-Architektur neu starten (Bsp: auf vmware „vmrun”; und Bearbeiten der Konfigurationsdatei manuell oder über APIs).
  • In noch einem weiteren nicht einschränkenden Beispiel wird ein Fall betrachtet, in dem eine monatlich erlaubte Abschaltzeit festgelegt ist. Der Anwendungsverwalter kann die gesamte bisherige Abschaltzeit während des Monats verfolgen; wenn er feststellt, dass sich die erlaubte Grenze nähert, bestellt er mithilfe der Steuerkomponente 635 zusätzliche Ressourcen.
  • Bei den folgenden Befehlen handelt es sich um nicht einschränkende tatsächliche Befehle zum Provisionieren eines Servers und Erhöhen des Speichers:
    provision <Vorlage/Basis-ID-Name> <neuer ID-Name»
    increase-disk <ID-Name> <Größe>
  • Angesichts der bisherigen Erläuterung wird ersichtlich, dass ein beispielhaftes Verfahren gemäß einem Aspekt der Erfindung allgemein den Schritt eines Erhaltens einer Projektion kommenden Bedarfs für eine auf einer Cloud 10 ausgeführte Anwendung 403, 511 durch einen Anwendungsressourcenverwalter 401 beinhaltet. Bei der Cloud handelt es sich um eine Infrastructure-as-a-Service-Cloud und/oder eine Plafform-as-a-Service-Cloud. Ein zusätzlicher Schritt beinhaltet ein Feststellen durch den Anwendungsressourcenverwalter 401 auf der Grundlage der Projektion, dass Ressourcen der Cloud 10, die der Anwendung zugesprochen sind, erweitert oder verringert werden müssen. Ein weiterer Schritt beinhaltet als Reaktion auf den Feststellungsschritt fallabhängig ein Ausführen (oder zumindest Festlegen der Art des Ausführens) des Erweiterns oder Verringerns der Ressourcen der Cloud, die der Anwendung zugesprochen sind.
  • Die Projektion kommenden Bedarfs könnte zum Beispiel vom Anwendungsbesitzer 513 erhalten werden. In anderen Fällen könnte die Projektion kommenden Bedarfs durch den Anwendungsressourcenverwalter 401 selbst erhalten werden, der die Projektion auf der Grundlage von Beobachtungen der Anwendung 403, 511 und von Daten von einer Cloud-Verwaltungsschnittstelle der Cloud 10 ableitet.
  • Wenn festgestellt wird, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, verringert werden müssen, kann der Anwendungsverwalter 401 nicht genutzte Images der Cloud verbergen. In dieser Hinsicht sollte festgehalten werden, dass solche Images im Moment der Entscheidung unter Umständen nicht völlig ungenutzt sind. Zum Beispiel könnte ein Cluster von fünf Images vorhanden und jeder zur Zeit nur zu 50% genutzt sein, so dass entschieden wird, ihn auf vier oder auch drei zu reduzieren. Im Moment des Verbergens sollten die fraglichen Images in der Tat in dem Sinne ungenutzt sein, dass die Anfragen an es/sie nun zu einem anderen Ort geleitet werden. Zum Beispiel würde der Anwendungsressourcenverwalter 401 im Falle, dass für einen gegebenen Cluster ein Lastausgleicher verwendet wird, die Richtlinie des Lastausgleichers so ändern, dass Anfragen nun nur zu (der Anwendungskomponente der) verbleibenden drei oder vier Images gesendet werden.
  • Wenn festgestellt wird, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, erweitert werden müssen, kann der Anwendungsverwalter 401 neue Images in der Cloud provisionieren. In manchen Fällen kann dies mit sich bringen, dass der Anwendungsressourcenverwalter auf den neuen Images Software auf Anwendungsebene und/oder Daten provisioniert.
  • Wie festgehalten, wird der Anwendungsressourcenverwalter 401 in manchen Fällen in der Cloud 10 ausgeführt. In anderen Fällen wird der Anwendungsressourcenverwalter auf einer anderen Datenverarbeitungsressource als der Cloud ausgeführt.
  • In manchen Fällen beinhaltet der Feststellungsschritt ein Finden der kostengünstigsten Art, den projizierten kommenden Bedarf zu decken.
  • Es sollte festgehalten werden, dass der projizierte kommende Bedarf hinsichtlich der Leistung und/oder Verfügbarkeit festgelegt werden kann.
  • Es sollte ebenfalls festgehalten werden, dass der Anwendungsverwalter in manchen Fällen die Anwendung neu erkennt, d. h. (z. B. mit einem Erkennungswerkzeug) Änderungen erkennt, die durch den Serveradministrator direkt an der Anwendungssoftware 517 und/oder den zugrundeliegenden Images 519 vorgenommen wurden (im Gegensatz zu Änderungen, die mithilfe eines Anwendungsverwalterwerkzeugs gemäß einer oder mehrerer Ausführungsformen der Erfindung vorgenommen wurden).
  • Des Weiteren ist angesichts der bisherigen Erläuterung ersichtlich, dass ein beispielhaftes System gemäß einem Aspekt der Erfindung allgemein eine Cloud 10 enthält. Bei der Cloud handelt es sich um eine Infrastructure-as-a-Service-Cloud und/oder eine Platform-as-a-Service-Cloud. Ebenfalls enthalten sind mindestens eine Anwendung 403, 511, die in der Cloud ausgeführt wird, und ein Anwendungsressourcenverwalter 401. Der Anwendungsressourcenverwalter 401 erhält eine Projektion kommenden Bedarfs für die Anwendung 403, 511; stellt auf der Grundlage der Projektion fest, dass Ressourcen der Cloud 10, die der Anwendung 403, 511 zugesprochen sind, entweder erweitert oder verringert werden müssen; und führt als Reaktion auf das Feststellen entweder ein Erweitern oder Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind, durch.
  • Die Projektion kommenden Bedarfs könnte zum Beispiel vom Anwendungsbesitzer 513 erhalten werden. In anderen Fällen kann die Cloud 10 eine Cloud-Verwaltungsschnittstelle enthalten, und der Anwendungsressourcenverwalter erhält die Projektion durch Ableiten der Projektion auf der Grundlage von Beobachtungen der Anwendung und von Daten von der Cloud-Verwaltungsschnittstelle der Cloud. In dieser Hinsicht sollte festgehalten werden, dass die Cloud-Verwaltungsplattform 523 die Cloud-Verwaltungsschnittstelle bereitstellt, d. h. eine Plattform enthält Code und Ähnliches, Benutzer der Cloud können üblicherweise jedoch nicht auf den Code zugreifen, sondern z. B. nur auf eine Webseite, wo sie ihre aktuellen Images sehen und „Provisioniere ein oder mehrere Images für mich” oder „Erweitere die Ressourcen für dieses Image um X” angeben können. Bei der Webseite handelt es sich um die Schnittstelle und in einer oder mehreren Ausführungsformen besitzt sie eine programmatische Version für Programme, um dieselben Eingaben vorzunehmen.
  • Zu den der Anwendung zugesprochenen Ressourcen der Cloud können zum Beispiel Images zählen. In manchen Fällen, in denen der Anwendungsressourcenverwalter feststellt, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, verringert werden müssen, führt der Anwendungsressourcenverwalter das Verringern durch Verbergen ungenutzter Images aus.
  • In manchen Fällen stellt der Anwendungsressourcenverwalter fest, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, erweitert werden müssen, und der Anwendungsressourcenverwalter führt das Verringern durch Provisionieren neuer Images in der Cloud aus. Wie festgehalten, kann dies in manchen Fällen mit sich bringen, dass der Anwendungsressourcenverwalter auf den neuen Images Software auf Anwendungsebene und/oder Daten provisioniert.
  • Wie ebenfalls festgehalten, kann der Anwendungsressourcenverwalter in der Cloud oder auf einer anderen Datenverarbeitungsressource als der Cloud ausgeführt werden; eine solche Ressource bildet in manchen Fällen auch einen Teil des Systems. Es ist ersichtlich, dass der Server 12 gleichermaßen für eine Nicht-Cloud-Datenverarbeitungsressource steht, auf welcher der Anwendungsressourcenverwalter 401 realisiert werden könnte, auch wenn er als eine Cloud-Ressource der Cloud 10 gezeigt ist. Des Weiteren kann eine zusätzliche, von der Cloud verschiedene Datenverarbeitungsressource auch einen Fall einschließen, in dem der Verwalter 401 auf einer anderen Cloud als der von ihm verwalteten ausgeführt wird.
  • Wie in 6 zu sehen ist, enthält der Anwendungsressourcenverwalter in manchen Fällen wiederum einen Verwaltungsteil 633 und einen Steuerteil 635. In solchen Fällen kann es sich beim Verwaltungsteil des Anwendungsressourcenverwalters um die Komponente handeln, die auf der Grundlage der Projektion feststellt, dass die der Anwendung zugesprochenen Ressourcen der Cloud entweder erweitert oder verringert werden müssen; und beim Steuerteil des Anwendungsressourcenverwalters kann es sich um die Komponente handeln, die als Reaktion auf das Feststellen das Erweitern oder Verringern der Ressourcen, die der Anwendung zugesprochenen sind, ausführt.
  • Einzelheiten von beispielhaften Systemen und Herstellungsartikeln
  • Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als ein System, Verfahren, oder Computerprogrammprodukt ausgebildet werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet werden, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf enthaltenem computerlesbarem Programmcode enthalten sein kann.
  • Eine oder mehrere Ausführungsformen der Erfindung oder Elemente davon können in der Form einer Vorrichtung realisiert werden, die einen Speicher und mindestens einen Prozessor beinhaltet, der mit dem Speicher verbunden und in der Lage ist, die beispielhaften Verfahrensschritte durchzuführen.
  • Eine oder mehrere Ausführungsformen können Software nutzen, die auf einem universellen Computer oder einer Workstation ausgeführt wird. Unter Bezugnahme auf 1 kann eine solche Realisierung zum Beispiel einen Prozessor 16, einen Speicher 28 und eine Eingabe/Ausgabe-Schnittstelle 22 zu einer Anzeige 24 und eine oder mehrere externe Einheiten 14, wie beispielsweise eine Tastatur, eine Zeigeeinheit oder Ähnliches verwenden. Der hierin verwendete Begriff „Prozessor” soll jede Verarbeitungseinheit einschließen, wie beispielsweise eine Verarbeitungseinheit, die eine Zentraleinheit (central processing unit CPU) und/oder andere Formen von Verarbeitungsschaltungen einschließt. Weiterhin kann sich der Begriff „Prozessor” auf mehr als einen einzelnen Prozessor beziehen. Der Begriff „Speicher” soll Speicher in Verbindung mit einem Prozessor oder einer CPU, wie beispielsweise RAM (Speicher mit wahlfreiem Zugriff) 30, ROM (Nur-Lese-Speicher), eine fest eingebaute Speichereinheit (z. B. ein Festplattenlaufwerk 34), eine Wechselspeichereinheit (z. B. eine Diskette), einen Flash-Speicher und Ähnliches einschließen. Darüber hinaus soll der hierin verwendete Ausdruck „Eingabe/Ausgabe-Schnittstelle” eine Schnittstelle zu beispielsweise einem oder mehreren Mechanismen zum Eingeben von Daten in die Verarbeitungseinheit (zum Beispiel eine Maus) und einen oder mehrere Mechanismen zum Bereitstellen von Ergebnissen in Verbindung mit der Verarbeitungseinheit (zum Beispiel einen Drucker) einschließen. Der Prozessor 16, der Speicher 28 und die Eingabe/Ausgabe-Schnittstelle 22 können zum Beispiel über einen Bus 18 als Teil einer Datenverarbeitungseinheit 12 miteinander verbunden sein. Geeignete Verbindungen zum Beispiel über den Bus 18 können auch einer Netzwerkschnittstelle 20, wie beispielsweise einer Netzwerkkarte, bereitgestellt werden, die bereitgestellt werden kann, um eine Verbindung mit einem Computernetzwerk und einer Medienschnittstelle, wie beispielsweise einer Diskette oder einem CD-ROM-Laufwerk, herzustellen, die bereitgestellt werden kann, um eine Verbindung mit geeigneten Medien herzustellen.
  • Dementsprechend kann Computersoftware, die Anweisungen zum Durchführen der hierin beschriebenen Verfahrensweisen der Erfindung enthält, in einer oder mehreren der zugehörigen Speichereinheiten (zum Beispiel ROM, fest eingebauter oder Wechselspeicher) und bei Verwendungsbereitschaft teilweise oder als Ganzes (zum Beispiel in RAM) geladen und durch eine CPU ausgeführt werden. Zu einer solchen Software können, ohne auf diese beschränkt zu sein, Firmware, residente Software, Mikrocode und Ähnliches zählen.
  • Ein Datenverarbeitungssystem, das für das Speichern und/oder Ausführen von Programmcode geeignet ist, beinhaltet mindestens einen über einen Systembus 18 direkt oder indirekt mit Speicherelementen 28 verbundenen Prozessor 16. Die Speicherelemente können lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher und Cachespeicher 32 einschließen, welche das vorübergehende Speichern von mindestens einigem Programmcode bereitstellen, um die Anzahl des Ladens von Code vom Massenspeicher während der Ausführung zu verringern.
  • Eingabe/Ausgabe- bzw. E/A-Einheiten (einschließlich, jedoch nicht beschränkt auf Tastaturen, Anzeigeeinheiten, Zeigeeinheiten und Ähnliches) können mit dem System entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten verbunden sein.
  • Die Netzwerkadapter 20 können ebenfalls mit dem System verbunden sein, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten durch zwischengeschaltete private oder öffentliche Netzwerke verbunden werden kann. Modems, ein Kabelmodem und Ethernet-Karten stellen nur einige wenige der momentan erhältlichen Typen von Netzwerkadaptern dar.
  • Der hierin einschließlich der Ansprüche verwendete Begriff „Server” schließt ein physisches Datenverarbeitungssystem (zum Beispiel das in 1 gezeigte System 12) mit ein, auf dem ein Serverprogramm ausgeführt wird. Es ist ersichtlich, dass ein derartiger physischer Server eine Anzeige und eine Tastatur aufweisen kann, jedoch nicht muss.
  • Wie festgehalten, können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf enthaltenem computerlesbarem Programmcode enthalten sein kann. Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art sowie jede beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (nicht abschließende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen beinhalten oder speichern kann.
  • Zu einem computerlesbaren Signalmedium kann ein verbreitetes Datensignal mit darin zum Beispiel in einem Basisband oder als Teil einer Trägerwelle ausgebildetem computerlesbarem Programmcode zählen. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen ausgebildet werden, einschließlich, ohne auf diese beschränkt zu sein, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann.
  • Der in einem computerlesbaren Medium enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder eine beliebige geeignete Kombination des Vorgenannten.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen oder eine Skriptsprache wie Perl. In manchen Fällen kann ein optimierender Löser als eine Teilkomponente verwendet werden, z. B. ILOG CPLEX (ein hochleistungsfähiger mathematischer Programmierlöser für lineare Programmierung, gemischte Ganzzahlprogrammierung und quadratische Programmierung, das von der International Business Machines Corporation, Armonk, New York, USA, erhältlich ist). Allgemein kann der Programmcode vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein lokales Netzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden. In einer oder mehreren Ausführungsformen ist ein wesentlicher Teil des Codes derjenige, welcher dem Anwendungsressourcenverwalter zugehörig ist; er kann in der Cloud oder außerhalb ausgeführt werden. Zumindest in manchen Fällen ist es wahrscheinlicher, dass er sich auf einem Server anstatt auf einer Endbenutzermaschine befindet (wenn überhaupt, dann eine Endbenutzermaschine des Anwendungsbesitzers), es ist jedoch nicht unmöglich, dass der Anwendungsbesitzer ihn von einem Laptop aus oder Ähnlichem ausführt.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
  • Es sollte festgehalten werden, dass jedes der hierin beschriebenen Verfahren einen zusätzliche Schritt des Bereitstellens eines Systems beinhalten kann, das auf einem computerlesbaren Speichermedium enthaltene abgegrenzte Softwaremodule aufweist; zu den Modulen kann zum Beispiel jedes beliebige oder alle der in den Blockschaubildern abgebildeten und/oder hierein beschriebenen Elemente zählen; in beispielhafter und nicht einschränkender Weise ist in 6 ein Anwendungsressourcenverwalter-Modul mit einem oder mehreren Teilmodulen, wie beispielsweise einem Richtlinien-Teilmodul, einem Verwaltungs-Teilmodul, einem Steuer-Teilmodul und einem Interpretations-Teilmodul veranschaulicht. Die Verfahrensschritte können dann mithilfe der vorstehend beschriebenen abgegrenzten Software-Module und/oder Teilmodule des Systems ausgeführt werden, die auf einem oder mehreren Hardware-Prozessoren wie beispielsweise 16 ausgeführt werden. Weiterhin kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit Code aufweisen, der so eingerichtet ist, dass er ausgeführt werden kann, um einen oder mehrere hierin beschriebene Verfahrensschritte auszuführen, wozu auch die Provisionierung des Systems mit den abgegrenzten Software-Modulen zählt. In manchen Fällen wird der Feststellungsschritt durch das Verwaltungs-Teilmodul ausgeführt, das auf dem mindestens einen Hardware-Prozessor ausgeführt wird, und das Erweitern oder Verringern wird durch das Steuer-Teilmodul ausgeführt, das auf dem mindestens einen Hardware-Prozessor ausgeführt wird. Der Schritt des Erhaltens kann sich allgemein so vorgestellt werden, dass er durch das Anwendungsressourcenverwalter-Modul ausgeführt wird; wenn die Projektion vom Anwendungsbesitzer erhalten wird, kann das Richtlinien-Teilmodul verwendet werden, wohingegen das Interpretations-Teilmodul verwendet werden kann, wenn der Anwendungsressourcenverwalter selbst die Projektionen aus der Anwendung und/oder Daten aus der Cloud-Verwaltungsschnittstelle ableitet.
  • In jedem Fall versteht es sich, dass die hierin veranschaulichten Komponenten in vielfältigen Formen von Hardware, Software oder Kombinationen davon realisiert werden können; zum Beispiel anwendungspezifische integrierte Schaltung(en) (application specific integrated circuit(s) ASICS), funktionelle Schaltungen, ein oder mehrere geeignet programmierte universelle digitale Computer mit zugehörigem Speicher und Ähnliches. Bei den gegebenen Lehren der hierin bereitgestellten Erfindung ist der entsprechende Fachmann in der Lage, andere Realisierungen der Komponenten der Erfindung in Erwägung zu ziehen.
  • Die hierin verwendete Terminologie dient lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als die Erfindung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein”, „eine” und „der”, „die”, „das” sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn dies ist im Kontext deutlich anderweitig angegeben. Es versteht sich weiterhin, dass die Begriffe „aufweist” und/oder „aufweisend” in diesem Dokument das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritte sowie Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erklären und anderen Fachleuten ein Verständnis der Erfindung für vielfältige Ausführungsformen mit vielfältigen Änderungen, wie sie für den besonderen betrachteten Gebrauch geeignet sind, zu ermöglichen.

Claims (25)

  1. Verfahren, aufweisend: Erhalten einer Projektion kommenden Bedarfs für eine Anwendung, die auf einer Cloud ausgeführt wird, durch einen Anwendungsressourcenverwalter, wobei die Cloud mindestens eine von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud aufweist; Feststellen durch den Anwendungsressourcenverwalter auf der Grundlage der Projektion, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und als Reaktion auf den Feststellungsschritt Ausführen eines von Erweitern und Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind.
  2. Verfahren nach Anspruch 1, wobei das Erhalten ein Erhalten der Projektion von einem Anwendungsbesitzer aufweist.
  3. Verfahren nach Anspruch 1, wobei das Erhalten aufweist, dass der Anwendungsressourcenverwalter die Projektion auf der Grundlage von Beobachtungen ableitet von mindestens einem von: der Anwendung; und Daten von einer Cloud-Verwaltungsschnittstelle der Cloud.
  4. Verfahren nach Anspruch 1, wobei das Feststellen ein Feststellen aufweist, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, verringert werden müssen, und wobei das Ausführen ein Ausführen des Verringerns durch Verbergen ungenutzter Images in der Cloud aufweist.
  5. Verfahren nach Anspruch 1, wobei das Feststellen ein Feststellen aufweist, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, erweitert werden müssen, und wobei das Ausführen ein Ausführen des Erweiterns durch Provisionieren neuer Images in der Cloud aufweist.
  6. Verfahren nach Anspruch 5, weiterhin aufweisend, dass der Anwendungsressourcenverwalter auf den neuen Images mindestens eines von Software auf Anwendungsebene und Daten provisioniert.
  7. Verfahren nach Anspruch 1, weiterhin aufweisend mindestens eines von: Ausführen des Anwendungsressourcenverwalters in der Cloud; und Ausführen des Anwendungsressourcenverwalters auf einer anderen Datenverarbeitungsressource als der Cloud.
  8. Verfahren nach Anspruch 1, wobei das Feststellen ein Finden einer kostengünstigsten Art zum Decken des projektierten kommenden Bedarfs aufweist.
  9. Verfahren nach Anspruch 1, wobei im Schritt des Erhaltens der projizierte kommende Bedarf hinsichtlich mindestens eines von Leistung und Verfügbarkeit festgelegt ist.
  10. Verfahren nach Anspruch 1, weiterhin aufweisend, dass der Anwendungsressourcenverwalter periodisch ein Erkennungswerkzeug ausführt, um Änderungen zu erkennen an mindestens einem von: der Anwendung; und den Ressourcen der Cloud, die der Anwendung zugesprochen sind.
  11. Verfahren nach Anspruch 1, weiterhin aufweisend ein Bereitstellen eines Systems, wobei das System abgegrenzte Softwaremodule aufweist, wobei jedes der abgegrenzten Softwaremodule auf einem computerlesbaren Speichermedium ausgebildet ist, und wobei die abgegrenzten Softwaremodule ein Anwendungsressourcenverwalter-Modul, ein Verwaltungs-Teilmodul und ein Steuer-Teilmodul aufweisen; wobei: das Erhalten durch das auf mindestens einem Hardware-Prozessor ausgeführte Anwendungsressourcenverwalter-Modul ausgeführt wird; das Feststellen durch das auf mindestens einem Hardware-Prozessor ausgeführte Verwaltungs-Teilmodul ausgeführt wird; und das eine von Erweitern und Verringern durch das auf mindestens einem Hardware-Prozessor ausgeführte Steuer-Teilmodul ausgeführt wird.
  12. Verfahren nach Anspruch 11, wobei: die abgegrenzten Softwaremodule weiterhin ein Richtlinien-Teilmodul und ein Interpretations-Teilmodul aufweisen; das Feststellen durch das auf mindestens einem Hardware-Prozessor ausgeführte Verwaltungs-Teilmodul ausgeführt wird, mindestens eine Richtlinie des Richtlinien-Teilmoduls realisierend und auf mindestens einer Nutzungsinformation und Fehlerberichten von dem Interpretations-Teilmodul beruhend.
  13. System, aufweisend: eine Cloud, wobei die Cloud mindestens eines von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud aufweist; mindestens eine Anwendung, die in der Cloud ausgeführt wird; und einen Anwendungsressourcenverwalter; wobei der Anwendungsressourcenverwalter: eine Projektion kommenden Bedarfs für die Anwendung erhält; auf der Grundlage der Projektion feststellt, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und als Reaktion auf das Feststellen eines von Erweitern und Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind, ausführt.
  14. System nach Anspruch 13, wobei der Anwendungsressourcenverwalter die Projektion von einem Anwendungsbesitzer erhält.
  15. System nach Anspruch 13, wobei die Cloud eine Cloud-Verwaltungsschnittstelle aufweist und wobei der Anwendungsressourcenverwalter die Projektion durch Ableiten der Projektion auf der Grundlage von Beobachtungen der Anwendung und von Daten von der Cloud-Verwaltungsschnittstelle der Cloud erhält.
  16. System nach Anspruch 13, wobei: mindestens einige der Ressourcen der Cloud, die der Anwendung zugesprochen sind, Images aufweisen; der Anwendungsressourcenverwalter auf der Grundlage der Projektion feststellt, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, verringert werden müssen; und der Anwendungsressourcenverwalter das Verringern durch Verbergen ungenutzter Images ausführt.
  17. System nach Anspruch 13, wobei der Anwendungsressourcenverwalter feststellt, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, erweitert werden müssen, und wobei der Anwendungsressourcenverwalter das Erweitern durch Provisionieren neuer Images in der Cloud ausführt.
  18. System nach Anspruch 13, wobei: der Anwendungsressourcenverwalter wiederum einen Verwaltungsteil und einen Steuerteil aufweist; der Verwaltungsteil des Anwendungsressourcenverwalters auf der Grundlage der Projektion feststellt, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und der Steuerteil des Anwendungsressourcenverwalters als Reaktion auf das Feststellen eines von Erweitern und Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind, ausführt.
  19. Anwendungsressourcenverwalter-Computerprogrammprodukt, das ein computerlesbares Speichermedium mit darauf ausgebildetem computerlesbarem Programmcode aufweist, wobei der computerlesbare Programmcode aufweist: computerlesbaren Programmcode, der eingerichtet ist, eine Projektion kommenden Bedarfs für eine Anwendung zu erhalten, die in einer Cloud ausgeführt wird, wobei die Cloud mindestens eines von einer Infrastructure-as-a-Service-Cloud und einer Platform-as-a-Service-Cloud aufweist; computerlesbaren Programmcode, der eingerichtet ist, auf der Grundlage der Projektion festzustellen, dass Ressourcen der Cloud, die der Anwendung zugesprochen sind, entweder erweitert oder verringert werden müssen; und computerlesbaren Programmcode, der eingerichtet ist, Anweisungen festzulegen, um als Reaktion auf das Feststellen eines von Erweitern und Verringern der Ressourcen der Cloud, die der Anwendung zugesprochen sind, auszuführen.
  20. Computerprogrammprodukt nach Anspruch 19, wobei der zum Erhalten der Projektion eingerichtete computerlesbare Programmcode computerlesbaren Programmcode aufweist, der eingerichtet ist, die Projektion von einem Anwendungsbesitzer zu erhalten.
  21. Computerprogrammprodukt nach Anspruch 19, wobei der zum Erhalten der Projektion eingerichtete computerlesbare Programmcode computerlesbaren Programmcode aufweist, der eingerichtet ist, die Projektion auf der Grundlage von Beobachtungen zu erhalten von mindestens einem von: der Anwendung; und Daten von einer Cloud-Verwaltungsschnittstelle der Cloud.
  22. Computerprogrammprodukt nach Anspruch 19, wobei der zum Feststellen eingerichtete computerlesbare Programmcode computerlesbaren Programmcode aufweist, der eingerichtet ist, festzustellen, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, verringert werden müssen, und wobei die Anweisungen ein Ausführen des Verringerns durch Verbergen ungenutzter Images in der Cloud festlegen.
  23. Computerprogrammprodukt nach Anspruch 19, wobei der zum Feststellen eingerichtete computerlesbare Programmcode computerlesbaren Programmcode aufweist, der eingerichtet ist, festzustellen, dass die Ressourcen der Cloud, die der Anwendung zugesprochen sind, erweitert werden müssen, und wobei die Anweisungen ein Ausführen des Erweiterns durch Provisionieren neuer Images in der Cloud festlegen.
  24. Computerprogrammprodukt nach Anspruch 19, wobei der computerlesbare Programmcode abgegrenzte Softwaremodule aufweist, und wobei die abgegrenzten Softwaremodule ein Anwendungsressourcenverwalter-Modul, ein Verwaltungs-Teilmodul und ein Steuer-Teilmodul aufweisen; wobei: das Anwendungsressourcenverwalter-Modul den zum Erhalten eingerichteten computerlesbaren Programmcode aufweist; das Verwaltungs-Teilmodul den zum Feststellen eingerichteten computerlesbaren Programmcode aufweist; und das Steuer-Teilmodul den zum Festlegen eingerichteten computerlesbaren Programmcode aufweist.
  25. Computerprogrammprodukt nach Anspruch 24, wobei: die abgegrenzten Softwaremodule weiterhin ein Richtlinien-Teilmodul und ein Interpretations-Teilmodul aufweisen; das Verwaltungs-Teilmodul das Feststellen durch Realisieren mindestens einer Richtlinie des Richtlinien-Teilmoduls und auf der Grundlage mindestens eines von Nutzungsinformationen und Fehlerberichten von dem Interpretations-Teilmodul ausführt.
DE112012002941.0T 2011-07-12 2012-07-08 Anwendungsressourcenverwalter über eine Cloud Withdrawn DE112012002941T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/180,858 US20130019015A1 (en) 2011-07-12 2011-07-12 Application Resource Manager over a Cloud
USUS-13/180,858 2011-07-12
PCT/US2012/045882 WO2013009665A1 (en) 2011-07-12 2012-07-08 Application resource manager over a cloud

Publications (1)

Publication Number Publication Date
DE112012002941T5 true DE112012002941T5 (de) 2014-04-24

Family

ID=47506432

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012002941.0T Withdrawn DE112012002941T5 (de) 2011-07-12 2012-07-08 Anwendungsressourcenverwalter über eine Cloud

Country Status (6)

Country Link
US (1) US20130019015A1 (de)
JP (1) JP2014527221A (de)
CN (1) CN103649941A (de)
DE (1) DE112012002941T5 (de)
GB (1) GB2506325A (de)
WO (1) WO2013009665A1 (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 (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2583211B1 (de) 2010-06-15 2020-04-15 Oracle International Corporation Virtuelle berechnungsinfrastruktur
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
US20130030857A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Methods and systems for dynamically facilitating project assembly
EP2748978B1 (de) 2011-11-15 2018-04-25 Nicira Inc. Migration eines middlebox-status für verteilte middleboxes
US20130159494A1 (en) * 2011-12-15 2013-06-20 Cisco Technology, Inc. Method for streamlining dynamic bandwidth allocation in service control appliances based on heuristic techniques
EP2812809A4 (de) * 2012-02-10 2016-05-25 Oracle Int Corp Rahmenwerk für cloud-computing-dienste
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
US8959513B1 (en) 2012-09-27 2015-02-17 Juniper Networks, Inc. Controlling virtualization resource utilization based on network state
JP2014171211A (ja) * 2013-02-06 2014-09-18 Ricoh Co Ltd 情報処理システム
US9817699B2 (en) 2013-03-13 2017-11-14 Elasticbox Inc. Adaptive autoscaling for virtualized applications
US10454999B2 (en) * 2013-03-14 2019-10-22 Red Hat, Inc. Coordination of inter-operable infrastructure as a service (IAAS) and platform as a service (PAAS)
US9473355B2 (en) * 2013-03-14 2016-10-18 Amazon Technologies, Inc. Inferring application inventory
CN103167037B (zh) * 2013-03-15 2016-12-28 苏州九光信息科技有限公司 基于模块化的云计算系统
US9519653B2 (en) 2013-04-01 2016-12-13 Ctera Networks, Ltd. Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system
US9729465B2 (en) 2013-05-01 2017-08-08 Red Hat, Inc. Policy based application elasticity across heterogeneous computing infrastructure
US20140351391A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus to Recommend a Workload Distribution Path Based on Resource Usage Pattern
US20140351441A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus for SLA-aware System to Recommend Best Match for Cloud Resource Provisioning
US20140351430A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus for Capacity-Aware System to Recommend Capacity Management Suggestions
US20140351429A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus to Elastically Modify Size of a Resource Pool
US9547835B2 (en) 2013-08-20 2017-01-17 International Business Machines Corporation Modularly managed service platform
CN105593835B (zh) * 2013-10-03 2019-03-08 慧与发展有限责任合伙企业 通过主云服务管理器管理多个二级云
US9639817B2 (en) * 2013-11-13 2017-05-02 Google, Inc. Remote metering for panelist web usage
US9544385B1 (en) 2014-02-24 2017-01-10 Google Inc. Providing second content items in association with first content items
US20150264117A1 (en) * 2014-03-14 2015-09-17 Avni Networks Inc. Processes for a highly scalable, distributed, multi-cloud application deployment, orchestration and delivery fabric
US9680708B2 (en) 2014-03-14 2017-06-13 Veritas Technologies Method and apparatus for cloud resource delivery
US20150355927A1 (en) * 2014-06-04 2015-12-10 Yahoo! Inc. Automatic virtual machine resizing to optimize resource availability
US9760952B2 (en) 2014-06-12 2017-09-12 International Business Machines Corporation Application service aggregation and management
US9426034B2 (en) 2014-06-16 2016-08-23 International Business Machines Corporation Usage policy for resource management
CN104102543B (zh) * 2014-06-27 2018-09-11 北京奇艺世纪科技有限公司 一种云计算环境中负载调整的方法和装置
US10671508B2 (en) 2014-09-25 2020-06-02 Hewlett Packard Enterprise Development Lp Testing a cloud service
US10009292B2 (en) * 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US11182280B2 (en) 2014-10-13 2021-11-23 Microsoft Technology Licensing, Llc Application testing
US10284664B2 (en) 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Application testing
US9886267B2 (en) 2014-10-30 2018-02-06 Equinix, Inc. Interconnection platform for real-time configuration and management of a cloud-based services exchange
CN105991687B (zh) * 2015-02-03 2019-09-17 阿里巴巴集团控股有限公司 一种服务管理方法和装置
US10275749B2 (en) 2015-03-20 2019-04-30 International Business Machines Corporation Tracking use of a virtualization service according to globalization characteristic based usage
JP2016192661A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
JP2016192660A (ja) * 2015-03-31 2016-11-10 日本電気株式会社 ネットワークシステム、ネットワーク制御方法、制御装置および運用管理装置
US9942331B2 (en) 2015-06-12 2018-04-10 International Business Machines Corporation Utilization of computing services
US10243815B2 (en) * 2015-06-29 2019-03-26 Vmware, Inc. Methods and systems to evaluate data center resource allocation costs
CN105183820A (zh) * 2015-08-28 2015-12-23 广东创我科技发展有限公司 一种支持多租户的大数据平台及租户访问方法
US10387209B2 (en) 2015-09-28 2019-08-20 International Business Machines Corporation Dynamic transparent provisioning of resources for application specific resources
US10200387B2 (en) * 2015-11-30 2019-02-05 International Business Machines Corporation User state tracking and anomaly detection in software-as-a-service environments
US10938665B2 (en) * 2015-12-15 2021-03-02 At&T Intellectual Property I, L.P. Method and apparatus for creating a custom service
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10395195B2 (en) 2016-01-08 2019-08-27 International Business Machines Corporation Provisioning virtual machines to optimize application licensing costs
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US9781122B1 (en) 2016-05-11 2017-10-03 Oracle International Corporation Multi-tenant identity and data security management cloud service
US9838376B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Microservices based multi-tenant identity and data security management cloud service
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
CN106022615B (zh) * 2016-05-23 2020-05-19 上海中传网络技术股份有限公司 基于云计算的企业资源管理方法
US10313261B1 (en) * 2016-06-15 2019-06-04 Workday, Inc. Tenant assignment system
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10616224B2 (en) 2016-09-16 2020-04-07 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
CN106887166A (zh) * 2017-02-20 2017-06-23 管斌彬 一种基于云平台的智慧学习系统
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10838840B2 (en) * 2017-09-15 2020-11-17 Hewlett Packard Enterprise Development Lp Generating different workload types for cloud service testing
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
CN108062225B (zh) * 2017-11-27 2021-08-27 国云科技股份有限公司 一种多模板组合发布应用集群的方法
CN107888706B (zh) * 2017-12-08 2020-04-17 平安科技(深圳)有限公司 云产品故障处理方法、装置、设备及计算机可读存储介质
US11099964B2 (en) * 2017-12-20 2021-08-24 Pivotal Software, Inc. Framework actuator integration
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11140096B2 (en) * 2018-02-07 2021-10-05 Cisco Technology, Inc. Optimizing fog orchestration through edge compute resource reservation
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
CN110389817B (zh) * 2018-04-20 2023-05-23 伊姆西Ip控股有限责任公司 多云系统的调度方法、装置和计算机可读介质
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US10824413B2 (en) * 2018-07-23 2020-11-03 International Business Machines Corporation Maintenance of computing nodes concurrently in a number updated dynamically
JP2020030604A (ja) * 2018-08-22 2020-02-27 富士通株式会社 プラン提示プログラム、プラン提示方法、及び情報処理装置
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
EP3832464A1 (de) * 2019-12-06 2021-06-09 Tata Consultancy Services Limited System und verfahren zur auswahl von cloud-dienstanbietern in einer multi-cloud
US11316954B2 (en) * 2020-02-07 2022-04-26 Shopify Inc. System and method for offloading application extension script execution from application hosting infrastructure
CN111475295B (zh) * 2020-04-03 2024-02-20 上海依图网络科技有限公司 软硬件分层管理方法、装置及计算机可读存储介质
CN112948091B (zh) * 2021-03-24 2024-01-30 国网上海市电力公司 应用系统的迁移方法、装置、电子设备及存储介质
ES2957182A1 (es) * 2022-05-31 2024-01-12 Pronoide S L Sistema y metodo para la creacion de videos instructivos mediante el empleo de secuencias de comandos

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0213073D0 (en) * 2002-06-07 2002-07-17 Hewlett Packard Co Method of maintaining availability of requested network resources
US20110016214A1 (en) * 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
US20110110568A1 (en) * 2005-04-08 2011-05-12 Gregory Vesper Web enabled medical image repository
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8949364B2 (en) * 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US8250215B2 (en) * 2008-08-12 2012-08-21 Sap Ag Method and system for intelligently leveraging cloud computing resources
US7996525B2 (en) * 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources
US8117317B2 (en) * 2008-12-31 2012-02-14 Sap Ag Systems and methods for integrating local systems with cloud computing resources
US9485117B2 (en) * 2009-02-23 2016-11-01 Red Hat, Inc. Providing user-controlled resources for cloud computing environments
WO2010127365A1 (en) * 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US20100293147A1 (en) * 2009-05-12 2010-11-18 Harvey Snow System and method for providing automated electronic information backup, storage and recovery
US9703609B2 (en) * 2009-05-29 2017-07-11 Red Hat, Inc. Matching resources associated with a virtual machine to offered resources
US8121618B2 (en) * 2009-10-28 2012-02-21 Digimarc Corporation Intuitive computing methods and systems
US8615584B2 (en) * 2009-12-03 2013-12-24 International Business Machines Corporation Reserving services within a cloud computing environment
WO2011091056A1 (en) * 2010-01-19 2011-07-28 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8433802B2 (en) * 2010-01-26 2013-04-30 International Business Machines Corporation System and method for fair and economical resource partitioning using virtual hypervisor
US8660355B2 (en) * 2010-03-19 2014-02-25 Digimarc Corporation Methods and systems for determining image processing operations relevant to particular imagery
US20110313902A1 (en) * 2010-06-18 2011-12-22 International Business Machines Corporation Budget Management in a Compute Cloud
CN101968859A (zh) * 2010-09-29 2011-02-09 用友软件股份有限公司 基于云计算环境的业务流程管理方法和系统
CN102004671B (zh) * 2010-11-15 2013-03-13 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
US7991632B1 (en) * 2011-01-28 2011-08-02 Fmr Llc Method and system for allocation of resources in a project portfolio
CN102111337B (zh) * 2011-03-14 2013-05-15 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
US20120265881A1 (en) * 2011-04-14 2012-10-18 Yuan Chen Provisioning data center resources
US8914513B2 (en) * 2011-06-23 2014-12-16 Cisco Technology, Inc. Hierarchical defragmentation of resources in data centers

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
CN103649941A (zh) 2014-03-19
GB201400744D0 (en) 2014-03-05
JP2014527221A (ja) 2014-10-09
US20130019015A1 (en) 2013-01-17
WO2013009665A1 (en) 2013-01-17
GB2506325A (en) 2014-03-26

Similar Documents

Publication Publication Date Title
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012003316B4 (de) Dynamisches Erwerben von Datenverarbeitungsressourcen in einer vernetzten Datenverarbeitungsumgebung
DE112010003819B4 (de) Cloudübergreifende gemeinsame Ressourcen-Nutzung innerhalb einer Cloud-Datenverarbeitungsumgebung
DE112010003886B4 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE102016205297A1 (de) Festlegen von speicherebenen zum platzieren von datensätzen während des ausführens von aufgaben in einem arbeitsablauf
DE102012219363A1 (de) Ereignisvorhersage und Ermittlung von vorbeugenden Maßnahmen in einer vernetzten Datenverarbeitungsumgebung
DE102013204508A1 (de) Dynamisches Neukonfigurieren eines Speichersystems
DE112011100166T5 (de) Starten von virtuellen Instanzen in einer Cloud-Computing-Umgebung
DE102013216735A1 (de) Ressourcenzuweisung in einer virtualisierten Datenverarbeitungsumgebung
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112019001433T5 (de) Datenanonymisierung
DE102016103713A1 (de) Erkennung virtueller Maschineneinheiten auf der Grundlage eines Katalogs
DE112020002189T5 (de) Container-basierte anwendungen
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
DE102014116744A1 (de) Management von Informationstechnologieressourcen
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee