Kategorien
Literatur

Dissertation: "Scalable Cluster Technologies for Mission-Critical Enterprise Computing" von Dr. Werner Vogels

Die Dissertation „Scalable Cluster Technologies for Mission-Critical Enterprise Computing“ von Dr. Werner Vogels gehört zu den grundlegenden Forschungsarbeiten des Cloud Computing. Ein Blick auf die Infrastruktur von Amazon zeigt, wer der aktuelle CTO und für den Aufbau der hochskalierbaren Infrastruktur sowie die Cloud Angebote verantwortlich ist – Werner Vogels.

Die Arbeit beschreibt Einsatzmöglichkeiten von hochskalierbaren Cluster-Technologien für den unternehmenskritischen Bereich.

Auch einer der Doktorväter der Arbeit sollte genannt werden und wird dem einen oder anderen bekannt sein – Prof.Dr. A.S. Tanenbaum.

Ein kurzer Auszug:

Enterprise computing has changed significantly in the past decade. In the past, the workloads at corporate datacenters were dominated by centralized processing using a limited number of big database servers, mainly handling online transaction processing (OLTP) and batch processing tasks in support of the back-office process. The organization of these datacenters has evolved from mainframe-oriented into a large collection of flexible application servers providing a very diverse set of services. These services still include the traditional order processing and inventory control, but now also provide internal and external information portals, continuous data-mining operations, pervasive integration of customer relationship management information, email and other collaboration services, and a variety of computational services such as financial forecasting.

An important observation is that these services have become essential to the successful operation of the enterprise, and that any service interruption, either through failure or through performance degradation, could bring the activities of the enterprise to a halt. The mission-critical nature of these services requires them to be scalable, highly-available, and with robust performance guarantees. Organizing these services into compute clusters appeared a logical step as cluster technology held the promise of cost-effective scalability and was considered to be a good basis for implementing a highly-available service organization.

Die Dissertation wurde an der Vrije Universiteit Amsterdam geschrieben und kann HIER direkt heruntergeladen werden.

Kategorien
Services

Clone Cloud

Trotz ihrer relativ leistungsschwachen Hardware werden an Mobiltelefonen/ Smartphones mittlerweile dieselben Ansprüche gestellt wie an gewöhnliche Desktops PCs. Eine mögliche Lösung kommt aus Intels Forschungsabteilung von den Wissenschaftlern Byung-Gon Chun und Petros Maniatis. Bei der sogenannten Clone Cloud [1] wird eine exakte Kopie des Smartphones in der Cloud abgebildet. Alle für das Smartphone zu rechenintensiven Aufgaben werden dann von diesem Clone in der Cloud übernommen.

Clone Cloud Architecture
Clone Cloud Architecture [2]

Für die Kommunikation mit dem Clone innerhalb der Cloud Computing Umgebung wird eine schnelle mobile Internetverbindung (UMTS/ 3G) benötigt. Ein erster Prototyp wurde von Chun und Maniatis bereits auf das Android G1 portiert und übertrug ohne Probleme die rechenintensiven Aufgaben zu dem Clone in die Cloud.

Das Prinzip ist mit dem von Web basierten Anwendungen zu Vergleichen, die ebenfalls auf entfernten Servern und nicht auf dem Client lokal ausgeführt werden. Der Unterschied besteht darin, dass bei der Clone Cloud eine exakte 1:1 Kopie von der gesamten Telefonsoftware erstellt und auf einem entferntem Server abgelegt wird. Muss das Telefon nun komplexe und rechenintensive Aufgaben durchführen, werden Teilaufgaben (im Hintergrund) in die Cloud übertragen. Zu Beginn wird zusätzlich berechnet wie lange der Transfer mittels der aktuell verfügbaren Mobilfunkverbindung dauert und wie viel Akkuleistung dafür benötigt wird.

Clone Cloud Model
Clone Cloud Model [2]

Chun und Maniatis sehen als einen Vorteil der Clone Cloud die höheren Akkulaufzeiten, da die CPU des Mobiltelefons nicht mehr so stark beansprucht wird. Neben der besseren Effizienz soll Clone Cloud ebenfalls die Leistungsfähigkeit der Mobiltelefone steigern. Erste Tests mit einer speziell für Clone Cloud entwickelten Gesichtserkennungssoftware zeigten, dass die Analyse eines Photos auf einem Standard Android Mobiltelefon ca. 100 Sekunden Prozessorzeit benötigten. Wurde die Analyse hingegen mit dem Clone des Mobiltelefons auf einem Desktop PC ausgeführt, war der Vorgang nach 1 Sekunde beendet. Da Clone Cloud in einer Cloud Computing Umgebung betrieben wird, nutzt es dessen Ideen und Eigenschaften und kann somit zur Laufzeit den benötigten Speicher und die Rechenleistung beliebig skalieren.

