Tag: Infrastructure as a Service


openQRM – Die Cloud Computing Plattform für Rechenzentren

openQRM ist eine Open Source Cloud Computing Plattform für die Verwaltung von Rechenzentren und skalierbaren IT-Infrastrukturen und ist aktuell in der Version 4.6 verfügbar.

Mittels einer zentralen Managementkonsole kann die Administration von physikalischen Servern ebenso vorgenommen werden wie von virtuellen Maschinen, wodurch Rechenzentren voll automatisiert und höchst skalierbar betrieben werden können.

Neben einer offenen API und einem SOAP Web Service für die nahtlose Integration der eigenen Geschäftsprozesse, unterstützt openQRM alle bekannten Virtualisierungstechnologien und bietet die Möglichkeit für transparente Migrationen von "P-to-V", "V-to-P" und "V-to-V".

openQRM verfügt des Weiteren über ein integriertes Storage-Management, mit dem anhand des Snapshot-Verfahrens Serversysteme dupliziert werden können. Die Snapshots ermöglichen eine dynamische Anpassung des Speicherplatzes, bieten einen persistenten Cloud-Speicher und erlauben ein Backup/Restore der Server sowie deren Versionierung.

Mit der "N-zu-1" Fail-Over Funktion steht mehreren Serversystemen ein einzelner Stand-By-Server zur Verfügung. Dabei spielt es keine Rolle, ob physikalische oder virtuelle Maschinen eingesetzt werden!

Benefits auf einem Blick

  • Virtualisierung
    openQRM unterstützt alle gängigen Virtualisierungstechnologien darunter VMWare, Citrix XenServer und KVM und bietet die Möglichkeit der Migration von P-to-V-, V-to-P- und V-to-V für physikalische Server als auch virtuelle Maschinen.
  • Storage
    openQRM verfügt über ein zentralisiertes Speichersystem mit integriertem Storage Management, welches alle bekannten Storage-Technologien unterstützt. Dazu gehören u.a. Netapp, Equallogic, NFS, iSCSI ZFS und proprietäre auf LVM basierende Storage-Typen, für eine flexible und schnelle Duplizierung von Serversystemen.
  • Zentrales Management
    openQRM verschmilzt die Welt von Open Source mit der von kommerziellen Produkten. Mit einer zentralen Managementkonsole sind alle Funktionen zur Administration von Rechenzentren, System- und Service-Überwachung, Hochverfügbarkeit und automatisierter Bereitstellung vorhanden.

Funktionen

  • Hardware/Software Isolation
    openQRM isoliert die Hardware (physikalische Server, virtuelle Maschinen) vollständig von der Software (Server Images). Dabei ist die eigentliche Hardware eine "Computing Resource" und kann dadurch jederzeit durch eine andere Hardware ersetzt werden, ohne dass die Software (Server Image) neu konfiguriert werden muss.
  • Unterstützung für verschiedene Virtualisierungs-Technologien
    Mit VMWare, Xen, KVM und dem Citrix XenServer unterstützt openQRM eine viehlzahl an virtuellen Maschinen und kann dieses transparent verwalten und migrieren. Neben der System-Migration von physikalischen Servern zu virtuellen Maschinen (P-to-V) können Systeme ebenfalls von virtuellen Maschinen zu physikalischen Servern (V-to-P) migriert werden. Darüber hinaus besteht die Möglichkeit ein System von einer Virtualisierungstechnologie zu einer anderen Virtualisierungstechnologie (V-to-V) zu verschieben.
  • Vollautomatische Nagios-Konfiguration

    openQRM unterstützt die vollautomatische Konfiguration von Nagios mittels "nmap2nagios-ng". Damit wird das gesamte openQRM Netzwerk analysiert und auf Basis der Informationen eine Nagios-Konfiguration erstellt. Anschließend werden alle Services auf allen Systemen überwacht.

  • Integriertes Storage-Management
    openQRM organisiert die Serversysteme wie Dateien und nutzt zur Verwaltung moderne Storagesysteme anstatt lokaler Festplatten. Mittels Logical Volume Managern (LVM) und deren Snapshot-Verfahren können Server-Templates auf schnellen Wege dupliziert werden.

    "Sollen z.B. 10 neue Server ausgerollt werden, kann so einfach ein bestehendes Server-Image 10 mal dupliziert und die "Clone" direkt zum Deployment bereitgestellt werden."

    Mit diesem Konzept steht ein zentrales Backup/Restore sowie die Möglichkeit von Hot-Backups ohne Downtime zur Verfügung.

    openQRM unterstützt folgende Storage-Typen:

    • NFS (NAS)
    • iSCSI (iSCSI SAN)
    • Aoe/Coraid (AOE SAN)
    • NetApp (iSCSI SAN)
    • Local-disk (Übertragung von Server-Images auf lokale Festplatten)
    • LVM-Nfs (NFS auf LVM2, erlaubt schnelles Cloning)
    • LVM-iSCSI (iSCSI auf LVM2, erlaubt schnelles Cloning)
    • LVM-Aoe (Aoe auf LVM2, erlaubt schnelles Cloning)
    • Equallogic (iSCSI SAN)
    • ZFS (iSCSI SAN)
  • Hochverfügbarkeit und "N-to-1"-Fail-Over!
    Mit der "N-zu-1" Fail-Over Funktion steht mehreren Serversystemen ein einzelner Stand-By-Server zur Verfügung. Unabhängig davon, ob physikalische oder virtuelle Maschinen eingesetzt werden.

    "Um zum Beispiel 10 hochverfügbare Spezialsysteme zu betreiben benötigt man normalerweise weitere 10 "Stand-By"-Systeme. Mit openQRM jedoch benötigt man nur einen einzigen "Stand-By"-Server, der im Fehlerfall eines der 10 Spezialsysteme benutzt wird. Das heißt, man kann 9 "stromfressende", nicht ausgelastete Server einsparen. Perfekt für "Green IT".

    Des Weiteren können physikalische Server virtuelle Maschinen als "Hot Stand-By" nutzen und lassen sich im Notfall in eine virtuelle Maschine migrieren.

  • Fertige Server-Templates
    Mittels dem "Image-Shelf"-Plugin stellt openQRM bereits fertige Server Templates zur Verfügung. Dazu gehören Linux Distributionen wie Debian, Ubuntu, CentOS und openSuse. Des Weiteren können mit dem Plugin eigene Server Templates auf unterschiedliche Weise (lokal, http, https, ftp) bereitgestellt werden.
  • Unterstützung verschiedenster Deployment-Methoden
    Mit openQRM können Server von jeder Art von Storage gestartet werden. Zusätzlich können die Server Templates von einem Storage-Typ zu einem anderen übertragen werden, dabei kann noch entschieden werden, ob die Server Templates auf einem physikalischen Server oder in einer virtuellen Maschine gestartet werden sollen.
  • Unterstützung verschiedener OS-Distributionen
    Es stehen bereits vor-konfigurierte openQRM-Server Pakete für Debian, Ubuntu und CentOS zur Verfügung. Ein openQRM-Server kann aber alle gängigen Linux Distributionen verwalten.
  • Cloud-Selector
    Mit dem Cloud-Selector kann der Cloud Administrator seine Cloud Produkte wie z.B. Prozessoren, Speicher, Festplattengröße oder den Typ der virtuellen Maschine auswählen und deren Preise festlegen.
  • Kostenrechner im Cloud-Portal
    Die Cloud-Computing-Unit (CCU) kann einer regulären Währung (z.b. USD oder Euro) zugewiesen werden. Mit dem Kostenrechner werden die stündlichen, täglichen und monatlichen verbrauchten Kosten für eine Cloud Appliance berechnet.
  • Private Cloud Images
    Mit der "Private Cloud Image"-Funktion können Cloud Benutzer eigene Server Templates anlegen und verwalten.
  • Volle SSL-Unterstützung
    Der openQRM-Server arbeitet in einem vollständig SSL-verschlüsselten Bereich und unterstützt verschiedene Serverarchitekturen wie i386 und x86_64.

Auszeichnungen

Preise

  • openQRM ist Open Source und unterliegt der GPL (GNU General Public License).

Support

  • Die openQRM Enterprise ist der Hauptsponsor von openQRM. Das Team um CEO Matthias Rechenburg, CTO Christoph Moeller und Vertriebs- und Marketing-Direktor Andre Westbunk weist langjährige Erfahrungen für das flexible, konsistente und transparente Betreiben von Rechenzentren und bietet professionelle Services zu openQRM um damit die Gesamtbetriebskosten (TCO) von IT-Abteilungen zu senken.
  • Ich möchte hier noch anmerken, dass es sich bei der openQRM Enterprise um einen deutschen Anbieter aus dem Bereich des Cloud Computing handelt!

Quelle

openQRM
openQRM Enterprise



eyeOS – Der Open Source Cloud Web-Desktop

eyeOs ist ein sogenannter Web-Desktop, wobei man besser sogar von einem Web-OS oder Cloud-OS sprechen sollte. Der Funktionsumfang und das Äußere gleicht dem eines vollständigen Betriebssystems. Um es schonmal vorweg zu nehmen, die Attraktivität von eyeOS liegt unter anderem auch daran, dass man es auf dem eigenen Webspace installieren und nutzen kann. Ein eigener (virtueller) Server wird dafür nicht benötigt.


Startseite

Die Oberfläche des Desktops erinnert an einem Mix aus den bekannten Oberflächen gängiger Betriebsysteme. Dazu hat man die Möglichkeit über verschiedene Themes das Aussehen und den aufbau der Desktopoberfläche anzupassen. Neben Themes die das Äußere an Windows oder Ubuntu Linux erinnern lassen, ist auch für Mac OS Fans etwas dabei. Für den Zugriff auf eyeOS wird ein einfacher Standard Webbrowser wie Chrome, Firefox oder Internet Explorer benötigt.


Desktop Oberfläche

eyeOS ist wie jedes moderne Betriebssystem ein Multi-User System. Das bedeutet, das zur selben Zeit mehrere Benutzer gleichzeitig angemeldet sein können. Über die Systemsteuerung können neue Benutzer hinzugefügt und ihnen Rechte etc. vergeben werden. Die Systemsteuerung ist übrigens wie bei jedem graphischen Betriebssystem das zentrale Drehkreuz wo alle Einstellungen rund um eyeOS vorgenommen werden können.


Systemsteuerung

eyeOS bringt von Haus aus bereits eine große Anzahl integrierter Anwendungen mit. Mit eyeDocs (Textverarbeitung), eyeSheets (Tabellenkalkulation), eyePresentation (Präsentationssoftware), eyeContacts (Kontaktverwaltung) und eyeCalendar (Kalender) steht eine vollständige Office Suite zur Verfügung. Neben weiteren zahlreichen Anwendungen gibt es auch eyeMail (E-Mail Client), eyeCalc (Taschenrechner), eyeMedia (Mediaplayer), eyeFiles (Dateimanager) eyeNav (Webbrowser) oder Spiele wie eyeChess (Schach). Interessant ist auch eyeTerre ein Google Earth Clone der sehr rasant funktioniert.


Anwendungsübersicht


eyeDocs


eyeSheets


eyeContact


eyeFiles

Zusätzlich können weitere Anwendungen über den integrierten Paketmanager installiert, oder von der Apps Webseite http://eyeos-apps.org heruntergeladen und mit dem Upload-Manager in eyeOS hochgeladen und anschließend manuell installiert werden. Über diesen Vorgang werden z.B. auch die Desktop-Themes installiert, der einfach und über eine gute Dokumentation (wie das gesamte System) verfügt.


System Bar

Darüber hinaus bieten mittlerweile viele Drittanbieter die Möglichkeiten ihre Anwendungen an eyeOS anzubinden, darunter Zoho mit seiner Office Suite oder Feng Office aber auch die großen der Branche wie YouTube, Ebay, Amazon, Twitter oder Flickr.

Entwickler steht das eyeOS Toolkit zur Verfügung, mit denen ihnen eine Menge an Bibliotheken und Funktionen zur Verfügung stehen, um Anwendungen für eyeOS zu entwickeln. Die Anwendungen können dann in einem eigenen Repository abgelegt und über den integrierten eyeOS Paketmanager bereitgestellt und verteilt werden.

Demo

Ein öffentlicher (Demo)-eyeOS-Server kann unter http://eyeos.info getestet werden.

Resumee

