27.12.2012 Aufrufe

Knackpunkt API - Standardisierte IaaS-Cloud-Schnittstellen

Knackpunkt API - Standardisierte IaaS-Cloud-Schnittstellen

Knackpunkt API - Standardisierte IaaS-Cloud-Schnittstellen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

KOMMUNIKATIONSMANAGEMENT<br />

Evren Eren,<br />

Christian Karnath<br />

<strong>Cloud</strong> Computing stellt einen echten<br />

Paradigmenwechsel in der Nutzung<br />

und Bereitstellung von IT-Diensten<br />

dar und ist ein aktuelles<br />

Schwerpunktthema der IT-Branche.<br />

Unternehmen können bei einem<br />

<strong>Cloud</strong>-Anbieter ad-hoc IT-Ressourcen<br />

in Form von Hard- oder Software<br />

anmieten und diese je nach Bedarf<br />

skalieren. Hierdurch werden nicht nur<br />

Kostenpotenziale adressiert, sondern<br />

durch das bedarfsgerechte<br />

Outsourcing der IT in die <strong>Cloud</strong><br />

können sich die Unternehmen wieder<br />

auf ihr Kerngeschäft konzentrieren.<br />

Doch eine einheitliche Steuerung der<br />

<strong>Cloud</strong> ist das wesentliche Problem.<br />

Prof. Dr. Evren Eren ist am Lehrstuhl für IT-<br />

Sicherheit und Rechnernetze an der Fachhochschule<br />

Dortmund, Christian Karnath als Geschäftsführer<br />

bei der Firma 2kit Consulting in<br />

Oberhausen tätig<br />

<strong>Knackpunkt</strong> <strong>API</strong><br />

<strong>Standardisierte</strong> <strong>IaaS</strong>-<strong>Cloud</strong>-<strong>Schnittstellen</strong><br />

Die technischen Basiskonzepte des<br />

<strong>Cloud</strong> Computing sind nicht neu, sondern<br />

<strong>Cloud</strong> Computing verknüpft und<br />

abstrahiert etablierte Konzepte. Hierzu<br />

zählen beispielsweise die Basistechniken<br />

Internet, Hochleistungsserver,<br />

Browser, Web 2.0, mobile Endgeräte,<br />

Virtualisierung und Programmierschnittstellen.<br />

Benutzer einer<br />

<strong>Cloud</strong> müssen sich normalerweise<br />

nicht explizit um diese kümmern, sondern<br />

profitieren von Funktionen wie<br />

zum Beispiel der Skalierung oder Ausfallsicherheit.<br />

Grundlage für die meisten <strong>Cloud</strong>-<br />

Plattformen ist die Virtualisierung von<br />

Hardwareressourcen. Hierdurch kann<br />

ein Betriebssystem (z.B. Windows) in<br />

einem anderen (z.B. Linux) als virtuelle<br />

Maschine laufen. Der Hypervisor<br />

schafft dabei die Umgebung für die<br />

virtuellen Maschinen und leitet Systemaufrufe<br />

an die reale Hardware<br />

weiter. Bekannte Produktlösungen<br />

sind z.B. VMware, KVM und XEN.<br />

Das Bereitstellen von Programmierschnittstellen<br />

(Application Programming<br />

Interface – <strong>API</strong>) für den Zugriff<br />

auf <strong>Cloud</strong>-Dienste ist ebenfalls ein<br />

essenzieller Bestandteil des <strong>Cloud</strong><br />

Computing. Durchgesetzt haben sich<br />

in diesem Umfeld die Implementierungen<br />

SOAP und Representational<br />

State Transfer (REST). SOAP ist ein<br />

Nachrichtenprotokoll und wird üblicherweise<br />

mit HTTP als Transportprotokoll<br />

eingesetzt. REST hingegen beschreibt<br />

einen Architekturstil, der<br />

zwingend auf HTTP aufsetzt und die<br />

HTTP-Verben benutzt, wie z.B. GET<br />

