HowTo: Einstieg in Windows Azure CTP und erstes HelloWorld

imageIn einem letzten Blogpost habe ich über Cloud Computing im Allgemeinen geschrieben.

Darin hab ich bereits etwas über die Windows Azure Plattform gesprochen und möchte nun eine "Hello World" Anwendung auf Windows Azure erstellen.

Azure Service Platform
Die Azure Service Platform baut auf dem Kern "Windows Azure" auf.

image

Das so genannte Windows für die Wolke, übernimmt die Basisfunktionalität. Web bzw. Worker Prozesse können dort gehostet werden, sowie auch Files in einem Blob Storage.
Das alles soll natürlich hochverfügbar und genau auf den Bedarf abgestimmt. Dieses Management übernimmt Wndows Azure.
Alle Daten etc. sind über ein REST Interface zu erreichen.

Die verschiedenen Services
Auf der Basis von Windows Azure laufen ein paar Services, welche ich hier nur kurz anschneiden möchte:

Informationen über Windows Azure
Gute Informationen liefern diese Videos:

(Edit: Auch wenn der Player das Design auf der Seite etwas kaputt macht, lass ich ihn drin, da die Videos doch recht gut gemacht sind)

Praktisches Anfang
Nachdem die Theorie nun behandelt wurde, gehen wir ins Praktische über. Momentan (Januar 2009) ist alles worüber ich hier schreibe im CTP Status, daher kann sich dies jederzeit ändern. Am Ende soll eine HelloWorld Applikation rauskommen (wie kreativ!)

Schritt 1: SDKs + Access Key
Die SDKs findet man auf der Windows Azure Seite (www.azure.com) frei zum Download. Ratsam sind erstmal folgende SDKs

  • Windows Azure SDK (allgemeine Informationen)
  • Windows Azure Tools for Microsoft Visual Studio

Um es jedoch später direkt auf Azure hochladen zu können, benötigt man eine Einladung. Ich weiß leider nicht, wie momentan der Stand ist, allerdings hab ich meinen Key relativ schneller erhalten.
Registrieren kann man sich dafür hier.

Schritt 2: Web Cloud Service Projekt anlegen
Im Visual Studio gibt es nun eine neue Kategorie "Cloud Services", in dem man Web bzw. Worker Cloud Services anlegen (oder beides in einem).

image

Nachdem man einen "Web Cloud Service" angelegt hat, sieht man im Visual Studio folgende Projektstruktur:

image

  • "WindowsAzureHello":
    • Enthält Konfigurationseinstellungen für die "Cloud"
  • "WindowsAzureHello_WebRole":
    • Eine Standard ASP.NET Seite

Schritt 3: Erster Blick auf die "Debugging" Umgebung / Development Fabric"
Wenn man nun F5 drückt, wird beim ersten Start der Development Storage hinzugefügt. Dieser erstellt eine Datenbank auf dem SQL Server (Download SQL Express). Es wird die "Cloud-Umgebung" auf dem lokalen Client abgebildet, sodass man später auf Azure keine großen Überraschungen begegnet.

image 

image

Erstellte Tabellen auf dem lokalen Client, um die Cloud-Umgebung zu simulieren:

image

In der Windows Tray findet man dieses kleine Zeichen: image

Hier sieht man nun die "Development Fabric":

image

image

 Schritt 4: Eine kleine Änderung an der ASP.NET Seite – "HelloWorld"
Damit man überhaupt irgendwas sieht, füge ich diese Zeilen in der ASP.NET Seite ein:

    <form id="form1" runat="server">
    <div>
        Hello World @ Code Inside Blog <br />

http://code-inside.de

    </div>
    </form>

Schritt 5: Cloud Service publishen

Wenn man ein Rechtsklick auf das "WindowsAzureHello" Projekt macht, bekommt man nicht nur die allgemeinen Buttons, sondern auch zwei weitere:

image

Vorher muss man allerdings das "WindowsAzureHello"-Projekt publishen, danach öffnet sich automatisch der Windows Explorer und der bevorzugte Browser.

