Windows Azure Accelerator for Web Roles–Deployment mehrerer Web Anwendungen in 30 Sekunden
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:
https://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.
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):
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.
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.
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.
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.
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.
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).
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).
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.
Abbildung 10: Publishing der Web Anwendung
Machen Sie in der Eingabemaske folgende Angaben:
Publish method: |
Web Deploy |
Service URL: |
https://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.
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).
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).
Abbildung 13: Die installierte Web Anwendung im Browser
Weitere Informationen