eyeOS zeigt einen Mega-Trend der kommenden Jahre. In Zukunft werden wir keine vollwertigen Computer (Fat-Clients) mehr benötigen, sondern auf einen einfachen Monitor, Maus und Tastatur bzw. einen Thin-Client zurückgreifen. Die Benutzerumgebungen werden vollständig virtualisiert und können damit von überall aus und an jedem Ort zur Verfügung gestellt werden. Ob das Hosting bei einem selbst verbleibt oder an einen Anbieter abgegeben wird, ist subjektiv. Durch die einfache Installation und Bereitstellung auf einem gewöhnlichen Webspace, hat aber jeder die Möglichkeit damit seine eigene (Arbeits)-Umgebung einzurichten und diese von überall aus zu nutzen.

Quellen

eyeOS



Der CloudBerry S3 Explorer

Der CloudBerry Explorer ist ein Tool für die Verwaltung von Dateien innerhalb von Amazons S3 Cloud Storage. Mittels einer graphischen Benutzeroberfläche kann damit eine Verbindung zu dem S3 Account hergestellt werden, um Buckets anzulegen und Dateien zwischen dem eigenem Rechner und dem S3 Speicherplatz auszutauschen. Der CloudBerry S3 Explorer ähnelt äußerlich dem bekannten Windows Explorer, wodurch man seine Dateien innerhalb von Amazons Cloud so verwalten kann, als befinden sich diese auf dem lokalen Rechner.

Auf Grund der äußerlichen Anlehnung an den Windows Explorer, können (Windows)-Benutzer auch ohne spezielle technische Kenntnisse mit Amazon S3 ihre Dateien verwalten. Benutzer werden zusätzlich unterstützt, indem z.B. zeitaufwendige Aufgaben automatisiert werden können, und sich damit die Produktivität erhöht. Durch die vollständige Integration der Schnittstelle in Amazon S3 kann der lokale Speicher mit den S3 Speicher erweitert werden, wodurch man nicht mehr auf die bekannte "klassische" Art der Datenspeicherung auf der lokalen Festplatte angewiesen ist. Die Datenhaltung und Dateiverwaltung verhält sich dennoch so, als würden sich die Daten auf dem lokalen System befinden. Darüber hinaus können die Dateien, die sich auf dem Amazon S3 Speicher befinden auch Freunden, Bekannten oder allen anderen die über eine Internetverbindung verfügen bereitgestellt werden. Um den Zugriff zu beschränken können die Daten mit bestimmten Rechten und Passwörtern geschützt werden.

Beschreibung einzelner Funktionen

  • Durchsuchen der S3 Buckets
    Mit dem CloudBerry Explorer kann der Inhalt von S3 Buckets durchsucht und verwaltet werden. Dazu gehört z.B. das Erstellen von Buckets und Ordnern oder das Umbenennen von Dateien.

  • Kopieren von Dateien im Hintergrund
    Mit dem CloudBerry Explorer können die Dateien auch im Hintergrund zwischen Amazon S3 und dem lokalen Rechner kopiert oder verschoben werden. Die sonstigen Funktionen des Systems werden davon nicht beeinflusst. Darüber hinaus kann der Kopiervorgang angehalten und wieder fortgesetzt werden. Fehler bei der Übertragung werden wie in einer Warteschlange dokumentiert.

  • Nutzung mehrerer S3 Accounts
    Der CloudBerry Explorer unterstützt einen bis eine beliebige Anzahl von Amazon S3 Accounts.

  • Erstellen von Access Control Lists (ACL)
    Mit dem CloudBerry Explorer können mittels eines speziellen Editors Access Control Lists (ACL) erstellt werden, um damit anderen Amazon S3 Benutzern oder allen Internet Benutzern Zugriff auf den eigenen S3 Speicherplatz zu gewähren. Außerdem können die Rechte auf Bucket-Ebene vergeben werden, was sich auf alle Dateien innerhalb dieses Buckets auswirkt.

  • Kopieren von Dateien zwischen S3 Accounts
    Mit dem CloudBerry Explorer können Dateien schnell zwischen zwei Amazon S3 Accounts kopiert oder verschoben werden.

  • Erstellen öffentlicher URLs
    Mit dem CloudBerry Explorer können für ein oder mehrere Objekte öffentliche URLs generiert werden. Diese können ebenfalls zeitlich begrenzt sein und werden nach einer vorgegeben Zeit inaktiv. Über CNAMEs können die URLs lesbarer gemacht werden.

  • Konfiguration von Amazon CloudFront
    Der CloudBerry Explorer unterstützt die Konfiguration und Bereitstellung von Amazon CloudFront. Dazu wird einfach ein Bucket ausgewählt und dieser für Amazon CloudFront "aktiviert".

Funktionen

  • Verbindung zu einer beliebigen Anzahl von Amazon S3 Accounts
  • Paralleles Arbeiten mit unterschiedlichen Amazon S3 Accounts
  • Schnelles Kopieren zwischen Amazon S3 Accounts
  • Gemeinsame Nutzung von Buckets und Dateien (die sich auf S3 befinden) mit anderen Benutzern
  • Erstellen, Durchsuchen, Löschen von S3 Buckets
  • Kopieren und Verschieben von Dateien zwischen Amazon S3 und dem lokalen Computer
  • Einrichten von Zugriffsrechten für Dateien
  • Automatisieren von alltäglichen Aufgaben mit der Microsoft PowerShell
  • Erzeugen von externen URLs
  • Kopieren und Verschieben im Hintergrund
  • Unterstützung von MD5 um sicherzustellen das Dateien während des Datentransfers mit S3 nicht verändert oder beschädigt werden.
  • Kopieren von Dateien aus dem Windows Explorer
  • Unterstützung von Amazon CloudFront
  • Unterstützung von CNAMEs
  • Unterstützung von zeitlich begrenzten oder signierten URLs
  • Erstellen von ACL-Listen Dateien innerhalb eines Buckets
  • Umbenennung von Objekten in S3
  • Sync Folders: Synchronisation lokaler Daten mit Amazon S3
  • Schutz des CloudBerry Explorer durch ein Masterpasswort
  • Einrichten von benutzerdefinierten HTTP-Headern
  • Automatische und zeitlich gesteuerte Aktualisierung von ACLs
  • Zugriffsverwaltung (öffentlich, privat) für Buckets
  • Bandbreitenregulierung
  • Unterstützung der Bereitstellung von privaten Inhalten für CloudFront
  • Beim Überschreiben einer Datei bleibt die vorherige ACL bestehen
  • Unterstützung des streamincloud.com FLV Encoder für Amazon S3
  • Unterstützung von CloudFront Streaming
  • Unterstützung von AWS Import / Export
  • Unterstützung für die Region US-West
  • ... und vieles mehr ...

Zukünftige Funktionen

  • Erweiterung von Amazon Best Practices
  • Portable Version
  • PSProvider für Amazon S3

Voraussetzungen

  • Windows XP/2003/Vista
  • Microsoft .NET Framework 2.0
  • Amazon S3 Account

Preise

CloudBerry Explorer Freeware

CloudBerry Explorer PRO

Freeware vs. Pro

Quellen

CloudBerry Explorer Freeware
CloudBerry Lab



Die 11 besten Open Source Cloud Computing Projekte 2009

Auf Basis von John Willis's Cloud Computing Awards 2009 - "The Cloudies", hat Mark Hinkle seine Top 11 Open Source Cloud Computing Projekte 2009 ausgewählt. Da ich Open Source und Cloud Computing für unzertrennlich halte, stelle ich die Projekte - Chef, collectd, Eucalyptus, OpenNebula, openQRM, Puppet, RabbitMQ, Zenoss, Bitnami, ECP und Ubuntu Enterprise Cloud jeweils kurz vor.

Chef

Bei Chef handelt es sich um ein Integrations-Framework für das Konfigurationsmanagement aller Arten von IT Infrastrukturen, aber speziell für die Bereitstellung von Cloud Umgebungen. Dazu wird mittels eines Quellcodes beschrieben, wie jeder Teil der Infrastruktur aufgebaut werden soll. Diese Infrastrukturbeschreibung wird anschließend einem Server zugeordnet. Das Ergebnis ist eine voll automatisierte Infrastruktur.

Webseite: http://wiki.opscode.com/display/chef/Home

collectd

collectd ist ein Daemon, der Statistiken der System-Performance sammelt und sie in RRD-Dateien speichert. Der Daemon verfügt über eine Plugin Architektur, die es erlaubt Informationen von einer Vielzahl von Diensten und Servern wie Apache, memcache und Linux-VServer zu sammeln. collectd ist damit die Ideale Erweiterung für bereits vorhandene System Management-Tools.

Webseite: http://collectd.org

Eucalyptus

Eucalyptus steht für "Elastic Utility Computing Architecture Linking Your Programs To Useful Systems" und dient zum Erstellen einer Cloud Computing Infrastruktur auf Cluster Systeme. Die aktuelle Schnittstelle ist mit den Schnittstellen von Amazon EC2, S3 und EBS kompatible. Die Infrastruktur ist allerdings dafür gedacht, mehrere Client-Schnittstellen unterstützen. Eucalyptus basiert auf gängigen Linux-Tools und grundlegenden Web-Service-Technologien, die eine einfache Installation und Wartung ermöglichen.

Ich habe Eucalyptus bereits vor kurzem ausführlich vorgestellt. Der Artikel kann HIER nachgelesen werden.

Webseite: http://open.eucalyptus.com

OpenNebula

Mit OpenNebula kann jegliche Art von Cloud Umgebung aufgebaut werden. Darüber hinaus können damit virtuelle Infrastrukturen in einem Rechenzentrum oder einem Cluster verwaltet werden, oder eine lokale Infrastruktur mit einer Public Cloud Infratruktur verbunden und kombiniert werden, um damit hoch skalierbare Hosting Umgebungen zu entwickeln. OpenNebula unterstützt ebenfalls Public Clouds, indem Schnittstellen zur Verfügung stehen mit denen virtuelle Machinen, Speichersysteme und das Netzwerk verwaltet werden können.

Webseite: http://www.opennebula.org

openQRM

openQRM ist eine Open Source Lösung zur Verwaltung und dem automatisierten und skalierbaren Betrieb von Rechenzentren- und Cloud-Computing-Plattformen. Die Administration der physikalischen Server und der virtuellen Maschinen erfolgt dabei in einer übergreifenden zentralen Managementkonsole. Mit einer Snapshot-Funktion können Serversysteme dupliziert und Backup/Restore, sowie Server-Versionierung und eine dynamische Anpassung des Speicherplatzes vorgenommen werden.

Webseite: http://www.openqrm.com

Puppet

Puppet ist ein Model-Driven Open Source-Framework für den automatisierten Aufbau und die Konfiguration von Servern. Mit Puppet können administrative Aufgaben wie z.B. das Hinzufügen von Benutzern, die Installation von Software oder die Aktualisierung der Serverkonfiguration auf vielen unterschiedlichen Arten von Systemen vorgenommen werden. Der Clou hierbei ist allerdings, dass immer derselbe Code verwendet werden kann, obgleich die Systeme auf völlig unterschiedlichen Betriebssystemen laufen.

Webseite: http://reductivelabs.com/products/puppet

RabbitMQ

RabbitMQ is ein Enterprise Messaging System welches auf dem AMQP Standard aufsetzt. AMQP ist ein Standard, mit dem Middleware Systeme, untereinander Nachrichten austauschen können.

Webseite: http://www.rabbitmq.com

Zenoss

Zenoss dient zur Überwachung der Amazon Web Services und vielen weiteren Arten von Cloud Computing Umgebungen und virtuellen Infrastrukturen.

Webseite: http://community.zenoss.org/index.jspa

Bitnami

Bitnami vereinfacht die Bereitstellung von Web Anwendungen, sowohl virtuell als auch in einer Cloud. Jeder BitNami Stack beinhaltet eine Anwendung, die mit jeder von ihr benötigten Software so ausgestattet ist um vollständig ausgeführt zu werden. BitNami Stacks sind kostenlos als gewöhnliche Installationsroutinen, virtuelle Machine Images und Cloud Templates erhältlich. Systeme die z.B. BitNami Anwendungen verwenden sind u.a. Drupal, Joomla!, Wordpress, SugarCRM, Alfresco, Redmine und Subversion.

Webseite: http://www.bitnami.org

Enomaly’s Elastic Computing Platform (ECP)

