EDIT 03.03.2013 - aktualisiert, um auf UDP-Endpunkte, virtuelle Maschinen und weitere Sprachen zu verweisen
BEARBEITEN 6/6/2013 - aktualisiert, um die Einstellung der VM-Rolle widerzuspiegeln, und Aktualisierung der Basis-Betriebssystem-Images der Web- / Worker-Rolle auf Windows Server 2012
Guter Link von @Vladimir. Ein bisschen mehr Klarheit: Alle Rollen (Web, Worker) sind im Wesentlichen Windows Server. Web- und Worker-Rollen sind nahezu identisch:
- Webrollen sind Windows Server-VMs mit aktiviertem IIS
- Worker-Rollen sind Windows Server-VMs mit deaktiviertem IIS (und Sie können sie manuell aktivieren).
- VM-Rollen sind Windows Server 2008-Images, die Sie lokal über Hyper-V erstellen und in Azure hochladen (und die jetzt nicht mehr verfügbar sind und zum 31. Mai 2013 nicht mehr verfügbar sind
- Virtuelle Maschinen sind Windows- oder Linux-Images, die in Azure erstellt, als VHD in Ihrem eigenen Speicher gespeichert wurden und über die VM-Rolle mehrere Verbesserungen aufweisen. Beispiel: Da sich die vhd in Ihrem eigenen Speicherkonto befindet, können Sie ganz einfach eine Image-Vorlage aus Ihrer vhd erstellen, auf eine neue vhd kopieren oder sogar in VM Depot hochladen (nur Linux).
Um Ihre Frage zu beantworten, wie Sie mit diesen Rollen umgehen sollen: Das unten erwähnte Platform Training Kit bietet Ihnen viele gute Ideen und Beispiele. Hier einige einfache Anwendungsfälle:
- Sie können jeden Code ausführen, der einen TCP-, http-, https- oder udp-Endpunkt verfügbar macht (Webanwendungen, SOAP / REST-Dienste usw.). Sie müssen jedoch über die zustandslose Vorgehensweise nachdenken. Wenn mehr als eine VM-Instanz ausgeführt wird, wird der Benutzerverkehr auf diese Instanzen verteilt. Das Plattform-Schulungskit zeigt Ihnen, wie Sie mit Speicher oder Cache umgehen können.
- Sie können Code ausführen, der von einer Warteschlange oder einem Timer lebt. Möglicherweise haben Sie On-Demand-Aufgaben wie das Generieren von Fotos in Miniaturansichten oder Berechnungen basierend auf Benutzereingaben. Diese benötigen keine extern verfügbaren Endpunkte. Sie können Ihre Anforderungen an eine Warteschlange senden und dann eine Aufgabe ausführen, die diese Warteschlange einfach speist (und Sie können diesen Prozess über mehrere Instanzen skalieren, wobei Warteschlangennachrichten von allen Instanzen verwendet werden).
- Sie können .NET, Java, PHP, Python, Node, Ruby usw. ausführen. Sie müssen nur den entsprechenden Laufzeitcode zusammen mit Ihrem Projektcode verteilen. Alle Sprachen können REST-Aufrufe an die Azure-API senden, und mehrere Sprachen (einschließlich der oben genannten) verfügen über SDKs, die dies für Sie erledigen. Alle Sprach-SDKs sind hier , mit Quellcode auf Github, hier .
Mit einer VM-Rolle können Sie Software mit sehr komplexen / zeitaufwändigen Installationen, Installationen, die manuelle Eingriffe erfordern, und Installationen, die nicht zuverlässig automatisiert werden können, installieren und ausführen. In diesem Fall müssen Sie sich mit der Betriebssystemwartung befassen. Über die VM-Rolle hinaus gibt es jetzt virtuelle Maschinen, die eine Cloud-basierte VM-Konstruktion sowie Windows- und Linux-Unterstützung bieten. Ich würde virtuelle Maschinen über VM-Rolle vorschlagen.
Mit Web- und Worker-Rollen werden das Betriebssystem und die zugehörigen Patches für Sie erledigt. Sie erstellen die Komponenten Ihrer App, ohne eine VM verwalten zu müssen.
Mit VM-Rollen erstellen Sie ein vollständiges Windows Server-Image, fügen die Azure-Hooks hinzu und verschieben die gesamte VM in die Cloud (und pflegen das VM-Image im Laufe der Zeit).
Mit Virtual Machines wählen Sie einfach ein Betriebssystem-Image aus einer Galerie aus, das für Sie erstellt und als VHD im Blob-Speicher gespeichert wird. Sie dann RDP / ssh und richten es ein, wie Sie möchten.
Mit dem Architektenhut wird es hier lustig und interessant. Sie können Webdienste in einer Webrolle oder einer Arbeiterrolle ausführen (und in beiden Ports öffnen). Sie können Tomcat oder andere Webserver in einer Worker-Rolle hosten. Sie können eine Website plus Services in einer einzigen Rolle kombinieren oder sie für unterschiedliche Skalierbarkeitsanforderungen in mehrere Rollen aufteilen.
Schauen Sie sich für einen guten Start das Platform Training Kit an und beginnen Sie mit den Übungen.