Ein weiterer Anwendungsvorschlag kommt von dem NEC Wissenschaftler Ya-Yunn Su. Durch den Wandel der Mobiltelefone zu kleinen Allzweck-Computern erben diese auch die Sicherheitsprobleme, wie Viren und Würmer, von den Desktop PCs. Das Scannen des gesamten Dateisystems benötigt viel Rechenleistung, zu viel für Mobiltelefone. Dieser Vorgang kann mittels der Clone Cloud im Hintergrund bzw. auf dem Clone (auf dem entfernten Server) durchgeführt werden, sogar dann wenn das Telefon ausgeschaltet ist.

Quellen:

[1] CloneCloud Website
[2] CloneCloud Paper

Kategorien
Literatur

Buch – Grid and Cloud Computing: A Business Perspective on Technology and Applications

Titel: Grid and Cloud Computing: A Business Perspective on Technology and Applications

Autor: Katarina Stanoevska-Slabeva, Thomas Wozniak, Santi Ristol

Beschreibung:
„In today’s dynamic business environment, IT departments are under permanent pressure to meet two divergent requirements: to reduce costs and to support business agility with higher flexibility and responsiveness of the IT infrastructure. Grid and Cloud Computing enable a new approach towards IT. They enable increased scalability and more efficient use of IT based on virtualization of heterogeneous and distributed IT resources. This book provides a thorough understanding of the fundamentals of Grids and Clouds and of how companies can benefit from them. A wide array of topics is covered, e.g. business models and legal aspects. The applicability of Grids and Clouds in companies is illustrated with four cases of real business experiments. The experiments illustrate the technical solutions and the organizational and IT governance challenges that arise with the introduction of Grids and Clouds. Practical guidelines on how to successfully introduce Grids and Clouds in companies are provided.“

Bestellmöglichkeit: Amazon

Cover:

Kategorien
Services

Eucalyptus – Eine Open Source Infrastruktur für die eigene Cloud

Beim Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus)[1][2] handelt es sich um eine Open Source Software Infrastruktur zum Aufbau von skalierbaren Utility Computing bzw. Cloud Computing Umgebungen für spezielle Clustersysteme oder einfachen miteinander verbundenen Arbeitsplatzrechnern.

Eucalyptus wurde als ein Forschungsprojekt am Computer Science department an der University of California Santa Barbara entwickelt und wird mittlerweile von der Eucalyptus Systems Inc. vermarktet. Die Software wird aber weiterhin als Open Source Projekt gepflegt und weiterentwickelt. Die Eucalyptus Systems Inc. bietet darüber hinaus lediglich weitere Dienstleitungen und Produkte sowie einen professionellen Support rund um Eucalyptus an.

Folgende Funktionen stellt Eucalyptus bereit:

– Kompatibilität mit den Schnittstellen zu Amazon EC2 und S3 (SOAP und REST).
– Unterstützung aller Virtual Machines die auf einem Xen Hypervisor oder einer KVM ausgeführt werden.
– Administrationstools für die System- und Benutzerverwaltung
– Die Möglichkeit mehrere Cluster für eine Cloud zu konfigurieren, wobei jeder einzelne Cluster über eine private interne IP-Adresse verfügt.

Architektur

Eucalyptus besteht aus fünf zusammenarbeitenden Hauptkomponenten um den angeforderten Cloud Service bereit zu stellen. Die Kommunikation zwischen den Komponenten erfolgt über gesicherte SOAP Nachrichten mittels WS-Security.

Cloud Controller (CLC)
Der Cloud Controller dient innerhalb einer Eucalyptus Cloud als Hauptkomponente für die Verwaltung des gesamten Systems und stellt den Administratoren und Benutzern einen zentralen Zugriffspunkt bereit. Die Kommunikation aller Clients mit dem Eucalyptus System erfolgt ausschließlich nur über den Cloud Controller anhand der auf SOAP oder REST basierenden API. Der Cloud Controller ist dafür zuständig, alle Anfragen zu der richtigen Komponente weiterzuleiten, diese zu sammeln und die Antwort der Komponente anschließend wieder zu dem Client zurück zu senden. Der Cloud Controller ist somit die öffentliche Schnittstelle einer Eucalyptus Cloud.

Cluster Controller (CC)
Der Cluster Controller ist innerhalb des Eucalyptus Systems für die Verwaltung des virtuellen Netzwerks zuständig. Der Cloud Controller erhält alle Anfragen auf Basis seiner SOAP oder REST Schnittstellen. Der Cloud Controller erhält alle Informationen über die vorhandenen Node Controllers des Eucalyptus Systems und ist für die Kontrolle des Lebenszyklus jedes einzelnen verantwortlich. Er leitet alle Anfragen an die Node Controller mit verfügbaren Ressourcen weiter um damit virtuelle Instanzen zu starten.