ECP ist eine programmierbare virtuelle Cloud Infrastruktur für kleine, mittlere und große Unternehmen. Es unterstützt beim Design, Bereitstellen und Verwalten von virtuellen Anwendungen innerhalb einer Cloud. Weitere Funktionen sind die automatische Skalierung von virtuellen Maschinen, Load Balancing, Systemanalysse, sowie die Konfiguration und Optimierung der Cloud Kapazitäten.

Webseite: http://src.enomaly.com

Ubuntu Enterprise Cloud

Die Ubuntu Enterprise Cloud (UEC) ist in der Ubuntu Server Edition enthalten und beinhaltet eine Vielzahl an Open Source Projekten wie z.B. Eucalyptus. Anwendern steht damit die Möglichkeit offen eine eigene Private Cloud aufzusetzen.

Ein Tutorial zum Einrichten einer eigenen Private Cloud mit der Ubuntu Enterprise Cloud habe ich gestern HIER veröffentlicht.

Webseite: http://www.ubuntu.com/cloud

Quelle

Mark Hinkle
John Willis



Erste Schritte mit der Ubuntu Enterprise Cloud

Das Eucalyptus System kann auf viele unterschiedliche Umgebungen beliebig angepasst werden. Diese Installations-Anleitung zeigt die Einrichtung einer Privat Cloud auf Basis von Eucalyptus mit der Ubuntu Enterprise Cloud.

Ziel dieses Tutorials

Dieses Tutorial beschreibt die Installation, Konfiguration und Registierung, sowie weitere Schritte für die Arbeit mit einer grundlegenden Eucalyptus Einrichtung. Am Ende haben wir eine Cloud mit einem "Front-End" Controller und einem Knoten, auf dem mehrere Instanzen von Virtual Machines ausgeführt werden können, vollständig eingerichtet. Siehe dazu die Schritte 1 - 3.

In den Schritten 4 - 6 lernen wir die ersten Schritte für die Einrichtung einer Private Cloud und wie diese z.B. mit der RightScale Cloud Management Platform verbunden werden kann.

  • Schritt 1: Die Voraussetzungen
  • Schritt 2: Installation & Konfiguration
  • Schritt 3: Registrierung der Eucalyptus Komponenten
  • Schritt 4: Erster Login
  • Schritt 5: Erstellen eines Virtual Machine Image
  • Schritt 6: Starten eines Images

1. Schritt: Die Voraussetzungen

Das Eucalyptus System hat drei grundlegende Bestandteile:

  • eucalyptus-cloud: Beinhaltet den Cloud Controller (Front-End Services) und das Walrus Speichersystem.

  • eucalyptus-cc : Beinhaltet den Cluster Controller der für das virtuelle Netzwerk zuständig ist.

  • eucalyptus-nc: Beinhaltet den Node Controller zur Verwaltung der einzelnen Knoten, der mit der KVM (Kernel basierende Virtual Machine) kommuniziert und die jeweiligen Virtual Machines verwaltet.

Eine einfache Eucalyptus Umgebung besteht aus zwei Systemen, einem Front-End und einem Node. Das Front-End ist für eucalyptus-cloud und eucalyptus-cc zuständig. In einer komplexeren Umgebung mit mehreren Systemen können/ sollten die oben genannten Teile des Front-Ends voneinander getrennt betrieben werden. Da die Kommunikation vollständig über das Netzwerk erfolgt, ist diese Separierung einfach vorzunehmen.

Das folgende Diagramm zeigt einen einfachen Aufbau einer Eucalyptus Umgebung:

Vor der Installation der Pakete gibt es ein paar Voraussetzungen die erfüllt sein müssen, damit am Ende ein voll funktionsfähiges Eucalyptus System vorhanden ist. Zunächst muss das Front-End in der Lage sein E-Mails zu verschicken. Die Administrations-Tools von Eucalyptus nutzen E-Mails um den Administrator zu benachrichtigen, das er die Anmeldeinformationen von Benutzern prüfen muss. Dazu sollte Postfix installiert werden und als 'mailhost' der 'localhost' eingetragen werden (z.B. als Eintrag in die /etc/hosts).

Auf dem Node auf welchem von Eucalyptus die Virtual Machines ausgeführt werden, muss die erste Netzwerkschnittstelle als Bridge (BR0) konfiguriert werden. Sie dazu (Ubuntu Server Guide Bridging - in Englisch). Dieser Bridge fügt Eucalyptus für jede vorhandene Virtual Machine eine virtuelle Netzwerkschnittstelle (Virtual Network Interfaces) hinzu, bevor die Netzwerkverbindung einer Virtual Machine aktiviert wird.

Des Weiteren benötigt Eucalyptus einen DHCP Server der automatisch IP-Adressen vergibt. Ab dem Zeitpunkt wo die Virtual Machines über die Bridge mit dem lokalen Netzwerk verbunden sind, führen sie ihren lokalen DHCP Client aus, um eine IP-Adresse zu erhalten.

Auf jedem Host der einen Eucalyptus Client nutzt, sollten die Amazon Elastic Compute Cloud (EC2) API und AMI Tools installiert werden. Dafür wird folgendes benötigt:

http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip

Damit die ec2-ami-tools einwandfrei funktionieren müssen zusätzlich die Pakete ruby, libopenssl-ruby und curl installiert werden.

Für den Zugriff der EC2-ami-Tools auf die Meta-Daten (wie z.b. EC2-bundle-vol), muss folgender Eintrag vorgenommen werden. Bei der CC_IP handelt es sich um die IP-Adresse des Rechners auf dem Eucalyptus-cc ausgeführt wird.

vi ec2ami/lib/ec2/amitools/instance-data.rb
(set META_DATA_URL="http://:8773/latest/meta-data")

  • Ports: Um auf Eucalyptus auch hinter einer Firewall zugreifen zu können muss der Port 8773 geöffnet werden. Das ist z.B. dann der Fall, wenn sich die EC2- und AMI-Tools sowie die Eucalyptus Cloud auf unterschiedlichen Seiten der Firewall befinden. Wenn das Eucalyptus System mit einer Cloud Management Platform verbunden werden soll, müssen zusätzlich die Ports 8773 und 8443 geöffnet werden.

Schritt 2: Installation & Konfiguration

Zuerst werden die eucalyptus-cloud und eucalyptus-cc Pakete auf der Front-End Machine installiert.

sudo apt-get install eucalyptus-cloud eucalyptus-cc

Anschließend erfolgt die Installation des eucalyptus-nc Pakets auf jedem Node.

sudo apt-get install eucalyptus-nc

Am Ende wird der eucalyptus-nc Service auf dem Node gestoppt und die /etc/eucalyptus/eucalyptus.conf editiert. In der eucalyptus.conf erhält die Bridge den Namen der ersten Netzwerkschnittstelle. Danach wird der eucalyptus-nc Service wieder gestartet.

Die oben beschriebenen Schritte können wie folgt umgesetzt werden:

sudo /etc/init.d/eucalyptus-nc stop
sudo vi /etc/eucalyptus/eucalyptus.conf
(set VNET_BRIDGE="br0")
sudo /etc/init.d/eucalyptus-nc start

Das folgende Diagramm zeigt, wie die Umgebung danach aussehen sollte:

Das Netzwerk sollte außerdem so konfiguriert werden, dass der IPv4 Datenverkehr von den IPv6 Ports weitergeleitet wird, da das Eucalyptus Web-Frontend standardmäßig IPv6 verwendet.

sudo vi /etc/sysctl.conf
(uncomment net.ipv4.ip_forward=1)
sudo sysctl -p

Schritt 3: Registrierung der Eucalyptus Komponenten

Eucalyptus setzt voraus, das jeder Node innerhalb des Systems zu einem Cluster gehört. Ein Cluster wiederum gehört zu einer Cloud. Auf jedem Node wird eine Kopie von eucalyptus-nc ausgeführt. Genauso muss auf jedem Cluster eine Kopie von eucalytpus-cc ausgeführt werden. In unserem Beispiel wird der eucalytpus-cc auf der selben Maschine ausgeführt wie der Cloud Controller (eucalyptus-clc). Diese Komponenten müssen sich vor dem Start des Systems nun gegenseitig registrieren.

Für die Registrierung eines Cluster wird der folgende Befehl benötigt:

sudo euca_conf -addcluster localhost

Dabei entspricht dem Namen des Clusters, den die Benutzer sehen werden. Es handelt sich dabei um einen reinen logischen Namen, der nur lokal zu Eucalyptus gehört und mit einer Verfügbarkeitszone übereinstimmt, wie sie bei den Client-Tools angezeigt wird.

Um nun einen Node bei einem Cluster zu registrieren, ist der folgende Befehl notwendig.

sudo euca_conf -addnode

Später können weitere Nodes - auf denen eine Kopie von eucalyptus-nc ausgeführt wird - hinzugefügt werden, indem der obige Befehl erneut für jeden Node ausgeführt wird.

Schritt 4: Erster Login

Nach dem ersten Start von Eucalyptus muss die Administrationsumgebung der Cloud eingerichtet werden. Dazu öffnen wir im Webbrowser folgende UR:

https://[front-end-ip-address]:8443

Mit den Standardzugangsdaten Benutzername: admin und Passwort: admin erfolgt die erste Anmeldung, bei der das Passwort geändert werden muss. Nun folgen wir den Anweisungen auf dem Bildschirm. Ist die Konfiguration abgeschlossen klicken wir auf den Reiter credentials und anschließend auf Download Certificate.

Wichtig ist hierbei zu beachten, dass wir eine sichere Verbindung nutzen, also "https" anstatt "http". Wir erhalten eine Warnung auf Grund des Sicherheitszertifikats. Dafür müssen wir eine Ausnahme eintragen, um die Seite sehen zu können. Wird für diese Seite keine Ausnahme eingetragen, kann die Konfigurationsseite von Eucalyptus nicht angezeigt werden.

Jetzt müssen wir mittels X.509 Zertifikaten die EC2 API und AMI Tools auf unserem Server wie folgt einrichten.

mkdir ~/.euca
cd ~/.euca
mv ~/Desktop/euca2-admin-x509.zip ~/.euca
unzip euca2-admin-x509.zip

Die Installation kann mittels eines Skripts (ec2toolsinstall.sh) wie folgt durchgeführt werden.

cd ~/.euca
# Eucalyptus is not compatible with the newer ec2tools so we will
# install and remove them to insure all dependencies get installed
sudo apt-get install ec2-api-tools ec2-ami-tools
sudo apt-get remove ec2-api-tools ec2-ami-tools
wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
unzip ec2-api-tools-1.3-30349.zip
mv ec2-api-tools-1.3-30349 ec2
wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip
unzip ec2-ami-tools-1.3-26357.zip
mv ec2-ami-tools-1.3-26357 ec2ami
echo 'export JAVA_HOME=/usr' >> eucarc
echo 'export EC2_HOME=~/.euca/ec2' >> eucarc
echo 'export EC2_AMITOOL_HOME=~/.euca/ec2ami' >> eucarc
echo 'export PATH=$PATH:$EC2_HOME/bin:$EC2_AMITOOL_HOME/bin' >> eucarc

Vergabe der Zugriffsrechte:

chmod +x ec2toolsinstall.sh

Das Skript sollte die Datei eucarc erzeugt haben, die noch noch ge-sourced werden muss.

source ~/.euca/eucarc

Optional: Registrierung bei RightScale

RightScale bietet eine Cloud-Management-Plattform für den Einsatz mit Eucalyptus. Diese Cloud Management Software wird als Service innerhalb der Amazon Web Services ausgeführt und muss daher die Möglichkeit haben, mit dem Eucalyptus Cloud Controller (eucalyptus-clc) der hinter einer Firewall steht, zu kommunizieren.

Daher müssen die Ports 8443 und 8773 (Richtung > Internet) geöffnet werden, damit RightScale mit der Eucalyptus Cloud kommunizieren kann.

Um unsere Eucalyptus Cloud bei RightScale zu registrieren, folgen wir den Anweisungen in der unten verlinkten Anleitung:

  • Registrieren der Eucalyptus Cloud bei RightScale.

Schritt 5: Erstellen eines Virtual Machine Image

Mit dem vmbuilder können wird ein Virtual Machine Image erstellen, das mit Eucalyptus gestartet werden kann.

Zunächst erstellen wir eine Datei mit dem Namen part, in der die Größe, der Typ und der Mountpunkt der Virtual Machine beschrieben ist:

root 400
/mnt/ephemeral 0 /dev/sda2
swap 1 /dev/sda3

Anschließend erstellen wir eine Skriptdatei mit dem Namen firstboot. Dieses Skript wird ausgeführt wenn das Image das erste Mal in Eucalyptus gestartet wird und installiert dabei einen SSH Daemon.

apt-get -y install openssh-server

Nun erstellen wir ein Image mit dem vmbuilder und übergeben beim Aufruf die beiden Skripte als Parameter.

sudo vmbuilder xen ubuntu --part ./part --firstboot ./firstboot

Mit Hilfe der EC2 API Tools packen und registrieren wir abschließend den Kernel, die Ramdisk und das Image.

mkdir kernel
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
EKI=`ec2-register kernel/vmlinuz-2.6.28-11-generic.manifest.xml | awk '{print $2}'`
echo $EKI

mkdir ramdisk
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
ERI=`ec2-register ramdisk/initrd.img-2.6.28-11-generic.manifest.xml | awk '{print $2}'`
echo $ERI

mkdir 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
EMI=`ec2-register image/root.img.manifest.xml | awk '{print $2}'`
echo $EMI

Der Kernel, die Ramdisk und das Image sind nun in der Eucalyptus Cloud und können dort genutzt werden.

Zur Bestätigung geben wir folgenden Befehl ein:

ec2-describe-images

Die Ausgabe sollte nun einen registrierten Kernel, Ramdisk und Image anzeigen, die als "available" gekennzeichnet sind.

Schritt 6: Starten eines Images

Bevor eine Instanz eines Image gestartet wird, müssen wir ein Schlüsselpaar (SSH Key) erstellen um uns nach dem Start als Root anmelden zu können. Der Schlüssel wird gespeichert, daher muss dieser Schritt nur einmal durchgeführt werden.

ec2-add-keypair mykey > ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv

Falls wir unseren Key mal vergessen sollten, können wir uns mittels ec2-describe-keypairs eine Liste aller erstellten und auf dem System gespeicherten Schlüssel anzeigen lassen.

Nun können wir Instanzen von unserem registrierten Image wie folgt erstellen.

ec2-run-instances $EMI -k mykey

Während des ersten Starts einer Instanz erstellt das System einen Cache für das Image aus welchem die Instanz erstellt wird. Da die Images in der Regel sehr groß sind, kann dieser Vorgang etwas dauern.

Der aktuelle Status der Instanz kann mit folgendem Befehl abgefragt werden.

ec2-describe-instances

Die Ausgabe zeigt die aktuellen Informationen und den Status der Instanz. Während des ersten Starts sollte sich die Instanz im Status "pending" befinden. Ist die Instanz gestartet, sollte der Status auf "running" wechseln. Nachdem die Instanz über DHCP eine IP-Adresse erhalten hat können wir uns mittels des oben generierten SSH Keys mit der Instanz verbinden.

ssh -i ~/.euca/mykey.priv root@

Die Umgebung der Eucalyptus Cloud sollte nun diesem Diagramm entsprechen.

Weitere Informationen

  • Log Dateien: /var/log/eucalyptus
  • Konfigurationsdateien: /etc/eucalyptus
  • Init Skripte: /etc/init.d/eucalyptus-cc, /etc/init.d/eucalytpus-cloud und /etc/init.d/eucalytpus-nc
  • Datenbank: /var/lib/eucalyptus/db
  • Neustart (Anmerkung): Bei einem Neustart wird Eucalyptus nicht automatisch neu gestartet. Die Services müssen daher manuell geladen werden.
  • Umgebung (Anmerkung): Bevor der Client gestartet wird, sollten die Quellen unter ~/.euca/eucarc ge-sourced werden.

Quellen

Eucalyptus-Jaunty



Rackspace – Cloud Sites

Das Cloud Sites [1] Angebot von Rackspace gehört zu dem Bereich der klassischen Webhosting Angebote, wie man sie von jedem üblichen Anbieter kennt. Es dient zum Bereitstellen von statischen Webseiten, Weblogs wie z.B. Wordpress, Portalen wie Drupal, Joomla und DotNetNuke, Webshops oder Seiten für Marketing und Werbekampagnen. Der Zusatznutzen hebt sich von dem klassischen Webhosting dadurch ab, das die die Systeme auf denen sich die Webseiten befinden bei Bedarf automatisch skalieren und dadurch auch vor saisonalen Überlastungen geschützt sind.

Funktionsweise

    Erstellen der Seite und hochladen der Daten

  • Die Infrastruktur zum Hosten einer Webseite kann innerhalb von fünf Minuten erstellt werden. Konfigurationen für das Load Balancing, Clustering und redundantes Speichern der Daten wird automatisch durch das Rackspace übernommen.

    Automatische Skalierung

  • Die Daten der Webseiten werden automatisch und ohne Eingriff des Benutzers auf speziellen Clustersystemen gespeichert. Das bedeutet, dass die Performance mit den Anfragen der Benutzer wächst und eine Überlastung der Webseite nicht stattfindet.

Technologie

    Betriebssysteme

  • Die Infrastruktur hinter Cloud Sites besteht aus einer Vielzahl von Linux und Windows Servern, wobei jeder Cluster speziell auf das Betriebssystem abgestimmt ist. Vor Überlastungen schützen u.a. Load Balancing Mechanismen die bei Bedarf die Anfragen automatisch verteilen. Für jede Webseite oder einzelne Seite einer Webseite kann auf Linux oder Windows zurückgegriffen werden. Neben Standardsoftware wie Wordpress, Drupal oder .NETNuke besteht ebenfalls die Möglichkeit eigene proprietäre Software auf den System zu installieren.

    Load Balancing

  • Die Daten der Webseiten und Anwendungen werden auf eine Vielzahl von Servern verteilt und mittels Load Balancing findet anschließend die Verteilung der Anfragen auf die Server statt. Fällt z.B. ein Server aus, übernimmt automatisch ein anderer Server seine Aufgabe und beantwortet die Anfrage, wodurch der Benutzer gar nicht bemerkt das ein technisches Problem vorliegt. Ein weiterer Vorteil besteht im Skalieren der Webseiten-Performanz. In Momenten, z.B. während eines Fernsehberichts in dem über die Webseite berichtet wird, sind die meisten Webseiten (vielmehr die Server auf denen sich die Webseiten befinden) auf Grund von zu vielen Anfragen überlastet und die Anfragen werden nicht mehr beantwortet. Der Sinn und Zweck des Fernsehberichts ist damit gescheitert, denn die meisten Benutzer werden nicht wiederkommen, wenn Sie merken, dass sie kein Angebot vorfinden. Durch das Load Balancing werden die Anfragen in solchen Momenten automatisch auf mehrere Server verteilt und die Antwortzeiten der Webseiten verhalten sich wie an "normalen" Tagen.


[2]

    Linux

  • Debian + Red Hat Enterprise
  • PHP v5.2MySQL v5
  • Apache v1.3 + v2.
  • 2Perl v5.8
  • Mod Rewrite Enabled


[3]

    Windows

  • Windows 2008 Server
  • .NET v2, v3, & v3.5 SP1
  • IIS 7
  • MS SQL 2008

    Verwaltung

  • Web-Interface für die Verwaltung
  • Secure File Transfer (SFTP)
  • Master FTP Account und weitere
  • Starten von Cron Jobs, Zugriffsverwaltung und entpacken von Dateien


[4]

    DNS

  • White-label Nameserver
  • Online DNS Verwaltung
  • Private-label Nameserver
  • Eigener DNS-Server (optional)


[5]

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Files Preise

Quelle

[1] Rackspace Cloud - Cloud Sites
[2] Graphik: Rackspace Cloud - Cloud Sites (1)
[3] Graphik: Rackspace Cloud - Cloud Sites (2)
[4] Graphik: Rackspace Cloud - Cloud Sites (3)
[5] Graphik: Rackspace Cloud - Cloud Sites (4)



Rackspace – Cloud Files

Mit dem Cloud Files [1] Angebot von Rackspace können einzelne Dateien bis zu einer Größe von 5 GByte in der Rackspace Cloud redundant gespeichert werden. Dabei wächst der Speicherplatz mit dem genutzten Bedarf. Somit wird auch nur für den Speicherplatz bezahlt, der auch tatsächlich benötigt wird. Der Preis pro GByte liegt derzeit bei 15 Cent.

Funktionsweise

  • Hochladen der Dateien
    Mit Hilfe des Webinterface, der Desktop Software oder der Rackspace API kann eine unbegrenzte Anzahl von Daten gespeichert werden.
  • Kosten pro Speicherbedarf
    Der Speicherplatz wird lediglich gemietet. Die Abbrechung erfolgt pro genutzten Speicherplatz und Datentransfer. Dabei wächst der Speicherplatz mit dem Datenvolumen.
  • Datenschutz & Verfügbarkeit
    Die Dateien werden in sogenannte Container organisiert. Die Zugriffsrechte auf einen solchen Container können als Public oder Privat gekennzeichnet werden.

Cloud Files Speichertechnologie


[2]

  • Das Speichern und Verwalten der Daten erfolgt über das Webinterface, der Desktop Software oder der Rackspace API. Cloud Files dient z.B. als Backuplösung, zur Bereitstellung von Bildern oder als Datenspeicher für das Streaming von Videos. Weitere Möglichkeiten bestehen im Bereich Onlinespeicher um über das Internet z.B. mit einem Webbrowser auf die Daten direkt zuzugreifen oder für Entwickler zum Speichern Ihrer Anwendungsdaten.
  • Dem Gegenüber stehen aber auch Dinge, die typischerweise nicht mit Cloud Files genutzt werden können. Die Daten können z.B. nicht als virtuelle Festplatte lauf dem lokalen System eingebunden werden (mount, map). Das Spiegeln von Festplatten oder Backuplösungen die auf Byte-Level Striping oder Block-Level Striping basieren können ebenfalls nicht genutzt werden, genauso wie das anhängen (append) und sperren (locking).
  • Die Daten werden in Container organisiert, können aber nicht verschachtelt werden. Das bedeutet genau: Wenn nur ein Container (auf oberster Ebene) existiert, kann anschließend keine verschachtelte Verzeichnis/ Ordner Struktur ohne eine Transformation in eine flachere Struktur hochgeladen werden.
  • Innerhalb des Rechenzentrums werden mehrfache Kopien der Daten erzeugt und auf mindestens drei verschiedenen Geräten in zwei unterschiedlichen Bereichen des Rechenzentrums gespeichert. Dabei verfügt jeder Bereich eines Rechenzentrums über ein separate Strom- und Netzwerkverbindungen.


[3]

Cloud Files CDN-Technologie

  • Dateien die für die Öffentlichkeit bestimmt sind, werden über ein spezielles Content Distribution Network (CND) verteilt. Dabei handelt es sich um ein Netzwerk mit weltweit verteilten Standorten. Werden die Daten von einem Benutzer z.B. aus Tokyo das erste Mal abgerufen, wird von diesen Daten eine lokale Kopie im Cache auf den Servern in Hamburg gespeichert.


[4]


[5]

  • Werden diese Daten ein weiteres Mal erneut abgerufen aus Tokyo (oder Umgebung) abgerufen, werden die Daten direkt aus dem Cache bereitgestellt und müssen nicht von dem ursprünglichen (weiter entfernten) Server geladen werden. Das erhöht die Geschwindigkeit der Bereitstellung, da somit Latenzen die z.B. durch längere Übertragungswege entstehen, vermieden werden.

Die API

Mit der Cloud Files API können eigene Lösung/ Programme auf Grundlage der Rackspace Infrastruktur entwickelt werden.

  • Programmatisches Hochladen von Dateien.
  • Aktivierung von Cloud Files CDN für jede Art von Container zur Bereitstellung öffentlichen Inhalts.
  • Programmatische Erstellung von Container.
  • Programmatische Verwaltung der Container und Dateien.

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Files Preise

Quelle

[1] Rackspace Cloud - Cloud Files

[2] Graphik: Rackspace Cloud - Cloud Files (1)
[3] Graphik: Rackspace Cloud - Cloud Files (2)
[4] Graphik: Rackspace Cloud - Cloud Files (3)
[5] Graphik: Rackspace Cloud - Cloud Files (4)
[6] Graphik: Rackspace Cloud - Cloud Files (5)



Rackspace – Cloud Servers