und POST. Des Weiteren ist für SOAP<br />

und WSDL das Austauschformat XML<br />

vorgeschrieben, wohingegen bei REST<br />

neben XML z.B. auch JSON benutzt<br />

werden kann.<br />

<strong>Cloud</strong>-Servicemodelle<br />

Nach der klassischen Definition des<br />

NIST (National Institute of Standards<br />

and Technology) werden drei verschiedene<br />

Servicemodelle unterschieden,<br />

die sich in ihrem Abstraktionsgrad,<br />

d.h. in der angebotenen <strong>Cloud</strong>-<br />

Dienstleistung voneinander unterscheiden<br />

(Bild 1).<br />

Die unterste Abstraktionsebene repräsentiert<br />

die <strong>IaaS</strong>-Ebene (Infrastructure<br />

as a Service), die lediglich Infrastrukturressourcen<br />

zur Verfügung stellt,<br />

dafür aber dem Kunden größtmögliche<br />

Flexibilität bietet. Zu den IT-Infra-<br />

Bild 1: <strong>Cloud</strong>-Servicemodelle (SaaS – Software<br />

as a Service, PaaS – Platform as a Service, <strong>IaaS</strong> –<br />

Infrastructure as a Service)<br />

strukturkomponenten gehören beispielsweise<br />

Rechenleistung, Massenspeicher<br />

und Netzkomponenten bzw.<br />

-funktionen. Typische Aufgaben sind<br />

das Anlegen und Löschen von Betriebssysteminstanzen,<br />

das Auslagern<br />

von Dateien sowie das Definieren von<br />

Netzkomponenten.<br />

Aufbauend auf der <strong>IaaS</strong>-Schicht bietet<br />

die PaaS-Ebene (Platform as a Service)<br />

dem Kunden eine verwaltete Umgebung<br />

an, auf der eigene Anwendungen<br />

entwickelt und bereitgestellt werden<br />

können. Hier liegen die notwendigen<br />

Entwicklungswerkzeuge und<br />

-umgebungen vor.<br />

Die höchste Abstraktionsebene ist die<br />

SaaS-Ebene (Software as a Service),<br />

auf der bereits vollwertige Anwendungen<br />

existieren und direkt verwendet<br />

werden können. Die Idee dahinter<br />

ist, dass Software nicht mehr lokal auf<br />

einem Rechner installiert und konfiguriert,<br />

sondern für eine Vielzahl von Benutzern<br />

über das Internet „on Demand“<br />

bereitgestellt wird.<br />

12 NET 11/12


<strong>IaaS</strong>-<strong>Cloud</strong>-Anbieter und <strong>API</strong>s<br />

Die nebenstehende Tabelle bietet einen<br />

Überblick über die wesentlichen<br />

Anbieter und Produkte <strong>IaaS</strong>-basierter<br />

<strong>Cloud</strong>-Lösungen und deren <strong>API</strong>-Eigenschaften.<br />

Die erste Spalte enthält<br />

die Bezeichnungen der verschiedenen<br />

<strong>Cloud</strong>-Typen, während die zweite<br />

Spalte spezifiziert, ob es sich um einen<br />

<strong>Cloud</strong>-Anbieter oder um ein Produkt<br />

zum Aufbau einer eigenen<br />

<strong>Cloud</strong>-Infrastruktur handelt. In der<br />

dritten Spalte sind die <strong>Schnittstellen</strong>protokolle<br />

wiedergegeben, die die jeweilige<br />

<strong>Cloud</strong> dem Kunden zur Verfügung<br />

stellt, um mit deren <strong>API</strong> kommunizieren<br />

zu können. Die vierte Spalte<br />

beschreibt, welche Austauschformate<br />

die <strong>Cloud</strong> ihren Kunden bietet. In der<br />

letzten Spalte ist aufgezeigt, wie die<br />

<strong>Schnittstellen</strong>implementierungen aussehen.<br />

Viele <strong>Cloud</strong>-Lösungen setzen entweder<br />

