2012-11-23 9 views
5

Ich habe 3 Webprojekte auf Azure laufen, derzeit alle Websites in einer Instanz, ideal für die Reduzierung der Kosten, aber nicht so toll, wenn eines der Web-Projekte Nachfragespitzen hat, die die anderen Dienste verlangsamen bringe es zum Stillstand.Mehrere Azure Cloud Services in einer Lösung

2 der Websites befinden sich in derselben Domäne (eine mit anderem Port) und eine in einer Subdomäne. Das Tolle an Websites ist, dass Sie Hostnamen verwenden können, um zwischen Websites zu unterscheiden, die auf demselben Port ausgeführt werden. Wenn die Subdomain-Site als Web-Rolle referenziert würde, würde sie andere Ports für die anderen beiden Web-Rollen benötigen - nicht das, wonach ich überhaupt suche!

Das Problem ist, dass obwohl ich zwei Cloud-Dienste verwenden konnte, können Sie sie nicht gleichzeitig in einer Lösung debuggen. Wenn Sie sie in zwei Lösungen platzieren, wird das Problem leichter, aber sie teilen sich eine Klassenbibliothek, die sich oft ändert. Wenn Sie dies innerhalb einer separaten Lösung für die Webrollen haben, ist es nach meiner Erfahrung sehr schwierig zu debuggen.

Jede Hilfe wird sehr geschätzt!

Antwort

3

Was ist die wirkliche Frage hier?

Zunächst sehe ich kein Problem mit allen Websites in einer einzigen WebRole. Wenn man den Gipfel erreicht, skaliere einfach aus. Ja, Sie werden alle Websites skalieren, aber das ist nur ein Vorteil. Der Windows Azure Load Balancer verwendet den RoundRobin-Algorithmus, der gewährleistet, dass alle Anforderungen gleichmäßig über alle Instanzen gesendet werden. Ich werde es noch einmal sagen - wenn Sie Spitzen sehen, skalieren Sie einfach aus, nichts worüber Sie sich Sorgen machen müssen. Denn dafür steht Azure. Für die Kosten ist es nicht wirklich wichtig, weil Sie sowieso skalieren werden. Unabhängig davon, ob es sich um eine einzelne Website pro Webrolle oder um zehn Websites pro Webrolle handelt, die Skalierung ist skalierbar und erfordert dasselbe Geld.

Wie für die andere Sorge. Ich habe mich viel mit Multiprojektlösungen beschäftigt. Und ich habe nie Probleme mit einer gemeinsamen Bibliothek gesehen, die von mehreren Projekten verwendet wird. Vor allem, wenn alles unter (Quell-) Kontrolle steht. Visual Studio hat die ordentliche Eigenschaft von „Vorhandenes Projekt hinzufügen“ (wenn Sie rechts auf der Lösung klicken):

Add Existing Project

Also, Sie gemeinsame Klassenbibliothek ist nur ein einziges Projekt in vielen Lösungen verwendet und bearbeiten auf einem einzelner Ort des Dateisystems.

Als Endergebnis werde ich noch einmal sagen - wenn die einzige Mühe, die Sie haben, ist, dass wenn Sie die Website unter Peak skalieren, Sie auch die anderen Websites skalieren werden, nur nicht! Und wenn Sie nicht unter starken Spitzenwerten skalieren möchten und die Website nicht mehr verwenden möchten, verwenden Sie Azure einfach nicht.

+0

Ich skalieren, so dass dies derzeit kein Problem ist. Ich hatte keine Ahnung, dass das Hinzufügen eines bestehenden Projekts es einfach referenzierte, also danke dafür! Ich nehme an, meine Frage ist: Lohnt es sich, eine Website von einer API zu trennen, indem man sie in verschiedene Cloud-Dienste aufteilt? – Jamie

+1

Die Hauptmotivation für die Trennung wäre es, verschiedene Aktualisierungszyklen und unterschiedliche Skalierungsmuster zuzulassen. Dies ist also das, was Sie gegen etwas abwägen müssen, was Ihnen aufgrund der häufig wechselnden gemeinsamen Assembly Komplexität im Debugging hinzufügt. Vielleicht müssen Sie schauen, wie Sie das schaffen, wenn Trennung wünschenswert ist? –

+0

Danke Yossi. Am Ende des Tages wird sich die API selten gleichzeitig mit den anderen beiden Rollen ändern, und ja, die Skalierungsmuster werden anders sein, so dass Sie meine Frage beantwortet haben, nochmals vielen Dank! – Jamie

Verwandte Themen