IaaS aus der Public Cloud

Virtuelle Maschinen aus der Cloud

Uhr | Aktualisiert
von Mario Szpuszta

Infrastructure-as-a-Services (IaaS) und Cloud werden über kurz oder lang definitiv auf den Tisch eines jeden CTO landen. Wie ist IaaS aber im Vergleich zu Platform-as&Service zu positionieren? Wo liegen die Stärken und Schwächen? Der folgende Artikel gibt einen Überblick.

Mario Szpuszta ist Platform Strategy Advisor, EMEA Windows Azure ISV Team, bei Microsoft Corporation.
Mario Szpuszta ist Platform Strategy Advisor, EMEA Windows Azure ISV Team, bei Microsoft Corporation.

Glaubt man grossen Cloud-Betreibern, so beläuft sich die Total Cost of Ownership pro Server in Rechenzentren mit etwa 50 1A-Servern auf knappe 5000 Dollar, während ein Mega-Datacenter mit etwa 100 000 Rechnern eine TCO von weit unter 1000 Dollar pro Server erreicht. Genau deshalb stellt sich der Betrieb von virtuellen Maschinen in der Cloud, also Infrastrucutre-as-a-Service (IaaS), als enorm preiswert dar. Gross gemacht wurde IaaS von Amazon, während Hersteller wie Microsoft und Google auf Platform-as-a-Service (PaaS, siehe Netzwoche-Ausgabe 4/2011) setzen.

Grundsätzlich präsentiert sich IaaS einfach: Mit wenigen Klicks lassen sich über ein Webportal dynamisch virtuelle Maschinen (VMs) nach Bedarf anlegen und löschen, um darauf eigene Software zu betreiben und einer Vielzahl von Benutzern anzubieten. Verrechnet werden diese VMs auf Basis der Anzahl der Stunden, die sie im Rechenzentrum laufen. Das ist natürlich sehr attraktiv. Vereinfacht betrachtet unterscheidet sich IaaS damit aber nicht sehr vom Betrieb von VMs im eigenen Rechenzentrum, doch es gibt einige wesentliche Unterschiede.

Es beginnt damit, dass man sich weder um Hardware noch Netzwerkinfrastruktur oder Basisinstallation von Betriebssystemen kümmern muss. Des Weiteren spart man sich sämtliche Anschaffungskosten (Hardware, Software) im grossen Stil, da die VMs vom Cloud-Betreiber nur verrechnet werden, wenn sie tatsächlich in Betrieb sind.

Virtuelle Maschinen: ausfallsicher im Internet

Unter der Haube verbirgt sich hinter IaaS jedoch wesentlich mehr, angefangen bei der Verwaltung der virtuellen Harddisks für diese VMs, die auf ausfallsicheren StorageClustern abgelegt werden. Dieser Storage wird dann innerhalb eines Rechenzentrums noch mehrere Male in unterschiedliche, unabhängige Bereiche des Datacenters repliziert. Darüber hinaus gibt es meist auch eine Geo-Replikation dieser Storage-Cluster auf ein weiteres Rechenzentrum in derselben Region. Konkret bedeutet das, dass eine Harddisk innerhalb eines Rechenzentrums mehrfach existiert und darüber hinaus noch über eine weitere Kopie in einem zweiten Rechenzentrum verfügt (Abbildung 1). Die Wahrscheinlichkeit, dass hier Daten verloren gehen, ist damit äussert gering.

Darüber hinaus werden VMs in MegaDatacentern von eigens dafür vorgesehenen Komponenten überwacht. Sollte eine VM nicht mehr in einer angemessenen Zeit auf Monitoring-Anfragen reagieren, so wird diese vollautomatisch in einem anderen Bereich des Rechenzentrums neu aufgebaut und von der persistenten Harddisk aus dem BLOB-Store hochgefahren. Sobald noch eine weitere Instanz einer VM in einem Verbund für High-Availability betrieben wird, steigt die Verfügbarkeit auf 99,95 Prozent an. Ein Beispiel dafür wäre etwa der Betrieb einer VM mit SQL-Server, die über Data Mirroring und Log Shipping mit einer zweiten VM mit SQL-Server in einem Verbund arbeitet. All diese Vorteile sind zu einem normalen Computerpreis erhältlich, das heisst, für die Kosten, die der Cloud-Betreiber pro Stunde Uptime für eine VM verrechnet.

Besonders interessant erweist sich IaaS damit für zwei Zielgruppen: erstens für Softwarehersteller, die ihr Produkt als Service in der Cloud anbieten möchten, und zweitens für IT-Abteilungen grosser Firmen, die zwecks Betriebsoptimierung Anwendungen in die Cloud auslagern möchten. In beiden Fällen stellen sich die geringeren Betriebskosten sowie die Flexibilität durch dynamisches Hinzufügen und Entfernen von virtuellen Maschinen nach Bedarf als äusserst attraktiv dar. Doch bietet sich für beide Fälle auch PaaS als langfristig effizientere Variante an. Wie soll man sich also entscheiden?

IaaS als erster Schritt in die Cloud