Mit dem Cloud Server [1] Angebot von Rackspace können innerhalb von wenigen Minuten von einem bis zu 50 Server eingerichtet werden. Die Konfiguration erfolgt über ein Webinterface bzw. über eine spezielle von Rackspace bereitgestellte offen API. Die Server verfügen über einen vollständigen Root-Zugang und können je nach Wunsch und Aufgabenbereich eingerichtet werden. Abgerechnet wird nur die tatsächliche Nutzung.

Funktionsweise

  • Auswahl der Serverkonfiguration
    Die Auswahl der Grundkonfiguration erfolgt aus Basis des Arbeitsspeichers. Es steht ein Bereich von 256 MB bis zu 16 GB zur Verfügung
  • Auswahl des Betriebssystem
    Aktuelle stehen mehrere Linux Distributionen zur Verfügung, darunter Ubuntu, Debian, Gentoo, Centos, Fedora, Arch und Red Hat Enterprise Linux. Windows Varianten sollen folgen.
  • Verwaltung
    Innerhalb von wenigen Minuten sind die Server verfügbar. Über ein Webinterface oder eine spezielle API kann die Performance jedes vorhandene Servers vergrößert, verkleinert oder vollständig entfernt werden.

Technologie

  • Virtualisierung
    Jeder Cloud Server wird in einer eigenen Virtual Machine abgebildet und ist vollständig von der Hardware getrennt. An dieser Stelle werden Software Hypervisor eingesetzt, wodurch weitere Cloud Server innerhalb von wenigen Minuten zur Verfügung stehen, da nur eine weitere Virtual Machine auf der bereits laufenden Hardware gestartet werden muss. Damit kann die Performanz (Prozessorleistung, Arbeitsspeicher) eines einzelnen Cloud Servers schnell vergrößert oder verkleinert werden.
  • CPU Geschwindigkeit
    Alle Cloud-Server garantieren die CPU-Leistung die vorbar konfiguriert wurde. Wenn die Hardware auf der die Virtual Machine betrieben wird allerdings freie CPU Kapazitäten zur Verfügung hat, werden diese genutzt um ohne weitere Kosten zusätzliche Rechenleistung für die Virtual Machine bereitzustellen.
  • Skalierung
    Die Skalierung eines Cloud Servers erfolgt entweder manuell über das Webinterface oder die API. Allerdings ist der Server dabei vorübergehend nicht erreichbar(!), da der Arbeitspeicher, die Festplattenkapazität und die Prozessorleitstung angepasst werden müssen und der Server neu gestartet(!) wird. Der gesamte Prozess ist automatisiert und dauert ein paar Minuten.
  • Technik

    • Xen Hypervisor
    • RAID-10
    • 64-bit Systeme
    • 4 virtuelle CPUs pro Cloud Server
    • Reservierter Arbeitsspeicher und Speicherplatz
    • Voneinander getrennte Public und Privat Netzwerkschnittstellen
    • Mehrfache Öffentliche IP-Adressen sind möglich
    • Kostenlose Bandbreite für die private Netzwerkschnittstelle und der Kommunikation innerhalb der Rackspace Cloud z.B. zu Cloud Files.
    • Snapshot-basierte Server-Images
    • Dynamische IP-Adressen für Hochverfügbarkeits-Failover-Konfigurationen
    • Bootfähiger Rettungs-Modus
    • Zugriff auf das Dateisystem für die Reperatur


[2]

Verfügbare Betriebssysteme

  • Ubuntu 9.10 (Karmic Koala)
  • Centos 5.4
  • Gentoo 2008.0
  • Ubuntu 9.04 (Jaunty)
  • Centos 5.3
  • Red Hat EL 5.3
  • Ubuntu 8.10 (Intrepid Ibex)
  • Centos 5.2
  • Arch 2009.02
  • Ubuntu 8.04.2 (Hardy Heron) LTS
  • Fedora 11 (Leonidas)
  • Fedora 10 (Cambridge)
  • Debian 5.0 Lenny


[3]

Funktionen der API

  • Starten und verwalten der Server programmatisch mit der REST-API.
  • Individuelle Anpassung der Server.
  • Zuweisen von speziellen Metadaten zu bestimmten Server Instanzen über key/value Paare.
  • Neustart der Server mittels Soft- oder Hardreset.
  • Wiederherstellen von Servern aus jedem beliebigen eigenen Image.
  • Erstellung von individuellen Images.
  • Zeitlich gesteuerte Backups der Server.
  • Je nach Wunsch kann die Performanz der Server vergrößert oder verkleinert werden.
  • Mehrere Server können sich mehrere öffentliche IP-Adressen teilen.


[4]

Preise

Alle Preise sind hier zu finden: Rackspace Cloud Server Preise

Quelle

[1] Rackspace Cloud - Cloud Servers
[2] Graphik: Rackspace Cloud - Cloud Servers (1)
[3] Graphik: Rackspace Cloud - Cloud Servers (2)
[4] Graphik: Rackspace Cloud - Cloud Servers (3)



Was ist "Amazon CloudFront"?

Amazon CloudFront [1] gehört zu dem Webservice Angebot von Amazon und dient zur Bereitstellung von Inhalten. Das Ziel des Service ist die schnelle Bereitstellung von Inhalten mit möglichst geringen Latenzzeiten. Dazu wird ein weltweit verteiltes Netzwerk genutzt, in welchem die Daten immer automatisch zum nächstgelegenden Standort (edge Location) der Anfrage geroutet werden um damit die höchstmögliche Geschwindigkeit zu erzielen.


[2]

Amazon CloudFront Funktionsweise

Amazon CloudFront wird wie jeder Amazon Webservice über die Webservice-API angesprochen. Die Objekte die Bereitgestellt werden sollen, werden in so genannten Distributions organisiert. Eine Distribution definiert den Speicherort der ursprünglichen Version der Objekte. Eine Distribution verfügt über einen eindeutigen CloudFront.net Domainnamen (z.B. name.cloudfront.net), der dafür genutzt wird, um die Objekte auf einen Standort zu verweisen. Zusätzlich kann auch ein eigener Domainname (z.B. bilder.meinedomain.de) genutzt werden. Distributions können dafür genutzt werden um Inhalte über das HTTP Protokoll herunterzuladen oder mit dem RTMP Protokoll zu streamen.

Für die Nutzung sind die folgenden Schritte notwendig:

  • Speichern der originalen Daten in einem Amazon S3 Bucket.
  • Erstellen einer Distribution um das Bucket bei Amazon CloudFront zu erfassen.
  • Wenn Benutzer nun über Webseiten, Media Player oder anderen Anwendungen auf die Domain zugreifen die bei der Distribution hinterlegt ist, wird deren Anfrage automatisch an den nächstgelegenden Standort dieser Anfrage geroutet, von dem aus dann der angefragte Inhalt ausgeliefert wird.
  • Die Abbrechnung erfolgt nur für Datenübertragung und die Anfragen, die tatsächlich entstehen.

Funktionen

  • Geschwindigkeit
    In dem weltweiten Netzwerk werden an allen Standorten (Edge Locations) Kopien der Inhalte in einem Cache gespeichert, damit werden die angefragten Daten dem User schnell und ohne Verzögerung bereitgestellt.
  • Einfache Verwaltung
    Über die Amazon Web Service API oder die AWS Management Console kann die Administration von Amazon CloudFront auf eine einfache Weise vorgenommen werden.
  • Integration mit anderen Amazon Webservices
    Amazon CloudFront wurde in erster Linie für den Amazon S3 Dienst entwickelt. Es besteht aber auch die Möglichkeit Amazon EC2 Instanzen damit zu betreiben. Zum Beispiel für die Bereitstellung einer EC2 Instanz als Webserver der dynamische HTML-Seiten zur Verfügung stellt, wobei Amazon CloudFront in diesem Fall dann die Daten für den statischen Inhalt liefert.
  • Kosten
    Kosten für Amazon CloudFront enstehen nur dann, wenn der Dienst auch tatsächlich genutzt wird.
  • Skalierbarkeit
    Amazon CloudFront reagiert automatisch auf das Anfrageverhalten und skaliert das System entsprechend den aktuellen Anforderungen. Steigen die Anfragen wird die Performance des Systems durch das Hinzufügen von weiteren Ressourcen erhöht. Nimmt die Nachfrage wieder ab, werden die Ressourcen ebenfalls wieder heruntergefahren.
  • Weltweite Verfügbarkeit
    Die Amazon CloudFront Standorte befinden sich in den USA, Europa und Asien.

Die Standorte des Amazon CloudFront Netzwerks

Die Amazon CloudFront Standorte gliedern sich nach folgenden Kontinenten und Städten.

    USA

  • Ashburn, VA
  • Dallas/Fort Worth, TX
  • Los Angeles, CA
  • Miami, FL
  • Newark, NJ
  • Palo Alto, CA
  • Seattle, WA
  • St. Louis, MO

    Europa

  • Amsterdam
  • Dublin
  • Frankfurt
  • London

    Asien

  • Hong Kong
  • Tokyo


[3]

Anwendungsmöglichkeiten von Amazon CloudFront

  • Schnelle Bereitstellung von Webseiten
    Die Geschwindigkeit von Webseiten kann erhöht werden, wenn Objekte, die oft aufgerufen werden, wie z.B. Graphiken, Logos, Navigationsbuttons oder auch Dinge wie CSS oder Java Code schnell bereitgestellt werden. Es macht daher Sinn, solche Daten in einem Cache wie es z.B. Amazon CloudFront darstellt, zu speichern.
  • Bereitstellung von Downloads
    Auf Grund der hohen Datentransferrate können Anwendungen, Softwareupdates oder andere beliebige Downloadangebote per Amazon CloudFront schnell den Benutzern bereitgestellt werden. Das Erhöht die Zufriedenheit der Besucher.
  • Bereitstellung von Multimediainhalten
    Multimediadaten (Audio und Video) sind ebenfalls Ideale Inhalte für die Bereitstellung über Amazon CloudFront. Durch die hohe Geschwindigkeit und das Vorhalten der oft angefragten Daten im Cache können die Inhalte schnell und zuverlässig gestreamt werden.

Preise

Alle Preise sind hier zu finden: Amazon CloudFront Preise

Quellen:

[1] Amazon CloudFront
[2] Graphik: Amazon CloudFront (1)
[3] Graphik: Amazon CloudFront (2)



Was sind "Amazon EC2 Elastic IP-Addresses"?

Elastische IP-Adressen sind statische IP-Adressen die für dynamisches Cloud Computing entwickelt wurden. Eine IP-Adresse ist mit dem AWS-Account und nicht mit einer konkreten Instanz verknüpft. Im Fehlerfall einer Instanz wird die IP-Adresse des betroffenen Servers auf einen funktionieren Server neu gemapped.

Begriffsbestimmungen

  • EC2 Private IP Address
    Dabei handelt es sich um die interne Adresse einer Instanz, ide nur innerhalb der EC2 Cloud geroutet werden kann. Der Datenverkehr außerhalb des EC2 Netzwerks kann nicht zu dieser IP Adresse geroutet werden. Dazu muss die Public IP oder die Elastic IP verwendet werden.
  • EC2 Public IP Address
    Dabei handelt es sich um die öffentliche IP-Adresse aller Instanzen die durch das Internet geroutet werden kann. Datenverkehr der zu dieser öffentlichen IP-Adresse geroutet wird, wird 1:1 per Network Address Translation (NAT) übersetzt und an die Private IP-Adresse einer Instanz weitergeleitet. Die öffentlichen IP-Adressen können nicht mehr genutzt werden, wenn eine EC2 Instanz ausfällt.
  • EC2 Elastic IP Address
    Dabei handelt es sich um die öffentliche IP-Adresse aller Instanzen die durch das Internet geroutet werden kann und einem AWS Account zugerordnet sind. Datenverkehr der zu dieser Elastic IP-Adresse geroutet wird, wird per Network Address Translation (NAT) übersetzt und an die zugeordnete Private IP-Adresse weitergeleitet. Elastic IP-Adressen werden explizit einem AWS Account zugeordnet und können bei Bedarf auch anderen EC2-Instanzen zugeordnet werden.


[2]