Im Windows Explorer findet man zwei Files:

image

Schritt 6: Hosted Service auf Windows Azure erstellen

Im Browser sieht man nun die Azure Service Page, in der man einen "Hosted Service" anlegt:

image

Direkt im Anschluss legt man einen Namen fest und registriert sich eine (Sub)Domain:

image

Nachdem dies erfolgt ist, sieht man folgenden Screen:

image

"Production" ist die Live Anwendung, welche unter der gewünschten Domain verfügbar ist – später soll es auch möglich sein, richtige Domains zu registrieren.

"Staging" ist die Testumgebung. Hier müssen wir erst unsere Anwendung deployen.

Schritt 7: Anwendung auf Staging deployen

Auf der Oberfläche wählt man die beiden Datein aus, die man im Schritt 5 erstellt hat, nach dem Upload Prozess, wird das Package deployed:

image

image

Nach einer ganzen Weile (inklusive "init-Phase", sollte es so aussehen:

image

In der Staging-Umgebung sieht man nun unsere kreative Ausgabe:

image

Schritt 8: Anwendung in "Production" setzen

Jetzt kommt der Moment, in dem wir die Anwendung von Staging in den Produktionszustand setzen:

image

… und kurz nachdem ich dies betätigt habe, war die Anwendung live:

image

Unter der URL ist diese nun auch zu erreichen.

Das Ganze im Schnelldurchlauf:

Das liesst sich vielleicht recht kompliziert, ist aber eigentlich in 3 Minuten fertig:

Fazit:

Es wird mit den Visual Studio Tools sehr einfach Cloud-Anwendungen zu erstellen. Man braucht kein komplett neues Wissen erlernen, sondern kann bestehendes Know-How weiter nutzen.

Natürlich ist der Dienst noch in der CTP Phase, aber die Ideen und die bisherige Umsetzung gefällt mir. Der erste Eindruck ist gut.

Worauf man achten muss:

Bei dieser Art von Cloudanwendungen muss man natürlich das Sessionhandling anders machen, dafür gibt es bereits vom Azure Team passende Provider, da es nicht sichergestellt ist, dass der Request immer zum selben Server führt. 
Der Teufel steckt sicherlich wie immer natürlich im Detail – aber das war ja auch erst der erste Blick darauf ;)


Kick It auf dotnet-kicks.de
Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf dem Laufenden bleiben willst, abonniere unseren RSS Feed oder folge uns auf Twitter.

About the author

Written by Robert Mühsig

Robert Mühsig (@robert0muehsig) ist Webentwickler und beschäftigt sich mit Web-Frameworks (vor allem dem ASP.NET MVC Framework) und scheut sich auch nicht vor Javascript. Ansonsten bloggt er über all jene Probleme, die ihm über den Weg laufen. Seit 2008 ist er Microsoft MVP für ASP.NET und er arbeitet bei der T-Systems Multimedia Solutions GmbH in Dresden. Treffen kann man ihn online via Twitter (@robert0muehsig) oder dieser Seite oder bei der .NET User Group Dresden.

