Schritt-für-Schritt-Anleitung

Workshop: der Weg zur ersten Windows-Azure-Anwendung

15.10.2010 von Holger Sirtl
Die Windows-Azure-Plattform erlaubt es, eine Web-Anwendung in nur wenigen Schritten in der Cloud bereitzustellen. Dieser Beitrag erläutert Schritt für Schritt den Weg von der Einrichtung einer eigenen Azure-Subscription bis hin zum ersten, einfachen Cloud Service.

Die Windows-Azure-Plattform stellt Entwicklern Möglichkeiten bereit, Anwendungen hochverfügbar und hochskalierbar in der Cloud zu betreiben, Daten in der Cloud zu speichern sowie die Kommunikation verteilter Webservices über die Cloud abzuwickeln. Eine Webanwendung kann in nur wenigen Schritten in der Cloud bereitgestellt werden.

Alternativen: Es gibt unterschiedliche Ansätze zum Anlegen eines Accounts.

Innerhalb eines Azure-Accounts muss hierzu ein Projekt für die Cloud-Anwendung angelegt werden, in das dann eine paketierte Webanwendung installiert werden kann.

Die folgenden Abschnitte beschreiben Schritt für Schritt den hierzu erforderlichen Prozess - von der Provisionierung des Azure-Accounts über Entwicklung, Test und Paketierung der Webanwendung bis hin zum Deployment in die Cloud.

Provisionierung eines Azure-Accounts

Im ersten Schritt muss zunächst ein Account für die Windows-Azure-Plattform angelegt werden. Innerhalb des Acoounts kann man später ein Projekt für die Cloud-Anwendung erstellen. Es gibt unterschiedliche Wege zum Anlegen eines Accounts.

Test-Account. Der einfachste Weg führt über einen Drei-Wochen-Test-Account. Auf einer Website kann hierzu eine Windows-Live-ID angefordert werden, über die man sich direkt an einem bereits provisionierten Windows-Azure-Account anmelden kann.

Azure-Account auf Basis einer MSDN-Subscription. Ein weiterer Weg ist das Anlegen auf Basis des in einer MSDN-Subscription enthaltenen Azure-Kontingents.

Enthaltenes Kontingent: Aktivierung eines Azure-Accounts über eine MSDN-Subscription.

Dieses kann auf der entsprechenden MSDN-Website unter dem Menüpunkt My Account ausgewählt werden. Nach Auswahl des Punktes Windows Azure Platform leitet das MSDN-Portal auf Microsofts Online-Services-Business-Portal weiter.

Sofern dort bei der Windows-Live-ID, mit der der Anwender angemeldet ist, noch keine Abrechnungsinformationen wie Kreditkartendaten oder Rechnungsanschrift hinterlegt sind, müssen diese Angaben noch eingetragen werden.

Abrechnung: der Warenkorb im Microsoft-Online-Services-Business-Portal.

Erst dann wird auf dem Portal der Warenkorb angezeigt. In diesem befindet sich das zur MSDN-Subscription gehörende Azure-Paket.

Sofern der Verbrauch an Azure-Ressourcen innerhalb des durch das MSDN-Angebot gesteckten Rahmens bleibt, erhält der Anwender regelmäßig eine Monatsrechnung, auf der ein Rechnungsbetrag von 0 Euro ausgewiesen wird.

Azure-Account auf Basis eines Standardangebots. Neben den kostenfreien Angeboten gibt es noch das reguläre kommerzielle Angebot zur Nutzung von Azure. Hier stehen verschiedene Alternativen zur Verfügung, die von einer rein nutzungsbasierten Abrechnung bis hin zu Paketangeboten mit entsprechenden Rabatten reichen. Auf der Azure-Startseite können die jeweils aktuellen Preise eingesehen werden.

Einkaufsmeile: Alternativ kann man ein kommerzielles Azure-Angebot beziehen.

