Cloud Computing Dreikampf: Google, Microsoft, Amazon

Windows Azure

Microsoft hat mit Azure ein konkurrenzfähiges Produkt im Cloud-Computing-Sektor eingeführt, das sich durch das Einbinden nahezu aller Produkte des Unternehmens in die Cloud und dem breiten Angebot von Cloud-Modellen und -Architekturen auszeichnet. Man ist allerdings an die Microsoft-Plattform gebunden, was mancher als Einschränkung sehen dürfte.

Die Dokumentation für Java-Entwickler ist bei Windows Azure noch nicht so ausführlich wie für .NET. Es gibt einige Tutorials und dokumentierte Beispielapplikationen. Die API-Referenz ist vollständig vorhanden. Derzeit fehlt noch eine FAQ, und die Installationsanleitung sollte für Java ausführlicher gestaltet werden. Für Java-Entwickler steht ein Eclipse-Plug-in zur Verfügung. Die Konfiguration für die Applikation, zum Beispiel die Anzahl der Instanzen, kann dort definiert werden. Das Plug-in ist vom Funktionsumfang nicht ganz so gut ausgestattet wie das von Amazon. Bei Azure ist man vom Betriebssystem auf die Windows-Plattform beschränkt, die beim Entwickeln einer Java-Applikation keine Einschränkungen auferlegt. Für die Konfiguration der Cloud bietet Azure ein gut strukturiertes Managementportal an, das beim Verwalten der eigenen Applikationen und Services unterstützt. Daneben garantiert Microsoft wie auch Amazon eine Verfügbarkeit von 99,95 Prozent in Hinblick auf Speicher und Rechenleistung. Bei längeren Ausfällen werden auch Service-Credits gutgeschrieben. Microsoft hat ein ähnliches Abrechnungsmodell wie Amazon, jedoch gibt es zwei wesentliche Unterschiede. Der Kostenverlauf ist linear und für jede Einheit eines Service wird immer der gleiche Betrag verrechnet. Bei der Verwendung mehrerer Instanzen verursacht der Load Balancer keine zusätzlichen Kosten. Microsoft bietet einen Calculator-Service an, um die erwarteten Kosten zu berechnen.

Azure zeichnet sich durch sein vielfältiges Angebot im Public- wie auch im Private-Cloud-Bereich aus. Die angebotenen Services reichen über IaaS, PaaS bis SaaS Services. Für das Speichern von strukturierten Daten bietet Azure mit dem Table Storage eine NoSQL-basierte Lösung und mit SQL Azure eine relationale Datenbanklösung an. Azure bietet auch für die Speicherung von binären Objekten einen BLOB Storage Service an.

Der Aufwand für die Entwicklung wird mit den in diesem Abschnitt beschriebenen Kriterien bewertet. Wenn der Entwickler allgemeine Kenntnisse für Cloud-Lösungen besitzt, ist der Aufwand, sich in Azure einzuarbeiten, nicht groß (Vor- und Einarbeitung). Das Deployen einer Java-Applikation ist mit einigem Aufwand verbunden. Da Azure eigentlich für .NET-Applikationen ausgelegt ist und Microsoft Internet Information Services (IIS) keine Java-Applikationen unterstützen, muss man in die bereitzustellenden Applikationen eine Java Runtime und einen Java-basierten Webserver integrieren. Um das zu erreichen, gibt es einige Möglichkeiten, die aber nur schlecht dokumentiert sind. Zusätzlich erhöht sich durch die Größe dieser beiden Komponenten die für die Bereitstellung benötigte Zeit. Der Entwicklungsaufwand ist hingegen mit dem von Amazon zu vergleichen.

Mithilfe einer Beispielapplikation wurden Messergebnisse ermittelt, um die folgenden Kriterien objektiv bewerten zu können. Für die Berechnung des zum Performancevergleich implementierten rechenintensiven Algorithmus benötigt eine Small Instance durchschnittlich 1600 Millisekunden. Für den Loginvorgang wurde eine durchschnittliche Antwortzeit von 1,03 Sekunden gemessen. Um die Tests einer Java-Applikation am Client ausführen zu können, ist die Installation von Visual Studio 2010 von Vorteil, da die Installation vom Windows Azure SDK Command Prompt einen installierten ISS fordert. Es besteht jedoch die Möglichkeit, dieses Programm zu kopieren, da der IIS für Java-Applikationen nicht erforderlich ist. Zusätzlich zu dieser Applikation ist auch noch eine komplexe und zeitaufwendige Konfiguration nötig. Microsoft bietet aber einen kostenlosen Testaccount für Azure an, mit dem man sechs Applikationen in die Cloud deployen und testen kann. Ebenfalls konnte, gleich wie bei Amazon, die vollständige Funktionalität ohne Probleme implementiert werden (Tabelle 2).

Tabelle 2: Bewertungstabelle für Azure

Kriterien Gruppe Kriterium Punkte
Allgemeine Kriterien Dokumentation 3
Entwicklerwerkzeuge 4
Plattformunabhängigkeit 4
Installationsaufwand 5
SLA und Ausfallsicherheit 5
Preis 4
Services Breite des Angebots 4
Services für strukturierte Daten 4
Services für Massenspeicher 5
Entwicklung Vor- und Einarbeitung 4
Deployment der Applikation 1
Entwicklungsaufwand 3
Beispielapplikation Performanz 5
Antwortzeit 5
Testbarkeit Applikation 3
Umsetzbarkeit 5
Summe Summe 64
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.