Cloud Computing und Open Source

Aus Winfwiki

Wechseln zu: Navigation, Suche
Namen der Autoren: Florian Wolters, Bernd Weltermann, Pascal Schnaß, Ralf Heider
Titel der Arbeit: Cloud Computing und Open Source
Hochschule und Studienort: Fachhochschule für Oekonomie & Management - Essen
Studiengang: Bachelor of Science / Wirtschaftsinformatik, 4. Fachsemester
Name des Betreuers: Prof. Dr. Uwe Kern
Datum der Abgabe: 14.06.2009


 Hinweis: Das Layout dieser Arbeit wurde auf eine Bildschirmbreite von 1280px ausgerichtet!


Inhaltsverzeichnis



1 Abkürzungsverzeichnis

Abkürzung Bedeutung
Amazon EC2 Amazon Elastic Compute Cloud
Amazon S3 Amazon Simple Storage Service
API Application Programming Interface
AMD-V AMD Virtualization
BSD Berkeley Software Distribution
CC Cluster Controller
CLC Cloud Controller
CPAL Common Public Attribution License
DHCP Dynamic Host Configuration Protocol
Eucalyptus Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems
GPL GNU General Public License
IaaS Infrastructure as a Service
IRC Internet Relay Chat
IVT Intel Virtualization Technology
JDK Java Development Kit
KVM Kernel-based Virtual Machine
LVM Logical Volume Manager
NC Node Controller
NFS Network File System
PaaS Platform as a Service
SaaS Software as a Service
VDE Virtual Distributed Ethernet
VGrADS Virtual Grid Application Development Software Project
VPN Virtual Private Network
WAN Wide Area Network



2 Abbildungsverzeichnis

Abbildung 1 Cloud Computing Schichtenmodell
Abbildung 2 Übersicht Grid Computing und Cloud Computing
Abbildung 3 Logische Struktur Eucalyptus
Abbildung 4 Ausgaben der Werkzeuge von OpenNebula
Abbildung 5 Oberfläche von Enomalys Elastic Computing Platform
Abbildung 6 Oberfläche von OpenQRM
Abbildung 7 Oberfläche von Abiquos AbiCloud
Abbildung 8 Oberfläche von eyeOS
Abbildung 9 Oberfläche von OpenGoo
Abbildung 10 Oberfläche von Google Wave
Abbildung 11 Testaufbau des Prototypen
Abbildung 12 Schematische Darstellung der virtuellen Netzwerkverbindungen innerhalb des Node Controllers
Abbildung 13 Integrierte Webseite des Eucalyptus Cloud Controllers
Abbildung 14 Ausgabe des Befehls ec2-describe-images
Abbildung 15 Ausgabe des Befehls ec2-describe-instances
Abbildung 16 Gartner Hype Cycle 2008



3 Tabellenverzeichnis

Tabelle 1 Vergleich Cloud Computing und Grid Computing: Ziel und Struktur
Tabelle 2 Merkmale der Open Source Cloud Computing Werkzeuge
Tabelle 3 Die sechs Prinzipien des Open Cloud Manifesto



4 Einleitung

Im heutigen Unternehmensumfeld ist die Kosteneffizienz ein wichtiger Faktor, um erfolgreich auf dem Markt operieren zu können. Da die IT einen sehr großen Anteil an den Kosten vieler Unternehmen ausmacht, muss sie sich den Bedingungen anpassen und effizient eingesetzt werden. Um dies nachhaltig umsetzen zu können, ist eine gute strategische Planung wichtig. Unter den wichtigsten strategischen Technologien ist auch Cloud Computing zu finden[1]. Um die Kosten weiter senken zu können, sollte auch der Einsatz von Open Source Software in Betracht gezogen und als Alternative zu proprietärer Software überprüft werden.

Ziel dieser Fallstudie ist es, zu evaluieren, welche Open Source Software im Cloud Computing Umfeld verfügbar ist und welchen Funktionsumfang diese hat. Weiterhin soll ihre Einsetzbarkeit im Unternehmensumfeld bewertet werden.

Um dieses zu erreichen, werden im ersten Schritt die Grundlagen für die weitere Arbeit geschaffen, indem die Begriffe "Cloud Computing" und "Open Source" definiert werden und ein kurzer historischer Abriss gegeben wird. Darauf basierend werden die einzelnen Softwarelösungen diskutiert, um daran anschließend mit einem dieser Werkzeuge einen Prototypen aufzusetzen. Eine kritische Schlussbetrachtung mit einem kurzen Ausblick rundet diese Ausarbeitung ab.

5 Grundlagen

In diesem Kapitel werden zunächst die Grundlagen des Cloud Computings erläutert. Dazu wird eine Definition aufgestellt und die Historie dargelegt. Des Weiteren werden die verschiedenen Ausprägungen des Cloud Computings vorgestellt und den Modellen des SaaS (Software as a Service) und des Grid Computings gegenüber gestellt. Im zweiten Teil wird der Begriff "Open Source" definiert und ein kurzer Abriss über die Geschichte der Open Source Software gegeben. Anschließend werden drei weit verbreitete Open Source Lizenzmodelle exemplarisch diskutiert.

5.1 Cloud Computing

5.1.1 Definition

Ein Problem des Cloud Computings ist, dass es keine eindeutige Definition dieser Technologie gibt. Je nachdem, welche Schwerpunkte das Portfolio eines Unternehmens hat, wird der Begriff Cloud Computing von den IT-Entscheidern anders definiert. Ein Versuch, das Thema Cloud Computing zu beschreiben, stammt dabei von James Staten, der für das Marktforschungsunternehmen Forrester Research tätig ist. Seiner Meinung nach besteht Cloud Computing aus einem Pool an abstrahierter, hoch skalierbarer und verwalteter IT-Infrastruktur, die Kundenanwendungen vorhält und nach Verbrauch abgerechnet wird[2]. Laut Staten können Unternehmen die Kosten für die Einführung neuer Anwendungen drastisch verringern, da die Anschaffung eigener Netzwerk-Computer nicht mehr nötig ist, sondern nur noch Kapazität in der Cloud gemietet werden muss. Jedoch sind derzeit nicht alle Bedenken der IT-Verantwortlichen gegenüber dem Cloud Computing wie z.B. Sicherheit, Verfügbarkeit und Servicequalität ausgeräumt. Das Rechenzentrum der Zukunft könnte aber genau dort angesiedelt sein[3]. Der Grundgedanke hinter dieser Technologie ist nicht neu. Denn ähnlich dem Grid Computing werden beim Cloud Computing Dienste oder Infrastruktur-Ressourcen angeboten, die über Netze gemietet werden können.

Die Idee dabei ist, dass ein Anbieter - der sogenannte Provider - Dienste und Leistungen über die Cloud zur Verfügung stellt, ohne dass der Kunde merkt, welche Infrastruktur sich dahinter verbirgt. Der Kunde hat dabei keinen Einfluss auf die Konfiguration der IT-Infrastruktur. Die angebotenen Dienstleistungen werden anhand des genauen Verbrauchs abgerechnet. Die Firmen im großen Bereich des Cloud Computing sind Anbieter von SaaS, Outsourcing- und Hosting Provider, Netz- bzw. IT-Infrastrukturanbieter und vor allem die Unternehmen wie z.B. Amazon, deren Namen eng mit dem kommerziellen Aufschwung des Internet verbunden sind. Aber erst die Kombination all dieser Leistungen umreißen das Komplettpaket namens Cloud Computing[4].

Vieles steckt beim Cloud Computing noch in den Anfängen oder ist noch reine Vision. Erkennbar ist dies, wenn große Unternehmen diese Technologie nutzen wollen und sich die Fragen nach Sicherheit und Qualität der Dienste stellen. So müssen sie prüfen, ob die angebotenen Dienste auch tatsächlich die Anforderungen an die Unterstützung der eigenen Geschäftsprozesse erfüllen können. Rechtliche Aspekte wie die Aufbewahrung von Daten gewinnen dabei enorm an Bedeutung. Die Auslagerung der eigenen Daten und Geschäftsprozesse in eine fremde Umgebung birgt unter anderem die Gefahr der Industriespionage. Die professionellen Anbieter von Cloud Computing für Enterprise-Kunden müssen sich diesen Herausforderungen nicht nur stellen, sondern auch Konzepte entwickeln, die Herausforderungen transparent und kostengünstig zu bewältigen[4].

Die Firma Microsoft zum Beispiel charakterisiert die Eigenschaften des Cloud Computings folgendermaßen:

  • Eine IT-Funktion (z.B. unmittelbar durch Anwender nutzbare Dienste, Dienste für Entwickler, usw.) wird als Dienst bereitgestellt.
  • Für den Dienst sind Leistungsparameter, sogenannte Service Level, spezifiziert, die die Funktionalität und Qualität der zu erbringenden IT-Leistung beschreiben.
  • Die Diensterbringung erfolgt auf Basis einer massiv skalierbaren und maximal ausfallsicheren Infrastruktur.
  • Auf die IT-Funktion kann über standardisierte Schnittstellen zugegriffen werden.
  • Dienstaufrufe werden nutzungsabhängig in Rechnung gestellt, d.h. die Kosten stehen für den Anwender in direktem Zusammenhang mit seinem Bedarf.
  • Die Dienste sind multimandantenfähig ausgelegt, d.h. die Dienste stehen vielen Anwendern zur Verfügung, die über geeignete Virtualisierungstechnologien voneinander isoliert werden[5].



5.1.2 Entstehungsgeschichte

Um die Entstehungsgeschichte des Cloud Computings zu beschreiben, muss in die nahe Vergangenheit der Geschichte der Informationstechnologie zurückgeschaut werden. Die Industrialisierung hat in den letzten 15 Jahren Einzug in die Informationstechnologie gehalten. Technologien wurden standardisiert und für den Masseneinsatz angeboten. Die Grundlagen für die Entstehung des Cloud Computings sind die Virtualisierung, das Aufkommen der Service-orientierten Architektur sowie das in der letzten Zeit immer weiter steigende Wachstum der Internetnutzung. Laut der Analystengruppe Gartner wird Cloud Computing den IT-Markt in den nächsten Jahren gewaltig beeinflussen[6]. Im Herbst 2007 kündigte IBM die Initiative "Blue Cloud" an und ist seitdem mit diesem Thema immer wieder in den Medien präsent[7]. Amazon offeriert zwar schon seit dem 24. August 2006 Cloud Dienste über die eigenen Amazon Web Services. In der Öffentlichkeit wurde dieser Geschäftsbereich jedoch lange Zeit nicht beachtet. Erst als Microsoft im Oktober 2008 seine Cloud Plattform "Azure"[5] vorstellte, bekam das mittlerweile zum Hype gereifte Konzept einen weiteren Schub. Inzwischen sind fast alle großen IT- und Serviceanbieter in irgendeiner Form in diese Technologie eingestiegen. Denn für viele dieser Anbieter ist der Markt reif für das Cloud Computing und niemand will den Einstieg verpassen[8].

5.1.3 Ausprägungen

Der Begriff Cloud Computing beschreibt ein Konzept, das in einem engen Zusammenhang mit der Grid Computing Technologie steht. Hierbei betreiben die Anwender von Cloud Services Software Anwendungen, Plattformen und die dazu notwendige Hardware bzw. Infrastruktur nicht mehr selbst, sondern beziehen diese Leistungen über Cloud Service Provider[9].

In Anlehnung an Eymann (2008)Abbildung 1: Cloud Computing Schichtenmodell
In Anlehnung an Eymann (2008)[10]
Abbildung 1: Cloud Computing Schichtenmodell

Anwendungen, Plattformen, Daten und Infrastrukturen befinden sich demnach nicht mehr auf den lokalen Rechnern der Anwender, sondern über eine Anzahl von entfernten Systemen verteilt in einer "Wolke", der sogenannten Cloud. Die Basis für den Zugriff auf diese entfernten Systeme ist das Internet, das neben der Verbindung zwischen Provider und Kunde auch Verbindungen zwischen den Instanzen des Konzeptes verschiedener Dienstanbieter ermöglicht. Der Zugriff selbst erfolgt über definierte Schnittstellen oder über Standardanwendungen wie z.B. über einem Webbrowser[11].

Wie Abbildung 1 zeigt, lässt sich das Cloud Computing Konzept in verschiedene Schichten unterteilen. Während die unteren Schichten des Cloud Computing Schichtenmodells auf technologischen Errungenschaften des Grid Computing aufbauen, kann Cloud Computing als ähnliches Konzept auf höherer Ebene verstanden werden. Die unteren Schichten beinhalten die Elemente des Grid Computings. Grid Computing ist ein Teil des Service-Oriented Computing. Hierbei werden über das Internet standardisierte Dienste, geographisch verteilte physikalische IT-Ressourcen wie z.B. die CPU und der Speicher eines Rechners, Datenbanken, Archive oder Messinstrumente miteinander verbunden und in vereinheitlichter Form nutzbar gemacht. Cloud Computing und Grid Computing sind zwei unterschiedliche Konzepte, die ein verteiltes Rechnen auf vielen Computersystemen ermöglichen[12]. Allgemein werden drei Ausprägungen von Clouds unterschieden:

Software as a Software:
Das Modell SaaS bietet Software als Dienstleistung an. Der Provider sorgt dabei für die ständige Verfügbarkeit der Anwendung über das Internet. Die Kenntnis, Kontrolle und Wartung der darunter liegenden Infrastruktur obliegt allein dem Provider. Dem Anwender ist sie unbekannt. Da die Hardware lediglich zur Bedienung der entfernten Anwendung benötigt wird, ist auf der Anwenderseite nur eine minimale Hardwareausstattung nötig[10].

Platform as a Service:
Beim Modell der PaaS (Platform as a Service) bieten die Provider Web-Plattformen als Dienstleistung an. Einerseits wird dadurch der Zugang zu Software Services erleichtert, andererseits sollen dadurch auch Kombinationen von Services ermöglicht werden. PaaS ist eine Weiterentwicklung des SaaS-Modells, das unterschiedliche SaaS-Dienste bündelt. Web-Plattformen und Web-Portale können den Absatz von Software Services entscheidend beeinflussen. PaaS dient Web-Entwicklern als Entwicklungsplattform für Web-Anwendungen. Durch die Vielzahl von Grundfunktionen werden die Programmierer entlastet und können sich im Wesentlichen auf die Entwicklung, das Testen und das Ausrollen der Anwendungen konzentrieren[10]. Beispiele für PaaS sind Google App Engine[13], Amazon Web Services[14] und IBMs Blue Cloud[15].

Infrastructure as a Service:
Im Falle von IaaS (Infrastructure as a Service) liefern die Provider die Infrastruktur als Dienstleistung über das Internet. Sie ist auf die Bedürfnisse des Kunden zugeschnitten und ist mit SaaS für Hardware zu vergleichen. Dank der Virtualisierung können IaaS-Provider skalierbare Infrastrukturdienste, wie z.B. Speicher- oder Rechendienste anbieten. Diese können den höheren Ebenen (SaaS, PaaS) zur Verfügung gestellt, flexibel angepasst und nach Verbrauch abgerechnet werden[10]. Ein Beispiel hierfür ist Amazons Speicherdienst S3 (Simple Storage Service)[16]. Die Architektur jeder Cloud basiert auf der Zusammenstellung dieser drei Komponenten. Je nach Unternehmen variieren die Schwerpunkte, daher setzt jedes große Internet-Unternehmen seine Vorstellungen einer Cloud in eigenen Rechenzentren um. Durch das Betreiben von Clouds in den Rechenzentren kommt es zu einer Zentralisierung der Ressourcen. Denn die Ressourcen stammen meist aus unternehmenseigenen Rechenzentren, von denen es aus Effizienzgründen nur wenige geben wird. Neben SaaS, PaaS und IaaS können außerdem Cloud-Märkte, auf denen Services gehandelt werden, differenziert werden. Diese neue Form des IT-Service-Handels befindet sich momentan noch in der Entwicklungsphase.

Cloud Computing vs. SaaS
Folgende Merkmale verdeutlichen den Unterschied zwischen Cloud Computing und SaaS:

  • Zu den grundlegenden Elementen des Cloud Computings gehört eine einheitliche und standardisierte Infrastruktur mit verschiedenen Abstraktionsebenen. Der Kunde hat hierbei allerdings keinen Einfluss auf die vorhandene Infrastruktur.
  • Die Cloud Computing Provider stellen die benötigte Hardware meistens durch Server-Virtualisierung zur Verfügung.
  • Um eine Anwendung mit möglichst geringem Aufwand hinzuzufügen, zu modifizieren, zu verschieben und kostengünstig zu betreiben, wird in den meisten Clouds eine spezielle Infrastruktur-Software eingesetzt. Damit lässt sich eine hochverfügbare und ausfallsichere Infrastruktur einrichten.
  • Die vom Kunden in Anspruch genommenen Leistungen werden nach den tatsächlich genutzten Ressourcen, wie z.B. nach den genutzten CPU-Stunden, dem Speichervolumen oder der übertragenen Datenmenge, abgerechnet. In der Vergangenheit wurde vom Provider für die Bereitstellung solcher Dienste ein monatlicher Beitrag oder Kosten pro Server verlangt.
  • Früher wurden für diese Dienstleitungen langfristige Verträge abgeschlossen. Cloud Provider, wie z.B. Amazon, verzichten allerdings darauf. Hier kann der Kunde kurzfristig und ohne weitere anhängende Serviceleistungen die Infrastruktur in der Amazon-Cloud nutzen[8].