Über den Menüpunkt Purchase/Buy Now kann auf der Portalseite eines der Angebote ausgewählt werden. Nach Auswahl der gewünschten Buy-Schaltfläche wird der Anwender wiederum auf das Online Services Portal weitergeleitet. Zur Anmeldung an diesem Portal ist eine Windows-Live-ID erforderlich, die gegebenenfalls zuvor angelegt werden muss. Sofern noch nicht vorhanden, müssen im Online-Services-Portal die Abrechnungsinformationen eingegeben werden, ehe über den Warenkorb des Portals dann das Azure Kontingent bezogen werden kann.

Anlegen eines Azure-Projekts

Unabhängig davon, über welchen Weg ein neuer Azure-Account angelegt beziehungsweise bezogen wurde (Test-Account, MSDN-basierter Account oder Standardangebot), sind nun die Voraussetzungen dafür geschaffen, einen eigenen Cloud-Service auf Azure zu betreiben.

Bevor ein neuer Service auf Azure installiert werden kann, muss über das Azure-Entwicklerportal ein neues Projekt vom passenden Typ angelegt werden. Je nach benötigter Azure-Funktionalität kann dies über die Seite http://windows.azure.com, http://sql.azure.com oder http://appfabric.azure.com geschehen.

Durch Auswahl des zuvor über das Business-Portal angelegten Azure Accounts kann dessen Startseite erreicht werden. Über den Menüpunkt New Service können Sie ein neues Windows-Azure-Service-Projekt erstellen. Auf der folgenden Seite wählen Sie den Menüpunkt Hosted Service aus. In der folgenden Maske geben Sie einen Namen sowie eine Beschreibung für den Cloud Service ein.

Als Nächstes ist die URL für den Cloud Service zu vergeben. Mithilfe der Schaltfläche Check Availability können Sie die Verfügbarkeit der gewählten URL überprüfen und an dieser Stelle auch den Standort des Cloud Service bestimmen. Hierüber ist es möglich festzulegen, in welchem Rechenzentrum Microsoft den Cloud Service betreiben wird. So bestimmt beispielsweise die Auswahl North Europe Dublin als Standort.

Über die Auswahl der Schaltfläche Create richtet Windows Azure zwei Umgebungen für den zu erstellenden Cloud Service ein. Windows Azure hält für den Cloud Service zwei Umgebungen vor. In der Staging-Umgebung kann der Service vor der Produktivsetzung nochmals unter realen Bedingungen getestet werden. Ein Transfer in die Produktivsetzung macht den Cloud Service dann über die zuvor gewählte URL über das Internet verfügbar.

Entwicklung einer Windows-Azure-Anwendung

Die bisher beschriebenen Schritte müssen nur einmalig zu Beginn eines Projektes durchgeführt werden. Als Ergebnis steht in Microsofts Rechenzentren eine Umgebung zur Verfügung, in die das Ergebnis des Entwicklungsprozesses installiert werden kann.

Die Abbildung zeigt die zur Entwicklung erforderlichen Schritte sowie die jeweils verwendeten Werkzeuge. Hierbei ist zu unterscheiden, welche der Azure-Services genutzt werden sollen. Für Windows Azure steht als Entwicklungswerkzeug beispielsweise Visual Studio zur Verfügung, das durch das Windows-Azure-Software-Development-Kit (SDK) um entsprechende Projektvorlagen erweitert werden kann.

Übersicht: die Schritte zur Entwicklung einer Azure-basierten Cloud-Anwendung im Überblick.

Das SDK stellt für einen lokalen Test der Cloud-Anwendung auch eine lokale Simulationsumgebung, die Windows Azure Development Fabric, zur Verfügung. Soll in der Anwendung auch SQL Azure genutzt werden, kann die kostenlose SQL Server Express Edition als Entwicklungs- und Testumgebung verwendet werden. Für die Windows Azure AppFabric muss hingegen durchgängig die von Microsoft bereitgestellte Produktivumgebung verwendet werden.

