webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen einer Azure-Website und einer Azure-Webrolle?

Was sind die wesentlichen Unterschiede zwischen den neuen Azure-Websites und den traditionellen Azure-Webrollen für eine ASP.NET-MVC-Anwendung? Aus welchem ​​Grund würde ich eine "Website" einer "Webrolle" vorziehen oder umgekehrt?

Angenommen, ich würde in beiden Fällen die gleiche Kapazität benötigen (z. B. 2 kleine Instanzen). Die Preise scheinen vergleichbar zu sein, abgesehen von der Tatsache, dass für Websites in der Vorschauzeit ein vorübergehender Rabatt von 33% gewährt wird.

Gibt es Dinge, die ich mit einer "Website" tun kann, die mit einer Webrolle schwierig oder unmöglich sind? Ist es beispielsweise einfach, mehrere Websites mithilfe von "Websites" in einen einzigen Satz von VMs zu integrieren? Verliere ich etwas mit einer "Website" gegen eine "Web-Rolle"? Möglichkeit zur Feineinstellung von IIS? Möglichkeit, den Cache-Dienst lokal zu verwenden?

234
Erv Walter

Web-Rollen bieten Ihnen mehrere Funktionen, die über Web-Apps (früher Websites) hinausgehen:

  • Möglichkeit, Skripts zum Starten mit erhöhten Rechten auszuführen, um Apps zu installieren, Registrierungseinstellungen zu ändern, Leistungsindikatoren zu installieren, IIS zu optimieren usw.
  • Möglichkeit, eine App in Ebenen aufzuteilen (z. B. Webrolle für das Front-End, Worker-Rolle für die Back-End-Verarbeitung) und unabhängig zu skalieren
  • RDP-Fähigkeit für Debugging-Zwecke in Ihre VM
  • Netzwerkisolation
  • Dedizierte virtuelle IP-Adresse, mit der Webrolleninstanzen in einem Clouddienst auf IP-beschränkte virtuelle Maschinen zugreifen können
  • ACL-beschränkte Endpunkte (hinzugefügt in Azure SDK 2.3, April 2014)
  • Unterstützung für alle TCP/UDP-Ports (Websites sind auf TCP 80/443) beschränkt.)

Web-Apps bieten jedoch Vorteile gegenüber Web-Rollen:

  • Fast sofortige Bereitstellung mit Bereitstellungsverlauf/Rollbacks
  • Unterstützung für Visual Studio Online-, Github-, lokale Git-, FTP-, CodePlex-, DropBox- und BitBucket-Bereitstellung
  • Möglichkeit, eines der zahlreichen CMS und Frameworks (wie WordPress, Joomla, Django, MediaWiki usw.) einzuführen
  • Verwendung von SQL-Datenbank oder MySQL
  • Einfach und schnell von der kostenlosen über die gemeinsame bis zur dedizierten Ebene zu skalieren
  • Web-Jobs
  • Backups von Website-Inhalten
  • Integrierte webbasierte Debugging-Tools (einfache Cmd/Powershell-Debug-Konsole, Prozess-Explorer, Diagnosetools wie Protokoll-Streaming usw.)

Mit den Rollouts von April 2014 und September 2014 gibt es jetzt einige Funktionen, die sowohl für Web-Apps als auch für Web-Rollen (und Worker-Rollen) gelten, darunter:

  • Inszenierung + Produktionsplätze
  • Wildcard-DNS, SSL-Zertifikate
  • Visual Studio-Integration
  • Traffic Manager-Unterstützung
  • Unterstützung für virtuelle Netzwerke

Hier ist ein Screenshot, den ich aus dem Auswahlformular für die Websites-Galerie entnommen habe: enter image description here

Ich denke, Web-Apps sind eine großartige Möglichkeit, schnell einsatzbereit zu sein und von freigegebenen zu reservierten Ressourcen zu wechseln. Sobald Sie dies erreicht haben, können Sie zu Webrollen wechseln und diese nach Bedarf erweitern.

210
David Makogon

