Auf in die Cloud – eine persönliche Erfahrung

11. Mai 2011

Es gibt nichts Gutes – außer man tut es.

Entwickler wie auch Projektleiter stellen sich die Frage warum sie sich schon jetzt mit der Cloud beschäftigen sollten. Die Cloud hätte doch nur was mit den „Anderen“ zu tun: Dem „anderen“ Projekt, dem „anderen“ Kunden, dem „anderen“ Anwendungsfall. Einen selber betrifft es ja (noch) nicht – oder vielleicht doch?

So kam der Tag, an dem ich für ein kleines Windows Azure Entwicklungsprojekt eine VM benötigte. Die VM sollte – egal wo ich gerade bin – immer startbar und nutzbar sein. Vor allem möchte ich die Ressourcen nur nutzen wenn ich sie gerade brauche. Das sollte doch mit der Cloud machbar sein …

Eine VM für mich

Ohne groß nachzudenken greife ich nach einer VM von Amazon. Das tun ja viele Andere auch – oder?

Die Schritte [Details siehe “Links” am Ende des Artikels]:

  • Amazon Account einrichten
  • VM instanziieren (EBS basierte EC2-Instanz mit Windows 2008)
  • Admin Passwort der Instanz ermitteln
  • Firewall freischalten
  • Als Bonus habe ich noch ein virtuelle Festplatte (EBS Speicher) hinzugefügt, damit Daten auch dauerhaft gespeichert werden
  • Installation von ElasticFox als Management-Tool
  • Remote-Login und ab geht`s

Zugegebenermaßen hat es beim ersten mal ein bisschen gedauert. Aber wenn der Account existiert steht eine Instanz innerhalb weniger Minuten.

Anmerkung: Die Virtual Machine Role von Windows Azure funktioniert sehr gut für Scale-Out Szenarien. Dies benötige ich hier jedoch nicht.

Was habe ich wirklich getan?

Bei genauerem Nachdenken habe ich mit meinen wenigen Tätigkeiten eine ganze Menge bewegt. Im übertragenen Sinn habe ich folgendes durchgeführt:

Zuerst habe ich einen Rechner mit Windows 2008 Lizenz gemietet. Diesen habe ich zusammen mit einer Firewall in ein Rechenzentrum gestellt. Netterweise gestatten mir die Admins Zugriff auf ihre Management-Console, sodass ich die Umgebung in meine Administration aufnehmen kann. Da ich noch ein bisschen Speicherplatz benötige, habe ich noch eine Festplatte hinzugekauft. Alle Systeme sind natürlich redundant gehalten. Für den ganzen Spaß zahle ich (je nach Nutzung) ein paar Euro im Monat.

Ich finde das durchaus beeindruckend.

Warum wird die Cloud dadurch relevant?

Man stelle sich – am Beispiel einer Entwickler-VM – vor:
Die Bereitstellung eines Entwicklerrechners (als VM) erfolgt für neue Mitarbeiter automatisiert nach Freigabe durch den Projektleiter. Ein neuer Mitarbeiter kann in 10 Minuten im Projekt produktiv arbeiten.

=> Cloud forciert die Automatisierung von Prozessen

Die VM wurde ohne einen einzigen persönlichen Kontakt erstellt. Der Prozess ist voll automatisierbar.

Prozessoptimierung spart Geld. Die Cloud zeigt/bietet uns die Vollautomatisierung von IT-Nutzungsprozessen. Sobald ich etwas haben will, bekomme ich es sofort und in der gewünschten Menge.

=> Cloud verändert Kräfteverhältnisse

Die Netzwerkbandbreite meiner VM in der Cloud hat meine lokalen Möglichkeiten weit überschritten.

Als Cloud-Nutzer verwende ich die Bandbreite, Speicherkapazitäten, Sicherheitseinstellungen und Skalierbarkeit meines Anbieters. Einzelpersonen oder auch kleinere und mittlere Firmen agieren plötzlich auf Augenhöhe mit Industrieriesen.

=> Cloud passt sich an

Wird eine VM nicht benötigt (Urlaub, Nacht-Zeiten, Wochenende) werden keine Kosten verursacht. Kapazitätsspitzen, z.B. durch groß angelegte Integrationstests, können schnell bereitgestellt werden.

Als Cloud-Nutzer kann ich in kürzester Zeit meine Strategie ändern. Heute ist eine Cloud-Anwendung nur für eigene Nutzer im eigenen Netz verwendbar. Morgen schalte ich sie für ein Partner-Unternehmen und mobile Szenarien frei.

Grenzen

In der konkreten Umsetzung gilt es einige Hürden zu überwinden.

=> Cloud benötigt Vertrauen

Vertrauen ist das A und O.

Als Cloud-Nutzer muss ich den Sicherheitseinstellungen, Firewalls und Verfügbarkeiten des Anbieters vertrauen. Konkret habe ich sogar recht wenige Möglichkeiten Details zu testen, da üblicherweise Penetrationstests oder Manipulationstests (z.B. gegen die VM) nicht erlaubt sind.

Allerdings sind die Fragestellungen nicht neu – sie treten bei jedem Outsourcing auf. Somit muss ein Verfahren zur Vertrauensbildung etabliert werden. Zertifikate der Hersteller sind hier schon mal ein guter Ansatzpunkt. In jedem Falle sollte man sich mit einem Katalog von Fragen an den Hersteller wenden. Fragen betreffen Themen wie physische und elektronische Zugangskontrolle, Wartungspersonal, Eskalationsverfahren, Transparenz, Haftung etc.

=> Cloud kann nicht alles liefern

Eine Cloud liefert Konfigurationen von der Stange. Passen meine Sicherheitsanforderungen, Architekturen oder Skalierungsverfahren meines Anwendungsfalls nicht zur Cloud, kann ich sie nicht nutzen. Die Anwendung muss zur Cloud passen.

=> Cloud muss in die firmeneigene Infrastruktur eingebettet werden

Eine alleinstehende VM mag für eine Einzelperson ausreichend sein. In einem Unternehmensnetzwerk muss auch dieser Rechner in die firmeneigene Infrastruktur integriert werden. Dazu gehört z.B. die Aufnahme des Rechners in das Netzwerk, die Domäne oder in die Backupstrategie. Stellt man hierfür ein eigenes Basisimage bereit, so fällt dieser Aufwand im günstigsten Fall nur einmal an.

Fazit

Mein persönliches Ziel habe ich erreicht. Ich zahle für meine Instanz nur dann, wenn ich damit arbeite. Zudem nutze ich gelegentlich andere Instanzgrößen, d.h. eine unterschiedliche Anzahl von Prozessoren (Scale-Up). Andere Fähigkeiten der Cloud, wie Scale-Out, nutze ich in diesem Fall nicht.

Der große Nutzen der Cloud erfolgt über die Automatisierung vereinheitlichter Instanzen und der skalierenden Verfügbarkeit. Anstatt einzelne Server zu skalieren, skaliert die Cloud über viele Instanzen. Als Entwickler stehe ich somit vor der Herausforderung, Anwendungen für die Cloud fit zu machen.

Cloud Technologie wird meiner Einschätzung nach den Markt nachhaltig verändern, die Chancen und Möglichkeiten sind gewaltig. Die größte Hürde liegt meist darin, dass man noch nicht „drin“ ist – der erste Schritt ist der schwierigste

Es gibt nichts Gutes – außer man tut es.

Links

Übersicht EC2 mit Windows: Amazon EC2 Running Microsoft Windows
Persistenz Strategien für EC2: EC2 Persistence Strategies
EBS mit EC2 nutzen: Using Amazon EBS-Backed AMIs and Instances
ElasticFox: ElasticFox