Die folgenden Abschnitte beschreiben Entwicklung, Test und Produktivsetzung eine kleinen Windows-Azure-basierten Cloud-Anwendung. Als Entwicklungswerkzeug soll Visual Studio verwendet werden. Auf dem verwendeten Entwicklungsrechner wurde zuvor das Windows-Azure-SDK installiert.

Entwicklung auf Basis von Visual Studio

Nach Aufruf von Visual Studio steht unter dem Menüpunkt New Project eine neue Projektvorlage für einen Windows-Azure-basierten Cloud Service zur Verfügung. Nach Bestätigung der Auswahl dieser Projektvorlage über OK bietet Visual Studio über einen Wizard die Möglichkeit, der Anwendung verschiedene, bereits vorgefertigte Komponenten hinzuzufügen.

Um das Beispiel einfach zu halten, soll dem Projekt hier lediglich eine sogenannte ASP.NET Web Role hinzugefügt werden. Die Auswahl muss noch mit OK bestätigt werden, woraufhin Visual Studio eine neue Solution anlegt, die zwei Projekte enthält. Diese werden im Solution Explorer auf der rechten Seite angezeigt.

Bildergalerie:
Entwicklung auf Basis von Visual Studio
Projektvorlage für eine neue Cloud Anwendung.
Entwicklung auf Basis von Visual Studio
Hinzufügen einer ASP.NET Web Role zum Projekt.
Entwicklung auf Basis von Visual Studio
Neue Visual Studio Solution für die Cloud Anwendung.

Das erste Projekt ist ein sogenanntes Konfigurationsprojekt. Hier können verschiedene Parameter der Cloud-Anwendung wie beispielsweise die Anzahl der auszuführenden Instanzen sowie die Größe der Instanzen bestimmt werden. Das zweite Projekt ist eine normale ASP.NET-Anwendung. Hier zeigt sich, dass bestehendes Entwickler-Know-how weiterverwendet werden kann. Entwickler, die bereits mit der Implementierung von ASP.NET-Anwendungen vertraut sind, werden hier ihr gewohntes Arbeitsumfeld wiederfinden.

Lokaler Test in der Azure Development Fabric

Die in den letzten Arbeitsschritten von Visual Studio erzeugte Solution enthält bereits eine voll funktionsfähige Cloud-Anwendung. Diese kann nun vor einer Installation in die Cloud lokal getestet werden.

Testphase: Hier sehen Sie die neu erstellte Cloud-Anwendung in der lokalen Simulationsumgebung.

Wie bereits bei klassischer .NET-Entwicklung mit Visual Studio üblich, kann ein lokaler Test durch die Funktionstaste F5 beziehungsweise den Menüpunkt Debug/Start Debugging initiiert werden.

Visual Studio startet daraufhin die lokale Simulationsumgebung von Windows Azure, installiert dort die kompilierte Cloud-Anwendung und startet ein Browser-Fenster, in dem die Startseite der Cloud-Anwendung angezeigt wird.

Das Schließen des Browser-Fensters beendet den lokalen Testlauf und deinstalliert die Cloud-Anwendung wieder aus der Testumgebung. Nach dem erfolgreichen Test kann die Anwendung nun in die Cloud-Umgebung installiert werden.

Paketierung der Windows-Azure-Anwendung

Anwendungen, die auf Windows Azure installiert werden sollen, bestehen aus zwei Bausteinen: einem Anwendungspaket, das die kompilierte Programmlogik der Anwendung enthält, und einer Konfigurationsdatei. Diese übergibt für Windows Azure die Modalitäten der Ausführung, wie beispielsweise die Zahl der gewünschten Anwendungsinstanzen.

Zusammenfassung: Das Auswahlfenster zur Paketierung der Cloud-Anwendung öffnet sich über den Menüpunkt Publish.

Diese beiden Bausteine in Form einer cspkg- und einer csdef-Datei können einfach mithilfe von Visual Studio erzeugt werden. Dies geschieht über einen Rechtsklick auf das Konfigurationsprojekt und Auswahl des Menüpunktes Publish. Es öffnet sich ein Auswahlfenster, in dem zur Paketierung nur die Option Create Service Package Only gewählt und diese Auswahl mit OK bestätigt werden muss.

