Der Windows Azure Accelerator for Web Roles erlaubt die einfache Installation einer oder mehrerer Websites auf mehreren Web Role Instanzen per Web Deploy. Der Accelerator enthält eine Visual Studio Projektvorlage, die eine Windows Azure Web Role erzeugt, die eine oder mehrere Websites betreiben kann. Sobald diese Web Role auf Windows Azure deployt ist, können mittels Web Deploy einfache Websites (z.B. ASP.NET Web Anwendungen) schnell auf alle Instanzen der Web Role installiert werden. Die Deployment-Dauer beträgt dabei ca. 30 Sekunden. Die Web Role kann dabei quasi beliebig skaliert (Inszanzen hinzu- oder abgeschaltet) werden, so dass über diese Role auch große Lasten bedient werden können.

Die Web Host Anwendung bietet dabei eine Benutzerschnittstelle, über die die verschiedenen IIS Anwendungen, Zertifikate und Site Bindings verwaltet werden können. Darüber hinaus können über die Schnittstelle anwendungsbezogene Logging-Informationen angezeigt werden.

Der Accelerator bietet damit eine Reihe von Vorteilen gegenüber einer individuellen Installtion betreffender Web Anwendungen auf jeweils eigenen Hosted Services:

  • Mehrere Web Anwendungen können sich gemeinsame Web Role Instanzen teilen. Die Kosten für die Bereitstellung kann damit auf alle Web Anwendungen aufgeteilt werden.
  • Die Bereitstellung kann deutlich beschleunigt werden, da pro Web Anwendung kein eigener Hosted Service hochgefahren werden muss (was erfahrungsgemäß ca. 15 Minuten dauert), sondern auf das schnelle Web Deploy (Deployment innerhalb von ca 30 Sekunden) zurückgegriffen wird.
  • Der Accelerator sorgt dafür, dass Änderungen, die über Web Deploy eingespielt werden, auf alle Instanzen des Hosted Service übertragen werden. Damit fällt die Beschränkung, dass Web Deploy eigentlich nur auf einer Instanz angewendet werden kann.
     
  • Der Accelerator kann über folgenden URL mit Sourcecode und Installationsdateien heruntergeladen werden:

    http://waawebroles.codeplex.com/

    Das Download-Paket enthält auch alle Informationen für die Installation.

    Bevor Sie Host und Web Anwendung deployen können, müssen Sie unter dem Windows Azure Management Portal einen neuen Hosted Service anlegen. Für die folgenden Abschnitte wird angenommen, dass ein leerer Hosted Service mit folgenden Daten angelegt wurde:

    Service Name:

    Web Deploy Host

    URL des Service:

    webdeployhost1.cloudapp.net

    Um später auf den zu installierenden Windows Azure Roles die Remote Desktop Funktionalität nutzen zu können, installieren Sie auf dem Service ein entsprechendes Zertifikat. Des Weiteren wird ein Storage Account benötigt.

    Selbstverständlich lassen sich die Arbeitsschritte auch mit einem eigenen Service mit anderen Einstellungen durchführen.

    1 Anlegen eines Web Deploy Hosts

    Nach der Installation steht unter Visual Studio eine neue Projektvorlage zur Verfügung. Über den Menüpunkt File / New / Project wird die Eingabemaske zur Auswahl einer Projektvorlage angezeigt (siehe Abbildung 1). Unter dem Abschnitt Visual C# / Cloud wird die Vorlage Windows Azure Web Deploy Host angeboten.

    ABB_01 Projektvorlage für einen Web Deploy Host
    Abbildung 1: Projektvorlage für einen Web Deploy Host

    Wählen Sie diese Vorlage aus, vergeben Sie einen Namen und bestätigen Sie Ihre Eingaben mit OK.

    Anschließend öffnet sich eine Eingabemaske, in der Informationen eines Storage Accounts abgefragt werden (siehe Abbildung 2):

    ABB_02 Zugriffsdaten für einen Storage Account
    Abbildung 2: Zugriffsdaten für einen Storage Account

    Geben Sie dort die entsprechenden Zugriffsdaten eines Ihrer Storage Accounts an. Über diesen Account tauschen später die Instanzen des Web Deploy Hosts Deploymentinformationen aus. Wählen Sie die Schaltfläche Next. Es erscheint die in Abbildung 3 gezeigte Eingabemaske.

    ABB_03 Anmeldedaten für die Administrationswebsite des Web Deploy Host
    Abbildung 3: Anmeldedaten für die Administrationswebsite des Web Deploy Host

    In dieser Eingabemaske können Sie die Anmeldeinformationen festlegen, über die Sie sich später an der Administrationsoberfläche des Web Deploy Host anmelden können. Bestätigen Sie Ihre Eingabe mit OK. Visual Studio legt nun eine neue Solution an, die aus zwei Projekten besteht. Wie für Windows Azure Anwendungen üblich ist eines davon das Konfigurationsprojekt und das zweite das Projekt für die (in diesem Fall einzige) Web Role.

    ABB_04 Solution Explorer des Web Deploy Hosts
    Abbildung 4: Solution Explorer für den Web Deploy Host

    Die Solution ist bereits fertig, d.h. es müssen keine weiteren Änderungen vorgenommen werden, und sie kann unmittelbar in den zu Beginn erstellten Hosted Service deployt werden. Klicken Sie hierzu auf das Konfigurationsprojekt mit der rechten Maustaste und wählen aus dem erscheinenden Kontextmenü den Punkt Publish.

    ABB_05 Eingabemaske für das Deployment des Web Deploy Hosts
    Abbildung 5: Eingabemaske für das Deployment des Web Deploy Hosts

    Bevor Sie das Deployment anstoßen, konfigurieren Sie die Remote Desktop Konfiguration. Klicken Sie auf den Link Configure Remote Desktop connection. Es öffnet sich die in Abbildung 6 gezeigte Eingabemaske.

    ABB_06 Remote Desktop Konfiguration
    Abbildung 6: Remote Desktop Konfiguration

    Die Zugangsdaten (User Name und Password), die Sie hier eingeben, benötigen Sie später für das Web Deploy der Websites. Bestätigen Sie Ihre Eingaben mit OK und starten damit das Deployment des Web Deploy Hosts. Nachdem der Deployment-Vorgang abgeschlossen ist, können Web Anwendungen auf den bereitgestellten Web Roles installiert werden.

    Deployment einer Web Anwendung auf den Host

    Der Host ist nun bereit für die Aufnahme von Web Anwendungen. Bevor eine Anwendung aber auf dem Host installiert werden kann, muss diese zunächst über die Administrationsoberfläche (siehe Abbildung 7) des Hosts angelegt werden. Öffnen Sie hierzu den URL des Hosted Service.

    ABB_07 Anmeldung an der Web Deploy Administrationsoberfläche
    Abbildung 7: Anmeldung an der Web Deploy Administrationsoberfläche

    Melden Sie sich dort mit den beim Anlegen der Solution des Web Deploy Hosts (siehe Abbildung 3) angegebenen Benutzerdaten an. Die Administrationsoberfläche zeigt daraufhin eine Übersicht über alle vorhandenen Web Anwendungen an. Da noch keine Web Anwendung angelegt wurde, wird dies entsprechend angezeigt (siehe Abbildung 8).

    ABB_08 Übersicht über die angelegten Web Anwendungen (ohne Anwendung)
    Abbildung 8: Übersicht über die angelegten Web Anwendungen (ohne Anwendung)

    Wählen Sie den Menüpunkt new web site, um eine neue Website zu konfigurieren. Die Oberfläche zeigt nun die Eingabemaske für neue Websites. Machen Sie dort folgende Angaben:

    Name:

    Site1

    Description:

    Meine erste Site.

    Protocol:

    http

    Port:

    80

    IP Address:

    *

    Host Name:

    site1.meinhost.com

    SSL certificate:

    Not Selected

    Bestätigen Sie Ihre Eingaben mit Create. In der Übersichtsseite wird nun die neue Website angezeigt. Über das „i“-Symbol, können Sie sich den Status der Website anzeigen lassen (siehe Abbildung 9).

    ABB_09 Sync-Status für die neue Website
    Abbildung 9: Sync-Status für die neue Website

    In Abbildung 9 ist zu sehen, dass die Konfiguration der Website auf allen Web Role Instanzen des Web Deploy Hosts verfügbar ist. Damit sind alle Voraussetzungen geschaffen, um eine Web Anwendung zu deployen.

    Legen Sie nun eine neue Web Anwendung an. Öffnen Sie eine neue Instanz von Visual Studio und wählen den Menüpunkt File / New / Project. Wählen sie die Projektvorlage Visual C# / Web / ASP.NET Web Application. Visual Studio erstellt eine neue Web Anwendung, die auch sofort installiert werden kann. Nehmen Sie aber vorher eine kleine Änderung an der Datei Default.aspx vor. Ändern Sie beispielsweise die Überschrift wie folgt.

       1: <h2>
       2: Welcome to Site1!
       3: </h2>

    Klicken Sie anschließend mit der rechten Maustaste im Solution Explorer auf das Anwendungsprojekt und wählen im Kontextmenü den Punkt Publish. Daraufhin öffnet sich die folgende Eingabemaske.

    ABB_10 Publishing der Web Anwendung
    Abbildung 10: Publishing der Web Anwendung

    Machen Sie in der Eingabemaske folgende Angaben:

    Publish method:

    Web Deploy

    Service URL:

    http://webdeployhost1.cloudapp.net/

    Site/application:

    site1

    Mark as IIS…:

    leer

    Leave extra files…:

    leer

    User name:

    <Remote Desktop Username>

    Password

    <Remote Desktop Passwort>

    Bestätigen Sie Ihre Eingaben mit Publish. Nach erfolgreichem Publishing (nach ca. 30 Sekunden) können Sie sich den Status der Site in der Host Adminoberfläche anzeigen lassen (siehe Abbildung 11). Der Status hat auf Deployed gewechselt.

    ABB_11 Status der Website nach dem Publishing
    Abbildung 11: Status der Website nach dem Publishing

    Die Website ist nun über den in der Admin-Oberfläche konfigurierten URL zugreifbar. Dies kann allgemeingültig über einen entsprechenden DNS Eintrag erfolgen. Anstelle einer CNAME-Einstellung kann dies von der lokalen Umgebung auch durch einen Eintrag in der hosts-Datei erfolgen. Ermitteln Sie hierzu die virtuelle IP-Adresse des Web Deploy Hosts. Im Windows Azure Management Portal können sie diesen bei Auswahl des Hosted Service in der Eigenschaftenleiste rechts unten auslesen (siehe Abbildung 12).

    ABB_12 Virtuelle IP Adresse des Web Deploy Hosts
    Abbildung 12: Virtuelle IP Adresse des Web Deploy Hosts

    Fügen Sie in die Datei C:\Windows\System32\drivers\etc\hosts einen entsprechenden Eintrag analog dem folgenden Auszug ein

       1: ...
       2: # localhost name resolution is handled within DNS itself.
       3: # 127.0.0.1 localhost
       4: # ::1 localhost
       5: 94.245.110.52 site1.meinhost.com

    Damit kann die Web Anwendung über die konfigurierte Adresse aufgerufen werden (siehe Abbildung 13).

    ABB_13 Die installierte Web Anwendung im Browser
    Abbildung 13: Die installierte Web Anwendung im Browser

    Weitere Informationen