DE102013205572A1 - Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung - Google Patents

Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung Download PDF

Info

Publication number
DE102013205572A1
DE102013205572A1 DE102013205572A DE102013205572A DE102013205572A1 DE 102013205572 A1 DE102013205572 A1 DE 102013205572A1 DE 102013205572 A DE102013205572 A DE 102013205572A DE 102013205572 A DE102013205572 A DE 102013205572A DE 102013205572 A1 DE102013205572 A1 DE 102013205572A1
Authority
DE
Germany
Prior art keywords
software component
vms
virtual machines
component combinations
computing environment
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.)
Granted
Application number
DE102013205572A
Other languages
English (en)
Other versions
DE102013205572B4 (de
Inventor
Jason L. Anderson
Gregory J. Boss
Jeffrey L. Coveydue
Christopher W. Roach
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.)
Kyndryl Inc
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 DE102013205572A1 publication Critical patent/DE102013205572A1/de
Application granted granted Critical
Publication of DE102013205572B4 publication Critical patent/DE102013205572B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

Ausführungsformen der vorliegenden Erfindung stellen eine Gruppe von algorithmischen Verfahren bereit, die verwendet werden können, um einen vorab bereitgestellten Pool von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung zu erzeugen. Insbesondere wird eine Installationszeit für mögliche Kombinationen von Softwarekomponenten einer VM in einer Vielzahl von Softwarekomponenten-Kombinationen berechnet. Jede einzelne Installationszeit wird durch einen Wert gewichtet, der einem Bereitstellungsverlauf von Softwarekomponenten zugehörig ist. Zumindest ein Teil der Softwarekomponenten-Kombinationen ist dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs) zugeordnet.

