Jun 07, 2012

Windows Azure Virtual Machines

In diesem Beitrag möchte ich die neuen Windows Azure Virtual Machines vorstellen, die ab heute als Teil des Windows Azure Services in einer Vorschauversion veröffentlich wurden.

Ich halte zwar das bisherige PaaS-Konzept für leistungsfähiger, in der harten Realität des IT-Alltags kann jedoch nur selten eine Anwendung neu oder auch nur teilweise umgeschrieben werden. Doch das ist meistens erforderlich, wenn man die Vorteile der Skalierbarkeit und der Kosteneinsparung im PaaS-Betrieb einer Anwendung erzielen möchte.

Zukünftig ermöglicht Microsoft nun den Betrieb von „beliebigen“ virtuellen Maschinen in den Rechenzentren von Microsoft und zwar in einem Betriebsmodell, das als Infrastruktur as a Service(IaaS) bezeichnet wird.

Cloud Betriebsmodelle

Die wesentlichen Vorteile der Windows Azure Virtual Machines in diesem Betriebsmodell:

  • Nutzung und Betrieb von Anwendungen ohne eigene Infrastruktur
  • Jederzeitige Veränderung der Umgebung möglich: Anzahl virtueller Maschinen und Ausstattungsgröße (CPU, Arbeitsspeicher, Storage), Netzwerkkonfiguration
  • Vollständige Kontrolle über die Konfiguration und das Management des Betriebssystems
  • Nutzung der bestehenden Management Tools zur Verwaltung
  • Hohe Verfügbarkeit durch redundanten Storage
  • Kein Cloud-Lock-in: Einfach Server-Image rauskopieren und wieder lokal betreiben. Probieren Sie das mal bei einem anderen IaaS-Anbieter.
  • Keine langjährige Vertragsbindung im Vergleich zum klassischen Hosting
  • Nutzungsbasierte Abrechnung: kein Nutzung, keine Kosten!
  • Keine Kapitalbindung im Vergleich zum Eigenbetrieb: da lacht das Controller-Herz.

Nachteile im Vergleich zum PaaS-Modell

  • Volle Kontrolle über das Betriebssystem, daher auch Wartung des OS notwendig: Einspielen von Hotfixes und Service Packs müssen selbst durchgeführt werden.
  • Skalierbarkeit der Anwendung nur möglich, wenn die Anwendung es selbst unterstützt.
  • Möglicherweise höhere Kosten im Vergleich zu PaaS, da die virtuellen Maschinen nicht beliebig hoch- und runter skaliert werden können.

Die Fragestellung ist also in der Regel, ob eine bestehende Anwendung betrieben werden soll oder eine Neu-Entwicklung angestrebt wird.

Raum-Zeit-Kontinuum

Durchaus denkbar ist auch eine Mischform aus IaaS- und Paas-Modell um das Beste aus beiden Welten/Zeiten zu vereinen: so könnte das Backend der Anwendung klassisch betrieben werden. Das neue mobile Frontend wird gleich in einem kostengünstigen PaaS-Modell in Form von beispielsweise Web Roles betrieben, die man dann „beliebig“ skalieren kann.

IaaS und Paas kombiniert

Grundlagen der Virtual Machines

Persistenz und Storage

Der Storage ist natürlich die Grundlage für den Betrieb von virtuellen Maschinen. Um eine hohe Datenverfügbarkeit bei gleichzeitiger Performance zu erzielen, wird bei den Virtual Machines eine Mischung aus lokaler Festplatte und zentralem redundanten Storage eingesetzt.

Beim Schreibzugriff werden die Daten sowohl in die lokale Festplatte der virtuellen Umgebung geschrieben, als auch synchron in den zentralen Storage. Beim lesenden Zugriff sind so die Daten schnell aus der lokalen Festplatte ausgelesen. Sie dient gleichzeitig als Cache für flüchtige Daten (Paging File).