BEARBEITEN 2014: Für was es wert ist, sind viele Informationen in dieser Antwort nicht mehr korrekt - siehe Kommentare.

Fügen Sie @David weitere Antworten hinzu:

Mit Windows Azure-Websites haben Sie keine Kontrolle über IIS oder Webserver, da Sie ein Ressourcen-Slice zusammen mit Hunderten anderer Websites auf demselben Computer verwenden und Ressourcen wie alle anderen freigeben Daher gibt es keine Kontrolle über IIS.

Der große Unterschied zwischen einer freigegebenen Website und einer Azure-Webrolle besteht darin, dass eine Website als prozessgebunden betrachtet wird, während Rollen VM gebunden sind.

Websites werden auf einer Inhaltsfreigabe gespeichert, auf die von allen "Webservern" in der Farm aus zugegriffen werden kann, sodass keine Replikation oder ähnliches erforderlich ist.

Windows Azure-Websites dürfen keinen eigenen Hostnamen haben, stattdessen müssen sie nur den Websitenamen . Azurewebsites.net verwenden, und Sie können die CNAME-Einstellung in Ihrem DNS-Anbieter verwenden, um Leiten Sie Ihre Anforderung nur dann genau so weiter wie mit der vorherigen Windows Azure-Rolle, wenn diese im reservierten Modus ausgeführt wird. Die CNAME-Einstellung wird für freigegebene Websites nicht unterstützt.

43
AvkashChauhan

Ich habe gerade einen umfassenden Blog-Beitrag zu diesem Thema unter http://robdmoore.id.au/blog/2012/06/09/windows-Azure-web-sites-vs-web-roles/ veröffentlicht. .

Ein Auszug aus meinem Fazit: Wenn Sie ein enorm umfangreiches Rechenzentrum für SSL, Asien oder die USA benötigen, eine nicht standardmäßige Konfiguration (von IIS, Ports, Diagnosen, Sicherheitszertifikaten oder Startskripten), RDP oder kostengünstige Worker-Rollen ( kombiniert mit Ihrer Web-Rolle), müssen Sie sich zunächst an die Web-Rollen halten.

Ansonsten sind Websites eine großartige Option!

34
Robert Moore

Die Azure-Webrolle ist wie ein virtueller privater Host. Sie erhalten eine VM, die als Ihr Webserver fungiert, und Sie besitzen diese VM - Instanz.

Azure-Websites sind wie ein elastischer Shared Hosting-Dienst. Sie stellen Ihre App auf einem Webserver bereit, der nicht von Ihnen gesteuert wird und der auch die Websites anderer Benutzer bedient. Sie können Ihre Website nach oben und unten skalieren (gegen Aufpreis), um sie elastischer zu gestalten, wenn sich die Ressourcenanforderungen ändern.

14
Jimmy

Azure-Websites ermöglicht Ihnen das schnelle Erstellen hochskalierbarer Websites in Azure. Sie können das Azure-Portal oder die Befehlszeilentools verwenden, um eine Website mit gängigen Sprachen wie .NET, PHP, Node.js und Python einzurichten. Unterstützte Frameworks sind bereits implementiert und erfordern keine weiteren Installationsschritte. Die Galerie mit Azure-Websites enthält viele Anwendungen von Drittanbietern wie Drupal und WordPress sowie Entwicklungsframeworks wie Django und CakePHP. Nach dem Erstellen einer Website können Sie entweder eine vorhandene Website migrieren oder eine vollständig neue Website erstellen. Websites machen die Verwaltung der physischen Hardware überflüssig und bieten mehrere Skalierungsoptionen. Sie können von einem gemeinsam genutzten Mandantenmodell zu einem Standardmodus wechseln, in dem dedizierte Computer eingehenden Datenverkehr bearbeiten. Mithilfe von Websites können Sie auch andere Azure-Dienste integrieren, z. B. SQL-Datenbank, Service Bus und Speicher. In der Azure WebJobs SDK-Vorschau können Sie Hintergrundverarbeitung hinzufügen. Zusammenfassend lässt sich sagen, dass Azure-Websites die Konzentration auf die Anwendungsentwicklung erleichtern, da sie eine Vielzahl von Sprachen, Open Source-Anwendungen und Bereitstellungsmethoden (FTP, Git, Web Deploy oder TFS) unterstützen. Wenn Sie keine speziellen Anforderungen haben, für die Cloud-Dienste oder virtuelle Maschinen erforderlich sind, ist eine Azure-Website wahrscheinlich die beste Wahl.