Description

  • TECHNISCHES GEBIET
  • Allgemein betrifft die vorliegende Erfindung die Verbesserung von Bereitstellungszeiten von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung (z. B. einer Cloud-Computing-Umgebung). Insbesondere betrifft die vorliegende Erfindung das Verwenden von Softwarekomponenten-Metadaten zum Bereitstellen von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung.
  • HINTERGRUND
  • Die vernetzte Datenverarbeitungsumgebung (z. B. Cloud-Computing-Umgebung) ist eine Erweiterung der Vorgänger-Grid-Umgebung, wobei mehrere Grids (Gitter) und andere Datenverarbeitungsressourcen des Weiteren um eine oder mehrere zusätzliche Abstraktionsschichten erweitert werden können (z. B. eine Cloud-Schicht), wodurch ungleichartige Einheiten sich für einen Endnutzer als ein einziger Pool von nahtlosen Ressourcen darstellen. Zu diesen Ressourcen können unter anderem solche Elemente wie physische oder logische Datenverarbeitungs-Engines, Server und Einheiten, Einheitenspeicher, Speichereinheiten gehören.
  • Cloud-Computing-Dienste werden üblicherweise in einem relativ statischen Hardware-Pool ausgeführt, wobei Betriebssysteme und Anwendungen genutzt und neu konfiguriert werden, um die Datenverarbeitungsbedürfnisse von Nutzern zu erfüllen. Innerhalb der Grenzen der Cloud-Umgebung können Anwendungsabbilder installiert und überschrieben werden, Internet-Protocol-(IP-)Adressen können modifiziert werden, und reale und virtuelle Prozessoren/Maschinen können zugeordnet werden, um sich ändernde Geschäftsbedürfnisse zu erfüllen. Gegenwärtig können verschiedene Cloud-Dienstanbieter unterschiedliche lange Zeiten benötigen, um virtuelle Maschinen bereitzustellen, die von Nutzern angefordert werden. Zum Beispiel können einige Cloud-Anbieter eine bestimmte Ressource sehr schnell bereitstellen, wogegen andere dazu länger brauchen. Daher können Anforderungen bestehen konsistente Bereitstellungszeiten für Datenverarbeitungsressourcen zu erzielen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung stellen eine Gruppe von algorithmischen Verfahren bereit, die verwendet werden können, um einen vorab bereitgestellten Pool von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung zu erzeugen. Insbesondere wird eine Installationszeit für mögliche Kombinationen von Softwarekomponenten einer VM in einer Vielzahl von Softwarekomponenten-Kombinationen berechnet. Jede einzelne Installationszeit wird durch einen Wert gewichtet, der einem Bereitstellungsverlauf von Softwarekomponenten zugehörig ist. Zumindest ein Teil der Softwarekomponenten-Kombinationen ist dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs) zugeordnet.
  • Ein erster Aspekt der vorliegenden Erfindung stellt ein durch einen Computer umgesetztes Verfahren zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung bereit, aufweisend: das Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; das Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und das Zuordnen zumindest eines Teils der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  • Ein zweiter Aspekt der vorliegenden Erfindung stellt ein System zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung bereit, aufweisend: ein Speichermedium, das Anweisungen aufweist; einen Bus, der an das Speichermedium gekoppelt ist; und einen Prozessor, der an den Bus gekoppelt ist, der, wenn die Anweisungen ausgeführt werden, das System veranlasst zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen zumindest eines Teils der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  • Ein dritter Aspekt der vorliegenden Erfindung stellt ein Computerprogrammprodukt zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium und Programmanweisungen aufweist, die auf dem computerlesbaren Speichermedium gespeichert sind zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen zumindest eines Teils der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  • Ein vierter Aspekt der vorliegenden Erfindung stellt ein Verfahren zum Nutzen eines Systems zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung bereit, aufweisend: das Nutzen einer Computerinfrastruktur, die betriebsfähig ist zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen zumindest eines Teils der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Merkmale dieser Erfindung lassen sich besser aus der folgenden ausführlichen Beschreibung der verschiedenen Aspekte der Erfindung in Verbindung mit den begleitenden Zeichnungen verstehen, wobei:
  • 1 einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 2 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 3 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 4 eine Systemdarstellung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 5 ein Installationsschaubild gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 6 einen Verfahrensablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Die Zeichnungen sind rein schematische Darstellungen, die keine speziellen Parameter der Erfindung darstellen sollen. Die Zeichnungen sollen nur typische Ausführungsformen der Erfindung veranschaulichen und sollten deshalb nicht als den Schutzumfang der Erfindung einschränkend betrachtet werden. In den Zeichnungen stellt eine gleiche Nummerierung gleiche Elemente dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Veranschaulichende Ausführungsformen werden hierin im Folgenden ausführlicher unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen beispielhafte Ausführungsformen gezeigt sind. Diese Offenbarung kann jedoch in vielen verschiedenen Formen verkörpert werden und sollte nicht als auf die hierin dargelegten beispielhaften Ausführungsformen eingeschränkt ausgelegt werden. Diese beispielhaften Ausführungsformen werden stattdessen bereitgestellt, damit diese Offenbarung gründlich und vollständig ist und Fachleuten den Schutzumfang dieser Offenbarung umfassend vermittelt. In dieser Beschreibung können Details von bekannten Merkmalen und Techniken weggelassen sein, um eine unnötige Unverständlichkeit der dargestellten Ausführungsformen zu vermeiden.
  • Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und ist nicht dazu gedacht, diese Offenbarung einzuschränken. Wie hierin verwendet sollen die Singularformen „ein”, „eine” und „der/die/das” auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Ferner gibt die Verwendung der Begriffe „ein”, „eine” usw. keine Einschränkung einer Menge an, sondern gibt stattdessen das Vorhandensein von mindestens einem der Elemente an, auf die Bezug genommen wird. Der Begriff „Gruppe” soll eine Menge von mindestens einem bedeuten. Es versteht sich ferner, dass die Begriffe „weist auf” und/oder „aufweisend” oder „enthält” und/oder „enthaltend” bei Verwendung in dieser Spezifikation das Vorhandensein von ausgewiesenen Merkmalen, Bereichen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Bereichen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • Ausführungsformen der vorliegenden Erfindung stellen eine Gruppe von algorithmischen Verfahren bereit, die verwendet werden können, um einen vorab bereitgestellten Pool von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung zu erzeugen. Insbesondere wird eine Installationszeit für mögliche Kombinationen von Softwarekomponenten einer VM in einer Vielzahl von Softwarekomponenten-Kombinationen berechnet. Jede einzelne Installationszeit wird durch einen Wert gewichtet, der einem Bereitstellungsverlauf von Softwarekomponenten zugehörig ist. Zumindest ein Teil der Softwarekomponenten-Kombinationen ist dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs) zugeordnet.
  • Es ist von vornherein zu verstehen, dass, obwohl diese Offenbarung eine detaillierte Beschreibung von Cloud-Computing enthält, die Umsetzung der hierin zitierten Lehren nicht auf eine Cloud-Computing-Umgebung begrenzt ist. Die Ausführungsformen der vorliegenden Erfindung sind stattdessen fähig, in Verbindung mit jedem anderen Typ einer jetzt bekannten oder später entwickelten Datenverarbeitungsumgebung umgesetzt zu werden.
  • Cloud-Computing ist ein Modell einer Dienstleistung zum Ermöglichen eines bequemen On-Demand-Netzwerkzugriffs (Netzzugriff bei Bedarf) auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerke, Netzbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Diensts rasch bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle enthalten.
  • Die Merkmale sind wie folgt:
    On-Demand-Selfservice: Ein Cloud-Nutzer kann einseitig und je nach Bedarf automatisch Datenverarbeitungsfunktionen, wie z. B. Serverzeit und Netzwerkspeicher, ohne menschliche Interaktion mit dem Anbieter des Diensts bereitstellen.
  • Breiter Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung und auf sie wird über Standardmechanismen zugegriffen, die den Einsatz über heterogene Thin Client- oder Thick Client-Plattformen unterstützen (z. B. Mobiltelefone, Laptops und PDAs).
  • Ressourcen-Pooling: Die Datenverarbeitungsressourcen des Anbieters sind in einem Pool zusammengeschlossen, um unter Verwendung eines Multi-Tenant-Modells mehreren Nutzern mit unterschiedlichen physischen und virtuellen Ressourcen zu dienen, deren Zuweisung oder Zuweisungsaufhebung je nach Bedarf dynamisch erfolgt. Es herrscht insofern ein Gefühl der Standortunabhängigkeit, dass der Nutzer im Allgemeinen keine Kontrolle oder Kenntnis in Bezug auf den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene anzugeben (z. B. Land, Bundesstaat oder Rechenzentrum).
  • Schnelle Elastizität: Funktionen können rasch und elastisch, in einigen Fällen automatisch, für eine schnelle Erweiterung bereitgestellt und für eine schnelle Reduzierung rasch freigegeben werden. Für den Nutzer scheinen die zur Bereitstellung verfügbaren Funktionen oft unbegrenzt zu sein und können jederzeit in beliebiger Menge erworben werden.
  • Richtig bemessener Dienst: Cloud-Systeme kontrollieren und optimieren Ressourcennutzung durch wirksamen Einsatz einer Messfunktion auf einer passenden Abstraktionsebene, die dem Diensttyp entspricht (z. B. Speicher, Verarbeitung, Bandbreite und aktive Nutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, was sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes für Transparenz sorgt.
  • Es gibt folgende Dienstmodelle:
    Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Auf die Anwendungen kann über eine Thin Client-Schnittstelle, Browser (wie beispielsweise einen Web-z. B. eMail auf Web-Grundlage), von verschiedenen Client-Einheiten aus zugegriffen werden. Der Nutzer verwaltet weder noch steuert er die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen, ausgenommen möglicherweise begrenzte nutzerspezifische Einstellungen einer Anwendungskonfiguration.
  • Plafform as a Service (PaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erstellte oder erworbene Anwendungen zu nutzen, die unter Verwendung von Programmiersprachen und Tools erstellt wurden, die von dem Anbieter unterstützt werden. Der Nutzer verwaltet weder noch steuert er die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerke, Server, Betriebssysteme oder Speicher, aber er hat die Kontrolle über die genutzten Anwendungen und möglicherweise die Hosting-Umgebungskonfigurationen von Anwendungen.
  • Infrastructure as a Service (IaaS): Die für den Nutzer bereitgestellte Funktion besteht in der Bereitstellung von Verarbeitung, Speicher, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, wobei der Nutzer in der Lage ist, beliebige Software zu nutzen und auszuführen, zu der auch Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet weder noch steuert er die zu Grunde liegende Cloud-Infrastruktur, aber er hat die Kontrolle über Betriebssysteme, Speicher, genutzte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z. B. Host-Firewalls).
  • Es gibt folgende Nutzungsmodelle:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Community, die gemeinsame Problemstellungen hat (z. B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und ist im Besitz einer Organisation, die Cloud-Dienste verkauft.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung von zwei oder mehr Clouds (Private, Community oder Public), die eindeutige Entitäten bleiben, aber durch eine standardisierte oder proprietäre Technologie vereinigt sind, die eine Daten- und Anwendungsportabilität ermöglicht (z. B. Cloud Bursting für einen Lastausgleich zwischen Clouds).
  • Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert mit Schwerpunkt auf Statusunabhängigkeit, niedriger Kopplung, Modularität und semantischer Interoperabilität. Das Kernstück des Cloud Computing ist eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
  • Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten gezeigt. Der Cloud-Computing-Knoten 10 ist nur ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll keinerlei Einschränkung in Bezug auf den Schutzumfang der Verwendung oder Funktionalität der Ausführungsformen der hierin beschriebenen Erfindung andeuten. Ungeachtet dessen lässt sich der Cloud-Computing-Knoten 10 umsetzen und/oder kann jede der im Vorgenannten erläuterten Funktionalitäten ausführen.
  • Im Cloud-Computing-Knoten 10 ist ein Computersystem/Server 12 vorhanden, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen für Universal- oder Sonder-Datenverarbeitungssysteme betriebsfähig ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Arbeitsspeichereinheiten enthalten.
  • Wie in 1 gezeigt, wird das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in der Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 enthalten, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28 an den Prozessor 16 koppelt, sie sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeicher-Controllers, eines Peripheriebusses, eines Accelerated Graphics Port und eines Prozessor- oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen einen Industry Standard Architecture(ISA)-Bus, Micro Channel Architecture(MCA)-Bus, Enhanced ISA(EISA)-Bus, einen lokalen Video Electronics Standards Association(VESA)-Bus und Peripheral Component Interconnects(PCI)-Bus.
  • Das Computersystem/der Server 12 weist typischerweise eine Vielfalt von Medien auf, die von einem Computersystem gelesen werden können. Derartige Medien können alle verfügbaren Medien sein, auf die von dem Computersystem/Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemspeicher 28 kann vom Computersystem lesbare Medien in Form von flüchtigem Arbeitsspeicher enthalten, wie beispielsweise einen Direktzugriffspeicher (RAM) 30 und/oder einen Cache-Zwischenspeicher 32. Das Computersystem/der Server 12 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 34 für das Lesen von und das Schreiben auf nicht austauschbare, nicht flüchtige Magnetdatenträger bereitgestellt werden (nicht gezeigt und typischerweise als „Festplatte” bezeichnet). Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk für das Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z. B. eine „Floppy-Disk”) und ein optisches Plattenlaufwerk für das Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Medien bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie ferner im Folgenden veranschaulicht und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt mit einer Gruppe (z. B. mindestens einem) von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Die Ausführungsformen der Erfindung können als ein computerlesbares Signalmedium umgesetzt werden, das ein verbreitetes Datensignal mit einem darin integrierten computerlesbaren Programmcode enthalten kann (z. B. im Basisband oder als Teil einer Trägerwelle). Ein derartiges verbreitetes Signal kann jede von einer Vielfalt von Formen annehmen, einschließlich elektromagnetisch, optisch oder jede geeignete Kombination davon, ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann.
  • In einem computerlesbaren Medium integrierter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder jede geeignete Kombination des Vorgenannten, ist aber nicht darauf beschränkt.
  • Das Programm/Dienstprogramm 40, das eine Gruppe von (mindestens einem) von Programmmodulen 42 aufweist, kann beispielsweise und nicht einschränkend im Speicher 28 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon können alle jeweils eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der Erfindung aus, wie hierin beschrieben.
  • Das Computersystem/der Server 12 kann auch mit einem oder mehreren externen Einheiten 14 Daten austauschen, wie beispielsweise einer Tastatur, einem Zeigegerät, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Nutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder allen Einheiten (z. B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über E/A-Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet), über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 Daten mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 aus. Es sollte verstanden werden, dass, obwohl nicht gezeigt, andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Beispiele dafür, ohne darauf beschränkt zu sein, sind: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Unter folgender Bezugnahme auf 2 wird die 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 Datenverarbeitungseinheiten Daten austauschen können, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N. Die Knoten 10 können untereinander Daten austauschen. Sie können (nicht gezeigt) physisch oder virtuell in einem oder mehreren Netzwerken gruppiert sein, wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder eine Kombination davon sein. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Nutzer der Cloud keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 2 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z. B. unter Verwendung eines Web-Browsers) Daten austauschen können.
  • Unter folgender Bezugnahme auf 3 ist eine Gruppe von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein verstanden werden, dass die in 3 gezeigten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    Die Hardware- und Software-Schicht 60 weist Hardware- und Software-Komponenten auf. Zu Beispielen für Hardware-Komponenten zählen Mainframes. In einem Beispiel zSeries®-Systeme von IBM® und Server auf der Grundlage einer RISC-(Reduced Instruction Set Computer)Architektur. In einem Beispiel pSeries®-Systeme von IBM, xSeries®-Systeme von IBM, BladeCenter®-Systeme von IBM, Speichereinheiten, Netzwerke und Netzwerkkomponenten. Zu Beispielen für Software-Komponenten zählt Software für Netzwerkanwendungsserver. In einem Beispiel Software für WebSphere®-Anwendungsserver von IBM und Datenbanksoftware. In einem Beispiel Software für DB2®-Datenbanken von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Marken der International Business Machines Corporation, die weltweit unter zahlreichen Gerichtsbarkeiten registriert sind.)
  • Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der aus die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung sorgt für die dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung stellen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und die Abrechnung oder Rechnungsstellung für den Nutzer dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Die Sicherheit stellt für die Nutzer der Cloud und Aufgaben eine Identitätsüberprüfung sowie Schutz für Daten und andere Ressourcen bereit. Das Nutzerportal stellt den Zugang zu der Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level-(Dienstgüte)Verwaltung sorgt für die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen, so dass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird. In der Verwaltungsschicht wird ferner eine Optimierung der Bereitstellungszeit gezeigt, welche die Funktionalität darstellt, die unter den Ausführungsformen der vorliegenden Erfindung bereitgestellt wird.
  • Die Arbeitslastenschicht 66 stellt Beispiele für die Funktionalität bereit, für die die Cloud-Computing-Umgebung eingesetzt werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation; Software-Entwicklung und Lifecycle-Management; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; Speicherung von Nutzerdaten und Sicherung. Wie vorher erwähnt, sind alle vorgenannten Beispiele, die unter Bezugnahme auf 3 beschrieben wurden, rein veranschaulichend, und die Erfindung ist nicht auf diese Beispiele beschränkt.
  • Es versteht sich, dass alle Funktionen der vorliegenden Erfindung, wie hierin beschrieben, typischerweise durch die Auswahlfunktionalität der virtuellen Maschine (der Verwaltungsschicht 64, die konkret als Module von Programmcode 42 des Programms/Dienstprogramms 40 (1) verkörpert sein kann) ausgeführt werden können. Dies muss allerdings nicht der Fall sein. Die hierin zitierte Funktionalität könnte von jeder der in 3 gezeigten Schichten 60 bis 66 ausgeführt/umgesetzt und/oder ermöglicht werden.
  • Es wird wiederholt, dass, obwohl diese Offenbarung eine ausführliche Beschreibung zu Cloud-Computing enthält, die Umsetzung der hierin zitierten Lehren nicht auf eine Cloud-Computing-Umgebung begrenzt ist. Die Ausführungen der vorliegenden Erfindung sind stattdessen dazu bestimmt, mit jedem Typ einer derzeit bekannten oder zukünftig entwickelten vernetzten Datenverarbeitungsumgebung umgesetzt zu werden.
  • Unter folgender Bezugnahme auf 4 wird eine Systemdarstellung gemäß einem Aspekt der vorliegenden Erfindung gezeigt. Wie veranschaulicht wird eine Engine für zusammengefasste virtuelle Maschinen (Engine 70) in einer vernetzten Datenverarbeitungsumgebung 84 gezeigt (die z. B. die Cloud-Computing-Umgebung 50 aufweist). Im Allgemeinen kann die Engine 70 als ein Programm 40 auf dem Computersystem 12 von 1 umgesetzt werden und kann die hierin zitierten Funktionen umsetzen, wie in der Verwaltungsschicht 64 von 3 veranschaulicht. Im Allgemeinen weist die Engine 70 (in einer Ausführungsform) eine Regel- und/oder Datenverarbeitungs-Engine auf, die eine Gruppe von (mindestens eine) Regeln 78 verarbeitet und/oder eine Gruppe von Datenverarbeitungen ausführt, um eine Gruppe von VMs 72A bis N aus einem Pool von vorab bereitgestellten VMs (Pool 74) auszuwählen, um eine oder mehrere Arbeitslastanforderungen 76A bis N zu verarbeiten/zu bearbeiten. Auf diese Weise kann die Engine 70 Funktionen ähnlich wie bei einem Universal-Computer ausführen.
  • Auf diese Weise kann die Engine 70 mehrere Funktionen unter Verwendung der Regeln 78 ausführen. Neben anderen Funktionen kann die Engine 70 insbesondere: eine Installationszeit für jede Softwarekomponenten-(z. B. Softwareprogramm)Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen berechnen; jede einzelne Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist, gewichten; und zumindest einen Teil der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs) zuordnen.
  • Die Funktionen der Engine 70 werden im Folgenden ausführlicher erklärt. Unter den Ausführungsformen der vorliegenden Erfindung befinden sich mehrere Verfahren/Ansätze, die umgesetzt werden können, um einen Pool 74 von (z. B. zumindest teilweise) vorab bereitgestellten VMs 72A bis N zu erzeugen. Angenommen, die Cloud-Umgebung 50 weist einen Pool 74 von (z. B. zumindest teilweise) vorab bereitgestellten VMs 72A bis N auf. Ferner angenommen, dass ein Bereitstellungsverlauf und Bewertungsdaten 80 für die teilweise vorab bereitgestellten VMs 72A bis N vorhanden sind (z. B. in einer Gruppe von Datenbanken 82A bis N oder dergleichen). Mehrere Verfahren/Ansätze können umgesetzt werden, um zu identifizieren, welche VMs 72A bis N im Pool 74 die Softwarekomponente(n) aufweisen, die zum Verarbeiten der Arbeitslastanforderungen 76A bis N verwendet wird bzw. werden. In dem im Folgenden dargelegten Beispiel wird angenommen, dass bis zu drei mögliche Softwarekomponenten (z. B. Softwareprogramme) bereitgestellt und/oder verwendet werden, nämlich die Softwarekomponenten „A”, „B” und „C” (oder eine beliebige Kombination davon). Dies muss jedoch nicht der Fall sein, und es versteht sich, dass die Softwarekomponenten „A”, „B” und „C” nur zu Veranschaulichungszwecken zitiert werden.
  • Diese Offenbarung stellt ein Verfahren zum Erzeugen eines Pools von (z. B. zumindest teilweise) vorab bereitgestellten VMs 72A bis N vor, der in Bezug auf die Zeit, die zum Erfüllen von VM-Anforderungen benötigt wird, optimal zugeordnet ist. Das Verfahren berechnet die Zeit, um von jeder Kombination von Softwarekomponenten zu jeder anderen Kombination von Softwarekomponenten zu gelangen. Die gesamte Übergangszeit für jede einzelne Softwarekomponenten-Kombination stellt deren Installationszeit dar. Diese Installationszeit wird dann durch die Verteilung aller vorherigen Bereitstellungsanforderungen gewichtet. Mit anderen Worten, die Wahrscheinlichkeit, mit der der Benutzer eine VM mit der jeweiligen endgültigen Softwarekomponenten-Konfiguration anfordern würde, wird für jede Zeitberechnung zum Gewichten der Installationszeit für die Konfiguration verwendet. Dieses Verfahren ist vorteilhaft, weil es auf optimale Weise die beste Vorab-Bereitstellungsverteilung von VMs auf der Grundlage ihrer relativen Installationszeiten findet.
  • In einer ersten Ausführungsform berechnet das Verfahren die Übergangszeit von jeder möglichen Softwarekomponenten-Kombinationen zu jeder anderen Softwarekomponenten-Kombination. In einer zweiten Ausführungsform wird nur eine Untergruppe von Übergangszeiten berechnet statt einer Übergangszeit für jede mögliche Softwarekomponenten-Kombination. Diese Ausführungsform verringert die Komplexität durch das Einschränken der Anzahl von Softwarekomponenten-Kombinationen, die in den Übergangszeitberechnungen verwendet werden. Dieses Verfahren stellt nahezu optimale Ergebnisse bereit, die im Vergleich zu herkömmlichen Verfahren schnell berechnet werden.
  • In einer weiteren Ausführungsform wird ein genetischer Algorithmus beim Erzeugen des Vorab-Bereitstellungs-Pools verwendet, um die Komplexität zu überwinden, die durch große Dienstekataloge erstellt wird. Gegenwärtig können Cloud-Anbieter bis zu mehrere Stunden brauchen, um von Nutzern angeforderte Ressourcen bereitzustellen. Einige Cloud-Systeme brauchen nur wenige Minuten. Die Unterschiede in der Bereitstellungsgeschwindigkeit liegen im Allgemeinen in drei Bereichen: (1) die Höhe der Investitionen in die Sicherungsspeicher-Architektur; (2) die Architektur der Cloud-Verwaltungsplattform; und (3) die zum Bereitstellen von Ressourcen verwendeten Verfahren. Einige Clouds brauchen zum Bereitstellen notwendigerweise länger, weil der Dienstanbieter sich entschieden hat, nicht in kostspielige Backend-Speichertechnologien zu investieren, andere brauchen wiederum länger aufgrund von Anforderungen, die von Nutzern eingesetzt werden, die komplexere Bereitstellungsverfahren erfordern.
  • Genetische Algorithmen entwickeln Lösungen für Probleme unter Verwendung der Prinzipien der natürlichen Auslese. Im Allgemeinen beginnt ein genetischer Algorithmus mit einer Ausgangsgesamtheit von Lösungsversuchen für ein Problem, bewertet die Lösungsversuche und verwendet die besseren Lösungen als Grundlage für ein nächstes Erzeugen von Lösungsversuchen. Der Prozess wird üblicherweise fortgesetzt, bis sich eine zufriedenstellende Lösung abzeichnet. Beliebige Softwarekomponenten-Kombinationen werden für eine Tauglichkeitsbewertung ausgewählt. Kombinationen, die bei der Tauglichkeitsbewertung gut abschneiden, werden zu dem Bereitstellungs-Pool hinzugefügt. In einem Beispiel kann der genetische Algorithmus Bedingungen haben. Bedingungen sind Anforderungen, die eine Softwarekomponenten-Kombination erfüllen muss, um sich für eine Tauglichkeitsprüfung zu qualifizieren. Indem vor dem Ausführen von Tauglichkeitsbewertungen Kombinationen entfernt werden, die gewisse Anforderungen nicht erfüllen, kann das System Zeit sparen, indem unbrauchbare Lösungen nicht weiterverfolgt werden.
  • Die folgende Tauglichkeitsbewertungsfunktion nimmt eine Ausführung des genetischen Algorithmusprozesses (einschließlich mehrerer Generierungen) vor, um das tauglichste teilweise vorab bereitgestellte Einzelergebnis zu finden. Die Tauglichkeitsbewertungsfunktion des genetischen Algorithmus kann wie folgt dargestellt werden:
    Figure 00180001
    Figure 00190001
  • Um den sich daraus ergebenden vorab bereitgestellten Pool vielfältig zu halten, wird jedes Mal, wenn eine Softwarekomponente in den Pool gestellt wird, eine Instanz dieser Kombination entfernt. Auf diese Weise wird der sich daraus ergebende Prozentsatz dieser Konfiguration vermindert, und wenn der genetische Algorithmus das nächste Mal ausgeführt wird, ist die Gewichtung der Konfiguration geringer. Das Verfahren stellt durch Software installierbare Kombinationen als BitSets für jede einzelne Kombination in der genetischen Ausgangsgesamtheit dar. Zum Beispiel kann eine mögliche durch Software installierbare Konfiguration auf die folgende Weise dargestellt werden: 1001110 = 51525354555657. Der allgemeine Algorithmus für die Rückgabe eines Pools wird im Folgenden gezeigt:
    Figure 00190002
  • Dieses Konzept wird ausführlicher in 5 gezeigt. Wie veranschaulicht zeigt das Schaubild in 5 VMs 100A bis N mit einer Kombination von Softwarekomponenten „A”, „B” und/oder „C”. Ebenso werden verschiedene Querpfade 102A bis N mit dazugehörigen Zeiten „tx” gezeigt, um alle drei Softwarekomponenten „A”, „B” „C” zu erhalten. Zum Beispiel, beginnend bei VM 100A (Null-Gruppe), besteht eine mögliche Route zum Erhalten aller drei Software-Komponenten darin, wie in Knoten 100N gezeigt, den Pfad tb zu VM 100B zu durchqueren, danach Pfad ta zu VM 100E und dann Pfad tc zu VM 100N. Wie ferner gezeigt, könnte man mehreren Pfaden von VM 100A zu VM 100N folgen.
  • Betrachten wir das Beispiel, in dem die Softwarekomponente A eine Softwarekomponenten-Installationszeit von 5 Minuten hat, und die Softwarekomponente B eine Softwarekomponenten-Installationszeit von 30 Minuten hat. Es ginge viel schneller, eine „A und B”-VM bereitzustellen, indem man mit einer B-VM statt einer A-VM beginnt.
  • Das folgende Beispiel eines „timeToInstall”-Algorithmus kann zum Berechnen der Installationszeit jeder Softwarekomponente verwendet werden:
    Figure 00200001
  • Die Variable startConfig stellt den Anfang der Installationszeit für die jeweilige Softwarekomponenten-Konfiguration dar. Die Variable endConfig stellt das Ende der Installationszeit für die jeweilige Softwarekomponenten-Konfiguration dar. Die Gesamtzeit für die Installation (installTime) wird von dem Algorithmus zurückgegeben.
  • In einigen Ausführungsformen berücksichtigt die Funktion „timeToInstall” nicht das Deinstallieren von Softwarekomponenten von einer teilweise bereitgestellten VM zum Erfüllen von Anforderungen, da nach dem Deinstallieren der Software noch Softwarekomponenten-Reste vorhanden sein können. In anderen Ausführungsformen können Deinstallationen in den Algorithmus integriert werden, indem die Deinstallationszeiten für jede Softwarekomponente aufgenommen werden. Der Algorithmus würde dann die Mindestentfernung in dem in 1 veranschaulichten Blockschaubild nehmen.
  • In jeder der oben beschriebenen Ausführungsformen wird jede Installationszeit dann durch den Prozentsatz jeder Softwarekomponenten-Kombination gewichtet, die vorher bereitgestellt wurde. Mit anderen Worten, die Zeitberechnung für jede Softwarekomponenten-Konfiguration wird durch die Wahrscheinlichkeit gewichtet, mit der der Benutzer eine VM mit dieser endgültigen Softwarekomponenten-Konfiguration anfordern würde. Beim Gewichten der Wahrscheinlichkeit werden einfache P-(softwareConfig)Wahrscheinlichkeiten verwendet. Mit anderen Worten, von all den vorher bereitgestellten Instanzen beruht die Gewichtung auf dem Prozentsatz für ausschließlich softwareConfig. Der folgende „totalToCost”-Algorithmus kann verwendet werden, um eine VM auf der Grundlage einer Verteilung auszuwählen, um einen Pool von (z. B. zumindest teilweise) vorab bereitgestellten VMs 72A bis N zu erzeugen:
    Figure 00210001
  • Unter folgender Bezugnahme auf 6 wird ein Verfahrensablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in Schritt S1 veranschaulicht, wird eine Installationszeit für jede Softwarekomponenten-Kombination berechnet. In Schritt S2 wird jede einzelne Installationszeit durch einen Wert gewichtet, der zu einem Bereitstellungsverlauf zugehörig ist. In Schritt S3 wird zumindest ein Teil der Softwarekomponenten-Kombinationen dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs) zugeordnet.
  • Obwohl sie hierin als eine Generierungslösung für einen vorab bereitgestellten VM-Pool gezeigt und beschrieben wird, versteht es sich, dass die Erfindung ferner verschiedene alternative Ausführungsformen bereitstellt. Zum Beispiel stellt die Erfindung in einer Ausführungsform ein computerlesbares/-verwendbares Medium bereit, das Computerprogrammcode enthält, um einer Computerinfrastruktur zu ermöglichen, eine Generierungsfunktionalität für einen vorab bereitgestellten VM-Pool bereitzustellen, wie hierin erörtert. Insofern enthält das computerlesbare/-verwendbare Medium einen Programmcode, der jeden der verschiedenen Prozesse der Erfindung umsetzt. Es versteht sich, dass die Begriffe computerlesbares Medium oder computerverwendbares Medium eine oder mehrere von jedem Typ von physischen Ausführungsformen des Programmcodes aufweist. Insbesondere kann das computerlesbare/-verwendbare Medium einen Programmcode aufweisen, der auf einem oder mehreren tragbaren Herstellungsartikeln für Speicherung (z. B. einer CD, einer Magnetplatte, einem Band usw.), auf einem oder mehreren Datenspeicherabschnitten einer Datenverarbeitungseinheit wie beispielsweise dem Speicher 28 (1) und/oder dem Speichersystem 34 (1) (z. B. einer Festplatte, einem Nur-Lese-Speicher, einem Direktzugriffspeicher, einem Cache-Zwischenspeicher usw.) ausgeführt sein kann.
  • In einer weiteren Ausführungsform stellt die Erfindung ein Verfahren bereit, das den Prozess der Erfindung auf der Grundlage eines Abonnements, von Werbung und/oder von Gebühren ausführt. Das heißt, ein Dienstanbieter wie beispielsweise ein Lösungsintegrator könnte anbieten, eine Generierungsfunktionalität für einen vorab bereitgestellten VM-Pool anzubieten. In diesem Fall kann der Dienstanbieter eine Computerinfrastruktur wie beispielsweise ein Computersystem 12 (1) erstellen, verwalten, unterstützen usw., das die Prozesse der Erfindung für einen oder mehrere Nutzer ausführt. Im Gegenzug kann der Dienstanbieter eine Bezahlung von dem oder den Nutzern gemäß einem Abonnement und/oder einer Gebührenvereinbarung erhalten und/oder der Dienstanbieter kann eine Bezahlung aus dem Verkauf von Werbeinhalt an einen oder mehrere Dritte erhalten.
  • In einer noch weiteren Ausführungsform stellt die Erfindung ein durch einen Computer umgesetztes Verfahren zum Erzeugen eines Pools von (z. B. zumindest teilweise) vorab bereitgestellten VMs bereit. In diesem Fall kann eine Computerinfrastruktur wie beispielsweise ein Computersystem 12 (1) bereitgestellt werden, und ein oder mehrere Systeme zum Ausführen der Prozesse der Erfindung können erhalten (z. B. erstellt, gekauft, verwendet, modifiziert usw.) und für die Computerinfrastruktur genutzt werden. Insofern kann die Nutzung eines Systems eines oder mehreres aufweisen von: (1) Installieren von Programmcode auf einer Datenverarbeitungseinheit wie beispielsweise einem Computersystem 12 (1) aus einem computerlesbaren Medium; (2) Hinzufügen von einer oder mehreren Datenverarbeitungseinheiten zu der Computerinfrastruktur; und (3) Integrieren und/oder Modifizieren von einem oder mehreren vorhandenen Systemen der Computerinfrastruktur, um der Computerinfrastruktur das Ausführen der Prozesse der Erfindung zu ermöglichen.
  • Wie hierin verwendet versteht es sich, dass die Begriffe „Programmcode” und „Computerprogrammcode” synonym sind und jeden Ausdruck, in jeder Sprache, jedem Code oder jeder Schreibweise einer Gruppe von Anweisungen bedeuten, der eine Datenverarbeitungseinheit, die eine Informationsverarbeitungsfähigkeit besitzt, veranlassen soll, eine bestimmte Funktion entweder direkt oder nach einem oder beidem des Folgenden auszuführen: (a) Konvertierung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise; und/oder (b) Wiedergabe in einer anderen Materialform. Insofern kann Programmcode verkörpert werden als eines oder mehreres von: einer Anwendung/einem Softwareprogramm, einer Komponenten-Software/Bibliothek von Funktionen, einem Betriebssystem, einem grundlegenden Einheitensystem/Treiber für eine bestimmte Datenverarbeitungseinheit und dergleichen.
  • Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, kann hierunter bereitgestellt werden und kann mindestens einen Prozessor enthalten, der direkt oder indirekt im Datenaustausch über einen Systembus an Speicherelemente gekoppelt ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cache-Zwischenspeicher enthalten, die eine vorübergehende Speicherung von mindestens einigem Programmcode bereitstellen, um die Anzahl zu verringern, wie oft Code während der Ausführung aus dem Massenspeicher abgerufen werden muss. Eingabe-/Ausgabe- und/oder andere externe Einheiten (einschließlich Tastaturen, Anzeigen, Zeigeeinheiten usw., jedoch nicht darauf beschränkt) können entweder direkt oder über zwischengeschaltete Einheiten-Controller an das System gekoppelt werden.
  • Netzwerkadapter können ebenfalls an das System gekoppelt werden, um dem Datenverarbeitungssystem zu ermöglichen, über eine beliebige Kombination von dazwischengeschalteten privaten oder öffentlichen Netzwerken an andere Datenverarbeitungssysteme, entfernt angeordnete Drucker, Speichereinheiten und/oder dergleichen gekoppelt zu werden. Zu veranschaulichenden Adaptern gehören Modems, Kabelmodems und Ethernet-Karten.
  • Die vorhergehende Beschreibung von verschiedenen Aspekten der Erfindung wurde zu Veranschaulichungs- und Beschreibungszwecken erstellt. Sie soll nicht erschöpfend sein oder die Erfindung genau auf die offenbarte Form einschränken, und offensichtlich sind viele Modifizierungen und Variationen möglich. Derartige Modifizierungen und Variationen, die für einen Fachmann offenkundig sein dürften, sollen in dem Schutzumfang der Erfindung enthalten sein, wie durch die begleitenden Ansprüche definiert.

