wake-up-neo.com

In Windows Azure: Was sind Webrolle, Arbeiterrolle und VM Rolle?

Die Anwendung, an der ich arbeite, enthält eine Webrolle: Es handelt sich um eine einfache Webanwendung. Ich musste die Anwendung in Windows Azure hosten, also habe ich eine Webrolle erstellt. Ich möchte eigentlich wissen, wofür diese Rollen sind. Welche Bedeutung haben sie in Bezug auf Codierung oder Speicherung?

111
Kuntady Nithesh

EDIT 3/3/2013 - aktualisiert, um auf UDP-Endpunkte, virtuelle Maschinen und weitere Sprachen zu verweisen

EDIT 6/6/2013 - aktualisiert, um die Einstellung von VM Rolle und Aktualisierung auf Web-/Worker-Rollen-Baseline-BS-Images auf Windows Server 2012 widerzuspiegeln.

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, bei denen IIS aktiviert ist
  • Worker-Rollen sind Windows Server-VMs mit IIS deaktiviert (und Sie könnten es manuell aktivieren)
  • VM-Rollen sind Windows Server 2008-Abbilder, die Sie lokal über Hyper-V erstellen und in Azure hochladen (und die ab sofort nicht mehr zum 31. Mai 2013 verfügbar sind
  • Virtuelle Maschinen sind in Azure erstellte Windows- oder Linux-Abbilder, die als virtuelle Festplatte in Ihrem eigenen Speicher gespeichert sind und über mehrere Verbesserungen verfügen, die über die Funktion VM) hinausgehen. Beispiel: Da sich die virtuelle Festplatte in Ihrem eigenen Speicherkonto befindet, Sie können ganz einfach eine Image-Vorlage von Ihrem virtuellen Datenträger erstellen, auf einen neuen virtuellen Datenträger kopieren oder sogar auf VM Depot (nur Linux) hochladen.

Um Ihre Frage zu beantworten, wie Sie mit diesen Rollen umgehen sollen: Das Platform Training Kit (siehe unten) bietet Ihnen viele gute Ideen und Beispiele. Hier sind jedoch 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 sich überlegen, wie Sie zustandslos verfahren - wenn Sie mehr als eine VM - Instanz ausführen, wird der Benutzerverkehr auf diese Instanzen verteilt Das Platform Training Kit 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 die Erstellung von Miniaturansichten von Fotos oder Berechnungen auf der Grundlage von 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 abruft (und Sie können diesen Prozess auf 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 tätigen, und mehrere Sprachen (einschließlich der oben genannten) haben SDKs, die dies für Sie erledigen. Alle Sprach-SDKs sind hier =, mit Quellcode auf Github, hier .
  • Mit der Rolle VM können Sie Software mit sehr komplexen/zeitaufwendigen Installationen, Installationen, die manuelle Eingriffe erfordern, und Installationen, die nicht zuverlässig automatisiert werden können, installieren und ausführen. Sie müssen sich mit dem Betriebssystem befassen Wartung in diesem Fall. Neben VM Rolle gibt es jetzt virtuelle Maschinen, die cloudbasierte VM Konstruktion zusammen mit Windows- und Linux-Unterstützung bereitstellen. Ich würde Schlagen Sie virtuelle Maschinen über VM Rolle vor.

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 das gesamte VM in die Cloud (und verwalten dann das VM Image im Laufe der Zeit).

Bei virtuellen Maschinen wählen Sie einfach ein Betriebssystem-Image aus einer Galerie aus, das für Sie erstellt und als virtuelle Festplatte im Blob-Speicher gespeichert wird. Sie dann RDP/ssh und richten Sie es ein, wie Sie möchten.

Mit dem Architektenhut wird es hier lustig und interessant. Sie können Web-Services in einer Web-Rolle oder einer Worker-Rolle ausführen (und Ports in einer von beiden öffnen). Sie können Tomcat oder andere Webserver in einer Worker-Rolle hosten. Sie können eine Website mit 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 gehen Sie die Übungen durch.

99
David Makogon
  • Webrollen sind in IIS gehostete Webanwendungen.
  • Worker-Rollen sind Prozesse, die Arbeit verrichten können (d. H. Automatisch hochgeladene Bilder komprimieren, Dinge tun, wenn sich etwas in Ihrer Datenbank ändert, neue Nachrichten aus der Warteschlange abrufen und verarbeiten, wie Sie es nennen).
  • VM-Rollen Host-VMs
30
Dennis Traub

Ich bin vor einigen Tagen auf diese SO= frage/antwort gestoßen und habe die Antworten ein wenig über den Kopf geworfen (ich bin neu in Azure und Web). Ich habe diese Zusammenfassung in den Azure-Grundlagen gefunden Ich fand heute Abend einen guten Überblick über die Hauptunterschiede zwischen der Worker- und der Web-Rolle:

Der Hauptunterschied besteht darin, dass auf einer Instanz einer Webrolle IIS ausgeführt wird, auf einer Instanz einer Worker-Rolle jedoch nicht. Beide werden jedoch auf dieselbe Weise verwaltet, und es ist üblich, dass eine Anwendung beide verwendet. Beispielsweise kann eine Webrolleninstanz Anforderungen von Benutzern akzeptieren und diese zur Verarbeitung an eine Worker-Rolleninstanz übergeben. Um Ihre Anwendung zu vergrößern oder zu verkleinern, können Sie Windows Azure auffordern, weitere Instanzen von Rollen zu erstellen oder vorhandene Instanzen herunterzufahren. Ähnlich wie bei virtuellen Windows Azure-Maschinen wird Ihnen nur die Zeit in Rechnung gestellt, die jede Web- oder Worker-Rolleninstanz ausgeführt wird.

Wenn Sie neu in der Azure-Entwicklung sind, empfehle ich dringend, den vollständigen Artikel hier zu lesen: Einführung in Windows Azure

Ich hoffe, das hilft jemandem so sehr, wie es mir geholfen hat, die Glühbirne einzuschalten.

21
BrianLegg

Webrollen in Windows Azure haben einen besonderen Zweck und stellen einen dedizierten IIS-Webserver (Internet Information Services) bereit, der zum Hosten von Front-End-Webanwendungen verwendet wird. Sie können Webanwendungen schnell und einfach für Webrollen bereitstellen und dann Ihre Computing-Funktionen nach Bedarf erweitern oder verkleinern.

3
Sufy Khan