Cloud Services Mit dieser Funktion können Sie hochverfügbare, skalierbare Webanwendungen in einer umfangreichen Platform as a Service-Umgebung (PaaS) erstellen. Im Gegensatz zu Websites wird ein Clouddienst zunächst in einer Entwicklungsumgebung wie Visual Studio erstellt, bevor er in Azure bereitgestellt wird. Frameworks wie PHP erfordern benutzerdefinierte Bereitstellungsschritte oder Aufgaben, mit denen das Framework beim Start der Rolle installiert wird. Der Hauptvorteil von Cloud Services ist die Fähigkeit, komplexere Architekturen mit mehreren Ebenen zu unterstützen. Ein einzelner Cloud-Service kann aus einer Frontend-Webrolle und einer oder mehreren Worker-Rollen bestehen. Jede Ebene kann unabhängig skaliert werden. Es gibt auch ein höheres Maß an Kontrolle über Ihre Webanwendungsinfrastruktur. Sie können beispielsweise einen Remotedesktop auf den Computern ausführen, auf denen die Rolleninstanzen ausgeführt werden. Sie können auch erweiterte IIS - und Computerkonfigurationsänderungen ausführen, die beim Rollenstart ausgeführt werden, einschließlich Aufgaben, für die Administratorsteuerung erforderlich ist.

Virtual Machines Ermöglichen das Ausführen von Webanwendungen auf virtuellen Maschinen in Azure. Diese Funktion wird auch als Infrastructure as a Service (IaaS) bezeichnet. Erstellen Sie über das Portal neue Windows Server- oder Linux-Computer oder laden Sie ein vorhandenes Image der virtuellen Maschine hoch. Mit virtuellen Maschinen haben Sie die größte Kontrolle über das Betriebssystem, die Konfiguration sowie die installierte Software und Dienste. Dies ist eine gute Option für die schnelle Migration komplexer lokaler Webanwendungen in die Cloud, da die Maschinen als Ganzes verschoben werden können. Mit virtuellen Netzwerken können Sie diese virtuellen Maschinen auch mit lokalen Unternehmensnetzwerken verbinden. Wie bei Cloud Services haben Sie Remotezugriff auf diese Computer und die Möglichkeit, Konfigurationsänderungen auf administrativer Ebene vorzunehmen. Im Gegensatz zu Websites und Cloud-Diensten müssen Sie die Images Ihrer virtuellen Maschine und die Anwendungsarchitektur jedoch vollständig auf Infrastrukturebene verwalten. Ein grundlegendes Beispiel ist, dass Sie Ihre eigenen Patches auf das Betriebssystem anwenden müssen.

Siehe den aktualisierten und umfassenden Vergleich über diesen Link: http://Azure.Microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

6
Jamil

Es gibt noch ein Szenario: Nachdem diese 500 Ausnahmen beseitigt wurden, haben sie noch nichts über die Fähigkeit von Azure-Websites gesagt, mit Platzhalter-CNAMEs umzugehen. Einige von uns verwenden den Web Role Accelerator von Nate in Cloud-Diensten, da ein einzeiliger Hack Wildcard-Subdomain-Funktionen in der Software von Nate bietet. Wir können diese Wildcard-Subdomain-Apps erst verschieben, wenn wir wissen, dass Azure Websites sie verarbeiten können. Wenn dies nicht möglich ist, wird dies auf der Web-Rollenseite der Gleichung als positiv gewertet. Außerdem ist zu beachten, dass ich bei exakt gleichem Preis (nach Ablauf des Vorschau-Rabatts) nicht sicher bin, ob ich meinen Zugriff auf RDC und Ereignisanzeige aufgeben möchte (um nur zwei Dinge zu erwähnen).