In Anlehnung an: Foster et al. (o.J.)Abbildung 2: Übersicht Grid und Cloud Computing
In Anlehnung an: Foster et al. (o.J.)
Abbildung 2: Übersicht Grid und Cloud Computing[17]

Cloud Computing vs. Grid Computing
Um eine gemeinsame Aufgabe zu erfüllen werden beim Grid Computing viele Rechner zu einem Netzwerk - dem sogenannten Grid - verbunden. Dabei werden sie aus einem losen Verbund in dem Grid zusammengestellt. Damit ist eine Art Parallelverarbeitung gegeben[18]. Bezogen auf die Zielsetzung geht es beim Cloud Computing und Grid Computing um die Bereitstellung von verteilten Ressourcen über Netzwerkdienste. Wie Abbildung 2 zeigt, ermöglicht das Grid eine gemeinsame Nutzung verteilter Ressourcen und das Ausführen von Anwendungen auf diesen. Beim Cloud Computing werden die Ressourcen nach den Wünschen des Kunden bereitgestellt. Cloud Computing sieht sich als Nachfolger des Grid Computings und versucht, dessen Schwächen zu beseitigen. Bei der Infrastruktur liegen die größten Unterschiede in der Art der Kontrollinstanz. Cloud Computing wird vom Provider zentral überwacht, beim Grid Computing hingegen gibt es keine zentrale Kontrollinstanz. Beide Systeme haben Vor- und Nachteile, allerdings ergibt sich durch die zentrale Kontrolle der Cloud eine höhere Flexibilität, da ohne zentrale Kontrolle um Ressourcen verhandelt werden muss. Ein weiterer Unterschied ist die Zentralisierung einer Cloud. Wenige vernetzte Rechenzentren lassen sich effizient betreiben und bilden heutzutage Clouds. Die Verteilung der Ressourcen in einem Grid ist aufgrund ihrer Vielzahl größer.

Bezogen auf Ziel und Struktur dieser Technologien zeigt die folgende Tabelle 1 einen Vergleich von Grid Computing und Cloud Computing.


Vergleich Grid Computing Cloud Computing
Tabelle 1: Vergleich Cloud Computing und Grid Computing: Ziel und Struktur
Zielsetzung - Bereitstellung von verteilten Ressourcen
- gemeinsame Nutzung von Ressourcen
- Bereitstellung von verteilten Ressourcen
- Verbesserung des Grid
Infrastruktur - keine zentrale Kontrollinstanz - zentrale Kontrollinstanz => höhere Flexibilität
- Zentralisierung der Ressourcen
Middleware - frei - nicht frei
Standardisierung - standardisierte Protokolle und Schnittstellen vorhanden
- Standardisierung durch das "Open Grid Forum"
- keine Standardisierung vorhanden
- findet eventuell durch die Zusammenarbeit mit der Wissenschaft statt
Anwendungen - meistens wissenschaftliche Anwendungen - nahezu jede Anwendung unterstützt
Benutzerschittstellen - hoher Einarbeitungsaufwand
- mehrere Tage bis zur ersten Nutzung nötig
- geringerer Einarbeitungsaufwand
- erste Nutzung nach wenigen Minuten möglich
Entwicklung - durch Wissenschaft - durch Unternehmen
- langsam auch in der Wissenschaft
Sicherheit - absolute Sicherheit nicht nötig - höhere Anforderungen als beim Grid
Geschäftsmodell - meistens kostenlos
- staatliche Förderung
- kommerziell
- Abrechnung anhand des Verbrauchs

Grid Computing hat sich als Standard in der Wissenschaft durchgesetzt. Dadurch dass es viele Anwendungsgebiete in der Wissenschaft gibt, findet eine ständige Weiterentwicklung des Grid Computing statt. Cloud Computing ist noch eine relativ junge Technologie und steckt noch mitten in der Entstehungsphase. Die Forschung und Entwicklung auf diesem Gebiet beginnt erst.

5.2 Open Source

5.2.1 Definition

Mit Open Source wird Software bezeichnet, deren Quellcode im Gegensatz zu Closed Source Software veröffentlicht wird. Der Quellcode liegt dabei in einer höheren Programmiersprache vor, die für den Menschen verständlich ist. Die Bezeichnung Closed Source wird dagegen für Software verwendet, die dem Nutzer lediglich in Maschinensprache zur Verfügung gestellt wird und somit für ihn auch nicht direkt lesbar ist.

Das Vorliegen des Quellcodes in lesbarer Form ermöglicht es dem Nutzer, das Programm nachzuvollziehen und nach seinen Wünschen und Vorstellungen anzupassen bzw. zu verbessern[19].

Open Source Software steht in der Regel kostenlos zur Verfügung und kann oftmals direkt über das Internet bezogen werden. Auch das Kopieren und Verbreiten ist im Gegensatz zu Closed Source Software erlaubt und in vielen Fällen sogar ausdrücklich erwünscht[20]. Darunter fallen in den meisten Fällen auch die vom Nutzer veränderten Versionen.

Der Anwender von Open Source Software darf diese für jeden beliebigen Zweck einsetzen und ist nicht an Vorgaben des Herstellers bzw. Programmierers gebunden. Dies hat zur Folge, dass Open Source Software auch ohne weiteres im kommerziellen Umfeld verwendet werden darf[21]. Im Bereich der Closed Software sind hierfür meistens spezielle kommerzielle Lizenzen nötig, die entsprechend teurer sind als Lizenzen für den privaten Einsatz.

5.2.2 Historie

In den 80er Jahren stellte Richard Stallmann Anforderungen an freie Software auf. Diese umfassten die wesentlichen Merkmale, die in den nachfolgenden Abschnitten zu den Lizenzen erläutert werden. Zu dieser Zeit entwickelte er auch die Grundlagen der GPL (GNU General Public License). Zur Unterstützung gründete Stallmann die "Free Software Foundation"[22], die sich bis heute um die Erweiterung und die Anpassung der GPL kümmert.

Der Begriff Open Source Software wurde erst spät im Laufe der 90er Jahre geprägt, als die damalige Firma Netscape beschloss, den Quellcode ihres Webbrowsers Netscape Navigator freizugeben. Kurze Zeit später gründeten Eric Raymond und Bruce Perens die "Open Source Initiative"[23]. Diese Organisation zeichnete sich für die Definition des Begriffs von freier Software verantwortlich.

Wenige Jahre vorher hatten schon große Firmen, wie IBM oder Sun Microsystems das wirtschaftliche Potential freier Software erkannt und knüpften erste Kontakte mit der Gemeinde der freien Entwickler. Seitdem ist der Marktanteil von Open Source Software gegenüber Closed Source Software stetig gestiegen und gewinnt nicht zuletzt auch im Unternehmensumfeld immer mehr an Bedeutung. Für Europa belegt dies beispielsweise eine Studie der Europäischen Kommission aus dem Jahre 2006[24].

5.2.3 Lizenzmodelle

Analog zu herkömmlicher Software, deren Quellcode nicht veröffentlicht wird, gibt es auch für Open Source Software Lizenzmodelle. Diese räumen dem Nutzer der Software verschiedene Rechte und Pflichten ein. Anhand einiger Beispiele soll auf die Lizenzen und ihre Unterschiede näher eingegangen werden.


GNU GPL

Die GPL wurde erstmals 1989 von Richard Stallmann veröffentlicht und wird heutzutage von vielen Softwareprojekten verwendet. Diese regelt die Weitergabe des Quellcodes. Die aktuelle Fassung der GPL liegt in der Version 3 vor[25].

Die GPL sieht vor, dass Software, die unter dieser Lizenz veröffentlicht wird, zusammen mit ihrem Quellcode weitergegeben werden muss. Auch der durch den Nutzer veränderte Quellcode muss wiederum unter der GPL veröffentlicht werden. So ist sichergestellt, dass Software inkl. ihrer Derivate, die einmal unter die GPL gestellt wurde, immer frei sein wird.

Der Verkauf von Software, die der GPL unterliegt, ist zulässig. Allerdings muss hierbei immer der Quellcode mitgeliefert werden.


BSD Lizenz

Die Lizenz der BSD (Berkeley Software Distribution)[26] ist der GPL sehr ähnlich. Im Gegensatz zur GPL erlaubt sie es aber, die darunter veröffentlichte Software als Ausgangspunkt her zu nehmen, um weitere - auch proprietäre - Software zu entwickeln. Die daraus entstandene Software kann allerdings Closed Source sein und ohne Quellcode vertrieben werden.

Vor diesem Hintergrund wird die BSD Lizenz im Vergleich zur GPL als weniger restriktiv angesehen. Software, die unter dieser Lizenz veröffentlicht wird, ist dennoch als freie Software im Sinne von Open Source anzusehen[27].


Creative Commons

Anders als die beiden vorgenannten Lizenzen sind die Lizenzen der Creative Commons Organisation[28] nicht allein auf Software beschränkt. Die angebotenen Lizenzvarianten beziehen sich stattdessen auf digitale Medieninhalte, die neben Software auch Musik, Videos oder Bilder umfassen können. Die Organisation stellt dafür Lizenzen in verschiedenen Varianten zur Verfügung.

Außerdem ist es dem Nutzer dieser Lizenzen möglich, die Verwendung seines Werkes weiter einzuschränken. Er kann zum Beispiel die kommerzielle Nutzung untersagen oder eine Veränderung des Werkes verhindern[29]. Der Lizenznehmer kann hier also die Lizenz seinen Vorstellungen anpassen.

6 Open Source Softwarelösungen

In diesem Abschnitt werden die Softwarelösungen untersucht, welche im Umfeld Open Source in Verbindung mit Cloud Computing zum Einsatz kommen können. Die hier vorgestellte Liste soll einen guten Überblick über die verfügbaren Werkzeuge geben, sie gewährt jedoch keinen Anspruch auf Vollständigkeit. Im Rahmen dieser Analyse wurde eine umfassende Internetrecherche durchgeführt und entsprechende Fachzeitschriften berücksichtigt. Da die in dieser Ausarbeitung betrachtete Technologie des Cloud Computings von junger Natur ist, konnten lediglich diese Quellen verwendet werden. Wissenschaftliche Bücher konnten nicht identifiziert und somit auch nicht zu Rate gezogen werden.

Die im Folgenden vorgestellten Tools werden jeweils hinsichtlich ihres Leistungsumfangs betrachtet, die verfügbaren Varianten vorgestellt und der Einsatzbereich bewertet. Den Abschluss dieses Kapitels bildet eine zusammenfassende Gegenüberstellung der zuvor beschriebenen Software.

6.1 Eucalyptus

Die Anwendung Eucalyptus[30] dient dem Aufbau einer eigenen Cloud Computing Infrastruktur und ist im Bereich des IaaS anzusiedeln. Eucalyptus ist die Abkürzung von "Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems".

Ursprünglich war die Entwicklung dieser Software ein Projekt der University of California in Santa Barbara. Im Herbst 2007 wurde hier die Entscheidung getroffen, das bestehende Projekt VGrADS (Virtual Grid Application Development Software Project) weiterzuentwickeln. VGrADS wurde für die geschlossene Supercomputerplattform der National Science Foundation der USA entwickelt, welche der Berechnung von Wettervorhersagen diente. VGrADS sollte aber erweitert werden, sodass die Software auch auf öffentlichen Rechensystemen arbeiten konnte. Da zu dieser Zeit die Amazon Web Services in diesem Marktsegment weit verbreitet waren, sollten diese beiden Anwendungen kombiniert werden. Das Projekt Eucalyptus war somit gestartet, wobei folgende Anforderungen definiert wurden[31]:

  • Als Basis dienen verfügbare Open Source Komponenten.
  • Einfache sowie transparente Installation und Wartbarkeit für Administratoren.
  • Hohe Modularität: Unterstützung von mehreren APIs (Application Programming Interface) und Virtualisierungsumgebungen in der gleichen Cloud.

Im Februar 2008 begannen die Programmierarbeiten. Die erste stabile Version verfügte lediglich über die Schnittstelle zu Amazons Service EC2 (Elastic Compute Cloud). Sie wurde im Mai 2008 freigegeben und der Quellcode unter der BSD-Lizenz veröffentlicht. Im Dezember 2008 konnte auch die Unterstützung von Amazons S3 fertig gestellt werden. In der aktuellen Version 1.5.1 hat das Feature "Elastic Block Storage" Einzug erhalten. Seit dieser Version wird nun neben der ursprünglichen Virtualisierungstechnik Xen, mit der gestartet wurde, auch die KVM (Kernel-based Virtual Machine) unterstützt[31]. Weitere Virtualisierungsumgebungen - wie die von VMware - sind für die Zukunft geplant.

Im Frühling 2009 erwuchs aus diesem Universitätsprojekt ein eigenständiges Open Source Unternehmen. Eucalyptus Systems Inc. zeichnet sich seitdem für die Weiterentwicklung und Pflege der Software verantwortlich. Dieses Unternehmen versucht, durch ein Service- und Wartungsangebot mit dem Open Source Tool Gewinn zu erwirtschaften. So bietet das Unternehmen seinen Kunden z.B. Analysen ihrer schon vorhandenen Infrastruktur, ein ganzheitliches Paket aus Installation, Auslieferung und Reporting oder auch Upgrade- sowie Migrationskonzepte an[32]. Es werden zwei Supportmodelle offeriert, welche sich im Wesentlichen bei den Supportzeiten unterscheiden. Das Standardpaket umfasst lediglich die "Standard"-Arbeitszeiten (9x5), das erweiterte Paket enthält 24x7-Support[33].

In Anlehnung an: Braun / Kunze: Hausmittel (2009) S. 130, Abbildung 3: Logische Struktur Eucalyptus
In Anlehnung an: Braun / Kunze: Hausmittel (2009) S. 130,
Abbildung 3: Logische Struktur Eucalyptus[34]

Logisch besteht eine Eucalyptus-Umgebung aus den drei Komponenten NC (Node Controller) , CC (Cluster Controller) und CLC (Cloud Controller). Ein möglicher schematischer Aufbau ist Abbildung 3 zu entnehmen. Der Node Controller ist auf allen Knoten vorhanden, auf denen ein Anwender eine virtuelle Maschine starten kann. Dieser Controller kommuniziert mit dem für ihn zuständigen Cluster Controller. Die Cluster Controller nehmen die Informationen der Node Controller über deren (verfügbare) Ressourcen - wie Prozessoranzahl oder Hauptspeichergröße - entgegen. Sie verwalten diese Ressourcen und übernehmen die Verteilung der virtuellen Maschinen in dem Cluster, für welches sie zuständig sind. Dieses Scheduling wird über ein privates Netz realisiert, das zwischen den Node Controllern und dem jeweiligen Cluster Controller aufgespannt wird. Als übergeordnete Instanz muss in jeder Eucalyptus-Umgebung ein Cloud Controller vorhanden sein, der die Schnittstelle zum Administrator darstellt und auch die Userverwaltung von Eucalyptus selbst übernimmt. Weiterhin ist der Cloud Controller dafür zuständig, die Ressourceninformationen der einzelnen Cluster zu verwalten und ein sogenanntes Metascheduling durchzuführen. Auch diese Kommunikation wird über das private Netz der Cloud Infrastruktur abgewickelt. Dieses private Netz wird mittels eines VDE (Virtual Distributed Ethernet) realisiert. Jede Komponente hat einen eingebauten VDE-Switch, die wiederum untereinander mittels einer virtuellen Verbindung zusammengeschlossen sind. Diese VDE-Struktur stellt sicher, dass sich alle Komponenten innerhalb eines Subnetzes befinden und somit die Netzwerkkommunikation sichergestellt wird[35].

Durch diese Art der Kommunikation ist es möglich, die schon vorhandene Netzwerkstruktur eines Unternehmens zu verwenden. Eine Cloud kann sowohl lokal in einem Unternehmensnetzwerk aufgespannt werden, als auch über Weitverkehrsnetze und über Unternehmensgrenzen hinweg. Hierbei sollte aber unbedingt ein Augenmerk auf die Sicherheit gelegt werden, damit unternehmenskritische Daten nicht in unberechtige Hände gelangen. Werden WAN-Verbindungen (Wide Area Network) genutzt, ist eine Kommunikation über gesicherte VPN-Tunnel (Virtual Private Network) zu realisieren.