Beispiel

  • Eine Elastic IP Addresse einem AWS Account zuweisen
    Mit dem Befehl ec2-allocate-address wird eine Elastic IP Address einem Account zugeordnet. Mit dem Befehl ec2-release-address kann die Adresse von dem Account wieder entfernt werden.


    ec2-allocate-address
    ADDRESS 75.101.155.119

  • Beschreibung der Zuordnung von IP-Adressen zu einem Account
    Nachdem eine Adresse einem Account zugewiesen wurde, können mit dem Befehl ec2-describe-addresses alle eingesehen werden, die einem Account zugeordnet sind. Über den Parameter kann auf eine spezielle IP-Adresse gefiltert werden. Ohne Parameter werden alle IP-Adressen ausgegeben.


    ec2-describe-addresses
    ADDRESS 75.101.157.145
    ADDRESS 75.101.155.119

    ec2-describe-addresses 75.101.157.145
    ADDRESS 75.101.157.145

  • Zuordnung einer Elastic IP Addresse zu einer bereits gestarteten Instanz
    Nachdem eine Elastic IP Adresse zugeordnet wurde, kann diese mit dem Befehl ec2-describe-instances ausgewählt und über den Befehl ec2-associate-address mit einer gestarteten Instanz verknüpft werden.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 ec2-72-44-33-67.compute-1.amazonaws.com
    INSTANCE i-b2e019db ami-2bb65342 ec2-67-202-3-83.compute-1.amazonaws.com

    ec2-describe-addresses
    ADDRESS 75.101.157.145

    Nun wird die Elastic IP 75.101.157.145 der Instanz mit der ID i-b2e019da zugeordnet.


    ec2-associate-address -i i-b2e019da 75.101.157.145
    ADDRESS 75.101.157.145 i-b2e019da

    Anschließend ist mit dem Befehl ec2-describe-addresses zu sehen, dass die IP der Instanz zugeordnet wurde.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019da

    ec2-describe-instances i-b2e019da
    INSTANCE i-b2e019da ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

  • Zuordnung einer Elastic IP Address zu einer anderen gestarteten Instanz
    Die Elastic IP kann auch einer anderen gestarteten Instanz zugeordnet werden. In diesem Beispiel gehören zu dem Account zwei aktive Instanzen -b2e019da und i-b2e019db. Es wird die IP-Adresse 75.101.157.145 von der Instanz i-b2e019da auf die Instanz i-b2e019db neu zugeordnet.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019da

    ec2-associate-address -i i-b2e019db 75.101.157.145
    ADDRESS 75.101.157.145 i-b2e019db

    Nach dem Update wird der Datenverkehr der an die IP Adresse 75.101.157.145 gesendet wird, nun per NAT an die interne IP Adresse der Instanz i-b2e019db weitergeleitet.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019db

    Der Instanz i-b2e019da ist nun keine öffentliche IP Adresse mehr zugewiesen, da diese der anderen Instanz zugeordnet ist. Dadurch ist sie nicht mehr über das Internet erreichbar, innerhalb der der Amazon Cloud aber schon.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 <> ip-10-251-71-165.ec2.internal
    INSTANCE i-b2e019db ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

    Im Hintergrund sorgt ein Prozess dafür, dass die Instanz i-b2e019da automatisch eine neue öffentliche IP Adresse erhält.


    ec2-describe-instances
    INSTANCE i-b2e019da ami-2bb65342 ec2-67-202-46-87.compute-1.amazonaws.com
    INSTANCE i-b2e019db ami-2bb65342 ec2-75-101-157-145.compute-1.amazonaws.com

  • Beenden einer laufenden Instanz mit einer zugeordneten Elastic IP
    Mit dem Befehl ec2-terminate-instance wird zuerst die Zuordnung der Elastic IP zu der Instanz entfernt, anschließend wird die Instanz beendet.
  • Entfernen der Zuordnung einer Elastic IP zu einer gestarteten Instanz

    Mit dem Befehl ec2-disassociate-address wird die Zuordnung einer Elastic IP aufgehoben.


    ec2-describe-addresses
    ADDRESS 75.101.157.145 i-b2e019db

    ec2-disassociate-address 75.101.157.145
    ADDRESS 75.101.157.145


    ec2-describe-addresses
    ADDRESS 75.101.157.145

  • Freigeben einer Elastic IP eines AWS Account
    Um eine Elastic IP von einem AWS Account wieder zu entfernen wird der Befehl ec2-release-address benötigt. Als Parameter wird die IP Adresse verwendet, die von dem Account entfernt werden soll.


    ec2-describe-addresses
    ADDRESS 75.101.157.145

    ec2-release-address 75.101.157.145
    ADDRESS 75.101.157.145


    ec2-describe-addresses

Quellen

[1] Amazon EC2 Elastic IP-Addresses
[2] Graphik: Amazon EC2 Elastic IP-Addresses



Was ist "Amazon Virtual Privat Cloud"?

Bei der Amazon Virtual Private Cloud (Amazon VPC) handelt es sich um eine Lösung zur sicheren und nahtlosen Verbindung der vorhandenen Unternehmensinfrastruktur mit den angemieteten Ressourcen innerhalb der Amazon Cloud. Die eigene Infrastruktur wird mittels einer VPN Verbindung (Virtual Private Network) mit der Amazon Infrastruktur verbunden und somit erweitert, wodurch eine Hybrid Cloud entsteht. Aktuell können nur Amazon EC2 Instanzen in die eigene Infrastruktur integriert werden. Die Integration der restlichen Amazon Web Services wie z.B. Amazon S3 soll folgen. Die Abbrechnung der Amazon Virtual Private Cloud erfolgt wie bei allen Amazon Web Services über die tatsächliche Nutzung (VPN Verbindungsdauer pro Stunde, VPN Datentransfer pro GByte).


[2]

Amazon VPC Funktionsweise

Mit der Amazon Virtual Private Cloud können die eigenen (isolierten) Ressourcen innerhalb der Amazon Cloud mit den Ressourcen im eigenen Rechenzentrum über ein verschlüsseltes IPsec VPN verbunden werden.

Dafür sind die folgenden Schritte notwendig:

  • Erstellung der Virtual Private Cloud innerhalb von Amazons Infrastruktur.
  • Festlegen eines eigenen IP-Adressbereiches.
  • Aufteilung des VPCs IP-Adressbereiches in mehrere Subnetze.
  • Verbinden der VPC mit der eigenen Infrastruktur mittels der VPN Verbindung.
  • Hinfzufügen der Amazon EC2 Instanzen zur VPC.
  • Das Routing so konfigurieren, das der Datentransfer zwischen der VPC und dem Internet über die VPN Verbindung vorgenommen wird.
  • Hinzufügen der innerhalb der eigenen Infrastruktur vorhandenen Sicherheits- und Managementregeln zu der VPC.

Funktionen

  • Isolierte Netzwerkverbindung
    Die Amazon Virtual Privat Cloud ermöglicht eine isolierte Ende zu Ende Netzwerkverbindung durch den Einsatz eines vorher festgelegten IP-Adressbereichs. Dadurch wird der gesamten Netzwerkverkehr zwischen der VPC und dem Rechenzentrum geroutet. Eine zusätzliche IPsec VPN Verbindung sorgt für die Verschlüsselung des Datentransfers.
  • Flexibilität
    Die Verwaltung der VPC erfolgt so wie die Verwaltung der eigenen Infrastruktur. Das bedeutet, dass innerhalb der VPC ebenso komplexe Netzwerkstrukturen mittels Subnetzen und Gateways aufgebaut werden kann. Zu den Möglichkeiten gehören:

    1. Erstellung und Verwaltung von Subnetzen.
    2. Hinzufügen von IP-Adressbereichen für Amazon EC2 Instanzen innerhalb der Subnetze.
    3. Konfiguration von sicheren Verbindungen um den Zugriff auf die Amazon Cloud einzuschränken.
  • Skalierung der bestehenden Infrastruktur
    Mit der Amazon Virtual Private Cloud kann die bereits bestehende Infrastruktur im eigenen Rechenzentrum mit den angemieteten Ressourcen innerhalb der Amazon Infrastruktur verbunden und damit erweitert werden - wodurch eine Hybrid Cloud entsteht. Damit besteht die Möglichkeit die Infrastruktur im eigenen Rechenzentrum bei Bedarf schnell, kostengünstig und ohne die Anschaffung weiterer Serverhardware zu erweitern, indem innerhalb der Amazon Cloud zusätzliche Amazon EC2 Instanzen hinzugefügt werden. Darüber hinaus kann z.B. ein Backup (1:1 Abbild) des Rechenzentrums erfolgen, indem das Rechenzentrum in die Amazon Cloud repliziert wird.

Preise

Alle Preise sind hier zu finden: Amazon VPC Preise

Quellen:

[1] Amazon VPC
[2] Graphik: Amazon VPC



Cloud Computing mit Open Source

Ein Vorteil von Cloud Computing besteht in dem einfachen gegenseitigen Bereitstellen und Nutzen von IT Services. Die Herausforderung ist aber, die Voraussetzungen zu schaffen eine einzelne Cloud mit anderen Clouds zusammenarbeiten zu lassen. Dazu sollten die kollaborierenden IT-Systeme über dieselben Sicherheitsanforderungen und robusten Infrastrukturen verfügen, wie es aus traditionellen IT Umgebungen bekannt ist. Auf Grund der Offenheit, Flexibilität, Interoperabilität und einem verringerten Risiko bzgl. eines Vendor lock-in, ist Open Source dafür die geeignete Technologie. Das führt dazu, dass sich Open Source mit Cloud Computing verschmelzen wird und "Open Source Clouds" in den nächsten Jahren zu einem großen Trend werden.

Es existieren bereits Cloud Computing Technologien auf Basis von Open Source, die ebenfalls schon eingesetzt werden. Diese möchte ich kurz vorstellen.

Linux Betriebssysteme

  • Die Ubuntu Enterprise Cloud kombiniert Ubuntu Linux mit Eucalyptus und diversen anderen Cloud Management Tools.
  • Red Hat Enterprise Linux, sowie andere Linux Distributionen können ebenfalls mit vorhanden Open Source Cloud Technologien kombiniert werden um Cloud Computing Umgebungen aufzubauen

Eucalyptus

  • Bei Eucalyptus handelt es sich um ein Forschungsprojekt von der University of California in Santa Barbara. Eucalyptus enthält die Apache Axis2 Web Services Engine, den Mule Enterprise Service Bus, Rampart Security und die Libvirt Virtualisierung API. Eucalyptus verfügt darüber hinaus über seine eigene Umsetzung der Amazon-API.
  • Webseite: http://open.eucalyptus.com

Deltacloud

  • Im September 2009 wurde durch Red Hat das Deltacloud Projekt gegründet. Die Idee hinter dem Projekt ist die einfache Integration von Public und Private Clouds. Deltacloud stellt eine gemeinsame auf REST basierende API zur Verfügung, um Amazon EC2 Instanzen und/oder Private Clouds auf Basis von VMware oder Red Hat Enterprise Linux miteinander zu verbinden. Das Deltacloud Portal dient zur Verwaltung aller Clouds die innerhalb einer Umgebung bereitgestellt werden. Geht es nach Red Hat, soll Deltacloud zu dem Standard des Cloud Computing werden.
  • Webseite: http://deltacloud.org

Nimbus

  • Bei Nimbus handelt es sich um ein Open Source Toolkit, mit dem Clustersystem in eine Infrastructure as a Service Umgebung verwandelt werden können. Mittels der EC2 Schnittstelle können sich Unternehmen mit der Public Cloud Infrastruktur von Amazon verbinden.
  • Webseite: http://www.nimbusproject.org

Virtual Machine Hypervisor

  • Viele Open Source Lösungen beinhalten den Xen Server von Citrix Systems.
  • Webseite: http://www.xen.org

Simple Cloud API

  • Die Simple Cloud API von Zend Technologies kann dafür verwendet werden, um von einem System aus auf mehrere Clouds zuzugreifen. Unterstützt werden u.a. GoGrid, IBM, Microsoft, Nirvanix Storage Delivery Network, and Rackspace Files
  • http://www.simplecloud.org

Damit sich Open Source Clouds durchsetzen, sind natürlich Standards notwendig. Darüber hinaus müssen sich ebenfalls Zuverlässigkeit und Sicherheit beweisen. Werden diese Herausforderungen gemeistert, befinden sich die Open Source Clouds auf einem guten Weg. Durch den Einsatz von Open Source können hier die Vorab-Investitionen minimiert werden. Zusätzlich behält jedes Unternehmen die vollständige Kontrolle über seine eigene Cloud, kann aber trotzdem die Infrastruktur durch shared Services von Public Clouds erweitern.