Als zentraler Storage kommt der bereits bewährte Windows Azure Storage zum Einsatz, der die Daten synchron in drei verschiedene Verfügbarkeitsbereiche des Data Centers speichert und auf Wunsch asynchron in ein weiteres Data Center auf dem gleichen Kontinent (e.g. Dublin / Amsterdam in Europa). Dieses Prinzip hat den Vorteil, dass bei einem Hardwaredefekt einzelner Bereiche auf dem die VM betrieben wird, sofort eine neue Instanz in einem anderen Bereich gestartet werden kann. Und dass ohne manuellen Eingriff. Das Ergebnis ist eine hohe Verfügbarkeit, selbst wenn nur eine einzige Instanz betrieben wird. Dies spiegelt sich in den SLA wieder, die Microsoft Kunden auch beim Betrieb von nur einer Instanz anbieten möchte (jedoch noch nicht im Betrieb der Vorschauversion).

Als Dateiformat hat Microsoft das inzwischen weitverbreitete Virtual Hard Disk- Format (VHD) gewählt, so dass die virtuellen Festplatten bei Bedarf auch lokal wieder genutzt oder verwaltet werden kann. Wer bereits Windows 8 getestet hat, weiß, dass man dieses Format ganz einfach per rechte Maustaste mounten kann. Natürlich wird dieses Format für die Virtualisierungsumgebung Hyper-V eingesetzt.

Nach der Konfiguration des Betriebssystems können natürlich beliebig viele weitere VHD-Dateien eingebunden werden, die z.B. als Datenfestplatte verwendet werden. Zum Einsatz kommt dabei auch wieder der redundante Windows Azure Storage.

Betriebssysteme

Die große Überraschung bei den unterstützten Betriebssystemen mag wohl die Ankündigung gewesen sein, dass nun auch verschiedene Linux Distributionen unterstützt werden. So war dies bei vielen Nachrichtenseiten die primäre Botschaft: Ars Technica: „Microsoft welcomes Linux to the Azure cloud“, der gut informierte Heise-Verlag weiß zu berichten: „Microsoft bringt Linux in die Windows-Azure-Cloud“. Was zunächst merkwürdig klingt, leuchtet sofort ein, wenn man bedenkt, dass Microsoft mit dem Betrieb der Systeme Geld verdient. Von daher ist es keine Glaubensfrage mehr, welche Betriebssysteme unterstützt werden. Mit Windows Azure ist Steve Ballmers Liebe zu Linux ganz neu entfacht.

Welche Betriebssysteme werden nun konkret unterstützt? In der aktuellen Vorschauversion kann man aus einer Galerie unterschiedliche Images auswählen: aktuell zeigt die Galerie die folgenden an:

  • Windows Server 2008 R2 SP1 March
  • Windows Server 2008 R2 SP1 Nov
  • Windows Server 2012 Beta
  • CentOS 6.2 von OpenLogic bereitgestellt
  • OpenSUSE64-12.1-Beta
  • SUSE Linux Enterprise Server
  • Ubuntu Server 12.04 20120519
  • Und ein Image mit vorkonfiguriertem SQL Server 2012 ist ebenfalls vorhanden

Wer eine neue VM erstellt nutzt entweder als Basis diese fertigen Images aus der Galerie oder erstellt ein eigenes Image mit Hyper-V. Ist ein Image erst mal eingerichtet, so legt man eine Kopie an und nutzt es z.B. als Template für neue Umgebungen. Altbekannte Freunde wie sysprep sind bei diesen Schritten hilfreiche Begleiter, zumindest unter Windows und wenn die Images im gleichen Netzwerk betrieben werden sollen.

Einrichtung neuer Virtual Machines

Das Erstellen neuer Virtual Machines erfolgt über das Management Interface oder auch automatisiert über die API (z.B. PowerShell CmdLets). Grundsätzlich bringt man entweder ein eigenes VHD-Image mit oder man wählt aus der Galerie ein passenden aus.

Einrichtung basierend auf den vordefinierten Templates der Galerie:

vordefinierten Templates

Einrichtung einer VM auf Basis einer selbst erstellten VHD:

Einrichtung aus Basis einer eigenen VM

Netzwerk

Damit die Virtual Machines in der Cloud mit anderen Services oder untereinander kommunizieren können und sich direkt in die eigenen Netzwerke einbinden lassen, hat Microsoft die Netzwerkfähigkeiten massiv erweitert. Vereinfacht betrachtet, wurde bisher nur TCP und HTTP für vordefinierte Verbindungen unterstützt. Für einen IaaS Betrieb sind jedoch weitere Techniken wie z.B. UDP als auch DNS notwendig.

Mit dem neuen Service können nun Virtual Privat Networks (VPN) eingerichtet und zusammen mit den Virtual Machines und anderen Cloud Services genutzt werden. Sogar die Anbindung des eigenen Netzwerks ist per VPN auf Basis von IPSEC möglich.

Innerhalb eines virtuellen Netzwerk können nun die Clients auch ohne vorbestimmte Konfiguration kommunizieren und beispielsweise per TCP/HTTP/UDP sich interessante Datenpäckchen hin- und herschieben. Als Administrator hat man dabei volle Kontrolle über IP-Bereiche und Routingtabellen.

Einfacher gesagt: eine Anwendung die bisher im Firmennetzwerk betriebe n wurde, kann ohne Anpassung zukünftig in der Cloud ausgeführt werden. Zumindest meistens. Denn bewegt man sich im OSI-Modell abwärts, so stoßen wir hier an vorgesehene Grenzen der virtuellen Netzwerke. Auch die Wahl der Farbe der Netzwerkkabel ist bisher nicht möglich Smile

Management

Wer sich bereits das neue Management UI angesehen hat, der wird sich vermutlich über die sehr übersichtliche und leicht verständliche neue HTML5-basierte Oberfläche erfreuen. Somit ist die Verwaltung mit jedem guten Browser und auch von mobilen Erscheinungen wie Android oder iPad nutzbar.

Im professionellen Bereich wird man jedoch die bereits bekannten APIs nutzen, um darüber die Cloud Services zu managen. Wer gerne selbst die Dinge in die Hand nimmt, verwendet unter Windows am besten PowerShell mit den bereitgestellten Cmdlets lassen sich so automatisiert komplette virtuelle Umgebungen erstellen. Bei wiederkehrenden Aufgabenstellungen ist das sicher ein sehr leistungsfähiges Werkzeug, um das Management zu automatisieren.

Als fertige Lösung bietet sich System Center 2012 an, mit dem dann sowohl die eigene privat Cloud als auch die Ressourcen auf Windows Azure verwaltet werden können.

Preise

Die Preise sind bereits jetzt auf dem Portal einsehbar, auch wenn man noch nicht für Vorschauversion freigeschaltet wurde: https://www.windowsazure.com/de-de/pricing/calculator/?scenario=virtual-machines

Azure Iaas Preise

Im Vergleich zu den Cloud-Services sind die Virtual Machines in der Preview-Phase etwas günstiger. So beginnt die kleinste nicht dedizierte Instanz „Extra Small“ bei 6,64€ + MwSt. In diesem Zusammenhang sicher auch sehr spannend, dass die Preise für Storage-Transkationen um den Faktor zehn reduziert wurden.

Zusammenfassung

Ich hoffe Ihnen hat dieser Überblick gefallen. Es sind sicher noch viele Themen offen, die ich auf diesem Blog in den nächsten Tagen vertiefen werde. Wenn Sie erste Ideen haben, wie Sie diese neuen Service nutzen können, unterstütze ich Sie gern. Kontakt siehe Impressum oder auch per Twitter: https://twitter.com/#!/joriskalz

Für die ersten Schritte können Sie sich auf der folgenden Webseite für die Vorschauversion anmelden: https://account.windowsazure.com/PreviewFeatures

[Update 8.6.2012: Diverse Korrekturen]