Ist die Cloud Infrastruktur eines Unternehmens nicht allzu umfangreich und nur ein Cluster vorhanden, besteht ebenfalls die Option, Cloud- und Cluster- Controller auf einem physischen Server zu konsolidieren. Weiterhin ist es möglich, alle drei Komponenten auf einem Server zu installieren. Dieses Szenario ist aber eher für Testzwecke sinnvoll, da die eigentliche Intention des Cloud Computings - dem Zusammenschluss und das Nutzen von mehreren verteilten Ressourcen - somit verloren geht[34].

In früheren Versionen wurde die Verteilung der Images zu den Node Controllern noch per NFS (Network File System) vollzogen, seit Version 1.4 wird die Kommunikation über einen Web Service realisiert. Dieser wird "Walrus" genannt und ist zu Amazons Web Service S3 kompatibel. Dies hat den Vorteil, dass die vorhandenen Tools von Amazon zur Einbindung und Registrierung von Images sowie zur Authentisierung verwendet werden können.

Auf Basis von Eucalyptus wird unter der Bezeichnung "Open Cirrus"[36] eine Test- und Entwicklerplattform betrieben, auf der das Design, das Bereitstellen und das Management von global verteilten Rechenzentren weiterentwickelt werden können. Die Plattform wurde seitens der Forschungsabteilungen von HP, Intel und Yahoo ins Leben gerufen. Von diesen Unternehmen wird die Testumgebung nun auch betrieben, unterstützt durch University of Illinois at Urbana-Champaign, Karlsruhe Institute of Technology und Infocomm Development Authority. Auf der Plattform werden ausschließlich Forschungsprojekte realisiert, die vorwiegend aus dem Hochschulbereich stammen. Die Projekte werden per Bewerbungsverfahren vergeben, da die Ressourcen der Plattform in letzter Konsequenz nur in endlicher Menge zur Verfügung stehen. Diese Plattform bietet die Möglichkeit, sich mit dem Thema Cloud Computing forschend auseinanderzusetzen, auch wenn keine eigene Plattform für die Experimente zur Verfügung steht.

Eine vollständige Integration von Eucalyptus wurde beispielsweise in die Server Edition von Ubuntu Linux 9.04 vorgenommen. Dieses Produkt nennt sich "Ubuntu Enterprise Cloud". Die technische Umsetzung und Nutzbarkeit werden im weiteren Verlauf dieser Arbeit noch analysiert.

6.2 Nimbus

Nimbus[37] ist ein Sammlung von Werkzeugen zur Realisierung einer Cloud, welche IaaS anbieten kann. Auf Seiten der Infrastruktur besteht das Toolkit aus zwei Softwarekomponenten. Die erste Komponente ist für den Betrieb der sogenannten "Service Nodes" nötig, mit der zweiten wird eine "Virtual Machine Monitor Node" aufgesetzt. Daneben gibt es für die Endanwender ein spezielles Client-Paket, mit dem sie sich zu der Cloud verbinden und diese nutzen können. Weiterhin gibt es noch ein Softwarepaket, welches auf die Administratoren zugeschnitten ist[38]. Nimbus wurde unter der Apache License Version 2 veröffentlicht und liegt zurzeit in der Version 2.2 vor.

Die Ziele dieses Softwareprojektes sind eher wissenschaftlicher Natur. Die Nimbus-Umgebung soll eine Plattform bieten, auf der Experimente mit wissenschaftlichem Charakter durchgeführt werden können. Weiterhin soll mit dieser Software die Möglichkeit geschaffen werden, private Clouds aufbauen zu können[39].

Die Schnittstelle zur Nimbus Cloud wird über Web Services realisiert. Zum Einen kann die Cloud über das Web Service Resource Framework gesteuert werden, zum Anderen über die Web Services Description Language von Amazons EC2. Innerhalb der Cloud werden Images der Virtualisierungsumgebung Xen unterstützt. Eine Anpassung des Quellcodes ist in Arbeit, sodass in Zukunft auch KVM-Images gestartet werden können. Die Fertigstellung ist für Herbst 2009 geplant[40].

Die Entwicklung dieser Software zielt nicht direkt auf den Einsatz im Unternehmensumfeld ab. Nimbus ist ein Werkzeug, welches derzeit eher im wissenschaftlichen Bereich zum Einsatz kommt. Dies ist auch eines der Ziele des Projektes. So werden an den vier Universitäten von Chicago, Florida, Perdue und Masaryk auf Basis von Nimbus Clouds betrieben. Diese Clouds sollen zum Einen eine Plattform für Bildung und Wissenschaft bieten, auf der Anwender erste Erfahrungen mit Cloud Computing sammeln können. Zum Anderen sollen mit diesen Plattformen weitere Erkenntnisse und Erfahrungen im Bereich des Cloud Computings gewonnen werden.

Auch wenn das Projekt einen eher wissenschaftlichen Charakter hat, ist der Einsatz aufgrund der offenliegenden Quellen im Unternehmensumfeld möglich und aus Sicht der Autoren durchaus geeignet. Als problematisch ist bei einem kommerziellen Einsatz jedoch der fehlende Support anzusehen. Es exisistert hinter diesem Projekt keine Firma, die Hilfestellung bei Fehlern gibt oder auf Wunsch Erweiterungen entwickelt.

6.3 OpenNebula

Mit Hilfe der Open Source Software OpenNebula[41] kann ebenfalls eine Cloud als IaaS realisiert werden. Das Ziel dieses Projektes ist, dass ein physikalisches Rechencluster in eine flexible, virtuelle Infrastruktur gewandelt wird, welche je nach Arbeitsaufkommen die benötigten Ressourcen dynamisch anpassen kann.

OpenNebula besitzt einen ähnlichen Leistungsumfang wie das schon vorgestellte Eucalyptus. Die Software verwaltet die virtuellen Maschinen, welche innerhalb der Cloud gestartet wurden, übernimmt das Scheduling auf der gesamten Cloud-Plattform und kümmert sich ebenfalls um die Fehlerbeseitigung. Es gibt eine Schnittstelle zum Anwender, die hierbei jedoch nicht über ein Web-Frontend sondern über die Kommandozeile realisiert wurde[42]. Dies setzt ein höheres Wissen an die Endnutzer voraus. In der derzeit aktuellen stabilen Version 1.2 unterstützt OpenNebula die Virtualisierungstechniken Xen und KVM. Veröffentlicht wurde der Quellcode dieses Projektes unter der Apache License, Version 2.0.

Abbildung 4: Ausgaben der Werkzeuge von OpenNebula
Abbildung 4: Ausgaben der Werkzeuge von OpenNebula

Die Ausgaben der Kommandos zur Steuerung der OpenNebula Plattform sind beispielhaft in der Abbildung 4 dargestellt. Sie stellen Informationen über die verfügbaren Nodes und deren Ressourcen zur Verfügung. Außerdem bieten sie dem Anwender Informationen über die laufenden virtuellen Maschinen und deren Stati. Weiterhin lassen sich Informationen über das virtuelle Netz anzeigen, welches die virtualisierten Systeme nutzen.

Hinter diesem Projekt steht keine Firma, welche mit dieser Software Gewinn erwirtschaften will und sich um direkt um die Weiterentwicklung kümmert. Die Finanzierung wird über Sponsorengelder sichergestellt. Außerdem erhält OpenNebula Forschungsgelder aus dem EU-finanzierten Projekt "Reservoir - Resources and Services Virtualization without Barriers"[43][44], welches neue Entwicklungen im Bereich der Infrastrukturtechnologie - im Besonderen Grid, Virtualisierung und Cloud Computing - vorantreiben möchte.

Support für OpenNebula wird über eine Mailing-Liste und über einen IRC-Channel (Internet Relay Chat) angeboten. Bei diesen Anfragen kann allerdings nicht garantiert werden, dass zeitnah Hilfe geleistet wird. Es wird nach dem Best-Effort-Prinzip[45] gehandelt. Je nach Arbeitsaufkommen können somit auch Verzögerungen auftreten. Weiterhin gibt es auf der Support-Webseite eine Kontaktmöglichkeit, über die auch kostenpflichtige Unterstützungsleistungen angefordert werden können[46].

Analog zu Eucalyptus ist OpenNebula in der neuesten Version von Ubuntu Linux 9.04 integriert und kann somit sehr einfach aufgesetzt und installiert werden. Die für OpenNebula erstellten virtuellen Maschinen lassen sich ebenfalls unter Eucalyptus starten und umgekehrt.

6.4 Elastic Computing Platform

Die Firma Enomaly[47] bietet unter dem Namen "Elastic Computing Platform" ein Werkzeug an, mit dessen Hilfe die Anwender ihre Cloud Computing Plattformen verwalten können. Speziell für kleine Unternehmen und Privatanwender gibt es eine sogenannte Community Edition zum kostenlosen Download auf der Webseite des Anbieters. Diese liegt aktuell in der Version 2.2.3 vor. Außerdem werden die beiden Varianten "Data Center Edition" und "Service Provider Edition" angeboten.

Erstere Variante wird aller Voraussicht nach im 4. Quartal 2009 verfügbar sein und richtet sich vor allem an große Unternehmen, die in ihren bereits existierenden Rechenzentren von den Vorteilen des Cloud Computings profitieren wollen. Damit werden die Unternehmen in die Lage versetzt, ihre Aufgaben auf mehrere interne oder externe Cloud Computing Plattformen zu verteilen und zu kontrollieren. Weiterhin bietet das Tool Unterstützung bei der Desaster Recovery, um die Verlässlichkeit des Systems auch im Fehlerfall sicherstellen zu können.

Abbildung 5: Oberfläche von Enomalys Elastic Computing Platform
Abbildung 5: Oberfläche von Enomalys Elastic Computing Platform

Die zweite Variante namens Service Provider Edition bietet Enomaly als Provider seinen Kunden zur Nutzung an. Nach eigenen Aussagen nutzen diese Option bereits über 15.000 Organisationen in der ganzen Welt[48]. Durch Inanspruchnahme des Angebots können diese Kunden wiederum entsprechende Services in Form von IaaS anbieten. Die Endkunden können hierbei auf eine stabile Plattform zurückgreifen, die mit Abrechnungs- und Monitoringsystemen ausgestattet ist.

Preise für das Produkt Service Provider Edition nennt Enomaly auf der Webseite nicht. Stattdessen bietet die Firma ein Kontaktformular, mit dessen Hilfe sich die Kunden über weitere Merkmale und Preise des Produktes informieren können. Auch für die Data Center Edition sind entsprechende Informationen nicht verfügbar. Die Community Edition ist allerdings frei zugänglich und kann kostenfrei aus dem Internet heruntergeladen werden.

Die Community Edition eignet sich für kleine Unternehmen und technikbegeisterte Privatanwender, die erstmals Erfahrungen mit Cloud Computing sammeln wollen. Sie haben damit die Möglichkeit, eine eigene Cloud Computing Infrastruktur aufzubauen und zu betreiben. Über die Data Center Edition können mangels Informationen des Anbieters keine Aussagen getroffen werden. Die Service Provider Edition bietet sich für Unternehmen an, die ihrerseits Cloud Computing Services an Kunden vertreiben wollen. Sie nutzen dabei die Plattform, die Enomaly dafür zur Verfügung stellt.

Die Abbildung 5 zeigt die Weboberfläche der Community Edition der Elastic Computing Platform. Diese lässt ein umfangreiches Management der Cloud Computing Plattform zu. So können entsprechende Betriebssystemimages erstellt und administriert werden. Auf der Elastic Computing Platform lassen sich Xen- und KVM-Abbilder von Betriebssystemen verwenden.

6.5 OpenQRM

Die Open Source Software mit dem Namen "OpenQRM"[49] stellt eine Datacenter Management Software dar. Mit Hilfe dieser Applikation lässt sich eine Plattform mit virtuellen Maschinen administrieren. Mit der aktuellen Version 4.4 wird vor allem Linux als Betriebssystem für die Installation des Frontends unterstützt. An der Kompatibilität mit Microsoft Windows und Sun Solaris wird derzeit gearbeitet. In Kürze sollen Versionen für diese Betriebssysteme veröffentlicht werden.

OpenQRM unsterstützt KVM, Xen, VMware und Linux-VServer als Virtualisierungstechnologien. Hinzu kommt die Option, die Systeme von einem physikalischen Rechner in ein virtuelles System zu migrieren. Die gleiche Möglichkeit besteht auch umgekehrt - also ein virtuelles in ein physikalisches System umzuwandeln. Außerdem kann zwischen den einzelnen Virtualisierungstechnologien hin- und hergeschaltet werden[50]. Damit ist OpenQRM ein Managementinterface für komplette Rechenzentren, um die gesamte Landschaft an physikalischen und virtuellen Maschinen zu administrieren.

Abbildung 6: Oberfläche von OpenQRM
Abbildung 6: Oberfläche von OpenQRM

Abbildung 6 zeigt die Weboberfläche des Frontendsystems von OpenQRM. Über diese Weboberfläche lassen sich alle administrativen Aufgaben einfach erledigen. Alle Maschinen, bei denen OpenQRM die Verwaltung übernimmt, können hier überwacht werden. Weiterhin lassen sich neue Maschinen provisionieren und auf verschiedene Nodes verteilen.

Um die vielen Virtualisierungstechnologien verwenden zu können, kommen in OpenQRM sogenannte Plugins zum Einsatz. Diese lassen sich je nach Bedarf einschalten und verwenden oder deaktivieren. So kann der Anwender wählen, welche Plugins er nutzen möchte und welche Funktionen das System damit unterstützt. Neben Plugins für verschiedene Virtualisierer stehen aber auch welche für die Anbindung von externem Speicher wie z.B. iSCSI oder NFS zur Verfügung. Weiterhin lassen sich mit diesem System und dem entsprechenden Plugin hochverfügbare Systeme realisieren. Außerdem besitzt OpenQRM eine dokumentierte Applikationsschnittstelle, über die sich Software von Drittanbietern anbinden lässt.

In das Webinterface kann per Plugin eine zusätzliche Seite integriert werden, die es dem Anwender ermöglicht, bequem per Mausklick vorgefertigte Images von Linux Betriebssystemen von den Webseiten des Herstellers herunterzuladen und in die Plattform zu integrieren.

Diese Software richtet sich vor allem an die Betreiber von Rechenzentren, die im kommerziellen Umfeld eingesetzt werden. Professioneller Support für das Produkt kann z.B. von einer deutschen Firma bezogen werden, die ihre Services über das Internet anbietet[51].

Wie bei Open Source Software üblich, wird auch diese unter einer freien Lizenz vertrieben. Hier kommt die GPL zum Einsatz. Die Software kann über das Internet frei heruntergeladen und installiert werden. Auch eine Live CD, die keine Installation erfordert, kann bezogen werden. Damit ist ein Vorabtest der Software sehr gut durchführbar, ohne bestehende Systeme verändern zu müssen. Finanziert wird das Projekt von Sponsoren und Privatpersonen[52]. Die Entwicklung des Softwarepaketes wird von einer großen Entwicklergemeinde übernommen, die über die ganze Welt verteilt ist und vor allem das Internet als Kommunikationsmedium nutzt.

6.6 AbiCloud

Unter dem Namen AbiCloud vertreibt die spanische Firma Abiquo[53] ein Produkt, welches sich als Managementwerkzeug für Cloud Computing Plattformen darstellt. Das Werkzeug gibt den Nutzern die Möglichkeit, ihre Cloud Computing Plattformen zu organisieren und zu skalieren[54]. Die Software ist Open Source und wird unter der CPAL 1.0 (Common Public Attribution License) veröffentlicht.

Abbildung 7 zeigt einen Ausschnitt der Weboberfläche von Abicloud (Version 0.6.0). Hier ist die Ansicht der Infrastruktur zu sehen, die eine Übersicht der Datacenter in Google Earth anzeigen kann. Damit kann der Anwender sich einen einfachen Überblick über die geographischen Lokationen der Standorte verschaffen.

Abbildung 7: Oberfläche von Abiquos AbiCloud
Abbildung 7: Oberfläche von Abiquos AbiCloud

Die Firma sieht für ihr Produkt AbiCloud drei große Gruppen von Kunden: Privatanwender und Entwickler, große Unternehmen sowie Reseller, die Cloud Computing Services anbieten wollen. Die Software steht dazu zum kostenfreien Download auf der Webseite des Unternehmens bereit.

Mit Hilfe von AbiCloud ist der Anwender in der Lage, die IT-Welt seines Unternehmens virtuell nachzubilden und verschiedene Komponenten, wie z.B. Datenbank- oder Webserver bzw. Firewalls miteinander zu verknüpfen. Außerdem kann die Software genutzt werden, um Ressourcen wie Rechenzeit oder Speicherplatz von Cloud Computing Anbietern wie Amazon oder Google zu nutzen[55].