eigene Implementierungen für ihre<br />

Schnittstelle ein oder Implementierungen,<br />

die bereits andere Hersteller<br />

spezifiziert haben. Einige <strong>Cloud</strong>-Lösungen<br />

bieten dem Kunden verschiedene<br />

<strong>Schnittstellen</strong>protokolle und<br />

-formate zur Auswahl an, wobei das<br />

<strong>Schnittstellen</strong>protokoll REST und das<br />

Austauschformat XML am häufigsten<br />

anzutreffen sind.<br />

Fehlende Interoperabilität<br />

Sollte sich der Anwender dazu entscheiden,<br />

Produkte verschiedener<br />

<strong>IaaS</strong>-<strong>Cloud</strong>-Anbieter gleichzeitig zu<br />

benutzen oder einen Anbieter zu<br />

wechseln, steht er vor einer großen<br />

Herausforderung. Bedingt durch die<br />

Vielzahl der Anbieter und Produkte ist<br />

die Interoperabilität zwischen den verschiedenen<br />

<strong>IaaS</strong>-<strong>Cloud</strong>s nicht gewährleistet,<br />

weil jeder <strong>Cloud</strong>-Anbieter eigene<br />

<strong>API</strong>s und Management-Tools bereitstellt,<br />

so dass z.B. Rollout-Skripte<br />

angepasst und unterschiedliche Management-Tools<br />

verwendet werden<br />

müssen.<br />

<strong>Cloud</strong>-<strong>API</strong>-Standards<br />

Verschiedene Normierungsorganisationen<br />

versuchen diesem Dilemma<br />

entgegenzuwirken und erarbeiten<br />

NET 11/12<br />

standardisierte <strong>API</strong>s für <strong>Cloud</strong>-Anbieter,<br />

die allerdings seitens der Anbieter<br />

nur in Ansätzen implementiert werden:<br />

Das Unified <strong>Cloud</strong> Interface (UCI)<br />

(http://code.google.com/p/unified<br />

cloud) ist ein offener <strong>Cloud</strong>-Computing-Standard,<br />

der durch das <strong>Cloud</strong><br />

Computing Interoperability Forum<br />

(CCIF, www.cloudforum.org) entwickelt<br />

wird. Aktuell existiert ein Entwurf<br />

der Spezifikation<br />

und Architektur,<br />

wobei seit Februar<br />

2010 keine<br />

neuen Änderungen<br />

veröffentlicht<br />

wurden.<br />

Das <strong>Cloud</strong> InfrastructureManagement<br />

Interface (CI-<br />

MI) wird durch die<br />

Distributed Management<br />

Task Force<br />

(DMTF, www.dmtf.<br />

org/standards/<br />

cloud) entwickelt.<br />

Bei dieser Spezifikation<br />

handelt es sich ebenfalls um einen<br />

Entwurf, der noch in Bearbeitung<br />

ist und keinen offiziellen DMTF-Standard<br />

darstellt. Die letzte Version<br />

(1.0.0e) des Spezifikationsentwurfs<br />

wurde am 20. Juni 2012 veröffentlicht.<br />

Im Gegensatz zu den zuvor genannten<br />

Spezifikationen ist das Open<br />

<strong>Knackpunkt</strong> <strong>API</strong><br />

