Frage

Ist es möglich, in derselben Instanz mehrere Rollen bereitzustellen?

Ich habe drei Webrollen (Website in ASP.NET MVC3 und zwei WCF -Services -Instanzen) und zwei Arbeiterrollen (Windows Services).

Die Last für diese Anwendung ist sehr klein, daher möchte ich nicht so viele Instanzen in Windows Azure erstellen und für alle Instanzen jetzt bezahlen. Stattdessen möchte ich meine gesamte Anwendung in derselben Instanz bereitstellen und später ändern, wenn ich einige Einnahmen aus meinen Bewerbungen bekomme.

Ich habe gegoogelt und einige Forum -Posts gefunden, als es möglich ist und andere als nicht möglich ist ... aber ich kann keine Informationen finden, wie es geht ...

Also zwei Fragen: Ist es möglich? Wie kann ich es tun?

War es hilfreich?

Lösung

Eine etwas andere Antwort als @Simons ... eine Rolle ist tatsächlich eine Vorlage für einen Windows Server 2008 -VM (siehe meine Antwort On on Diese Frage auch). Jede Rolle hat einen oder mehrere Instanzen, und Sie können alles ausführen, was Sie wollen, in jeder Rolle.

Sie können Ihre Website und alle Ihre WCF -Dienste in einer einzigen Rolle absolut ausführen. Sie skalieren jetzt Ihre Anwendung auf/nach unten (VM -Größe) und aus/in (## der Instanzen) als einzelne Maßstabeinheit. Wenn beispielsweise Ihre WCF-Dienste CPU-intensiv sind und die VM-Instanzen für Ihre Webbesucher verlangsamen, müssen Sie genug skalieren, um diese Besucher zu bewältigen.

Sobald Sie eine erhebliche Verkehrslast erreicht haben, lohnt es sich, getrennte Rollen in Betracht zu ziehen. Auf diese Weise können Sie sich für VM -Größe und -menge entscheiden pro Rolle. Vielleicht haben Sie 2 oder 3 kleine Instanzen einer Webrolle, um Ihren Benutzerverkehr auf der Website zu übernehmen, und möglicherweise 2 mittlere Instanzen einer Arbeiterrolle, um WCF -Dienste zu übernehmen (genau wie ein Beispiel). Je mehr Rollen Sie haben, desto feinerer Skalierung haben Sie, aber Sie müssen mindestens eine Instanz jeder Rolle führen, die Ihr "System in Ruhe" -Basiskosten erhöht.

Andere Tipps

Nein, Rollen sind Instanzen und jeder nimmt eine ganze VM ein. Sie können jedoch eine Reihe von bereitstellen Websites In eine einzige Rolle, mit der Sie alle Ihre MVC- und WCF -Apps in einer einzigen Webrolle bereitstellen können. Sie müssen dem Websites zum Hinzufügen von Websites hinzufügen Sites -Elemente in der Servicedefinition. Es scheint ein paar Blog -Beiträge darüber zu geben, wie dies gemacht wird - hier und hier.

Für Arbeiterrollen schlage ich vor, dass Sie eine einzelne Arbeiterrolle erstellen und die Arbeiten in diesen Rollen kombinieren, z. Dies Stackoverflow -Antwort von Eugenio Tempo.

Ich würde nicht empfehlen, die Funktionen der Arbeiterrollen in der Webrolle zu kombinieren. Abgesehen davon, dass es architektonisch sinnvoll ist, Sinn für die physische Infrastruktur (IIS vs nicht IIS), gibt es potenzielle Probleme wie die Beendigung von Lauffäden, wenn die Arbeiterrollen recyceln (ein von IIS nicht gestarteter Thread kann abrupt abrupt enden)

Überprüfen Sie diese Episode von Cloud Cover. Sie können eine paar Webrolle in derselben Instanz spielen. Arbeiterrolle Sie können immer mehrere Threads einsetzen, um die Daten zu bearbeiten.

http://channel9.msdn.com/shows/cloud+cover/cloud-cover-episode-37-multiple-wbsites-in-a-web-role.

Beachten Sie, dass Sie jedes Mal, wenn Sie eine neue Version in Azure hochladen

Schauen Sie sich diesen Blog -Beitrag an, in dem mehrere Azure Worker -Rollen in eine Azure -Webrolle kombiniert werden.http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2012/02/combining-multiple-azure-worker-roles.html

Ich denke, das müssen Sie tun ...

Auch Wayne hat Variationen davon in seinem Blog: http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/how-to-combine-worker-web-role-in.html

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top