Aktuell stehen zwei verschiedene Versionen zur Verfügung, die entweder unter Microsoft Windows oder unter Linux installiert werden können. Beide Versionen beinhalten die für den Betrieb notwendige Webserver- und Datenbanksoftware. Auf Seiten des Clients ist lediglich ein Flash Player Plugin für den Webbrowser notwendig, um die Applikation bedienen zu können. Dieses Plugin ist in den meisten Browsern aufgrund vieler weiterer Anwendungsfälle bereits integriert, sodass dieser Umstand keine wirkliche Hürde darstellt. Die Bedienung ist intuitiv und leicht verständlich.

Abicloud gibt dem Anwender die Möglichkeit, eine Vielzahl verschiedener Typen von Betriebssystemimages auszuführen. Dazu gehören neben Xen und KVM Images auch solche, die mit VMware ESX erstellt worden sind. Diese Images lassen sich über das Webinterface importieren und starten.

Wie andere Open Source Produkte auch, wird diese Software kostenfrei vertrieben. Die Entwicklerfirma bietet aber kostenpflichtigen Support für ihre Produkte an. Das macht den Betrieb einer Cloud Computing Plattform bei Verwendung dieser Tools kostengünstig für die Anwender. Abiqou entwickelt das Produkt unter Einsatz von Spendengeldern von Firmen, die diese Tools kommerziell einsetzen, weiter.

Zu diesem Produkt lässt sich abschließend sagen, dass es aufgrund nicht anfallender Kosten für die Nutzung eine attraktive Alternative für Unternehmen ist, um ihre Cloud Computing Plattformen zu verwalten. Auch die benötigte Software auf Seiten der Clients dürfte in nahezu allen Fällen bereits vorhanden sein und daher ebenfalls keine weiteren Kosten verursachen.

6.7 EyeOS

EyeOS[56] ist ein sogenanntes Cloud Computing Betriebssystem. Es bietet neben der reinen Betriebssystemoberfläche diverse Applikationen. Der Umfang reicht hierbei von Programmen zur Textverarbeitung und Tabellenkalkulation über Kalender und Kontaktfunktionen bis hin zu Spielen. Des Weiteren unterstützt es den Nutzer beim Verwalten von Adressen und Terminen, sowie der Kommunikation mit anderen Usern über einen mitgelieferten Messenger. Außerdem ist es mit Hilfe eines FTP Clients möglich, Dateien mit EyeOS auszutauschen. Neben dem Hochladen von schon existierenden Dateien von dem realen Computer können auch neue Dateien direkt in dem virtuellen Betriebssystem erstellt werden. Die Dateien, welche nach EyeOS transferiert werden sollen, dürfen hierbei 12 MB nicht überschreiten. Diese Daten verbleiben nicht nur während einer Session auf dem virtuellen Betriebssystem, sondern sind dort dauerhaft bis zum Zeitpunkt der Löschung hinterlegt. Sie können so von jedem internetfähigen PC aus aufgerufen und bearbeitet werden. Auch die vielfältigen Designanpassungen, welche in EyeOS vorgenommen werden können, bleiben erhalten.

In der Abbildung 8 ist ein Ausschnitt der Weboberfläche des Systems dargestellt. Sie zeigt die graphische Oberfläche des Betriebssystems und das Fenster des gestarteten Email Programms. Im unteren Bereich ist eine Taskleiste erkennbar, wie sie in allen klassischen Betriebssystemen für das Umschalten zwischen verschiedenen laufenden Programmen verwendet wird. Im oberen Bereich der Webseite ist das Menü zum Starten der Anwendungen sichtbar.

Abbildung 8: Oberfläche von EyeOS
Abbildung 8: Oberfläche von EyeOS

Es gibt verschiedene Optionen für die Verwendung von EyeOS:

Auf der Webseite des Projektes kann ein kostenloser Zugang eingerichtet werden[57]. Hierfür muss lediglich ein Benutzername und ein zugehöriges Passwort generiert werden, weder eine Email-Adresse noch andere persönliche Daten müssen angegeben oder hinterlegt werden. Dieser kostenlose Zugang liefert hohe Performance, da die Software auf Servern von Interdominios - dem Betreiber einer professionellen Serverfarm - betrieben und von EyeOS gewartet wird.

Zusätzlich ist es möglich, private Server bei Interdominos anzumieten und diese mit EyeOS ausstatten zu lassen. Hierbei verbleibt die Kontrolle über die User bei dem Server-Administrator selbst, sie liegt nicht bei Interdominios. Bei dieser Variante sind die Preise abhängig vom Speicherplatz, dem festen und dynamischen Arbeitsspeicher und der Transferrate.

Die dritte Möglichkeit besteht darin, EyeOS auf einem eigenen Server bzw. einer eigenen Serverfarm zu installieren. Hierfür fallen keine Lizenz- oder Nutzungskosten an, lediglich die Hardware muss gestellt werden.

EyeOS selbst ist in jeder Variante kostenlos. Das Projekt finanziert sich zum Einen über Spendengelder, zum Anderen aber auch durch zusätzliche Dienstleistungen. Ein Angebot ist die Wartung der Systeme. Hierbei wird preislich in drei Kategorien unterschieden, die sich inhaltlich durch bessere Reaktionszeiten und Erreichbarkeit unterscheiden. Des Weiteren können Berater von EyeOS engagiert werden, welche den Installationsvorgang begleiten oder Trainings durchführen. Außerdem bietet EyeOS an, zugeschnittene Software gegen Entgelt für den Kunden zu entwickeln. So ist es beispielsweise möglich, Daten in EyeOS direkt aus einer Datenbank eines Servers abzurufen sowie kundenspezifische Schnittstellen zu implementieren.

Zusammenfassend lässt sich sagen, dass EyeOS sehr flexibel einsetzbar und somit für Unternehmen gerade aufgrund der wegfallenden Lizenzkosten attraktiv ist. Es bietet sich besonders für Unternehmen an, die keine oder nur wenige Zusatzprogramme benötigen und deren Mitarbeiter weit verstreut sind.

6.8 OpenGoo

OpenGoo[58] bezeichnet eine Open Source Software, die typische Kollaborationswerkzeuge über das Internet oder ein privates Netzwerk zur Verfügung stellt. Diese Applikation gehört in die Kategorie SaaS. Für die Nutzer ist hier außer einem herkömmlichen Webbrowser keine weitere Software nötig. Als Anwendungen stehen den Nutzern Kontaktverwaltung, Email, Kalender sowie eine Textverarbeitung und eine Anwendung zur Erstellung von Präsentationen zu Verfügung. Eine Komponente zur Tabellenkalkulation soll in Kürze folgen.

In der Abbildung 9 ist die Weboberfläche von OpenGoo in der aktuellen Version 1.4.1 dargestellt. Diese ist im Wesentlichen der Oberfläche typischer Kollaborationswerkzeuge nachempfunden. Hier ist der Willkommensbildschirm zu sehen, der eine Terminübersicht sowie die zuletzt bearbeiteten Dokumente und Notizen anzeigt.

Abbildung 9: Oberfläche von OpenGoo
Abbildung 9: Oberfläche von OpenGoo

Auf diese Daten kann der Nutzer von jedem internetfähigen Arbeitsplatz der Welt zugreifen. Diese Nutzdaten werden auf dem Webserver abgelegt, auf dem OpenGoo betrieben wird.

OpenGoo selbst läuft auf einem herkömmlichen Apache Webserver und hat außer PHP und mySQL keine weiteren, besonderen Anforderungen an das Serversystem[59]. Daher lässt sich die Software sehr leicht installieren und administrieren, denn auch die eingesetzte Serversoftware für den Web Service und die Datenbank sind selbst Open Source Produkte. Der Speicherplatz für die eigentliche Anwendung ist mit ca. 10 MB sehr moderat. Hier sollte allerdings noch Platz für die Daten der Anwender bedacht werden, da diese die Möglichkeit haben, Dateien hochzuladen, die sie z.B. in Präsentationen einbauen können.

Diese Software ist durchaus kommerziell einsetzbar. Zu empfehlen ist die Anwendung vor allem für kleine Unternehmen. Diese haben hiermit die Option, eine kostenlose Kollaborationsumgebung aufzubauen. Allerdings ist dabei zu berücksichtigen, dass die mitgelieferten Anwendungen nicht mit Dateiformaten von typischer Bürosoftware aus dem PC-Umfeld umgehen können. Hier sind die Nutzer auf die eigenen Dateiformate von OpenGoo angewiesen.

Da OpenGoo kostenlos aus dem Internet heruntergeladen werden kann und keine monatlichen Abgaben fällig sind, fallen für die Nutzung dieser Anwendung selbst keinerlei Kosten an. Allerdings sind Kosten für die benötigte Hardware zu berücksichtigen. Die Software ist unter einer Variante der Version 3 der GPL[60] veröffentlicht.

6.9 Google Wave

Google Wave[61], welches bisher lediglich angekündigt, jedoch noch nicht der Öffentlichkeit zugänglich gemacht wurde, soll sich laut Google zu einem neuen Standard im Bereich der Internet-Kommunikation entwickeln.

Bisher gibt es zwei grundsätzliche Varianten der Internet-Kommunikation. Auf der einen Seite ist die dokumentengestützte Kommunikation zu nennen, wie z.B. Email. Diese Art der Kommunikation hat den Vorteil, dass sie besser zu katalogisieren ist und Vorgänge besser nachverfolgt werden können. Auf der anderen Seite gibt es das Instant Messaging. Dies hat das sofortige Übertragen von Nachrichten an den jeweiligen Gesprächspartner als Charakteristikum. Diese Form der Kommunikation wird umgangssprachlich häufig als "Chatten" bezeichnet.

Der Gedanke hinter Google Wave ist, diese beiden Kommunikationsarten zu verbinden, um so eine gemeinsame Plattform für die verschiedenen Anforderungen der Kunden zu erschaffen.

Quelle: ToTheTech (o.J.)Abbildung 10: Oberfläche von Google Wave
Quelle: ToTheTech (o.J.)[62]
Abbildung 10: Oberfläche von Google Wave

Neben der Möglichkeit, Nachrichten an die Wave Mitglieder zu verteilen, gibt es ebenfalls Optionen für ein Dokumenten-Management. So soll es z.B. möglich sein, Fotos oder andere Dokumente per Drag & Drop in die Wave zu ziehen. Des Weiteren werden voraussichtlich sämtliche von Google vertriebenen Funktionen Wave-fähig sein. Dies würde z.B. das gemeinsame Bearbeiten von Reise-Routen bei Google Maps oder das gemeinsame Erstellen von Tabellen und Präsentationen unter Google Docs ermöglichen.

In der hier dargestellten Abbildung 10 ist eine Oberfläche von Google Wave zu erkennen. Hier sind zunächst auf der linken Seite die Navigationsliste und die Kontakte des Benutzers abgebildet. Im Zentrum der Anwendung wird die Inbox angezeigt und auf der rechten Seite ist das Modul "Snapshot" abgebildet, welches zur Ablage und Veröffentlichung von Bildern genutzt werden soll.

Im Gegensatz zu einem üblichen Instant Messenger, bei dem die Nachricht erst nach der kompletten Fertigstellung übertragen wird, sendet Google Wave standardmäßig jedes Zeichen einzeln und zeigt es dem Kommunikationspartner sofort an. So ist eine Kommunikation in Echtzeit möglich[63]. Für den Fall, dass mehrere Personen zeitgleich ein Dokument bearbeiten, kann jederzeit nachvollzogen werden, wer welche Änderung zu welcher Zeit vorgenommen hat. Neben der normalen Funktion der Versionsverfolgung (Name, Datum und Änderung) soll es die Möglichkeit geben, die Welle "zurückzuspulen". Dies bedeutet, dass alle Änderungen ab einem eingestellten Zeitpunkt noch einmal vollzogen werden. Auf diese Weise kann die Entwicklung eines Dokumentes oder einer Diskussion in der Wave ganz klar recherchiert werden und der Nutzer sich so auf den neuesten Stand bringen lassen.

Zusätzlich gibt es noch die Möglichkeit, Google Wave Gadgets auf der eigenen Webseite zu implementieren. Diese kommunizieren dann über die sogenannten Google Wave APIs[64] mit einer Wave. Falls der Funktionsumfang der von Google mitgelieferten Standard-Applikationen nicht ausreicht, können auch kleine, selbst erstellte Programme in die Wave integriert werden.

Google Wave soll im Gegensatz zu bisherigen Google Diensten auch auf dem eigenen Server installierbar sein. Dies mag im ersten Schritt Sicherheit über die Daten vermitteln, es sollte jedoch nicht außer Acht gelassen werden, dass Wave weiterhin mit Google Diensten wie Maps und Docs kommuniziert und die Übertragung von sensiblen Informationen daher nicht ausgeschlossen werden kann.

Die Finanzierung wird wie bei bisherigen Google Diensten zunächst über Werbeanzeigen und die Firma Google selbst realisiert.

Wenn für Unternehmen eine Gewährleistung für die Sicherheit der eigenen Daten in diesem System gegeben ist, kann Google Wave eine interessante Alternative oder zumindest eine denkbare Ergänzung zu bisherigen Kommunikationsmöglichkeiten sein. Da Google aber bisher keine Version von Wave freigegeben hat, bleibt die Entwicklung dieses Konzepts abzuwarten. Hinter dieser Idee steckt viel Potential. Allerdings muss sich erst zeigen, ob Google diese Erwartungen erfüllen kann.

6.10 Sun Cloud

Sun Cloud[65] ist eine Informationsplattform, die von Sun Microsystems zur Verfügung gestellt wird. Auf dieser Plattform werden Informationen sowie Vorteile des Cloud Computings und Open Source dargelegt. Sun Microsystems bietet hier Unternehmen die Möglichkeit, diese bei der Umstellung ihrer bestehenden IT Infrastruktur in ein Open Source Cloud Computing System zu begleiten. Hierbei bietet Sun zunächst einen Beratungsservice an. Im Rahmen dieses Angebots wird zunächst die bestehende Infrastruktur analysiert und der Bedarf des Unternehmens ermittelt. Im weiteren Ablauf bietet Sun sowohl Hard- als auch Software Unterstützung an. Dies beinhaltet auf Seiten der Hardware, dass Sun Server zur Verfügung stellt, um das Konzept des Cloud Computings zu realisieren. Im Bereich der Software bietet Sun Applikationen an, die zum Administrieren und Verwalten der Server Ressourcen dienen. Des Weiteren werden Cloud Computing Betriebssysteme und diverse Standard Applikationen angeboten[66]. Zusätzlich gibt es die Möglichkeit, sich Programme anpassen oder sogar komplett neu entwickeln zu lassen. Schlussendlich werden auch Wartungsverträge angeboten, in deren Rahmen sich Sun um alle Probleme kümmert, welche den Hard- und Softwarebereich betreffen. Die Finanzierung an dieser Stelle erfolgt über die oben beschriebenen entgeltlichen Dienstleistungen.

6.11 Vergleich

Nachdem die einzelnen Softwarewerkzeuge in den vorangegangenen Kapiteln vorgestellt wurden, wird in diesem Abschnitt ein abschließender Vergleich vorgenommen. Die verfügbaren Applikationen, bei denen die Quellen offengelegt sind, haben sehr unterschiedlichen Charakter und Einsatzgebiete. Hier sind als erstes die Tools zu nennen, mit denen eine IaaS Plattform aufgebaut und verwaltet werden kann. Hierzu gehören Eucalyptus, Nimbus, OpenNebula und die Elastic Computing Platform. Eine zweite Gruppe liefert nur eine reine Managementoberfläche, wobei der darunterliegende Service ebenfalls IaaS ist. Zu dieser Kategorie gehören AbiCloud und OpenQRM.

Einen ganz anderen Fokus hat das Projekt EyeOS. Dieses stellt ein virtuelles Betriebssystem dar. Diese Software kann daher dem Gebiet des SaaS zugeordnet werden. OpenGoo, welches eine virtualisierte Bürosuite zur Verfügung stellt, und Google Wave, das den Ankündigungen zufolge eine neuartige Kommunikationsplattform bilden soll, können auch dem Bereich des SaaS zugeschrieben werden.

Analog des Leistungsumfangs sind die Einsatzbereiche der einzelnen Softwarekategorien aus Sicht der Autoren ebenfalls sehr vielfältig. Die Werkzeuge, die eine große Serverlandschaft voraussetzen bzw. erst mit dieser ihre volle Leistung entfalten können, sind vornehmlich bei Unternehmen einzusetzen, welche schon einen großen Serverpark haben oder gerade mit dem Service "Cloud Computing" Gewinn erwirtschaften möchten. Gerade die gesamten IaaS-Werkzeuge sind hier zu nennen. Die zweite Kategorie zielt eher auf Kleinunternehmen und Privatanwender ab.

In Tabelle 2 sind die Charakteristika der einzelnen Softwarelösungen und Zielgruppen aus Sicht der Autoren zusammenfassend dargestellt.