Claims (9)

  1. Durch einen Computer umgesetztes Verfahren zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung, aufweisend: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen von zumindest einem Teil der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei der dem Bereitstellungsverlauf zugehörige Wert einen Prozentsatz von früheren Bereitstellungsanforderungen für die jeweilige Softwarekomponenten-Kombination aus allen früheren Bereitstellungsanforderungen aufweist.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Vielzahl von Softwarekomponenten-Kombinationen alle möglichen Softwarekomponenten-Kombinationen aufweist.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die Vielzahl von Softwarekomponenten-Kombinationen eine Untergruppe aller möglichen Softwarekomponenten-Kombinationen aufweist, wobei die Untergruppe zufällig ausgewählt wird.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 4, ferner aufweisend das Ausführen eines genetischen Algorithmus an der Untergruppe von Softwarekomponenten-Kombinationen.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei die vernetzte Datenverarbeitungsumgebung eine Cloud-Computing-Umgebung aufweist.
  7. System zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung, aufweisend: ein Speichermedium, das Anweisungen aufweist; einen an das Speichermedium gekoppelten Bus; und einen an den Bus gekoppelten Prozessor, der beim Ausführen der Anweisungen das System veranlasst zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen von zumindest einem Teil der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  8. Computerprogrammprodukt zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium und Programmanweisungen aufweist, die auf dem computerlesbaren Speichermedium gespeichert sind zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen von zumindest einem Teil der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
  9. Verfahren zum Nutzen eines Systems zum Erzeugen eines vorab bereitgestellten Pools von virtuellen Maschinen (VMs) in einer vernetzten Datenverarbeitungsumgebung, aufweisend: das Nutzen einer Computerinfrastruktur, die betriebsfähig ist zum: Berechnen einer Installationszeit für jede Softwarekomponenten-Kombination in einer Vielzahl von Softwarekomponenten-Kombinationen; Gewichten jeder einzelnen Installationszeit durch einen Wert, der einem Bereitstellungsverlauf zugehörig ist; und Zuordnen von zumindest einem Teil der Softwarekomponenten-Kombinationen zu dem vorab bereitgestellten Pool von virtuellen Maschinen (VMs).