Iaas stellt einen attraktiven Einstiegspunkt in die Cloud dar. Entwickelte Software kann im Falle von IaaS in einem ersten Schritt ohne grössere Änderungen in die Cloud übernommen werden – unabhängig davon, wer den Code kontrolliert. Schliesslich wird die Software bei IaaS in einer VM betrieben, in der nahezu alle Einrichtungen wie üblich vorgenommen werden können, die von der Anwendung benötigt werden. Man entscheidet über den Patch-Level des Betriebssystems, welche Komponenten installiert und verwendet werden. Die meisten Cloud-Anbieter ermöglichen sogar die Einrichtung eigener virtueller Netzwerke für ihre VMs.

Vor allem im Vergleich zu PaaS scheint IaaS auf den ersten Blick die attraktivere Option zu sein. Denn für PaaS muss die Anwendung vorbereitet werden (z. B. Load Balancing, vorgegebene Betriebsumgebung). Dennoch liegt in den Vorteilen von IaaS auch der Haken: Man hat zwar die volle Kontrolle, ist aber auch für die VMs inklusive aller Patches, Updates und so weiter verantwortlich und muss dafür Zeit und Kosten einplanen. Auch die dynamische Elastizität ist mit PaaS grundsätzlich einfacher. Zwar können mit IaaS nach Bedarf problemlos neue VMs hinzugefügt oder existierende VMs entfernt werden. Diese können sogar über Load Balancer zur Lastaufteilung verbunden werden. Aber die Konfiguration muss man selbst vornehmen, was zum Beispiel bei Updates von Anwendungen in Load-balanced-Umgebungen zum Tragen kommt: Die Updates müssen dann unter Berücksichtigung der Verfügbarkeit durchgeführt werden. Es müssen laufend Entscheidungen getroffen werden, wann welche Maschine offline und wieder online genommen wird, um Upgrades durchzuführen. Im Falle von PaaS braucht man sich darum nicht zu kümmern.

Daraus entsteht folgendes Dilemma: Höhere Migrationskosten für eine sofortige PaaS-Readiness in Kauf nehmen und damit die volle Elastizität und ein stark automatisiertes Produktionsmanagement geniessen versus Migrationskosten sparen, die Basisvorteile der Cloud geniessen, aber trotzdem für das Management der VMs selbst voll verantwortlich bleiben.

IaaS-PaaS-Mixtur

Bietet ein Cloud-Betreiber sowohl IaaS als auch PaaS an, eröffnet sich eine vollkommen neue Möglichkeit: Man startet mit IaaS und bewegt sich schrittweise immer mehr in Richtung PaaS. Dabei kann man frei entscheiden, welche Teile der Anwendung mit IaaS betrieben und welche Komponenten wann in Richtung PaaS migriert werden.

Ein praktisches Beispiel: Ausgangssituation ist eine Webanwendung, die über eine Middleware-Geschäftslogik auf eine Datenbank zugreift. Die Implementierung der Datenbank würde eine grosse Anzahl komplexer Stored Procedures beinhalten, deren Migration auf eine PaaS-Datenbank aufgrund dort geltender Einschränkungen nur schwer möglich ist. Dieses Szenario eignet sich perfekt für einen IaaS-PaaS-Mix: Webanwendungen lassen sich leichter auf PaaS vorbereiten (z. B. Vorbereitung auf Load Balancing durch Auslagerung von Session State auf externe Caches), während dies bei der zuvor beschriebenen Datenbank aufwendig wird.

In einem solchen Fall bietet es sich an, die Webanwendungen rasch auf PaaS zu migrieren, um die Vorzüge von PaaS (z. B. automatisches Load Balancing, automatisches Patch-Management, Managed Upgrades der Anwendung) zu nutzen. Gleichzeitig kann die Datenbank ohne Migrationsaufwand mittels IaaS in einer VM betrieben werden (Abbildung 2). Wenn alles bereit und es wirtschaftlich vertretbar ist, können die weiteren Komponenten wahlweise in Richtung PaaS migriert oder in VMs/IaaS belassen werden.

Am Ende erweist sich die Kombination von IaaS und PaaS als äusserst attraktiv, um komplexe Anwendungen unmittelbar in die Cloud zu bringen, ohne alles in Richtung PaaS heben zu müssen, während gleichzeitig PaaS-Vorteile dort nutzbar gemacht werden können, wo es am einfachsten und sinnvollsten möglich ist.

Ein äusserst effizienter Weg in die Cloud

IaaS ist der einfachste Weg für den ersten Schritt in die Cloud. Dennoch gilt es, den Pfad in Richtung PaaS nicht aus den Augen zu verlieren – dort findet sich der höchstmögliche Grad an Elastizität und Effizienz.

In der Praxis erweist sich der direkte Weg zu PaaS allerdings für viele Softwarehersteller und Firmen in manchen Bereichen als zu aufwendig. Genau dort hilft IaaS – vor allem mit der Möglichkeit, Hybrid-Ansätze umzusetzen. Ein Mix aus in IaaS betriebenen Komponenten und via PaaS betriebener Software ist ein äusserst effizienter Weg in die Cloud, selbst mit komplexen Abhängigkeiten zu alter Legacy-Software!