Software Hauptfunktion Einsatzgebiet
Tabelle 2: Merkmale der Open Source Cloud Computing Werkzeuge
Eucalyptus IaaS, Managementwerkzeug incl. Web-Frontend Großunternehmen, Infrastrukturanbieter
Nimbus IaaS Forschungseinrichtungen, Universitäten, Großunternehmen
OpenNebula IaaS, Managementwerkzeug kleine und große Unternehmen, Infrastrukturanbieter
Elastic Computing Platform IaaS, Managementwerkzeug incl. Web-Frontend kleine und große Unternehmen, Infrastrukturanbieter
OpenQRM IaaS, Managementwerkzeug incl. Web-Frontend Großunternehmen, Rechenzentren
AbiCloud reines Cloud-Managementwerkzeug kleine und große Unternehmen, Infrastrukturanbieter
EyeOS virtuelles Betriebssystem Privatanwender, u.U. Kleinunternehmen
OpenGoo virtuelle Bürosoftware Privatanwender, u.U. Kleinunternehmen
Google Wave Kommunikationsplattform Privatanwender, u.U. Kleinunternehmen
Sun Cloud Dienstleistungsplattform Klein- und Großunternehmen



7 Entwicklung eines Prototypen

In diesem Teil der Arbeit soll ein Prototyp für eine Cloud Computing Plattform entwickelt werden. Beispielhaft wird hier eine Umgebung unter Nutzung der Software Eucalyptus aufgesetzt. Diese Applikation ist Open Source und daher frei verfügbar. Die hier genutzten Images der Betriebssysteme sind kompatibel mit EC2, der Cloud Computing Plattform von Amazon.

Für die spätere Installation eines Betriebssystems in der Cloud wird ein Image anhand einer bestehenden Ubuntu 9.04 Linux Distribution mit Hilfe des "vmbuilder" erstellt. Das Tool generiert dazu aus dem laufenden Betrieb ein Abbild inklusive des laufenden Kernels und der dazugehörigen Ramdisk. Dieses Image wird auf dem Frontendsystem abgelegt und steht den Anwendern zur Verfügung. Letztere können mit Hilfe des Images eine virtuelle Maschine auf einer Node instanziieren, welche das Betriebssystem dann ausführt.

7.1 Anforderungen an die Hardware

Für den erfolgreichen Betrieb einer Cloud Computing Plattform mit Eucalyptus sind mehrere Rechner erforderlich. Der Betrieb von Cloud Controller, Cluster Controller und Node Controller auf der gleichen physikalischen Hardware ist aus performancetechnischen Gründen nicht sinnvoll. Außerdem würde dies der Verteilung der Ressourcen in einer Wolke als grundlegendes Konzept des Cloud Computings widersprechen. Daher werden in diesem Beispiel Cloud Controller und Cluster Controller auf einem Rechner betrieben. Für jede weitere Node kommt ein weiterer physikalischer Rechner hinzu, auf dem lediglich der Node Controller als Komponente von Eucalyptus läuft.

Speziell bei jenen Rechnern, die für den Betrieb von Node Controllern vorgesehen sind, gelten besondere Anforderungen an die Hardware. So müssen die Prozessoren in diesen Rechnern Virtualisierung unterstützen. Dieses Merkmal heißt bei Intel Prozessoren IVT (Intel Virtualization Technology). Während der Entwicklung trug dieses Feature den Codenamen "Vanderpool". Die Unterstützung für Virtualisierung wurde von Intel in die Prozessoren der Core2Duo Reihe sowie einigen Modellen der Pentium 4 und Pentium D Prozessoren Reihe integriert. Auch der zweite große Prozessorhersteller AMD baut Unterstützung für Virtualisierung in seine Produkte ein. Hier heißt das Merkmal AMD-V (AMD-Virtualization) und war in der Entwicklung als "Pacifica" bekannt. Dieses Merkmal ist bei AMD seit dem Modell Athlon 64 bzw. Opteron im AM2 Sockel in die Prozessoren implementiert. Auch die Turion 64 Prozessoren haben diese Funktion integriert.

Neben dieser speziellen Prozessor sollten die Node Controller mit möglichst viel Arbeitsspeicher ausgestattet sein, damit sie den darauf laufenden virtuellen Maschinen auch entsprechend virtuellen Arbeitsspeicher zur Verfügung stellen können. Der Arbeitsspeicher sollte also weitaus größer bemessen sein, als das Betriebssystem des Node Controllers selber beansprucht.

Das gleiche gilt für den Festplattenplatz auf den Node Controllern. Denn auch der Speicherplatz auf den Festplatten dieser Systeme muss den virtuellen Maschinen bereitgestellt werden. Hier werden die Images gespeichert, aus denen die virtuellen Maschinen gestartet werden.

Für alle beteiligten Rechner einer Cloud gilt, dass sie eine möglichst leistungsfähige Netzwerkkarte integriert haben sollten, um Wartezeiten aufgrund niedriger Datendurchsätze im Netzwerk möglichst gering halten zu können. Denn über das Netz laden die Node Controller die Images von den Cloud Controllern herunter. Da diese Images komplette, virtuelle Betriebssysteme enthalten, sind die zugehörigen Dateien entsprechend groß.

Für die Rechner, auf denen die Cloud bzw. Cluster Controller laufen, gelten im Prinzip die gleichen Anforderungen wie für die Node Controller. Lediglich auf die Unterstützung für Virtualisierung kann bei diesen Rechnern verzichtet werden, weil auf diesen Controllern keine virtuellen Maschinen laufen. Sie sind stattdessen für die Koordination der Aufgaben und die Bereitstellung der Images für die Node Controller zuständig.

7.2 Softwarevoraussetzungen

Neben einem herkömmlichen Linux-System benötigen die einzelnen Komponenten einer Cloud Computing Plattform mit Eucylyptus einige Softwarepakete, die auf den Systemen installiert sein müssen. Die Voraussetzungen unterscheiden sich je nach Aufgabe, welche die entsprechende Maschine in der Cloud Umgebung wahr nimmt. Die Softwarevoraussetzungen basieren zum größten Teil auf den Angaben des Herstellers von Eucylaptus[67].

Für den Betrieb des Frontends, bestehend aus Cluster Controller und Cloud Controller, ist zunächst eine aktuelle Version eines JDK (Java Development Kit) erforderlich. Im Falle der Benutzung des JDK von Sun muss dieses mindestens die Versionsnummer 6 tragen. Weiterhin wird für das Frontend eine Kopie von Apache Ant[68] benötigt. Diese Software ist eine Art Compiler, der betriebssystemunabhängig ist und für die Übersetzung der Java Quellcodes benötigt wird. Neben Java und Apache Ant laufen auf den Rechnern des Frontends viele Skripte, die kleine Aufgaben übernehmen und in Perl programmiert sind. Daher wird eine funktionsfähige Perl-Umgebung im Betriebssystem vorausgesetzt. Weiterhin wird ein Email-Server benötigt, der die Emails von und für Benutzer des Frontends verarbeitet. Dies muss kein ausgewachsener Mail Transfer Agent sein. Es ist ausreichend, wenn die Emails an die lokalen Benutzer des Betriebssystems zugestellt werden können. Neben dieser Software wird ein funktionsfähiges IP-Netzwerk benötigt, in dem die Komponenten miteinander kommunizieren können. Aus diesem Grund werden eine Reihe kleiner Tools benötigt, die allerdings bei nahezu jedem Betriebssystem direkt mitinstalliert werden. Hierbei handelt es sich um Programme, die das Routing sowie die Firewall steuern. Zu dem Netzwerk gehört zuletzt noch ein DHCP-Server (Dynamic Host Configuration Protocol), der IP-Adressen an die anfragenden virtuellen Maschinen verteilt.

Die Anforderungen an die einzelnen Node Controller sind im Wesentlichen gekennzeichnet durch die Voraussetzungen, die für den Betrieb von virtuellen Betriebssystemen erforderlich sind. In Eucalyptus werden zwei verschiedene Konzepte für die Virtualisierung von Betriebssystemen benutzt. Dies sind KVM und Xen. Für die Systemvoraussetzungen dieser beiden Komponenten sei auf die entsprechenden Dokumentationen verwiesen[69][70]. Da auch auf den Node Controllern Perl-Skripte laufen, die den Ablauf steuern, wird auch auf diesen Maschinen eine lauffähige Perl-Umgebung benötigt. Aufgrund der Netzwerkkommunikation mit den Cloud bzw. Cluster Controllern werden auf den Node Controllern ebenfalls die o.g. Betriebssystemkomponenten für die Netzwerkkonfiguration benötigt. Zusätzlich muss für die virtuellen Betriebssysteme aber eine virtuelle Netzwerkschnittstelle eingerichtet werden, die die Daten der virtuellen Betriebssysteme an die physikalische Netzwerkschnittstelle weitergibt. Dadurch können die in der Cloud Computing Umgebung virtualisierten Betriebssysteme mit der Außenwelt in Verbindung treten. Die dafür benötigten Tools sind aber in den meisten Betriebssystemen standardmäßig integriert.

Client Rechner, die mit der Eucalyptus Plattform kommunizieren wollen, müssen die "ec2-ami"-[71] und "ec2-api"-[72]Werkzeuge des Amazon Toolkits installiert haben. Diese Tools sind für die Kommunikation mit der Cloud Computing Plattform von Amazon entwickelt worden und können für Eucalyptus ebenfalls verwendet werden. Eucalyptus ist an dieser Stelle kompatibel zu den Tools von Amazon. Diese Werkzeuge von Amazon haben ihrerseits zur Voraussetzung, dass Java bzw. Ruby installiert ist.

Abbildung 11: Testaufbau des Prototypen
Abbildung 11: Testaufbau des Prototypen

7.3 Umsetzung

In diesem Szenario wird Eucalyptus in der Version 1.5 verwendet. Dies ist in den Paketverwaltungen aller neuen Linux Distributionen bereits enthalten. Für die Installation stehen insgesamt drei Rechner zur Verfügung. Die erste Maschine wird verwendet, um das Eucalyptus Frontend mit Cloud- und Cluster Controller aufzubauen. Der Einfachheit halber werden der Cloud Controller und der Cluster Controller auf derselben Maschine installiert. Auf dem zweiten Rechner, der hardwareseitig Virtualisierung unterstützen muss, wird ein Eucalyptus Node Controller in Betrieb genommen. Dieser Rechner wird die Instanzen der virtuellen Betriebssysteme ausführen. Der letzte Rechner steht als Client zur Bedienung der Cloud Computing Plattform, die aus den beiden o.g. Rechnern besteht, zur Verfügung. Der schematische Aufbau ist der Abbildung 11 zu entnehmen.

Die in diesem Beispiel verwendete Cloud beinhaltet lediglich einen einzigen Node Controller, der vom Cluster Controller auf der Frontend Maschine gesteuert wird. Bei größeren Installationen können hier mehrere Node Controller angebunden werden, die mit Hilfe von Cluster Controllern noch gruppiert werden können. Die Kommunikation zwischen den einzelnen Komponenten läuft dann über Netzwerkschnittstellen ab. Somit können die zu startenden virtuellen Maschinen auf die Node Controller verteilt werden. Dies dient vor allem der Lastverteilung.

Auf den Maschinen müssen für den Betrieb eines Eucalyptus Systems verschiendene Softwarepakete installiert sein. Im Folgenden wird von Ubuntu Linux in der Version 9.04 als Betriebssystem auf den Rechnern ausgegangen. Neben der Grundinstallation des Betriebssystems sind auf dem Frontend Rechner allerdings noch weitere Softwarepakete nötig. Diese sind im folgenden Listing aufgeführt:

  eucalyptus-cloud
  eucalyptus-cc

Auch der Rechner, der als Node Controller fungiert, braucht neben den installierten Softwarepaketen des Betriebssystems noch weitere Software. Im Falle des Node Controllers beschränkt sich die Anzahl der zu installierenden Pakete aber auf ein Einziges. Für das Ubuntu Linux 9.04 ist dies:

  eucalyptus-nc

Da die Pakete jeweils noch Abhängigkeiten haben zu anderen Paketen haben, müssen letztere vor der Installation der Eucalyptus Komponenten installiert sein. Dies kann auch von dem Paketmanager des Betriebssystem automatisch umgesetzt werden. Allerdings wird an dieser Stelle wird darauf aufgrund des begrenzten Umfangs der Fallstudie nicht weiter eingegangen.

7.3.1 Konfiguration des Cloud- und Cluster Controllers

Nach der Installation der Pakete gilt es, diese zu konfigurieren. Für das Frontend sind lediglich einige Zeilen in der Konfigurationsdatei (normalerweise /etc/eucalyptus/eucalyptus.conf) zu editieren. Die entsprechend wichtigen Zeilen sind im folgenden Listing aufgeführt:

  START_CLOUD="Y"
  START_CC="Y"
  START_NC="N"
  ENABLE_WS_SECURITY="Y"
  CLOUD_PORT="8773"
  CLOUD_SSL_PORT="8443"
  CC_PORT="8774"
  NODES="10.51.0.126 10.51.0.250"
  VNET_INTERFACE="eth0"
  VNET_MODE="SYSTEM"

Die ersten drei Zeilen regeln, welche Komponenten des Eucalyptus Systems gestartet werden sollen. Für das Frontend wird eingestellt, dass lediglich Cloud- und Cluster Controller starten. Außerdem wird mit Hilfe der 4. Zeile konfiguriert, dass die einzelnen Komponenten mittels sicherer Verbindungen miteinander kommunizieren sollen. Die folgenden drei Zeilen dienen der Festlegung der zu verwendenden Ports. Letztere sind voreingestellt und müssen in der Regel nicht angepasst werden. Diese Angaben sind allerdings u.U. für die Konfiguration einer vorgeschalteten Firewall von Interesse.

Danach folgt eine Zeile, in der IP-Adressen von Node Controllern hinterlegt sind, die vom Frontend eingebunden werden. Für die Kommunikation mit den Nodes ist außerdem die Angabe eines Netzwerkinterfaces, über das die Nodes erreicht werden können, nötig. Dies wird mit der Angabe VNET_INTERFACE realisiert. Die letzte Zeile legt fest, ob Eucalyptus die Administration des Netzwerkes der virtuellen Maschinen übernehmen soll oder ob dies das Betriebssystem tut. Mit der Angabe SYSTEM wird im Wesentlichen bewirkt, dass die Zuweisung von IP-Adressen an die virtuellen Maschinen von einem DHCP-Server erledigt wird, welcher außerhalb des Eucalyptus Systems steht. Als Alternative kann hier im Modus STATIC eine Liste von IP-Adressen angegeben werden, die die virtuellen Maschinen dann verwenden. In dieser Variante benötigen die VM's keinen DHCP-Server, sondern bekommen die angegebenen IP-Adressen vom Eucalyptus System selbst zugewiesen.

7.3.2 Konfiguration des Node Controllers

Der Node Controller wird ebenfalls über die gleiche Konfigurationsdatei gesteuert. Hier sind allerdings einige Werte anders gesetzt bzw. andere Konfigurationsanweisungen nötig. Die hier verwendete Konfiguration zeigt das folgende Listing:

  START_CLOUD="N"
  START_CC="N"
  START_NC="Y"
  ENABLE_WS_SECURITY="Y"
  NC_PORT="8775"
  HYPERVISOR="kvm"
  MAX_MEM=2048
  MAX_CORES="2"
  SWAP_SIZE=512
  INSTANCE_PATH="/var/lib/eucalyptus/instances"
  NC_CACHE_SIZE=20000
  VNET_INTERFACE="eth3"
  VNET_BRIDGE="br0"

Hier wird festgelegt, dass auf dem Node Controller nur die Node Komponente von Eucalyptus gestartet werden soll. Cloud- und Cluster Controller werden nicht gestartet. Um die Kommunikation zu ermöglichen, sind auf allen Systemen die gleichen Einstellungen bzgl. der Sicherheit der Verbindungen zu tätigen. Daher wird auch hier unter Angabe der Konfigurationsanweisungen in der vierten Zeile eine sichere Kommunikation verwendet. Auch für den Node Controller muss ein ensprechender Port konfiguriert werden, über den der Node Controller mit seinem zugehörigen Cluster Controller kommunizieren kann.

Darauf folgen im zweiten Abschnitt der Konfiguration ab Zeile 6 Angaben darüber, wie mit den virtuellen Maschinen umzugehen ist. Zuerst folgt eine Angabe über den zu verwendenden Hypervisor. In diesem Falle wird KVM verwendet. In der hier verwendeten Version von Eucalyptus steht als Alternative noch Xen zur Wahl. Hierbei handelt es sich um zwei grundlegend verschiedene Konzepte zur Virtualisierung von Betriebssystemen unter Linux.

Weiter folgen Optionen, die regeln, wie viel Arbeitsspeicher durch die virtuellen Maschinen verwendet werden darf und wie viele Prozessoren bei Mehrprozessorsystemen maximal benutzt werden können. Die Angabe SWAP_SIZE definiert, wie groß die Auslagerungspartitionen der virtuellen Maschinen sein sollen. Hier wird der vorgegebene Standardwert von 512 MB verwendet.