DE102013205572.2A 2012-04-13 2013-03-28 Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung Active DE102013205572B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/446,058 2012-04-13
US13/446,058 US9317337B2 (en) 2012-04-13 2012-04-13 Utilizing software component metadata to provision virtual machines in a networked computing environment

Publications (2)

Publication Number Publication Date
DE102013205572A1 true DE102013205572A1 (de) 2013-10-17
DE102013205572B4 DE102013205572B4 (de) 2020-06-18

Family

ID=49232351

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013205572.2A Active DE102013205572B4 (de) 2012-04-13 2013-03-28 Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung

Country Status (2)

Country Link
US (1) US9317337B2 (de)
DE (1) DE102013205572B4 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US9256452B1 (en) * 2012-11-14 2016-02-09 Amazon Technologies, Inc. Providing an instance availability estimate
US10043194B2 (en) 2014-04-04 2018-08-07 International Business Machines Corporation Network demand forecasting
US10361924B2 (en) 2014-04-04 2019-07-23 International Business Machines Corporation Forecasting computer resources demand
US10439891B2 (en) 2014-04-08 2019-10-08 International Business Machines Corporation Hyperparameter and network topology selection in network demand forecasting
US9385934B2 (en) 2014-04-08 2016-07-05 International Business Machines Corporation Dynamic network monitoring
US10713574B2 (en) 2014-04-10 2020-07-14 International Business Machines Corporation Cognitive distributed network
US9674300B2 (en) 2015-04-22 2017-06-06 At&T Intellectual Property I, L.P. Apparatus and method for predicting an amount of network infrastructure needed based on demographics
EP3282359A1 (de) * 2016-08-09 2018-02-14 Alcatel Lucent Verfahren zur verwaltung eines virtuellen funkzugangsnetzwerks und verfahren zur kalibrierung einer softwarekomponente
US10684840B1 (en) 2017-03-03 2020-06-16 Amazon Technologies, Inc. Software package installation and monitoring
US10466991B1 (en) * 2017-03-03 2019-11-05 Amazon Technologies, Inc. Computing instance software package installation
CN107122205B (zh) * 2017-04-11 2021-01-29 深圳市客一客信息科技有限公司 安装程序的安装时间确定方法及装置
JP6962138B2 (ja) * 2017-11-06 2021-11-05 富士通株式会社 情報処理装置、情報処理システム及びプログラム
US10671442B2 (en) 2017-11-15 2020-06-02 Red Hat, Inc. Dynamic preparation of a new network environment, and subsequent monitoring thereof
CN109447264B (zh) * 2018-09-17 2021-11-23 浙江工业大学 云计算环境下基于vham-r模型的虚拟机放置遗传优化方法
US10877799B2 (en) 2018-10-16 2020-12-29 Cisco Technology, Inc. Evolutionary modelling based non-disruptive scheduling and management of computation jobs
US11734146B2 (en) 2021-07-16 2023-08-22 Bank Of America Corporation Analyzing performance metrics for improving technology environment of a software application

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093912A (en) 1989-06-26 1992-03-03 International Business Machines Corporation Dynamic resource pool expansion and contraction in multiprocessing environments
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP4867660B2 (ja) 2004-01-30 2012-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング・ユーティリティのためのコンピューティング環境のコンポーネント化された自動プロビジョニングおよび管理
US8316130B2 (en) 2004-12-22 2012-11-20 International Business Machines Corporation System, method and computer program product for provisioning of resources and service environments
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
JP4129988B2 (ja) 2005-11-10 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション リソースのプロビジョニング方法
US7941801B2 (en) 2006-03-07 2011-05-10 Oracle America Inc. Method and system for provisioning a virtual computer and scheduling resources of the provisioned virtual computer
WO2008084826A1 (ja) * 2007-01-11 2008-07-17 Nec Corporation プロビジョニングシステム、方法、及び、プログラム
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
CN101290583B (zh) * 2007-04-19 2011-03-16 国际商业机器公司 为虚拟机供应图像的方法和系统
US20100042670A1 (en) 2008-08-13 2010-02-18 Electronic Data Systems Corporation Integrated development engine for a cloud computing environment
US8850571B2 (en) * 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US7996525B2 (en) 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources
US8924559B2 (en) 2009-12-03 2014-12-30 International Business Machines Corporation Provisioning services using a cloud services catalog
US9009294B2 (en) 2009-12-11 2015-04-14 International Business Machines Corporation Dynamic provisioning of resources within a cloud computing environment
CN102376064A (zh) * 2010-08-12 2012-03-14 威睿公司 云环境中软件的弹性许可
US9323561B2 (en) * 2010-08-13 2016-04-26 International Business Machines Corporation Calibrating cloud computing environments
US20120054731A1 (en) * 2010-08-24 2012-03-01 International Business Machines Corporation Method, System and Computer Programs to Assist Migration to a Cloud Computing Environment

Also Published As

Publication number Publication date
US9317337B2 (en) 2016-04-19
US20130275961A1 (en) 2013-10-17
DE102013205572B4 (de) 2020-06-18

Similar Documents

Publication Publication Date Title
DE102013205572A1 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112012003316B4 (de) Dynamisches Erwerben von Datenverarbeitungsressourcen in einer vernetzten Datenverarbeitungsumgebung
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112012004336T5 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012004238T5 (de) Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE112012003505T5 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112010003886T5 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE102012219363A1 (de) Ereignisvorhersage und Ermittlung von vorbeugenden Maßnahmen in einer vernetzten Datenverarbeitungsumgebung
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE102013216735A1 (de) Ressourcenzuweisung in einer virtualisierten Datenverarbeitungsumgebung
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112021000338T5 (de) Auslagern der statistikerfassung
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021004119T5 (de) Speicherabstufung innerhalb einer vereinheitlichten speicherumgebung
DE102014116744A1 (de) Management von Informationstechnologieressourcen
DE112021004577T5 (de) Verwalten eines aufgabenablaufs in einer edge-datenverarbeitungsumgebung
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: KYNDRYL, INC., NEW YORK, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US