Visual Studio erzeugt daraufhin das Anwendungspaket und die Konfigurationsdatei. Softwarehersteller haben die Möglichkeit, genau diese beiden Dateien an ihre Kunden auszuliefern, um diesen die Möglichkeit zu geben, die Anwendung selbst auf Windows Azure in ihrem eigenen Account zu installieren.

Installation in die Umgebung des Azure-Accounts

Die Installation in die Cloud-Umgebung kann allerdings auch direkt aus Visual Studio heraus erfolgen. Dies soll in den folgenden Abschnitten beschrieben werden.

Test in der Azure-Staging-Umgebung

Eine direkte Installation in die Azure-Umgebung ist auf dem gleichen Weg möglich wie eine reine Paketierung der Anwendung. Ein Rechtsklick auf das Konfigurationsprojekt und die Auswahl des Menüpunktes Publish liefern ein Auswahlfenster. Zur Installation auf Azure wählen Sie den Menüpunkt Deploy your Cloud Service to Windows Azure aus. Beim ersten Deployment muss mit Azure ein Zertifikateaustausch erfolgen, sodass sich Visual Studio bei Azure als berechtig ausweisen kann. Die Anleitung hierzu kann über das Auswahlfenster aufgerufen werden.

Bildergalerie:
Installation in die Umgebung des Azure Accounts
Deployment in die Staging-Umgebung.
Installation in die Umgebung des Azure Accounts
Produktivsetzung der Cloud Anwendung über das Entwicklerportal.
Installation in die Umgebung des Azure Accounts
Die Cloud-Anwendung in der Produktivumgebung.

Sobald sich Visual Studio bei einem Windows-Azure-Account angemeldet hat, stehen die zuvor angelegten Projekte zur Auswahl bereit. Es besteht die Möglichkeit, direkt in die Produktivumgebung zu installieren oder zunächst in die Staging-Umgebung, wo die Anwendung zunächst nochmals getestet werden kann. Eine Bestätigung der Auswahl der Umgebung mit OK startet den Deployment-Prozess. Visual Studio kompiliert nun die Anwendung, paketiert sie, transferiert das Paket nach Windows Azure und veranlasst den Start der Anwendung. Nach kurzer Zeit steht die Anwendung dann in der ausgewählten Umgebung als Cloud-Anwendung zur Verfügung.

Produktivsetzung der Windows-Azure-Anwendung

Sofern als Zielumgebung zunächst die Staging-Umgebung gewählt wurde, kann die Anwendung über das Azure-Entwicklerportal mit einem Klick in die Produktivumgebung übertragen werden. Die Schaltfläche Promote befindet sich zwischen den beiden Symbolen für Production und Staging. Dies veranlasst Windows Azure, die Cloud-Anwendung in die Produktivumgebung zu transferieren.

Nach kurzer Zeit steht die implementierte Cloud-Anwendung unter demr zuvor gewählten URL über die Cloud im Internet zur Verfügung. Die Anwendung ist in der Produktivumgebung unter der zuvor bestimmten Adresse http://meinerstercs.cloudapp.net aufrufbar.

Fazit

Entwicklung, Test und Installation einer Windows-Azure-basierten Cloud-Anwendung gestalten sich relativ einfach. Das Software-Development-Kit für Azure stellt Werkzeuge bereit, die es Entwicklern ermöglichen, mit ihnen bekannten Entwicklungsumgebungen wie Visual Studio, Technologien (.NET) und Programmiersprachen (beispielsweise Visual C#, VisualBasic.NET) Cloud-Anwendungen zu schreiben, diese lokal zu testen und dann weitgehend automatisiert auf Windows Azure zu deployen.

Mit entsprechenden Angeboten im Rahmen einer MSDN-Subscription sowie kostenlos verfügbaren, zeitlich limitierten Test-Accounts sollte der Einstieg in die Entwicklung Cloud-basierter Anwendungen problemlos gelingen. (mje)