Die Konfigurationsvariable INSTANCE_PATH legt fest, wo die lokalen Kopien der Images der virtuellen Maschinen gespeichert werden sollen. Das angegebene Verzeichnis wird unter anderem als Cache genutzt, um die vom Frontend heruntergeladenen Betriebssystemimages zwischenzuspeichern. Daher sollte das Verzeichnis auf einer Festlatte liegen, die entsprechend genug Platz bietet. Alternativ bietet es sich an, dieses Verzeichnis auf einen Speicher im Netzwerk auszulagern. Der Einfachheit halber wird hier ein Verzeichnis auf der lokalen Festplatte verwendet. Dazu kann mit NC_CACHE_SIZE angegeben werden, wie viel Speicher in MB Eucalyptus maximal als Cache verwenden kann. Damit wird verhindert, dass Eucalyptus den gesamten verfügbaren Speicherplatz auf der Festplatte verwendet. Denn dies kann dazu führen, dass das Wirtsbetriebssystem selbst keinen Speicherplatz mehr zur Verfügung hat und damit nicht mehr funktioniert.

Abbildung 12: Schematische Darstellung der virtuellen Netzwerkverbindungen innerhalb des Node Controllers
Abbildung 12: Schematische Darstellung der virtuellen Netzwerkverbindungen innerhalb des Node Controllers

Die letzten beiden Angaben beziehen sich wie beim Frontend auf die Netzwerkkonfiguration. Die erste der beiden Optionen gibt an, welche der Netzwerkschnittstellen des Wirtssystems verwendet wird, um die Kommunikation mit dem Cluster Controller abzuwickeln. Die zweite Option gibt die Netzwerkschnittstelle an, die die virtuellen Betriebssysteme für die Kommunikation mit der Außenwelt verwenden sollen. Dies ist typischerweise eine Bridgeschnittstelle zu einem physikalischen Netzwerkadapter, der mit dem Internet verbunden ist. Die Verwendung einer Bridgeschnittstelle ermöglicht es den virtualisierten Betriebssystemen mit eigenen IP-Adressen zu kommunizieren. Dafür sind die Netzwerkschnittstellen der virtuellen Maschinen mit der Bridgeschnittstelle des Wirtssystems verbunden. Die Bridgeschnittstelle reicht die Daten dann einfach an den physikalischen Netzwerkadapter weiter bzw. nimmt die Daten von diesem entgegen. Somit sind die virtuellen Maschinen immer unter ihren eigenen IP-Adressen, die sie von dem DHCP-Server zugewiesen bekommen, von außen erreichbar und können Dienste anbieten.

Die Abbildung 12 stellt die Kommunikationspfade innerhalb des Node Controllers schematisch dar. Jede virtuelle Maschine, die auf dem Node Controller läuft, hat eine virtuelle Verbindung zur o.g. Bridgeschnittstelle. Die Bridgeschnittstelle trägt in diesem Beispiel den Namen br0. Diese ist wiederum intern mit dem physikalischen Netzwerkadapter - hier eth0 genannt - verbunden. Der physikalische Netzwerkadapter stellt nach außen hin die Verbindung zum Netzwerk her. Um den Aufwand der Konfiguration gering zu halten, wird in diesem Beispiel für die Kommunikation mit dem Cluster Controller der gleiche physikalische Netzwerkadapter verwendet wie für die Anbindung der virtuellen Maschinen über die Bridgeschnittstelle.

Damit ist die Konfiguration des Node Controllers abgeschlossen und das System ist betriebsbereit, um virtuelle Betriebssysteme starten zu können. Im nächsten Abschnitt wird beschrieben, wie die einzelnen Komponenten miteinander verbunden werden und damit eine betriebsbereite Cloud Computing Plattform bereitstellen.

7.3.3 Herstellen der Kommunikation

Nach der Konfiguration von Node-, Cluster- sowie Cloud Controller sind dem Cloud Controller die zu verwendenden Cluster Controller bekannt zu machen. Dies wird mit einem einfachen Befehl erledigt:

  # euca_conf -addcluster <clustername> localhost

Da hier der Cluster Controller auf dem gleichen Rechner läuft wie der Cloud Controller, wird als Hostname localhost angegeben. Außerdem wird der Befehl nur einmal abgesetzt, weil für das Beispiel nur ein Cluster Controller verwendet wird. Auch ein Name für das Cluster kann angegeben werden. Dies dient der Strukturierung und kann beispielsweise der Name des Rechenzentrums sein, in dem der Cluster Controller steht. Der Befehl ist für jeden anzubindenden Cluster erneut unter Verwendung der jeweiligen Namen und Adressen einzugeben. Des Weiteren müssen dem Cluster Controller die Adressen der Node Controller, die er nutzen kann, mitgeteilt werden. Das wird mit diesem Befehl erreicht (IP-Adresse kann abweichen):

   # euca_conf -addnode 10.51.0.250  

Auch dieser Befehl ist für jeden Node Controller erneut unter Angabe der Adresse desselbigen einzugeben. Damit werden dem Cluster Controller alle Node Controller bekannt gemacht, die zur Ausführung virtueller Maschinen genutzt werden sollen.

Die obige Anweisung erfordert allerdings, dass auf den Nodes ein öffentlicher Schlüssel hinterlegt wird, damit der Cluster Controller Befehle auf den Node Controllern ausführen kann. Nach der Bestätigung des Befehls wird der Schlüssel angezeigt. Diesen kann direkt von der Konsole auf die Node Controller kopiert werden. Nach Erledigung dieser Aufgabe werden die weiteren Zertifikate und Schlüssel automatisch auf den neuen Node Controller kopiert und die Kommunikation getestet.

Nachdem diese Konfiguration erfolgreich abgeschlossen wurde, ist die Cloud Computing Plattform einsatzbereit. Somit kann mit der Einrichtung des Client Rechners fortgefahren werden, um anschließend virtuelle Betriebssysteme auf die Plattform zu laden und auszuführen.

7.3.4 Konfiguration des Client Rechners

Auf dem Client Rechner sind die EC2 Tools von Amazon vorzuhalten. Diese können von der Webseite des Herstellers heruntergeladen werden. Die heruntergeladenen Archive beinhalten direkt die ausführbaren Dateien und brauchen nicht kompiliert und installiert werden. Die EC2 AMI Tools enthalten alle nötigen Werkzeuge, um Abbilder virtueller Betriebssysteme zu erstellen und auf die Cloud Computing Plattform heraufzuladen. Die EC2 API Tools dagegen stellen das Client Interface für die Cloud Computing Plattform dar. Damit können Instanzen der virtuellen Betriebssysteme registriert und gestartet werden. Auch eine vorübergehende Deaktivierung verfügbarer Images ist damit möglich.

Für die Kommunikation mit dem Cloud Controller werden X.509 Zertifikate benötigt, die bei der Installation von Eucalyptus erstellt werden und von der integrierten Webseite des Cloud Controllers heruntergeladen werden können. Die Webseite des Cloud Controllers ist über die folgende Adresse erreichbar (localhost ist durch die aktuelle IP-Adresse des Cloud Controllers zu ersetzen):

  http://localhost:8443/


Abbildung 13: Integrierte Webseite des Eucalyptus Cloud Controllers
Abbildung 13: Integrierte Webseite des Eucalyptus Cloud Controllers

Im Abschnitt Crendentials ist dazu ein Link Download Certificate auf der Seite zu finden. Ein Klick darauf bietet ein Archiv zum Download an, das alle nötigen Zertifikate enthält, die für die sichere Kommunikation mit dem Cloud Controller nötig sind. Diese werden in das Verzeichnis extrahiert, welches auch die EC2 Tools beinhaltet. Die Webseite sowie den Button für den Download der Zertifikate zeigt die Abbildung 13.

Weiterhin ist auf dem Client Rechner mit Hilfe der EC2 API Tools und dem Befehl

  ec2-add-keypair <name>

ein Schlüsselpaar aus öffentlichem und privatem Schlüssel zu erzeugen, der als Datei und dem angegebenen Namen im aktuellen Verzeichnis abgelegt wird. Der private Schlüssel wird von Eucalyptus verwendet, um den SSH Server der virtuellen Maschinen zu konfigurieren, damit diese den benutzen können. Der öffentliche Teil des Schlüsselpaars steht dem Anwender zur Verfügung. Dieser hat die Möglichkeit, sich damit auf dem SSH Server der virtuellen Maschinen anzumelden.

Damit ist die komplette Infrastruktur geschaffen, die für den Betrieb der Cloud Computing Plattform Eucalayptus erforderlich ist. Diese besteht im Wesentlichen aus Cloud-, Cluster- und Node Controller sowie dem Client auf einem separaten Rechner, der der Bedienung der Plattform dient. Daher kann im nächsten Schritt mit der Erstellung von Images fortgefahren werden. Diese Images werden dann auf das Frontend hochgeladen und beinhalten die Abbilder der virtuellen Maschinen, welche die Anwender nachher starten können.

7.3.5 Erstellung und Upload von Betriebssystemimages

In diesem Beispiel wird der Einfachheit halber ein Abbild eines laufenden Betriebssystems auf dem Client erstellt. Dazu wird ein Programm namens vm-builder benutzt. Dieses stellt auf Basis des laufenden Kernels eine Abbilddatei her, die zur Ausführung des Systems in einer virtuellen Umgebung dient. Dabei werden drei Dateien erstellt, die den Kernel, eine Ramdisk und das Abbild der Ordnerstruktur des Betriebssystems enthalten. Für spezielle Anwendungen können hier Images erstellt werden, die dem Anwender verschiedene Funktionen bereitstellen. So können z.B. spezielle Images generiert werden, die einen Webserver oder einen Datenbankserver bereitstellen. Im späteren Verlauf kann der Anwender dann einfach auswählen, welche Funktionen er benötigt und das dementsprechende Image starten. Die im Verlauf dieses Prozesses erstellten Dateien müssen nun vom Client mittels der EC2 Tools auf das Frontend hochgeladen werden. Die Befehle lauten wie folgt:

  # ec2-bundle-image -i /boot/vmlinuz-2.6.28-11-generic -d ./kernel --kernel true
  # ec2-upload-bundle -b kernel -m ./kernel/vmlinuz-2.6.28-11-generic.manifest.xml
  # ec2-register kernel/vmlinuz-2.6.28-11-generic.manifest.xml

Damit wird das Image des Kernels für EC2 Kompatibilität komprimiert, hochgeladen und registriert. In ähnlicher Weise wird auch das Abbild der Ramdisk auf das Frontend hochgeladen:

  # ec2-bundle-image -i /boot/initrd.img-2.6.28-11-generic -d ./ramdisk --ramdisk true
  # ec2-upload-bundle -b ramdisk -m ramdisk/initrd.img-2.6.28-11-generic.manifest.xml
  # ec2-register ramdisk/initrd.img-2.6.28-11-generic.manifest.xml

Für das Abbild der Ordnerstruktur des Betriebssystems sind Angaben über den Kernel und die Ramdisk zu machen, die das Betriebssystem verwenden soll. Daher lauten die Befehle für das letzte Image:

  # ec2-bundle-image -i ubuntu-xen/root.img -d ./image --kernel <eki> --ramdisk <eri>
  # ec2-upload-bundle -b image -m ./image/root.img.manifest.xml
  # ec2-register image/root.img.manifest.xml

Die Parameter eki und eri sind durch die Werte zu ersetzen, welche die Registrierung von Kernel und Ramdisk als Identifier ausgeben.

Damit steht in der Cloud Umgebung ein virtuelles Betriebssystem zur Verfügung, dass durch den Anwender gestartet werden kann. Dieser kann sich mit dem Befehl

  # ec2-describe-images

eine Liste aller verfügbaren Images anzeigen lassen und auswählen, welches er starten möchte. Die Kennzeichnung der verschiedenen Betriebssysteme erfolgt hierbei mit Zeichenketten (Identifier), die einen bestimmten Aufbau haben und eindeutig sind. Die Ausgabe des Befehls ist in der folgenden Abbildung 14 beispielhaft dargestellt.

Abbildung 14: Ausgabe des Befehls ec2-describe-images
Abbildung 14: Ausgabe des Befehls ec2-describe-images

Die Identifier werden in der Ausgabe in der zweiten Spalte angezeigt und werden für den Start einer Instanz einer virtuellen Maschine durch den Anwender benötigt. Außerdem wird hier aufgeführt, ob einzelne Images als privat gekennzeichnet sind und somit nur von berechtigten Benutzern gestartet werden können. Ebenfalls erkennbar ist der Status der Images. Diese können als available oder deregistered gekennzeichnet sein. Ersteres ist der Fall, wenn die Images verfügbar sind und gestartet werden können. Letzteres dagegen zeigt an, dass die entsprechenden Images zwar hochgeladen wurden, aber nicht ausgeführt werden können. Diese Freigabe muss erfolgen, bevor ein Image gestartet werden kann. Für Wartungszwecke o.ä. bietet es sich an, einzelne Images temporär als nicht verfügbar zu kennzeichnen.

Weiterhin ist zu den Images, welche die Ordnerstrukturen (root) der Betriebssysteme enthalten, am Ende der Zeile noch aufgelistet, welche Kernel bzw. Ramdisks dazu gehören. Dazu werden die Identifier von Kernel (eki-xxxxxxxx) und Ramdisk (eri-xxxxxxxx) in den beiden letzten Spalten angezeigt. Die Kernel- bzw. Ramdisk-Images dagegen haben in der letzten Spalte eine entsprechende Kennzeichnung als kernel bzw. ramdisk.

Nach Abarbeitung dieses Abschnittes stehen auf der Cloud Computing Plattform ausführbare Images virtueller Betriebssysteme zur Verfügung. Der Nutzer bzw. Administrator der Plattform kann die hier genannten Aktionen wiederholen, um verschiedene Betriebssysteme für die Verwendung zu erstellen und hochzuladen. Der nächste und letzte Schritt erklärt, wie die hochgeladenen Images vom Client Rechner aus instanziiert und gestartet werden können.

7.3.6 Starten eines virtuellen Betriebssystems

Nach diesem Schritt ist die Plattform betriebsbereit und enthält Images der Betriebssysteme, die vom Anwender gestartet werden können. Der Nutzer hat jetzt die Möglichkeit, ebenfalls mit ec2-describe-images eine Liste aller verfügbaren Images zu generieren. Daraufhin hat er die Wahl, welches Betriebssystem ausgeführt werden soll. Dazu wird der entsprechende Identifier an den Befehl ec2-run-instances übergeben. Der vollständige Befehle sieht in etwa wie folgt aus:

  # ec2-run-instances <emi>

Die Zeichenfolge emi ist dabei durch den zugehörigen Identifier des zu startenden Images zu ersetzen. Der Befehl erzeugt keine Ausgabe. Stattdessen muss der Anwender sich selbst mit dem Befehl

  # ec2-describe-instances

einen Überblick über den Status seiner gestarteten Images verschaffen. Die Ausgabe des Befehls zeigt den Status der virtuellen Maschine an und ob bzw. welche IP-Adresse sie vom DHCP-Server erhalten hat. Diese Ausgabe zeigt die Abbildung 15.

Abbildung 15: Ausgabe des Befehls ec2-describe-instances
Abbildung 15: Ausgabe des Befehls ec2-describe-instances

Der Status running zeigt an, dass die virtuelle Maschine gestartet ist und läuft. Außerdem gibt es noch die Stati pending und terminated. Der Status pending kennzeichnet eine Maschine, die gestartet wurde und deren Image gerade vom Frontend heruntergeladen wird. Terminated dagegen markiert eine Maschine, die gerade heruntergefahren wird oder bereits heruntergefahren worden ist. Der Eintrag von heruntergefahrenen Maschinen wird dann nach Ablauf einer gewissen Zeit aus der Liste der verfügbaren Instanzen verschwinden.

Die vom Frontend heruntergeladenen Images der virtuellen Betriebssysteme werden in das Verzeichnis abgelegt, welches während der Konfiguration der Node Controller angegeben wurde. Von dort aus wird der Node Controller das virtuelle Betriebssystem ausführen. Weiterhin dient der Ordner als Cache. Dies bedeutet, dass das Image eines Betriebssystems nicht ein zweites Mal vom Frontend geladen wird, wenn der Anwender eine weitere Instanz dieses Betriebssystems startet. In diesem Fall wird lediglich lokal eine Kopie des Images angelegt und ausgeführt. Dies spart deutlich Bandbreite und Rechenzeit.

