Holger Sirtl's WebLog

Microsoft's Cloud Technology applied in Enterprise Architecture

July, 2011

  • Holger Sirtl's WebLog

    SharePoint 2010 & Windows Azure Training Kit–Juli 2011 Edition verfügbar

    • 0 Comments

    Seit ein paar Tagen ist das SharePoint 2010 & Windows Azure Training Kit verfügbar. Es richtet sich an Entwickler, die Lösungen auf Basis von SharePoint Server 2010 implementieren und dabei auf Dienste zurückgreifen wollen, die auf Windows Azure ausgeführt werden. Das Training Kit ist sowohl online als auch in einer Offline-Version zum Download verfügbar.

    Das Training Kit umfasst folgende 12 Lerneinheiten:

  • Holger Sirtl's WebLog

    Benchmarks für Windows Azure von Microsofts Extreme Computing Group

    • 0 Comments

    Sehr oft werde ich nach Performanzzahlen zu Windows Azure gefragt. Mit einer neuen Benchmarkseite gibt Microsofts Extreme Computing Group nun einen Überblick über Durchsatz, Latenz, Performanz etc. zu verschiedenen Diensten der Windows Azure Platform. Es werden Benchmarks in drei Kategorien bereitgestellt:

    • Mikro-Benchmarks
    • End-to-End Application Benchmarks
    • weitere Benchmarks
       

    Mikro-Benchmarks

    • Windows Azure Blob Storage (Read Throughput, Write Throughput, Read Latency, Write Latency)
    • Windows Azure Queue Storage (Read Throughput, Write Throughput, Read Latency, Write Latency)
    • Windows Azure Table Storage (Read Throughput, Write Throughput, Read Latency, Write Latency)
    • SQL Azure (Read Throughput, Write Throughput, Read Latency, Write Latency)
    • Windows Azure Role (Disk Read Throughput, Disk Write Throughput, Memory Throughput, CPU Throughput)
    • Windows Azure Fabric (Network Throughput, Deployment Cost)
       

    End-to-End Application Benchmarks

    • Matrix Multiplication
    • Sorting
    • Sequence Alignment
       

    Weitere Benchmarks

    • Vergleich der Storage Typen
    • Vergleich der VM Größen
       

    Zu allen Benchmarks finden sich auch Interpretationen der Ergebnisse und Tipps, wie der betreffende Dienst möglichst effizient genutzt werden kann. Auch werden Best Practices aufgelistet, die Hinweise auf Performanz-Optimierungen in eigenen Anwendungen geben. Absolut lesenswert!!! Die Code-Beispiele können dabei leicht übernommen werden.

    Von der gleichen Research-Group wird darüber hinaus auch ein sogenannter Azure Throughput Analyzer angeboten, mit dessen Hilfe der Upload und Download Durchsatz zu Azure gemessen werden kann.

    Weitere Informationen

  • Holger Sirtl's WebLog

    Windows Azure Accelerator for Web Roles–Deployment mehrerer Web Anwendungen in 30 Sekunden

    • 0 Comments

    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

  • Holger Sirtl's WebLog

    Studie von Forrester Consulting zum Windows Azure Business Case für Softwarehersteller (ISVs)

    • 0 Comments

    Forrester Consulting hat eine Studie mit dem Titel: “The ISV Business Case For The Windows Azure Platform” veröffentlicht. Im Rahmen dieser Studie hat Forrester sechs Softwarehersteller (ISVs) aus unterschiedlichen Regionen interviewt, die Anwendungen auf Basis von Windows Azure, SQL Azure und Windows Azure AppFabric entwickelt haben. Ein zentrales Ergebnis hiervon war, dass die betreffenden Partner durch das Deployment ihrer Lösung auf Windows Azure zwischen 20% und 250% jährliches Umsatzwachstum nach neun bis 14 Monaten erzielen konnten.

    Als wichtigste Vorteile der Windows Azure Platform als Basis für einen Betrieb ihrer Software in der Cloud haben die ISVs folgende Punkte identifiziert:

    • Wiederverwendung einer bestehenden Code-Basis. Die ISVs konnten bis zu 80% ihres bestehenden Microsoft Codes durch einfaches Neucompilieren auf Windows Azure portieren.
    • Möglichkeit der flexiblen Ressourcennutzung und  -abrechnung. Die ISVs konnten ihre Anwendungen dahingehend optimieren, den Ressourcenverbrauch (und damit die Kosten) zu minimieren und vorhersehbarer zu machen.
    • Zugang zu gänzlich neuen Kundengruppen. Die Möglichkeit, die Cloud-basierten Anwendungen auf globaler Basis anzubieten, erlaubte es den ISVs, ihre Lösungen in neuen Märkten, Segmenten  sowie geographisch entfernte Regionen anzubieten.
       

    Der Report beschreibt darüber hinaus, wie die ISVs mit Microsoft als Partner ihre Anwendungen auf Windows Azure portieren, neue Kunden- und Umsatzpotenziale erschließen und gleichzeitig die Aufwände hierfür minimal halten konnten. Letzteres konnte unter anderem durch Wiederverwendung bestehenden Codes und Entwickler-Know-Hows erzielt werden.

    Die Studie kann hier heruntergeladen werden.

    Disclaimer

    Natürlich soll hier nicht verschwiegen werden, dass die Studie von Microsoft in Auftrag gegeben wurde. Forrester besteht hier aber auf seiner Unabhängigkeit (siehe Seite 4 der Studie).

    Auch wenn die verwendeten Zahlen (Kosten-, Umsatzprognosen etc.) immer zu Diskussionen führen können, kann aus dieser Studie meiner Meinung nach doch ein Rahmen für eigene Überlegungen (mit eigenen Zahlen) zu Entwicklung oder Migration in die Cloud abgeleitet werden. Insgesamt ist die Studie also absolut empfehlenswert.

    Weitere Informationen

  • Holger Sirtl's WebLog

    „Stein, Schere, Papier“-Wettbewerb in der Cloud – jetzt bis zu 5000 US-$ gewinnen!

    • 0 Comments

    Am 13. Juli findet das große „Rock, Paper, Azure“-Turnier statt. Der Wettbewerb basiert auf dem klassischen Spiel „Stein, Schere, Papier“. Zur Teilnahme entwickelt jeder Teilnehmer einen „Bot“, der für Ihn am Turnier teilnimmt. Dieser „Bot“ läuft auf der Windows Azure-Plattform und tritt gegen die „Bots“ der anderen Teilnehmer an. Das Preisgeld für den Turniersieger sind 5000 US-$, der Zweitplatzierte erhält 1000 US $. Für weitere 10 Teilnehmer steht ein Preisgeld von je 250 US-$ bereit. Jeder Teilnehmer, der erfolgreich einen „Bot“ entwickelt und diesen am Wettbewerb teilnehmen lässt, erhält außerdem ein offizielles „Rock, Paper, Azure“-T-Shirt.

    Jeder volljährige Entwickler aus Deutschland ist herzlich zur Teilnahme an diesem Wettbewerb eingeladen, der von der Microsoft US-Niederlassung ausgeschrieben wurde. Alle Details und Teilnahmebedingungen finden Sie unter http://www.rockpaperazure.com

    logo_rpa_GRAND_tournament_rev

  • Page 1 of 1 (5 items)