Was ist “Amazon S3?”

Amazon Simple Storage Service (Amazon S3) [1] stellt über einen Webservice eine Schnittstelle bereit, um darüber von überall aus eine unbegrenzte Menge an Daten zu speichern und diese wieder abzurufen.

Amazon S3 Funktionsweise

  • Speichern, Lesen und Löschen einer unbegrenzten Anzahl von Objekten (Dateien). Jedes Objekt kann eine Größe von 1 Byte bis zu 5 GByte haben.
  • Jedes Objekt wird in einem sogenannten Bucket gespeichert und kann über einen eindeutigen Key angesprochen werden.
  • Ein Bucket wird in einer von vielen Regionen gespeichert, wobei eine bestimmte Region z.B. auf Grund von Latenzzeiten zu bevorzugen ist. Jeder Bucket verfügt über einen eindeutigen Identifier und ist damit in der gesamten Amazon Cloud einmalig vorhanden.
  • Objekte die in einer bestimmten Region gespeichert werden, können auch nur in dieser Region wieder angesprochen werden. Sind z.B. Daten in Europa (Irland) gespeichert, kann auf diese Daten auch nur innerhalb von Europa zugegriffen werden. Ein Zugriff aus den USA auf die Daten ist in diesem Fall nicht möglich.
  • Über Authentifizierungs-Mechanismen wird sichergestellt, dass die Daten vor unbefugtem Zugriff geschützt sind. Die Objekte können als privat oder öffentlich gekennzeichnet werden. Jeder Benutzer kann unterschiedliche Zugriffsrechte auf Objekte erhalten.
  • Der Zugriff erfolgt über REST und SOAP Schnittstellen.
  • Amazon S3 ist protokollunabhängig, wobei HTTP das Standard Protokoll ist.


[2]

Amazon S3 Design Anforderungen

In Amazon S3 sollen Daten preiswert und sicher gespeichert werden und darüber hinaus zu jeder Zeit verfügbar sein, wenn sie benötigt werden.

  • Skalierbar: Amazon S3 skaliert anhand des verfügbaren Speicherplatz, der Anzahl der aktuellen Anfragen sowie der Anzahl der Benutzer um eine unbegrenzte Anzahl von Web-Anwendungen bereitzustellen. Indem das System weitere Knoten zur Verfügung gestellt bekommt wird die Verfügbarkeit, Geschwindigkeit, Kapazität, Robustheit und der Durchsatz erhöht.
  • Zuverlässig: Daten werden dauerhaft und mit einer Verfügbarkeit von 99,99% gespeichert. Es darf kein Single Point of Failure vorhanden sein. Alle Fehler müssen toleriert und durch das System automatisch repariert werden.
  • Fast: Die Geschwindigkeit muss hoch genug sein, um High-Performance-Anwendungen zu unterstützen. Die Server-seitige Latenz darf im Vergleich zur Internet Latenz keine Bedeutung haben. Jeder Performance-Engpass kann durch das einfache Hinzufügen von weiteren Knoten gelöst werden.
  • Preiswert: Amazon S3 besteht aus kostengünstiger Standard Hardware. Dadurch ist der Ausfall eines einzelnen Knoten der Normalfall, was aber nicht das gesamte System betreffen darf.
  • Einfach: Der Aufbau von hoch skalierbarem, zuverlässigen, schnellen und kostengünstigen Speicherplatz ist schwierig. Darüber hinaus muss jede Anwendung darauf von überall aus zugreifen können. Die Anforderung besteht also darin, Amazons interne Anwendungen (die Amazon Webseite) und zusätzlich parallel die Anwendungen von externen Entwicklern hoch performant zu handhaben.


[3]

Amazon S3 Design Grundsätze

Folgenden Grundsätze für das Design von verteilten Systemen werden für Amazon S3 eingesetzt:

  • Dezentralisierung: Vollständiger Einsatz von Technologien zur Dezentralisierung um Engpässe und Single Point of Failure zu vermeiden.
  • Asynchronität: Das System macht unter allen Umständen Fortschritte.
  • Autonomität: Das System ist so ausgelegt, dass einzelne Komponenten ihre Entscheidungen auf Basis lokaler Informationen treffen können.
  • Lokale Verantwortung: Jede Komponente ist selbst für seine eigene Konsistenz verantwortlich und muss diese auch selber erreichen.
  • Kontrollierte Nebenläufigkeit: Alle Operationen sind so ausgelegt, dass keine oder nur eine begrenzte Kontrolle der Konsistenz erforderlich ist.
  • Fehlertoleranz: Das System behandelt den Ausfall von Komponenten wie gewöhnliche Operationen und wird dadurch gar nicht oder nur minimal Unterbrochen.
  • Kontrollierte Parallelität: Parallelität kann genutzt werden, um die Leistung und Robustheit der Wiederherstellung zu verbessern, bzw. neue Knoten zu verwenden. Ein einziger Dienst sollte nicht alles für jeden bereitstellen. Stattdessen sollten kleine Komponenten verwendet werden, die als Bausteine für andere Dienste genutzt werden können.
  • Symmetrie: Alle Knoten im System sind bzgl. ihrer Funktionalität identisch und benötigen keine oder nur minimale knotenspezifische Konfigurationen um ausgeführt zu werden.
  • Einfachheit: Das System sollte so einfach wie möglich (aber nicht einfacher) gemacht werden.

Preise

Alle Preise sind hier zu finden: Amazon S3 Preise

Quellen:

[1] Amazon S3
[2] Graphik: Amazon S3 (1)
[3] Graphik: Amazon S3 (2)



Was ist "Amazon EC2?"

Amazon EC2 (Amazon Elastic Compute Cloud) [1] ist ein Webservice für die Bereitstellung von hoch skalierbarer Rechnerkapazität und wurde entwickelt, um die Entwicklung von skalierbare Web-Anwendungen für Entwickler einfacher zu machen. Die angemietete Rechnerleistung befindet sich in den weltweit verteilten Rechenzentren von Amazon und kann über eine Webservice Schnittstelle vollständig konfiguriert und kontrolliert werden.

Durch das Hinzufügen und Starten von Serverinstanzen innerhalb von Minuten kann die verwendete Infrastruktur in kurzer Zeit je nach den aktuellen Anforderungen skaliert werden. Ist die Last hoch, werden mehr Instanzen hinzugefügt, nimmt die Last wieder ab, werden die nicht mehr benötigten Kapazitäten entfernt.

Da nur für die Ressourcen bezahlt wird, die auch tatsächlich verwendet werden, erhält man dadurch eine bessere Kosteneffizienz. Der Normalfall besteht in der Anschaffung eigener überdimensionierter Systeme, die im Gesamtdurchschnitt nur zu 20% ausgelastet sind. Die restlichen 80% werden nur während Spitzenlasten genutzt und verursachen sonst nur unnötige Kosten.

Amazon EC2 Funktionsweise

Die virtuelle Umgebung von Amazon EC2 wird mittels einer Webservice Schnittstelle angesprochen, über die auf Serverinstanzen mit einer vielzahl unterschiedlicher Betriebssysteme zugegriffen werden kann. Die Betriebssysteme können wie eigene "lokale" Betriebssysteme mit Software erweitert und können ebenfalls mit Zugriffsberechtigungen konfiguriert werden.


[2]

Eine einfache Vorgehensweise

  • Auswahl und Start eines bereits vor-konfigurierten Images (Vorlage). Alternativ kann auch ein eigenes Amazon Machine Image (AMI) erstellt werden. Dieses beinhaltet dann eigene Anwendungen, Bibliotheken, Daten und Konfigurationen.
  • Konfiguration der Sicherheitseinstellungen und des Netzwerkzugriffs auf die jeweilige EC2 Instanz.
  • Auswahl des Instanz Typs und des Betriebssystems.
  • Festlegen des Orts, wo die Server ausgeführt werden sollen (USA, Europa, ...).
  • Festlegen einer statischen IP-Adresse.
  • Hinzufügen von Speicherplatz.

Leistungen im Überblick

  • Elastisch: Rechnerkapazität kann je nach Bedarf innerhalb von Minuten vergrößert und verkleinert werden. Dabei kann man einen aber auch tausend Server Instanzen gleichzeitg nutzen, die mittels der Web Service API angesprochen werden und automatisch skalieren.
  • Vollständige Kontrolle: Für jede Server Instanz besteht vollständiger Root-Zugriff.
  • Flexibilität: Man kann zwischen mehreren Instanzen Typen, Betriebssystemen und Software-Pakete wählen. Die Serverhardware kann so konfiguriert werden, dass der Speicher, die CPU, und die Größe der Boot-Partition, optimal für das Betriebssystem und die Anwendung ausgelegt sind.
  • Amazon Web Services: Vollständige Unterstützung und Integration mit den anderen Amazon Web Services wie Amazon Simple Storage Service (Amazon S3), Amazon SimpleDB und Amazon Simple Queue Service (Amazon SQS).
  • Zuverlässig: Das Service Level Agreement von Amazon EC2 besagt 99,95% Verfügbarkeit für jede Amazon EC2 Region.
  • Sicherheit: Amazon EC2 stellt folgende Sicherheitsfunktionen bereit:

    • Über die Webservice Schnittstelle kann eine Firewall für den Zugriff auf die jeweilige Instanz und zwischen einzelnen Instanzen/ Gruppen von Instanzen konfiguriert werden.
    • Mittels der Amazon Virtual Private Cloud (Amazon VPC) können die Instanzen in einen eigenen (privaten) IP-Adressbereich verlagert werden. Darüber hinaus kann über die (haus)-eigene Infrastruktur mit einem IPSec VPN auf diese Instanzen in der Amazon Cloud zugegriffen werden.
  • Kostengünstig:

    • On-Demand Instanzen: Bei On-Demand Instanzen zahlt man nur für die Rechnerkapazität die tatsächlich genutzt wird. Die Abbrechnung erfolg dabei pro Stunde ohne langfristige Verpflichtungen einzugehen. Dadurch entfällt die Überdimensionierung der Serverlandschaft um Lastspitzen auszugleichen.
    • Reservierte Instanzen: Instanzen können für eine niedrige, einmalige Zahlung pro Instanz reserviert werden. Im Gegenzug erhält man einen Rabatt auf die Nutzungsgebühr (Stundenpreis) für diese Instanz. Anschließend ist diese Instanz ohne weitere Verpflichtungen reserviert und kann wie gewohnt genutzt werden.
    • Spot Instanzen: Hier bietet man auf ungenutzte Amazon EC2 Kapazitäten. Dazu teilt man Amazon mit, welche EC2 Instanz man gerne haben möchte und was man bereit ist dafür zu bezahlen. Anhand von Angebot und Nachfrage wird ein Spot-Preis ermittelt.


[3]

Funktionen

  • Amazon Elastic Block Store
    Amazon Elastic Block Store (EBS) dienen zur dauerhaften Speicherung der Amazon EC2-Instanzen. Neben aktiven können auch Instanzen gespeichert werden, die gerade nicht verwendet werden. Die Volumes können als Boot Partition für EC2-Instanzen verwendet werden oder direkt an eine bereits gestartete EC2-Instanz angeschlossen werden. Die EBS-Volumes werden automatisch in eine einfache Verfügbarkeitszone repliziert und ein Snapshot kann zusätzlich in Amazons S3 Dienst abgelegt werden. Dieser Snapshot wird dann über mehrere Verfügbarkeitszonen verteilt. Ein Snapshot kann, wenn gewünscht, als Ausgangspunkt für einen neuen Amazon EBS dienen.

  • Mehrere Standorte
    Amazon EC2 Instanzen können an mehreren Standorten verteilt werden. Die Standorte sind dabei in Regionen und Verfügbarkeitszonen aufgeteilt. Verfügbarkeitszonen sind unterschiedliche Orte, die entwickelt wurden, um von Fehlern in anderen Verfügbarkeitszonen nicht betroffen zu sein. Zudem haben unterschiedliche Verfügbarkeitszonen unterschiedliche Latenzzeiten in einer Region. Durch den Einsatz von separaten Verfügbarkeitszonen wird eine Anwendung von Ausfällen an einzelnen Standorten nicht betroffen. Die einzelnen Verfügbarkeitszonen sind geografisch in verschiedenen Orten und Ländern verteilten. Dazu gehören derzeit der Osten der USA (Northern Virginia), der Westen der USA (Northern California) und Europa (Irland).
  • Elastische IP-Adressen
    Elastische IP-Adressen sind statische IP-Adressen die für dynamisches Cloud Computing entwickelt wurden. Diese IP-Adresse ist mit dem AWS-Account und nicht mit einer konkreten Instanz verknüpft. Im Fehlerfall einer Instanz wird die IP-Adresse des betroffenen Servers auf einen funktionieren Server neu gemapped.
  • Amazon Virtual Private Cloud
    Mit der Virtual Private Cloud die EC2-Instanzen innerhalb der Amazon Cloud in das eigenen Firmennetz eingebunden werden. Sie fungieren dann im Prinzip als lokal vorhandene Server und können auf andere Systeme zugreifen, genau so wie auf sie zugegriffen werden kann.
  • Amazon CloudWatch
    Wird HIER beschrieben.
  • Auto Scaling
    Wird HIER beschrieben.
  • Elastic Load Balancing
    Wird HIER beschrieben.