Nachdem der Anwender eine Instanz eines virtuellen Betriebssystems gestartet hat, bekommt diese virtuelle Maschine bei der o.g. Konfiguration nach dem Start eine IP-Adresse vom DHCP-Server zugewiesen. Da der Anwender dies von außen nicht einsehen kann, muss er die IP-Adresse selbst mit Hilfe des obigen Befehls ec2-describe-instances ermitteln. Dann kann er sich mit einem SSH Client auf der virtuellen Maschine einloggen. Der Node Controller veranlasst den SSH Server des virtuellen Betriebssystems ein vorher generiertes Zertifikat für die Anmeldung zu verwenden. Damit kann sich der Client in die virtuelle Maschine einloggen. Falls es zu Problemen kommen sollte und der Anwender sich nicht über das Netz an der virtuellen Maschine anmelden kann, hilft unter Umständen der Befehl:

  # ec2-get-console-output

Damit kann der Anwender sich die Ausgaben, die die virtuelle Maschine normalerweise am Terminal auf dem Bildschirm ausgibt, in der Konsole anzeigen lassen. Dies ermöglicht die Diagnose des Problems, wenn das Netzwerk wider Erwarten nicht funktionieren sollte. Eingaben an die Maschine sind auf diesem Wege allerdings nicht möglich. Hier ist der Anwender auf die Funktion des Netzes angewiesen. Daher sollte in dem Betriebssystem der virtuellen Maschine unbedingt ein SSH-Server installiert sein, der ein Anmelden an der Maschine von außen ermöglicht. Damit hat der Anwender die Möglichkeit, die Maschine zu administrieren und die angebotenen Services der Instanz zu konfigurieren. Die virtuelle Maschine verhält sich dabei genau wie ein physikalischer Rechner, der als Server dient.

7.4 Erweiterungsmöglichkeiten

Eine Erweiterungsmöglichkeit der Cloud Computing Plattform mit Eucalyptus bietet die hierarchische Strukturierung der beteiligten Rechner nach Aufgaben bzw. Rollen. So ist es durchaus möglich, Node Controller, Cluster Controller und Cloud Controller auf einem einzigen Rechner zu betreiben. Dieser Ansatz ist allerdings eher theoretischer Natur und entspricht genaugenommen nicht dem Konzept des Cloud Computings.

Für größere Plattformen mit entsprechend leistungsfähigen Anwendungen macht es aber Sinn, die o.g. Aufgaben auf drei oder mehr physikalisch vorhandene Rechner zu verteilen. Für jede Cloud Computing Plattform gibt es einen Cloud Controller, der nur einmal pro Plattform vorhanden sein kann. Von Cluster und Node Controllern können durchaus mehrere existieren. Die Cluster Controller dienen als Mittler zwischen dem Cloud Controller und den Node Controllern. Sie fassen eine Anzahl von Node Controllern zusammen und bilden damit eine Einheit gegenüber dem Cloud Controller.

Diese Aufteilung hat den Vorteil, dass den einzelnen Rechnern wesentlich mehr Rechenzeit und Speicherplatz zur Erfüllung ihrer jeweiligen Aufgabe zur Verfügung steht. So kann der Platz, der für die Images gebraucht wird, nicht mehr den vorhandenen Speicherplatz für die virtuellen Maschinen mindern und umgekehrt.

Es besteht die Möglichkeit, die Cloud Computing Plattform den Anforderungen entsprechend zu skalieren. So kann in einer kleineren Umgebung durchaus nur ein Cluster Controller unter dem Cloud Controller angeordnet werden, der dann mehrere Node Controller steuert. Sollte die Umgebung allerdings wachsen, ist es möglich, den Cluster Controller auf eine eigene Maschine auszulagern und mehrere Cluster Controller auf dieser Ebene parallel anzuordnen.

Daneben gibt es noch eine weitere Option, dem Problem des mangelnden Speicherplatzes auf den Festplatten zu begegnen. Auf den Betriebssystemen von Node und Cloud Controller können LVM (Logical Volume Manager) verwendet werden. Diese stellen eine Art virtuelle Zwischenschicht zwischen dem Betriebssystem und den Festplatten dar. So wird es ermöglicht, den Speicherplatz einfach zu vergrößern, indem eine weitere Festplatte eingebaut und in den LVM eingebunden wird. Eine sonst üblicherweise notwendige Neuinstallation des Betriebssystems auf der größeren Festplatte entfällt somit. Die entsprechend genutzten Partitionen können einfach um zusätzlichen Speicherplatz erweitert werden. Diese Tatsache ist vor allem dann hilfreich, wenn auf den Systemen der Speicherplatz knapp wird. Allerdings muss der LVM vor bzw. während der Installation des Betriebssystems eingerichtet werden. Wenn dies geschehen ist, hat der Administrator eine einfache Möglichkeit, den Speicherplatz auf den Systemen jederzeit zu vergrößern oder zu verkleinern.

8 Wirtschaftliche Aspekte

Gerade im Rahmen der Finanzkrise wird es für Unternehmen immer wichtiger, Kosten zu sparen und Prozesse zu optimieren. Ein Großer Teil der Kosten fällt im Bereich der IT an, welche ursprünglich bei den meisten Unternehmen nicht zur Kernkompetenz gehörte.

Ob sich hier der Einsatz eines Cloud Computing Systems lohnt, hängt zum großen Teil von der Struktur des Unternehmens ab. Zum Beispiel ist es für ein großes Unternehmen mit vielen spezialisierten Applikationen schwierig, aus der Umsetzung eines Cloud Computing Systems Gewinn bzw. Einsparungen zu generieren. Hingegen kann ein Unternehmen, welches lediglich mit Standard Applikationen arbeitet, hier sowohl Investitions- als auch Lizenzkosten einsparen. Des Weiteren vermindern sich Wartungskosten, da bei Cloud Computing Plattformen die Wartung zentral erfolgt und im Vergleich zu einer herkömmlicher IT-Struktur weniger Personal benötigt wird.

Dementsprechend kann keine allgemein gültige Aussage gemacht werden, inwiefern der Einsatz eines Cloud Computing Systems sinnvoll ist. Dies muss bei jedem Unternehmen individuell geprüft werden.

Abschließend kann aber gesagt werden, dass, sofern eine Umstellung des bestehenden IT-Systems in ein Cloud Computing System sinnvoll ist und diese erfolgreich durchgeführt werden konnte, ein erhebliches Einsparpotential für dieses Unternehmen besteht.

Auch der Aspekt von Green-IT wird durch Cloud Computing gefördert. So können Unternehmen darauf verzichten, viele Maschinen laufen zu lassen, die zunächst einmal keine Aufgaben haben, sondern als Backup für Systeme dienen, die z.B. Anwendungen für Kunden bereitstellen. Mit Hilfe von Cloud Computing können hier mit Hilfe des zentralen Managementwerkzeugs einfach neue Maschinen angelegt werden, die in der Cloud ausgeführt werden und ihre Dienste bereitstellen. Diese können zum benötigten Zeitpunkt per Mausklick verfügbar gemacht werden. Außerdem werden solche Aufgaben mitunter von der Software automatisch erledigt. Dieser Umsatnd erspart den Betrieb von Systemen, die im Falle eines Ausfalles Aufgaben von anderen Maschinen übernehmen müssen, damit angebotene Dienste jederzeit verfügbar sind.

9 Schlussbetrachtung

9.1 Ausblick

In der jüngsten Vergangenheit gab es einen regelrechten Hype um das Thema Cloud Computing. Nahezu jeder große IT-Dienstleister hat mittlerweile Produkte in seinem Angebot, die auf Cloud Computing ausgerichtet sind
In Anlehnung an: Gartner (2008)Abbildung 16: Gartner Hype Cycle 2008
In Anlehnung an: Gartner (2008)
Abbildung 16: Gartner Hype Cycle 2008[73]
.

Wie Abbildung 16 zeigt, sehen die Analysten von Gartner Research in den nächsten zwei bis fünf Jahren einen wachsenden Markt für das Cloud Computing. Hier zeigt sich, dass sich IT-Innovationen meistens zuerst im Konsumentenbereich durchsetzen, bevor sie auch für Unternehmen interessant werden. Anhand der Kurve ist zu erkennen, dass der Hype und die gesteigerten Erwartungen irgendwann in Enttäuschungen enden. Erst in der nächsten Phase wird langsam deutlich, wo eine Technologie realistisch gesehen einsetzbar ist und in Zukunft die Produktivität steigern kann. Diese Phasen werden von Gartner als Technology Trigger, Peak of Inflated Expectations, Trough of Disillusionment, Slope of Enlightenment und Plateau of Productivity bezeichnet. Manche dieser Technologien werden als einschneidende Veränderungen in der IT- und Geschäftswelt angesehen, während andere eher überschaubare Auswirkungen mit sich bringen. Der Hype Cycle von Gartner birgt wichtige Entscheidungshilfen für IT-Verantwortliche, wenn es darum geht, welche Technologien strategisch wichtig werden könnten und welche davon sich im eigenen Unternehmen überhaupt innerhalb der nächsten Jahre umsetzen lassen[74]. Anbieter, die in den vergangen Jahren ihre Orientierung am Endkunden ausgerichtet haben, sind demnach am Besten für einen Cloud Computing geprägten Markt gerüstet. Denn diese Firmen sind am ehesten in der Lage eine vom Kunden gewünschte Plattform für das neue Konzept umzusetzen. Im Gegensatz dazu laufen im Bezug auf den Aufbau einer für das Cloud Computing benötigen Web-Plattform die business-orientierten Firmen den Anforderungen oft hinterher. Im Zuge dieses Hypes gibt es immer mehr Projekte, die auf Cloud Computing Technologien aufsetzen sollen. Das Problem dabei ist allerdings, dass es keine einheitlichen Standards für Cloud Computing gibt.

Ende März 2009 schlossen sich einige Cloud Anbieter zusammen und veröffentlichten das Open Cloud Manifesto[75]. Dabei handelt es sich um ein Dokument, das verschiedene große Hersteller mit dem Ziel unterzeichnet haben, sich zu gemeinsamen Regeln im Bezug auf Cloud Computing als eine offene Plattform zu verpflichten. Zu den Unterzeichnern gehören zum Beispiel Sun Microsystems, Cisco und VMware[76]. Ziel der Initiative ist es, sich auf insgesamt sechs Prinzipien zu einigen, die die Entwicklung und den Betrieb von Cloud Computing Plattformen betreffen. Diese sechs Prinzipien sind:

Die Prinzipien des OpenCloud Manifesto
Tabelle 3: Die sechs Prinzipien des Open Cloud Manifesto[77]
Die Anbieter von Cloud Computing Plattformen sollen zusammenarbeiten, um die Herausforderungen der Einführung von Cloud Computing (Sicherheit, Integration, Portabilität, Interoperabilität, Betrieb/Management, Monitoring) durch Zusammenarbeit und Verwendung von angemessenen Standards zu adressieren.
Cloud Computing Anbieter sollen ihre Marktposition nicht dazu missbrauchen, Kunden an ihre spezielle Plattform zu binden und damit deren Auswahl von Anbietern einzuschränken.
Anbieter von Cloud Computing sollen existierende Standards verwenden, wo immer dies möglich ist. Die IT-Industrie hat bereits kräftig in die Entwicklung offener Standards und Organisationen zur Standardisierung investiert. Es gibt daher keine Notwenigkeit diese zu kopieren oder neu zu entwickeln.
Wenn neue Standards (oder Änderungen an bereits bestehenden Standards) notwendig werden, sollen die Anbieter pragmatisch zusammenarbeiten, um die Erstellung von zu vielen Standards zu vermeiden. Neue Standards sollen die Innovation unterstützen und nicht behindern.
Jede Bemühung der Open Cloud Gemeinschaft soll durch Kundenbedürfnisse getrieben sein und nicht durch technische Anforderungen der Cloud Computing Plattformanbieter. Diese sollen getestet und verifiziert werden.
Standardisierungsorganisationen für Cloud Computing und deren Befürworter sollen eng zusammenarbeiten und sich koordinieren, sodass die Anstrengungen sich nicht überlappen oder gegenseitig behindern.

Das Dokument wurde bisher von mehr als 200 Unternehmen unterzeichnet. Neben den großen Unternehmen der Branche findet sich darunter auch eine große Anzahl kleinerer Anbieter. Nicht dabei sind allerdings auch einige Größen der Branche wie Amazon, Microsoft oder Google[78]. Es wird jedoch erwartet, dass die Liste der Unterzeichner des Open Cloud Manifesto noch weitere Befürworter bekommt. Ingesamt bleibt aber abzuwarten, ob sich im Bereich von Cloud Computing tatsächlich einheitliche und offene Standards durchsetzen, die von möglichst vielen Herstellern unterstützt werden.

Neben dem Open Cloud Manifesto gibt es weitere Initiativen und Arbeitsgruppen, die sich mit Cloud Computing beschäftigen. Die DMTF (Distributed Management Task Force) hat den Open Cloud Standard Incubator initiiert. Ziel des Projektes ist es, einheitliche Standards im Bezug auf den Datentransfer zwischen Cloud Computing Pattformen zu schaffen. Diese sollen es Unternehmen ermöglichen, ihre Daten von einer auf eine andere Plattform zu migrieren. Von der Organisation wird das sogenannte OVF (Open Virtualization Format) propagiert, welches ein offenes Format für die Verteilung von Software für virtuelle Maschinen darstellt. Dieses Format soll ein zentrales Fundament für die Interoperabilität für Cloud Computing Plattformen darstellen. Die DMTF wird dabei von vielen größeren Unternehmen unterstützt. Dazu gehören u.a. Cisco, IBM, VMware, HP, Microsoft und Novell. Auch hier fehlt allerdings Amazon, der derzeitige Marktführer im Cloud Computing Bereich[79]. Die beiden Arbeitsgruppen "Open Cloud Consortium"[80] und "OGF Open Cloud Computing Interface Working Group"[81] befassen sich ebenfalls mit der Standardisierung und Offenlegung von Schnittstellen, sodass in Zukunft eine Interoperabilität zwischen den einzelnen Plattform besteht und bei Bedarf problemlos migriert werden kann.

Es ist zu erwarten, dass in Zukunft immer mehr Cloud Computing Projekte gestartet werden. GroundOS [82] ist so ein neues Projekt und ebenso wie das oben beschriebene EyeOS eine Technologie zur Entwicklung eines Cloud Computing Betriebssystems. Auch hier wird es standardisierte Anwendungen wie z.B. zur Textverarbeitung und Tabellenkalkulation geben. Dieses Projekt wird ebenfalls kostenfrei angeboten und finanziert sich zunächst nur über Spenden. Da dieses Projekt erst am 14.06.2009 freigegeben wird, war es leider nicht möglich, dieses System in dieser Fallstudie näher zu untersuchen.

9.2 Kritische Würdigung

Auch wenn Cloud Computing das Potenzial hat, sich in Zukunft als Technologie weiter zu verbreiten und durchzusetzen, sind auch einige kritische Aspekte anzumerken. Im Rahmen dieser Fallstudie wurde festgestellt, dass manche Softwareprodukte technisches Hintergrundwissen voraussetzen. Die Implementation und Installation ist nicht bei allen Werkzeugen ohne solch ein Wissen zu realisieren. Gerade die Softwarelösungen, die eine umfangreiche, verteilte Infrastruktur implementieren, sind hierbei als kritisch anzusehen. Die Dokumentationen zu den verschiedenen Softwareprodukten sind teilweise sehr technisch und recht kurz gehalten. Ohne entsprechendes Hintergrundwissen sind sie allerdings schwer zu verstehen. Daher ist der Einsatz solcher Software nur Profis zu empfehlen, die sich auf dem Gebiet der Virtualisierung bestens auskennen und die Hintergründe verstehen. Umfangreiche Problembeschreibungen und vor allem passende Lösungsansätze sind bei vielen Projekten nicht oder nur teilweise zu finden.

Problematisch sind ebenfalls die Bewertung der Einsatzmöglichkeiten und der Leistungsumfang der Software zu sehen, da gerade die IaaS Tools nicht umfassend getestet und somit auch keine Erfahrungen gesammelt werden konnten. Dazu kommt, dass zumindest bei den Open Source Produkten keine Reaktionszeiten für Patches garantiert werden können, sofern nicht eine Firma kostenpflichtigen und professionellen Support für das Produkt leistet. Hier ist der Anwender auf die Entwicklergemeinde angewiesen.

Ein sehr kritischer Punkt an diesem Konzept ist die Tatsache, dass ein Unternehmen, das eine Cloud Computing Plattform nutzt, sich Gedanken über die Sicherheit seiner Daten machen muss. Hier spielt vor allem die Frage nach der Sicherheit der Unternehmensdaten eine Rolle. Gerade dann, wenn die eingesetzte Cloud Computing Plattform per Internet über die ganze Welt verstreut ist, muss die Frage gestellt werden, wie und ob so die Kontrolle über die Unternehmensdaten behalten werden kann.

Ein weiterer Aspekt ist, dass das Konzept des Cloud Computings noch relativ jung ist. Daher existieren zum heutigen Zeitpunkt noch nicht sehr viele praktische Erfahrungswerte im Umgang mit solchen Produkten. Hier ist technisches Know-How sehr wichtig, wenn ein solches Produkt im Unternehmen eingesetzt werden soll.