6
Luke Latham

Azure-Websites, Web-Worker und virtuelle Maschinen sind drei verschiedene Computeransätze, die unter Windows Azure verfügbar sind. Sie unterscheiden sich in der Ebene der Kontrolle und Zuständigkeiten:

  • Azure-Websites verfügen über die niedrigste Kontrollebene, Sie kümmern sich jedoch nicht darum, den Status der virtuellen Maschine und von IIS beizubehalten, da Azure-Tools dies für Sie tun
  • Mit Webrollen haben Sie mehr Kontrolle (Traffic Manager, Remotedesktop). Sie können jedoch auch mehr Administrationsaufgaben ausführen, sodass Sie über Remotedesktop eine Unterbrechung durchführen können beispielsweise
  • Mit virtuellen Maschinen haben Sie die vollständige Kontrolle über die VM, sodass Sie den größten Administrationsaufwand benötigen.

Es gibt keine beste Wahl, da dies davon abhängt, welche Steuerungsebene Sie benötigen, welche Funktionen Sie benötigen und welche Azure-Inhalte beibehalten werden sollen. Und es ist ein großes Thema ..

In diesen Artikeln finden Sie weitere Informationen, um eine fundiertere Auswahl zu treffen:

Es läuft auf einen Kompromiss zwischen Benutzerfreundlichkeit und Funktionen hinaus.

4
johnnyno

Zwei weitere Dinge, die ich feststellte, waren die Kosten für das Abrufen von SSL für eine benutzerdefinierte Domain-Site und Konfigurationen mit mehreren Mandanten.

Für eine Website müssen Sie monatlich zusätzlich zur Standardinstanz bezahlen (die kostengünstigste Option ist die kleine Instanz). Das heißt, um eine benutzerdefinierte Domain zu erhalten, kostet https ~ 70/Monat für kleine Instanzen plus ~ 41/Monat für SSL, das alle Browser unterstützt.

Für WebRole können Sie die XS-Instanz kostenlos herunterladen und Ihr eigenes SSL hinzufügen. Dies bedeutet ~ 15 USD pro Monat und Sie haben eine benutzerdefinierte Domain mit SSL.

Informationen zu Websites mit mehreren Mandanten finden Sie unter Dynamischer Azure-Wildcard-CName mit mehreren Mandanten

3
Farnam

Eine Webrolle ist eine virtuelle Maschine, die mehrere Websites hostet

1
mLar

Dies ist eine häufige Frage, und ich möchte einen Auszug aus msdn herausgeben.

Zugriff auf Dienste wie Caching, Service Bus, Speicher, SQL Azure-Datenbank - Website: Ja WebRole: Ja

Unterstützung für ASP.NET, klassisches ASP, Node.js, PHP-WebSite: Ja WebRole: Ja

Geteilter Inhalt und Konfiguration - Website: Ja WebRole: Nein

Code mit GIT, FTP-Website bereitstellen: Ja WebRole: Nein

Fast sofortige Bereitstellung - Website: Ja WebRole: Nein

Integrierte MySQL-as-a-Service-Support-Website: Ja WebRole: Ja

Mehrere Bereitstellungsumgebungen (Produktion und Bereitstellung) -Website: Nein WebRole: Ja

Netzwerkisolation-WebSite: Nein WebRole: Ja

Remotedesktopzugriff auf Server-Website: Nein WebRole: Ja

Möglichkeit zum Ausführen von Programmen mit erhöhten Berechtigungen - Website: Nein WebRole: Ja

Möglichkeit zum Definieren/Ausführen von Startaufgaben - Website: Nein WebRole: Ja

Möglichkeit, nicht unterstützte Frameworks oder Bibliotheken zu verwenden - Website: Nein WebRole: Ja

Unterstützung für Windows Azure Connect/Windows Azure-Netzwerkwebsite: Nein WebRole: Ja

Weitere Informationen erhalten Sie unter folgendem Link: http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-Azure-websites-web-roles-and-vms -wenn-zu-verwenden-welche.aspx