Node Controller (NC)
Ein Node Controller steuert das Betriebssystem und den zugehörigen Hypervisor eines Rechners (Node) im Eucalyptus System. Auf jeder physikalischen Maschine die eine durch den Cluster Controller instantiierte virtuelle Instanz auf Grund einer Anfrage beherbergt, muss eine Instanz eines Node Controller vorhanden sein.

Walrus (W)
Walrus ist für die Zugriffsverwaltung auf den Speicherdienst innerhalb eines Eucalyptus Systems zuständig. Walrus erhält die Anfragen über seine SOAP oder REST Schnittstelle.

Storage Controller (SC)
Der Storage Controller verwaltet den Speicherdienst innerhalb eines Eucalyptus Systems und verfügt über eine Schnittstelle zu Amazon’s S3 Dienst. Der Storage Controller arbeit in Verbindung mit Walrus und wird für die Speicherung und den Zugriff auf die Images der Virtual Machines, die Kernel Images, die RAM Disk Images und die Daten der Benutzer verwendet. Die Images der Virtual Machines können rein privat oder öffentlich zugänglich gemacht werden und können dabei komprimiert und verschlüsselt gespeichert werden. Die Images werden lediglich entschlüsselt, wenn ein Node eine neue virtuelle Instanz starten muss und dazu einen Zugriff auf das Image benötigt.

Ein Eucalyptus System vereint und verwaltet Ressourcen von Single-Cluster als auch Multi-Cluster Systemen. Dabei besteht ein Cluster aus einer Gruppe von Rechnern, die alle mit dem selben LAN verbunden sind. Zu jedem Cluster kann wiederum einer aber auch mehrere Node Controller gehören, die für die Verwaltung der Instantiierung und Beendigung der virtuellen Instanzen verantwortlich sind.

Wie in Abbildung 1 illustriert, besteht ein Single-Cluster aus mindestens zwei Maschinen. Auf dem einen werden der Cluster Controller, der Storage Controller und der Cloud Controller ausgeführt, auf dem anderen der Node Controller. Diese Art der Konfiguration ist vor allem für Experimente und schnelle Konfigurationen geeignet. Die dargestellte Konfiguration könnte ebenfalls auf einer einzigen Maschine implementiert werden. Allerdings ist dafür eine äußerst leistungsstarke Hardware notwendig!


Abbildung 1: Topologie einer Single-Cluster Eucalyptus Installation [2]

Wie in Abbildung 2 dargestellt, kann bei einem Multi-Cluster jede Komponente (CC, SC, NC, und CLC) auf einer separaten Maschine ausgeführt werden. Dies sollte die bevorzugte Art und Weise sein das Eucalyptus System zu konfigurieren, wenn damit ernsthaft gearbeitet werden soll. Mit einem Multi-Cluster kann zudem die Performance erhöht werden, indem einem Controller die passende Maschine zugewiesen wird. Zum Beispiel sollte der Cloud Controller auf einer Maschine mit einer schnellen CPU ausgeführt werden. Im Allgemeinen bringt die Entscheidung für einen Multi-Cluster eine höhere Verfügbarkeit, sowie eine bessere Lastverteilung und eine optimierte Verteilung der Ressourcen über alle Cluster. Das Clusterkonzept ist vergleichbar mit dem Konzept der Verfügbarkeitszonen der Amazon EC2. Dabei werden die Ressourcen über mehrere Verfügbarkeitszonen hinweg verteilt, damit ein Fehler in einer Zone nicht die Anwendung beeinträchtigt.


Abbildung 2: Topologie einer Multi-Cluster Eucalyptus Installation [2]

Folgende Hardwarevoraussetzungen müssen erfüllt sein, um darauf einen CC, CLC, Walrus oder SC auszuführen. [2]

Folgende Hardwarevoraussetzungen müssen erfüllt sein, um darauf einen NC auszuführen. [2]

Eucalyptus und die Ubuntu Enterprise Cloud

Bei der Ubuntu Enterprise Cloud (UEC) handelt es sich um eine Open Source Initiative von Ubuntu, um auf eine einfachere Art und Weise skalierbare Cloud Infrastrukturen auf Basis von Eucalyptus bereitzustellen und diese zu konfigurieren.

Mit der Ubuntu Enterprise Cloud können Public Clouds erstellt werden, welche Amazon’s EC2 infrastructure nutzen. Es können damit aber genau so gut Private Clouds entwickelt werden, die auf der eigenen Infrastruktur im eigenen Rechenzentrum hinter der eigenen Firewall gehostet werden.

Vorteile von Eucalyptus

Bei Eucalyptus handelt es sich um eine Umgebung für Cloud Services, mit der Public Clouds auf Amazon’s EC2 Infrastruktur bzw. Private Clouds im hauseigenen Rechenzentrum erstellt werden können. Die grundlegenden Vorteile sollen hier noch einmal kurz aufgeführt werden:

Open Source und Entwicklung
Eucalyptus wurde geschaffen, um die Kommunikation und Forschung von Cloud Computing Plattformen zu fördern. Der Quellcode ist frei verfügbar, was es ermöglicht die Plattform so zu erweitern, damit sie den eigenen Anforderungen entspricht. Eucalyptus wird zunehmend weiterentwickelt. Darüber hinaus ist die Aufnahme und Integration von Funktionswünschen und Verbesserungsvorschlägen sehr schnell.

Community
Eucalyptus verfügt über eine große Community die gerne bereit ist einander zu helfen. Über die Foren kann schnell Kontakt zu anderen Benutzern aufgenommen und Hilfe bezogen werden.

Public Cloud
Eucalyptus funktioniert einwandfrei auf Amazon’s EC2 Framework und kann damit als Public Cloud eingesetzt werden.

Private Cloud
Eucalyptus kann auf der eigenen Infrastruktur im eigenen Rechenzentrum hinter der eigenen Firewall als Private Cloud eingesetzt werden. Dadurch ist die Kontrolle bzgl. der Sicherheit und der gesamten Umgebung in der eigenen Hand.

Portabilität
Auf Grund der Kompatibilität von Eucalyptus mit Amazon’s EC2 API sowie der Flexibilität von Eucalyptus, können Anwendungen ohne großen Aufwand von einer Cloud in die andere migriert werden. Darüber hinaus besteht die Möglichkeit des Aufbaus von Hybrid Clouds, indem eine Private Cloud mit einer Public Cloud erweitert bzw. kombiniert wird.

Qualitativ durch Tests
Durch den Einsatz von Eucalyptus in Ubuntu’s Enterprise Cloud findet tagtäglich ein weltweiter realer Test auf Basis von mehr als tausend Server-Instanzen statt.

Kommerzieller Support
Neben den Foren der Eucalyptus Community kann natürlich auch auf einen kommerziellen Support zurückgegriffen werden.

Quellen:
[1] Eucalyptus
[2] IBM developerWorks

Kategorien
Grundlagen

Was ist Cloud Computing?

Geschichte

Die grundlegenden Ideen und Konzepte des Cloud Computing reichen bis in die 1960er zurück. Schon damals hatte Prof. John McCarthy die Idee entwickelt Rechenleistung und Anwendungen als Utility der Öffentlichkeit gegen eine Nutzungsgebühr bereitzustellen. Dass der Durchbruch erst heute bevorsteht, hängt mit den technischen Voraussetzungen zusammen, die zur damaligen Zeit einfach noch nicht gegeben waren.

Kurz zusammengefasst beginnt die Entwicklung zum heutigen Cloud Computing in den 1960er mit dem Utility Computing, dessen Idee darin besteht, IT-Dienste und Rechenleistung nach Verbrauch abzurechnen. Dazu gesellten sich die Application Service Provider (ASP), die als Dienstleister über eine Datenverbindung Anwendungssoftware wie z.B. ein CRM-System (Customer Relationship Management) anbieten, das von einem Kunden gegen eine Nutzungsgebühr gemietet werden kann. Die oben bereits angesprochenen Probleme führten dazu, dass der Hype wieder abnahm und erst um 2000 herum unter dem neuen Namen Software as a Service (SaaS) wieder aufgenommen wurde. In den 1990er kam die Idee des Grid Computings auf, das als ein Ersatz für Supercomputer verstanden werden kann, indem verteilte Rechnerleistung nach Bedarf bezogen wird.

Cloud Computing - Historische Entwicklung

Der serviceorientierte Ansatz aus dem Bereich des Utility Computing und den Bereichen der ASP/ SaaS + dem technischen Ansatz des Grid Computings ergeben in der Summe das, was wir heute unter Cloud Computing verstehen.

Definition

Cloud Computing symbolisiert den service- und anwendungsorientierten Trend der heutigen Informationstechnologie, bei dem verteilte und hoch skalierbare Infrastrukturen über das Internet von einem oder mehreren Providern adaptiert werden können und Anwendungen und Dienste an jedem Ort und zu jeder Zeit verfügbar sind.

Erwartungen

Unternehmen können durch den Einsatz von Cloud Computing ihre IT-Gesamtausgaben deutlich reduzieren und die Qualität, Sicherheit aber vor allem ihre Arbeitsabläufe messbar steigern. Cloud Computing Anbieter können Skaleneffekte nutzen, indem sie ihre Kosten über eine große Anzahl von Kunden verteilen und haben damit die Möglichkeit die Investitionen in den Betrieb und die Sicherheit (Daten- und Zugangssicherheit) ihrer Rechenzentren im Vergleich zu herkömmlichen Rechenzentrums Betreibern zu erhöhen.