9.3 Fazit

Zu Beginn dieser Arbeit wurden zunächst Grundlagen zum näheren Verständnis der Begriffe Cloud Computing und Open Source geschaffen. In diesem Zusammenhang wurden neben der Entstehungsgeschichte die diversen Ausprägungen und Lizenzmodelle vorgestellt. Im Anschluss daran wurden Cloud Computing Konzepte aus den verschiedensten Bereichen vorgestellt und nach bestimmten Kriterien beschrieben. Hier stand neben der Funktionalität die Finanzierung der Projekte bzw. die mögliche Nutzung des Angebots für Unternehmen im Vordergrund.

Aus diesem Pool wurde eine Software ausgewählt und mit dieser ein Prototyp aufgesetzt, um die Implementation einer Cloud testen zu können. Hier wurden zunächst die Anforderungen an die Hardware beschrieben und die Software im Anschluss auf einem Testserver installiert, konfiguriert und schlussendlich auf seine Erweiterbarkeit geprüft. Gerade diese Testmöglichkeit ist ein großer Vorteil von freier Software, da diese zunächst einmal sorgfältig analysiert werden kann, bevor diverse Kosten für Kauf oder Support anfallen. Zum Ende dieser Arbeit wurden die wirtschaftlichen Aspekte betrachtet und im Rahmen der Schlussbetrachtung ein Ausblick gegeben sowie die gesamte Thematik einer kritischen Begutachtung unterzogen.

Die wohl wichtigste Erkenntnis dieser Ausarbeitung ist, dass sich der Bereich des Cloud Computings gerade im Zusammenhang mit Open Source derzeit sehr stark entwickelt. Das Einsparpotential und die Synergieeffekte, die in diesem Bereich genutzt werden können, treiben die Umsetzung dieser Konzepte immer weiter voran. Daher gibt es immer mehr Projekte auf diesem Sektor. Auch wenn der Code der Open Source Applikationen offen gelegt wird, gibt es trotzdem die Möglichkeit, in diesem Bereich Gewinne zu generieren. Sei es durch das Entwickeln solcher Programme oder aber durch das Anbieten von Dienstleistungen und Wartungsverträgen. Einige Projekte haben definitiv das Potenzial, sich gegenüber Closed Source Software zu etablieren und werden im heutigen Unternehmensumfeld auch schon erfolgreich eingesetzt.

10 Fußnoten

  1. Vgl. Gartner (2009)
  2. Vgl. Richardson (2008)
  3. Vgl. Schmidt (2008)
  4. 4,0 4,1 Vgl. T-Systems (o.J.)
  5. 5,0 5,1 Vgl. Sirtl (2009)
  6. Vgl. Pettey (2008)
  7. Vgl. IBM Deutschland GmbH (2007)
  8. 8,0 8,1 Vgl. Hermann (2008)
  9. Vgl. Weiss (2007)
  10. 10,0 10,1 10,2 10,3 Vgl. Eymann (2008)
  11. Vgl. Hayes (2008)
  12. Vgl. Foster (2002)
  13. S. http://code.google.com/intl/de-DE/appengine
  14. S. http://aws.amazon.com
  15. S. http://www.ibm.com/ibm/cloud
  16. S. http://aws.amazon.com/s3
  17. Vgl. Foster et al. (o.J.) S. 2
  18. SearchDataCenter (2008)
  19. Vgl. Wichmann (2004) S. 3ff
  20. Vgl. Striewe (2007) S. 2f
  21. Vgl. Laurent (2004) S. 8f
  22. S. http://www.fsf.org
  23. S. http://www.opensource.org
  24. Vgl. Ghosh, Rishab Aiyer (2006)
  25. S. http://www.gnu.org/licenses/gpl.html
  26. S. http://www.bsd.org
  27. Vgl. Plötner / Wendzel (2008) S. 51
  28. S. http://de.creativecommons.org
  29. Vgl. Creative Commons (o.J.)
  30. S. http://open.eucalyptus.com
  31. 31,0 31,1 Vgl. Eucalyptus - About (o.J.)
  32. Vgl. Eucalyptus - Enterprise (o.J.)
  33. Vgl. Eucalyptus - Support (o.J.)
  34. 34,0 34,1 Vgl. Braun / Kunze (2009) S. 130
  35. Vgl. Braun / Kunze (2009) S.129f
  36. S. http://cloudtestbed.com
  37. S. http://workspace.globus.org
  38. Vgl. The Globus Alliance - Summary (o.J.)
  39. Vgl. Keahey, Kate (2009) Folie 7
  40. Vgl. The Globus Alliance - FAQ (o.J.)
  41. S. http://www.opennebula.org
  42. Vgl. OpenNebula - About (o.J.)
  43. Vgl. OpenNebula - Team & Sponsors (o.J.)
  44. S. http://www.reservoir-fp7.eu
  45. Anfragen werden so gut und so schnell wie möglich beantwortet
  46. Vgl. OpenNebula - Support (o.J.)
  47. S. http://www.enomaly.com
  48. Vgl. Enomaly (o.J.)
  49. S. http://www.openqrm.com/
  50. Vgl. OpenQRM - Features
  51. S. http://rechenburg.com/de/index.de.html
  52. S. http://www.openqrm.com/?q=node/30
  53. S. http://www.abiquo.com
  54. Vgl. Abiquo - Products (o.J.)
  55. Vgl. Abiquo - Blog (o.J.)
  56. S. http://www.eyeos.org
  57. S. http://eyeos.info/?lang=en
  58. S. http://www.opengoo.org
  59. S. http://www.opengoo.org/about.html
  60. S. http://www.fsf.org/licensing/licenses/agpl-3.0.html
  61. S. http://wave.google.com
  62. Vgl. ToTheTech (o.J)
  63. S. http://wave.google.com/help/wave/about.html
  64. S. http://code.google.com/apis/wave/guide.html
  65. S. http://www.sun.com/solutions/cloudcomputing/index.jsp
  66. S. http://uk.sun.com/offers/details/cloudcomputing/?cid=20090416GY_TACO_CLCO_0001
  67. Vgl. Eucalyptus - Prerequisites (o.J.)
  68. S. http://ant.apache.org
  69. S. http://www.linux-kvm.org/page/HOWTO1
  70. S. http://www.citrix.com/English/ps2/products/subfeature.asp?contentID=1681139
  71. S. http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88
  72. S. http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88
  73. Vgl. Gartner (2008)
  74. Vgl. Gartner (o.J.)
  75. S. http://www.opencloudmanifesto.org
  76. Vgl. Open Cloud Manifesto - Supporters (o.J.)
  77. Vgl. Open Cloud Manifesto - Principles (o.J.)
  78. Vgl. Bleich (2009)
  79. Vgl. Neumann (2009)
  80. S. http://www.opencloudconsortium.org
  81. S. http://www.occi-wg.org
  82. S. http://www.groundos.org


11 Literatur- und Quellenverzeichnis

Abiquo - Blog (o.J.) Abiquo: abiCloud for ISP, http://blog.abiquo.com/abicloud-for-isp Stand: 09.06.2009 18:25
Abiquo - Products (o.J.) Abiquo: abiCloud - open source cloud manager, http://www.abiquo.com/en/products/abicloud Stand: 09.06.2009 18:55
Bleich (2009) Bleich, Holger: Amazon und Microsoft zeigen wenig Interesse am Open-Cloud-Manifest, Hannover, März 2009, http://www.heise.de/ct/Amazon-und-Microsoft-zeigen-wenig-Interesse-am-Open-Cloud-Manifest--/news/meldung/135366 Stand: 13.05.2009 22:00
Braun / Kunze (2009) Braun, Christian / Kunze, Marcel: Hausmittel - Infrastrukturen für Clouds mit Eucalyptus selbst aufbauen, in: iX - Magazin für professionelle Informationstechnik, Heft 04/2009, S. 128ff. Heise Zeitschriften Verlag, Hannover 2009
Creative Commons (o.J) Creative Commons: Was ist CC?, http://de.creativecommons.org/was-ist-cc Stand: 11.06.2009 22:00
Enomaly (o.J.) Enomaly: Cloud Service Provider Edition, http://www.enomaly.com/Cloud-Service-Pr.cloudhosting.0.html Stand: 09.06.2009 21:45
Eucalyptus - About (o.J.) Eucalyptus Systems: The Eucalyptus Story, http://www.eucalyptus.com/about Stand: 08.06.2009 16:00
Eucalyptus - Enterprise (o.J.) Eucalyptus Systems: Enterprise, http://www.eucalyptus.com/enterprise Stand: 08.06.2009 16:10
Eucalyptus - Prerequisites (o.J.) Eucalyptus Systems: Eucalyptus Prerequisites (1.5), http://open.eucalyptus.com/wiki/EucalyptusPrerequisites_v1.5 Stand 10.06.2009 21:00
Eucalyptus - Support (o.J.) Eucalyptus Systems: Support, http://www.eucalyptus.com/enterprise/support Stand: 08.06.2009 16:30
Eymann (2008) Eymann, Torsten: Cloud Computing, 24.09.2008, http://www.oldenbourg.de:8080/wi-enzyklopaedie/lexikon/uebergreifendes/Kontext-und-Grundlagen/Markt/Softwaremarkt/Geschaftsmodell-(fur-Software-und-Services)/Cloud-Computing Stand: 10.06.2009 10:35
Foster (2002) Foster, Ian: What is the Grid? A Three Point Checklist, 20.07.2002, http://www.mcs.anl.gov/~itf/Articles/WhatIsTheGrid.pdf Stand: 10.06.2009 08:18
Foster et. al (o.J.) Foster, Ian / Zhao, Yong / Raicu, Ioan / Lu, Shiyong: Cloud Computing and Grid Computing 360-Degree Compared, http://arxiv.org/ftp/arxiv/papers/0901/0901.0131.pdf Stand: 10.06.2009 23:10
Gartner (2008) Gartner Inc.: Gartner Highlights 27 Technologies in the 2008 Hype Cycle for Emerging Technologies, Stamford - Connecticut, 11.08.2008, http://www.gartner.com/it/page.jsp?id=739613 Stand: 11.05.2009 12:44
Gartner (2009) Gartner Inc.: Gartner Identifies the Top 10 Strategic Technologies for 2009, Stamford - Connecticut, Oktober 2008, http://www.gartner.com/it/page.jsp?id=777212 Stand: 12.05.2009 16:00
Gartner (o.J.) Gartner Inc.: Interpreting Technology Hype, http://www.gartner.com/it/products/research/methodologies/research_hype.jsp Stand: 11.06.2009 12:11
Ghosh (2006) Ghosh, Rishab Aiyer / European Commission [Hrsg.]: Economic impact of open source software on innovation and the competitiveness of the Information and Communication Technologies (ICT) sector in the EU, Maastricht - Niederlande, November 2006, http://ec.europa.eu/enterprise/ict/policy/doc/2006-11-20-flossimpact.pdf Stand: 12.05.2009 22:00
Hayes (2008) Hayes, Brian: Cloud Computing, Juli 2008, http://bit-player.org/bph-publications/CACM-2008-07-Hayes-cloud.pdf Stand: 05.06.2009 18:43
Herrmann (2008) Herrmann, Wolfgang: Cloud Computing - Die geplante Revolution, 12.12.2008, http://www.computerwoche.de/knowledge_center/software_infrastruktur/1881561/index.html Stand: 06.06.2009 19:53
IBM Deutschland GmbH (2007) o.V.: IBM präsentiert auf Open Source basiertes „Cloud Computing“, Stuttgart, 15.11.2007, http://www.pressebox.de/pressemeldungen/ibm-deutschland-gmbh-4/boxid-137212.html Stand: 06.06.2009 17:12
Keahey (2009) Keahey, Kate: Cloud Computing with Nimbus, Januar 2009, http://cd-docdb.fnal.gov/cgi-bin/RetrieveFile?docid=3059&version=1&filename=cloud_computing.ppt Stand: 08.06.2009 18:00
Laurent (2004) Laurent, Andrew M. St.: Understanding open source & free software licensing, O'Reilly Media, Sebastopol, 2004, ISBN 978-0-5960-0581-8
Neumann (2009) Neumann, Alexander: Neue Initiative für offenes Cloud-Computing-Management, Hannover, April 2009, http://www.heise.de/newsticker/Neue-Initiative-fuer-offenes-Cloud-Computing-Management--/meldung/136911 Stand 16.05.2009 14:15
Open Cloud Manifesto - Supporters (o.J.) Open Cloud Manifesto:The following companies and groups support open cloud manifesto, http://www.opencloudmanifesto.org/supporters.htm Stand: 07.06.2009 16:00
Open Cloud Manifesto - Principles (o.J.) Open Cloud Manifesto:Principles of an Open Cloud, http://www.opencloudmanifesto.org/opencloudmanifesto5.htm 07.06.2009 16:30
OpenNebula - About (o.J.) OpenNebula: About, http://www.opennebula.org/doku.php?id=about Stand: 11.06.2009 16:00
OpenNebula - Support (o.J.) OpenNebula: Support, http://www.opennebula.org/doku.php?id=support Stand: 11.06.2009 16:20
OpenNebula - Team & Sponsors (o.J.) OpenNebula: Team & Sponsors, http://www.opennebula.org/doku.php?id=team Stand: 11.06.2009 16:30
OpenQRM - Features (o.J.) OpenQRM: Features:, http://www.openqrm.com/?q=node/74 Stand 12.06.2009 01:30
Pettey (2008) Pettey, Christy: Gartner Says Cloud Computing Will Be As Influential As E-business, 26.06.2008, Stamford - Connecticut, http://www.gartner.com/it/page.jsp?id=707508 Stand: 06.06.2009 15:23
Plötner / Wendzel (2008) Plötner, Johannes / Wendzel, Steffen: Linux - Das distributionsunabhängige Handbuch, Galileo Press GmbH, Bonn, 2008, ISBN 978-3-8362-1090-4
Richardson (2008) Richardson, Chris: A great definition of Cloud Computing, 27.09.2008, http://chris-richardson.blog-city.com/a_great_definition_of_cloud_computing.htm Stand: 10.06.2009 15:24
Schmidt (2008) Schmidt, Holger: Internetgiganten kämpfen um die Wolke, 05.05.2008, http://www.faz.net/s/RubE2C6E0BCC2F04DD787CDC274993E94C1/Doc~E1F5DC58852F24B3F9DC6AA81B0DF3977~ATpl~Ecommon~Scontent.html Stand: 10.06.2009 16:03
SearchDataCenter (2008) o.V.: ASP, SaaS, SOA, Cloud Computing und Grid Computing. Alles gleich oder doch anders, 22.09.2008, http://www.searchdatacenter.de/forum/messages.cfm?threadid=EB21BAA9-5F9D-4755-B1C7C1CBABEB1555 Stand: 09.06.2009 11:23
Sirtl (2009) Sirtl, Holger: Cloud Computing mit der Microsoft-Plattform, 2009, http://download.microsoft.com/download/9/e/c/9ec550ae-5177-4b50-8cd0-a27f7ae1722e/MSPress_Azure_Kap_01.pdf Stand 29.05.2009 12:17
Striewe (2007) Striewe, Nicolai: Open Source - Historische Entwicklung eines Begriffs und seine künftige Bedeutung für den Informations- und Kommunikationsmarkt, Grin Verlag, München, 2007, ISBN 978-3-6388-6099-4
T-Systems (o.J.) T-Systems Enterprise Services GmbH [Hrsg.]: White Paper Cloud Computing - Alternative Sourcing-Strategie für Unternehmens-ICT, Frankfurt o.J., http://download.sczm.t-systems.de/ContentPool/de/StaticPage/61/17/50/611750_WhitePaper_Cloud-Computing-ps.pdf?client=t-systems.de Stand: 11.06.2009 20:00
The Globus Alliance - Summary (o.J.) The Globus Alliance (o.J.): Nimbus TP2.2 - Bird's Eye View, http://workspace.globus.org/vm/TP2.2/summary.html Stand: 10.06.2009 18:15
The Globus Alliance - FAQ (o.J.) The Globus Alliance (o.J.): Frequently Asked Questions, http://workspace.globus.org/vm/faq.html Stand: 10.06.2009 18:50
ToTheTech (o.J.) o.V.: http://images.tothetech.com/2009/05/google-wave-snapshots-inbox.jpg, Stand: 12.06.2009 23:00
Weiss (2007) Weiss, Aaron: Cloud computing: PC functions move onto the web, in: netWorker, Volume 11, Issue 4, Dezember 2007, Nr. 4, S. 16-25, ACM - New York, ISSN 1091-3556
Wichmann (2004) Wichmann, Thorsten: Linux- und Open-Source-Strategien, Springer Verlag, Berlin, 2004, ISBN 978-3-5402-2810-3
Persönliche Werkzeuge