6 Responses

  1. Cool, danke für diese Einführung Robert :)

    Reply
  2. Hallo,

    sehr netter Überblick. Wie immer äusserst informativ was du hier so schreibst.

    Mir ist nur der generelle Verwendungszweck der SDS noch nicht so ganz klar geworden. Wenn ich das richtig verstehe kann ich dort Daten in beliebiger Menge und Form speichern. Aber können die SDS auch als Datenbank Ersatz für Web(basierte) Anwendungen dienen?

    Ich stell mir zwei Szenarien vor.

    a.) Es handelt sich um eine Web(basierte) Anwendung die so oder so indirekt per HTTP Anfragen an meinen SQL Server sendet. Ob das jetzt eine ASP.NET, WPF, Remoting oder was auch immer Anwendung ist, sollte ja in diesem Fall egal sein. In diesem Fall stelle ich mir aktuell vor, dass ich die SDS als SQL Server Ersatz benutzen kann, da die “Web Latency” ja sowieso gegeben ist.

    a.) Es handelt sich um eine performancekritische Intranetanwendung. In diesem Fall macht es ja sicherlich keinen Sinn die Daten von extern erst sammeln zu gehen.

    Sind diese beiden Annahmen so im groben korrekt? Also stelle ich mir das richtig vor was Azure (SDS) mal werden kann/soll?

    Danke für weitere Infos

    Gruß

    Reply
  3. Sehr guter Artikel! Nur die Silverlight Player nerven…
    Ist der Azure Dienst für Entwickler eigentlich Kostenplichtig?

    Reply
  4. In der CTP Phase von Windows Azure sind die Dienste darauf kostenlos. Soweit ich weiß darf man "nur" 50GB auf Windows Azure host und pro Tag "nur" 20GB Traffic. Zum erstmaligen anschauen sollte es daher mehr als genügen.

    Was der Dienst später Kosten wird ist noch nicht bekannt.

    Reply
  5. @Frank: (sorry für die späte Antwort) Windows Azure bietet erstmal Hosting für Webanwendung und man kann auch Blobs (irgendwelche Daten) hochladen.
    Was dem SQL Server am nächsten kommt sind die SQL Data Services, die auch Teil von Windows Azure sind.
    Dieses Data Services lassen sich allerdings nicht wie ein normaler SQL Server ansprechen sondern bieten ein REST Interface – es gibt natürlich bereits ein SDK dazu, was es relativ elegant ermöglicht darauf zuzugreifen.

    Wie performant die ganze Sache ist, muss man später sehen – momentan ist alles noch im CTP Status.

    Reply

Comment on this post

Letzte Posts

  • Carriage Return / Neue Zeile in Textareas

    Eine kleine Aufgabe: Jede neue Textzeile (Carriage Return/Wenn man Enter drückt ) in einer Textarea soll ein Element in einer Auflistung sein – wie mach ich das jetzt am einfachsten? Eigentlich ein grundlegendes Element im Web und der Nutzer macht bewusst Absätze – daher wäre es nur gerecht, wenn man das auch entsprechend würdigt. Kleine ...

  • image.png
    Doom, Quake, Wolfenstein & co. Source Code auf GitHub

    id Software, die Macher von Doom, Quake, Wolfenstein & co., stellen regelmäßig ihre älteren Spieltitle als Open Source zur Verfügung. Das Ganze runterzuladen fand ich bisher immer recht mühselig, allerdings gibt es seit kurzer Zeit die Sourcen auch auf GitHub. Darunter Spiele wie Doom 3, Quake 3, Wolfenstein für iOS. Wer also schon immer mal ...

  • image.png
    Twitter Bootstrap 2.0 released & “Release Präsentation”

    Wie bereits vom Twitter Bootstrap Team angekündigt wurde offiziel die Version 2.0 des UI Toolskits “Twitter Bootstrap” veröffentlich. Zudem wurden die Slides, welche bei der Release Party gezeigt wurden auch veröffentlicht: Downloads finden sich auf der Twitter Bootstrap Seite auf GitHub. Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf ...

  • image.png
    Javascript zu Dart Translator

    Dart, Google Javascript Alternative, wurde vor ein paar Monaten vorgestellt und die Webentwickler Szene ist noch etwas gespalten, ob Dart nun überflüssig ist oder einfach nur cool und längst überfällig ist. Um die Sprache näher zu erläutern hat Google die grundlegenden Javascript Basics nach Dart übersetzt. Das Ergebnis ist der “Translator”. Der Name mag momentan ...

  • Twitter Bootstrap 2.0–“Beta”

    Twitter Bootstrap, ein UI-Toolkit für Web-Applikationen von Twitter, erscheint (wie bereits berichtet) demnächst in der Version 2.0. Der offizielle Release ist am 31. Januar, allerdings beginnt jetzt laut Mark Otto (einer der Hauptentwickler von Twitter Bootstrap) die intensive Test-Phase. Das heisst, das es nun offiziel auch die 2.0 Dokumentation online gibt. Im Vergleich zur aktuellen ...

Support us!

Facebook