Typen von Instanzen

Standard Instanzen

  • Small Instance: 1.7 GB Arbeitsspeicher, 1 EC2 Prozessor, 160 GB Speicherplatz, 32-bit Plattform
  • Large Instance: 7.5 GB Arbeitsspeicher, 4 EC2 Prozessoren, 850 GB Speicherplatz, 64-bit Plattform
  • Extra Large Instance:15 GB Arbeitsspeicher, 8 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

High-Memory Instanzen

  • High-Memory Double Extra Large Instance: 34.2 GB Arbeitsspeicher, 13 EC2 Prozessoren, 850 GB Speicherplatz, 64-bit Plattform
  • High-Memory Quadruple Extra Large Instance: 68.4 GB Arbeitsspeicher, 26 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

High-CPU Instanzen

  • High-CPU Medium Instance: 1.7 GB Arbeitsspeicher, 5 EC2 Prozessoren, 350 GB Speicherplatz, 32-bit Plattform
  • High-CPU Extra Large Instance: 7 GB Arbeitsspeicher, 20 EC2 Prozessoren, 1690 GB Speicherplatz, 64-bit Plattform

EC2 Prozessor: Ein EC2 Prozessor ist mit mit einem 1.0-1.2 GHz 2007 Opteron bzw. 2007 Xeon Prozessor vergleichbar.

Betriebssysteme und Software

Betriebssysteme

Folgende vorkonfigurierte Amazon Machine Images (AMI) stehen zur Verfügung:

  • Red Hat Enterprise Linux
  • Windows Server 2003/2008
  • Oracle Enterprise Linux
  • OpenSolaris
  • openSUSE Linux
  • Ubuntu Linux
  • Fedora
  • Gentoo Linux
  • Debian

    Des Weiteren können vorkonfigurierte AMIs inkl. vorinstallierter Software genutzt werden. Folgende Softwarelösungen stehen zur Verfügung:

Datenbanken

  • IBM DB2
  • IBM Informix Dynamic Server
  • Microsoft SQL Server Standard 2005
  • MySQL Enterprise
  • Oracle Database 11g

Batch-Verarbeitung

  • Hadoop
  • Condor
  • Open MPI

Web Hosting

  • Apache HTTP
  • IIS/Asp.Net
  • IBM Lotus Web Content Management
  • IBM WebSphere Portal Server

Anwendungsentwicklung

  • IBM sMash
  • JBoss Enterprise Application Platform
  • Ruby on Rails

Applikationserver

  • IBM WebSphere Application Server
  • Java Application Server
  • Oracle WebLogic Server

Video Encoding & Streaming

  • Wowza Media Server Pro
  • Windows Media Server

Preise

Alle Preise für

  • Datentransfer
  • Amazon Elastic Block Store
  • Elastic IP Addresses
  • Amazon CloudWatch
  • Elastic Load Balancing

sind hier zu finden: Amazon EC2 Preise

Quellen:

[1] Amazon EC2
[2] Graphik: Amazon EC2 (1)
[3] Graphik: Amazon EC2 (2)



Was ist AWS Import/Export?

Der Import/Export [1] Dienst der Amazon Web Services dient dazu, große Datenmengen auf einem schnelleren Weg in die Amazon Cloud zu transferieren bzw. diese hinaus zu bekommen, indem die Daten auf einem Datenträger auf postalischen Weg an Amazon verschickt werden. Dazu überträgt Amazon die Daten direkt vom gelieferten Datenträger über ihr internes Netzwerk in die Cloud. In einigen Fällen ist es kostengünstiger die Daten auf diesem Weg in die Amazon Cloud zu übertragen, als den Weg über das Internet zu wählen und dabei ggf. die Geschwindigkeit der Internetverbindung zu erhöhen.

Vorgehensweise

  • Vorbereiten eines Datenträgers mit den zu transferierenden Daten.
  • Eine Manifest Datei, die alle Informationen (Amazon S3 buckt, AWS Access Key ID, Rücksendeadresse) an Amazon verschicken.
  • Anschließend sendet Amazon eine E-Mail mit einem eindeutigen Kennzeichen und der AWS Versandadresse an die der Datenträger versendet werden muss.
  • Jetzt muss der Datenträger noch für die Identifizierung und Authorisierung vorbereitet werden, indem die Manifest-Datei und die Job-Id mit einer Digitalen Signatur verschlüsselt und auf den Datenträger hinterlegt werden.
  • Der Datenträger mird mit sämtlichen Zubehör an Amazon verschickt.


[2]

Wofür kann AWS Import/Export verwendet werden?

  • Datenmigration: Große Menge an Daten die erstmals in die Amazon Cloud transferiert werden sollen. AWS Import/Export ist in der Regel schneller als der Datentransfer über das Internet.
  • Externe Datensicherung: Vollständige oder Inkrementelle Backups können durch Amazon S3 zuverlässig und redundant gesichert werden.
  • Direkter Datenaustausch: Erhält man von seinen Geschäftspartnern die Daten regelmäßig auf Datenträgern, können diese auf direkten Weg zu Amazon versendet werden. Von dort werden die Daten dann in das eigene Amazon S3 bucket importiert.
  • Systemwiederherstellung: Für den Fall eines Systemausfalls und der notwendigen Wiederherstellung können die Daten mittels AWS Import/Export von Amazon S3 heruntergeladen, auf einem Datenträger gespeichert und anschließend in das eigene (lokale) System wieder importiert werden.

Quellen:

[1] AWS - Import/Export
[2] Graphik: AWS - Import/Export



Decaf – Mobiles Infrastrukturmanagement für Amazon EC2

Jeder Administrator oder Entwickler kennt das Problem. Man(n) sitzt gemütlich mit der Frau/ Freundin im Restaurant und schwelgt mit seinen Gedanken gerade in Wolke Sieben. "Funktionieren meine Instanzen noch? Wie ist die aktuelle Performance". ;)

Genau dafür hat das Unternehmen 9apps mit seiner Anwendung Decaf erstmalig eine mobile Infrastrukturmanagementsoftware für Amazon EC2 Instanzen auf Basis von Android entwickelt. Die Funktionen und Einsatzmöglichkeiten der Software möchte ich hier nun kurz vorstellen.

Was ist Decaf?

  • Decaf ist eine auf Basis von Android funktionierende mobile Infrastrukturmanagementsoftware zur Verwaltung von Amazon EC2 Instanzen.

Welche Funktionen bietet Decaf?

  • Monitoring der Server inkl. Benachrichtigungen bei evtl. Ausfällen.
  • Kontinuierliche graphische Darstellung der aktuellen Zustände der Instanzen als Widget. Das beinhaltet die CPU-Auslastung, Netzwerk Aktivitäten und die Lese- und Schreibzugriffe der Festplatten.
  • Alle Managementfunktionen von Amazon EC2 stehen zur Verfügung, darunter z.B. Stoppen, Neustart und Monitoring der Instanzen oder das Hinzufügen von weiteren Volumes.
  • Zugriff auf alle Informationen von Amazon EC2, wie z.B. einer Gesamt Zusammenfassung bis zu Details der einzelnen Instanzen.

Zukünftige Funktionen?

  • Verwaltung von mehreren Amazon EC2 Accounts.
  • Entwicklung einer speziellen Schnittstelle für Kunden, die eine vielzahl an Instanzen zu verwalten haben.

Das Dashboard

Mit dem Dashboard kann auf alle Daten des jeweiligen Accounts zugegriffen werden. Dazu gehören u.a. Informationen wie Details über alle Instanzen, Amazon Machine Images (AMIs), Snapshots, Elastic IPs, sowie Security Groups und die Key Pairs.

Das Widget

Das Widget stellt alle Informationen in Echtzeit dar und aktualisiert sich selbständig, wodurch es unverzüglich informiert wenn etwas unerwartetes passiert. Die Diagramme des Widgets geben Auskunft über die Entwicklung und Änderungen der durchschnittlichen CPU-Leistung, der gesamten Lese- und Schreib-Aktivitäten der Festplatten, sowie des ein- und ausgehenden Netzwerktraffics innerhalb der letzten 24 Stunden.

Ansicht einer Instanz

Der Verwaltungsbereich bietet die Möglichkeit zum Starten, Beenden und Neustarten einer Instanz. Alle von EC2 bekannten Informationen können hierüber abgefragt und überwacht werden.

Ansicht mehrerer Instanzen

Mittels der Ansicht aller Instanzen erhält man einen Gesamtüberblick über den Zustand sämtlicher Instanzen eines Accounts. Anhand der grünen, roten und grauen Kaffeebohne wird der Status dargestellt.

  • Grün = alles ist in Ordnung
  • Rot = es besteht ein Problem
  • Grau = die Instanz ist nicht verfügbar

Durch das Tippen auf eine Instanz erhält man detailliertere Informationen - siehe "Ansicht einer Instanz".

Wunschliste

Folgende Wünsche zur Funktionserweiterung wurden an 9apps bisher von den Benutzern herangetragen, die sukzessive eingebaut werden:

  • Monitoring von Ports (ssh, http, mysql, smtp, etc.)
  • Verwaltung mehrerer Accounts
  • Verwaltung von Images und Snapshots
  • Integration von CloudWatch inkl. Autoscaling und Loadbalancing
  • Konfiguration der Diagramme bzgl. der Größenangaben (Widget und CloudWatch)
  • Einstellungen von Schwellwerten und Integration einer Alarmfunktion auf Basis der CloudWatch Daten
  • Integration von CloudFront
  • Integration mit 'ConnectBot'
  • Anbindung weiterer Anbieter (möglicherweise über Plugins)
  • Ein Release für das iPhone ist ebenfalls geplant.

Weitere Informationen



Was ist "CloudWatch"?

Amazon CloudWatch stellt eine Echtzeit Überwachungsfunktion für EC2-Instanzen bereit. Dabei wird der gesamte Ressourcenverbrauch wie die CPU-Auslastung, die Schreib/Lesezugriffe der Festplatten sowie die Netzlast/ Traffic visualisiert. Die Werte werden jede Minute aktualisiert und zwei Wochen gespeichert. Für die Nutzung von CloudWatch muss der Dienst nur einer EC2-Instanz zugewiesen werden. Die Datenauswertung erfolgt anschließend über die AWS Management Console, die Webservice APIs oder über die Kommandozeile.


[2]

Quellen:

[1] AWS - CloudWatch
[2] Graphik: Cloud Watch



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



Infrastructure as a Service

Infrastructure as a Service (IaaS) ist die unterste Schicht des Cloud Computing Service-Models. Sie bildet die Grundlage und stellt die grundlegenden Dienste wie Speicherplatz und Rechenkapazität bereit. In diesem Zusammenhang kann auch von Hardware as a Service (HaaS) gesprochen werden, da die gesamte Infrastuktur - Server, Speicherplatz, aber auch Router und Switches - mittels Virtualisierung bereitgestellt und gemietet (i.d.R pay per use) werden. Die gesamte Infrastruktur ist so skaliert, dass sie in Zeiten von Spitzenlast dynamisch erweitert wird und somit unterschiedlichen Auslastungen angepasst werden kann. Bei IaaS ist der Drittanbieter lediglich für die Bereitstellung und Wartung der Hardware zuständig. Alle anderen benötigten Ressourcen wie z.B. das Betriebssystem, Anwendungen etc. obligen dem Unternehmen.

Infrastructure as a Service
Infrastructure as a Service [1]

[1] Microsoft Press
Cloud Computing mit der Microsoft Plattform
Microsoft Press PreView 1-2009