<strong>Cloud</strong> Computing Interface (OCCI,<br />

http://occi-wg.org) ein bereits veröffentlichter<br />

Standard, der durch das<br />

Open Grid Forum spezifiziert wurde.<br />

<strong>Cloud</strong>-Bezeichnung <strong>Cloud</strong>-Art <strong>API</strong>-Protokoll <strong>API</strong>-Format <strong>API</strong>-Implementierung<br />

Amazon Web Services (AWS) Anbieter REST, SOAP JSON, XML eigene<br />

Citrix <strong>Cloud</strong>Stack Open-Source-Produkt REST, SOAP JSON, XML eigene, AWS EC2<br />

<strong>Cloud</strong>Sigma Anbieter REST JSON eigene<br />

Eucalyptus Open-Source-Produkt REST, SOAP JSON, XML AWS EC2 und S3, OCCI<br />

Fujitsu Global <strong>Cloud</strong> Platform Anbieter XML-RPC XML eigene<br />

GoGrid Anbieter REST JSON, XML eigene<br />

Google Storage Anbieter REST JSON, XML eigene<br />

HP <strong>Cloud</strong> Anbieter REST, SOAP JSON, XML OpenStack, AWS<br />

IBM Smart<strong>Cloud</strong> Anbieter REST JSON, XML eigene<br />

Microsoft Windows Azure Anbieter REST, SOAP JSON, XML eigene<br />

Nimbus Open-Source-Produkt REST, SOAP JSON, XML AWS EC2 und S3<br />

Ninefold Anbieter REST JSON, XML eigene<br />

OpenNebula Open-Source-Produkt REST, SOAP JSON, XML AWS EC2 und S3, OCCI<br />

OpenStack Open-Source-Produkt REST, SOAP JSON, XML eigene, AWS, OCCI<br />

oVirt Project Open-Source-Produkt REST JSON, XML eigene<br />

Rackspace Anbieter REST JSON, XML eigene und OpenStack<br />

Redhat Enterprise Virtualization Open-Source-Produkt REST JSON, XML eigene<br />

RimuHosting Anbieter REST JSON, XML eigene<br />

Terremark v<strong>Cloud</strong> Express Anbieter REST XML eigene<br />

VMware v<strong>Cloud</strong> Suite proprietäres Produkt REST, SOAP JSON, XML eigene<br />

<strong>IaaS</strong>-<strong>Cloud</strong>-Anbieter und -Produkte<br />

Die Entwicklung begann im März<br />

2009 und wurde ursprünglich von<br />

Sun Microsystems, RabbitMQ und der<br />

Universität Complutense Madrid geführt.<br />

Die aktuelle Version (1.1) wurde<br />

am 7. April 2011 veröffentlicht. Heute<br />

hat die Arbeitsgruppe über 250 Mit-<br />

Bild 2: Zusammenspiel einer Client-Anwendung mit Deltacloud<br />

glieder und umfasst zahlreiche Einzelpersonen,<br />

Industrieunternehmen und<br />

öffentliche Institutionen. Ziel von<br />

OCCI ist die Entwicklung einer offenen<br />

Spezifikation und <strong>API</strong> für <strong>Cloud</strong><br />

Computing. OCCI ist kompatibel zu<br />

bestehenden Standards wie dem<br />

Open Virtualization Format (OVF) und<br />

dem <strong>Cloud</strong> Data Management Inter-<br />

13


<strong>Knackpunkt</strong> <strong>API</strong><br />

face (CDMI). Implementierungen von<br />

OCCI gibt es u.a. für die Produkte<br />

OpenNebula, OpenStack und Eucalyptus.<br />

Bild 3: REST-Zugriff über Deltacloud am Beispiel von Amazon EC2<br />

Apache Deltacloud<br />

Neben der Normierung von <strong>Cloud</strong>-<br />

<strong>API</strong>s versuchen diverse Softwareprojekte<br />

das <strong>API</strong>-Problem auf eine andere<br />

Weise zu adressieren. Deltacloud – ein<br />

Apache-Top-Level-Projekt (http://del<br />

tacloud.apache.org) – versucht, eine<br />

Bild 4: Android-Version des <strong>Cloud</strong> Manager<br />

Interoperabilität von <strong>IaaS</strong>-<strong>Cloud</strong>s zu<br />

realisieren, indem die proprietären<br />

<strong>Schnittstellen</strong> der Anbieter und Produkte<br />

über eine einheitliche abstra-<br />

hierte Schnittstelle angesprochen werden<br />

können.<br />

Das Projekt stellt eine standardisierte<br />

programmiersprachenunabhängige<br />

<strong>API</strong> auf Basis von REST bereit. Bei Hinzukommen<br />

neuer <strong>Cloud</strong>-Anbieter<br />

oder Änderung bestehender <strong>Cloud</strong>-<br />

<strong>API</strong>s, muss nunmehr eine <strong>Cloud</strong>-Anwendung<br />

nicht angepasst, sondern<br />

nur die Middleware aktualisiert werden,<br />

so dass mit denselben Befehlen<br />

und Parametern unterschiedliche<br />

<strong>Cloud</strong>-Anbieter gesteuert werden<br />

können (Bild 2). Dabei wird Deltacloud<br />

als Server zwischen <strong>Cloud</strong>-Anbieter<br />

und -Anwendung geschaltet<br />

und übersetzt alle HTTP-Requests und<br />

-Responses. Im Beispiel in Bild 3 fragt<br />

die <strong>Cloud</strong>-Anwendung (in Form eines<br />

Client) via Deltacloud alle instanziierten<br />

Server eines Benutzers bei der<br />

<strong>IaaS</strong>-<strong>Cloud</strong> Amazon EC2 ab. Die Amazon-<strong>API</strong><br />

liefert auf diesen Request ein<br />

XML-formatiertes Dokument zurück,<br />

das von Deltacloud übersetzt und an<br />

die <strong>Cloud</strong>-Anwendung standardisiert<br />

per HTTP-Response zurückgesendet<br />

wird.<br />

Derzeit werden von Deltacloud die<br />

<strong>IaaS</strong>-<strong>Cloud</strong>-Angebote von Amazon,<br />

Rackspace, GoGrid, IBM, Microsoft,<br />

Google, Fujitsu, RimuHosting, Terremark,<br />

Red Hat, Eucalyptus, Open-<br />

Stack, OpenNebula und VMware unterstützt.<br />

Neben Deltacloud existieren weitere<br />

Open-Source-Projekte, die <strong>Cloud</strong>-Abstraktions-<strong>API</strong>s<br />

zum Management von<br />

<strong>IaaS</strong>-<strong>Cloud</strong>s entwickeln, wie z.B.<br />

Jclouds (www.jclouds.org), Libcloud<br />

(http://libcloud.apache.org), Boto<br />

(http://code.google.com/p/boto/)<br />

und Fog (http://fog.io). Ein Nachteil<br />

bei diesen Projekten ist, dass diese<br />

Frameworks keine programmiersprachenunabhängige<br />

REST-Schnittstelle<br />

bereitstellen und somit an eine bestimmte<br />

Programmiersprache gebunden<br />

sind: Jclouds an Java, Libcloud<br />

und Boto an Python und Fog an Ruby.<br />

<strong>Cloud</strong> Manager<br />

In Zusammenarbeit mit der FH Dortmund<br />

entwickelte das Unternehmen<br />

2kit Consulting mit der Smartphone-<br />

App <strong>Cloud</strong> Manager (Bild 4) eine anbieterübergreifende<br />

Lösung zum<br />

Management und Monitoring von<br />

<strong>IaaS</strong>-<strong>Cloud</strong>s (öffentlich und hybrid).<br />

Sie basiert auf Deltacloud, um von<br />

den jeweiligen Spezifika der <strong>Cloud</strong>-<br />

<strong>API</strong>s entkoppelt zu sein. Unabhängig<br />

vom Anbieter, Produkt oder Account<br />

lassen sich virtuelle Maschinen (VM)<br />

steuern. Die App kann konfigurierte<br />

VMs auflisten und detaillierte Informationen<br />

zu einzelnen <strong>Cloud</strong>s anzeigen.<br />

Zusätzlich können neue VMs erstellt<br />

oder vorhandene gestartet, gestoppt,<br />

neu gestartet oder entfernt<br />

werden. Darüber hinaus ist das Monitoring<br />

von aktiven Services einzelner<br />

VMs möglich. (bk)<br />

14 NET 11/12

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!