2012-11-23 14 views
5

Ho 3 progetti Web in esecuzione su Azure, attualmente tutti i siti all'interno di un'istanza, ottimo per ridurre i costi ma non così grande quando uno dei progetti Web ha picchi della domanda che rallentano gli altri servizi/fermalo.Più servizi Cloud Azure in un'unica soluzione

2 dei siti si trovano sullo stesso dominio (uno con porta diversa) e uno su un sottodominio. La cosa grandiosa dei siti è che puoi usare i nomi degli host per distinguere tra i siti in esecuzione sulla stessa porta. Se il sito del sottodominio fosse referenziato come un ruolo web, avrebbe richiesto porte diverse per gli altri due ruoli web - non per quello che sto cercando!

Il problema è che, sebbene sia possibile utilizzare due servizi cloud, non è possibile eseguirne il debug simultaneamente all'interno di una soluzione. Inserirli in due soluzioni semplifica il problema ma condividono una libreria di classi che cambia spesso, avendo questa all'interno di una soluzione separata per i ruoli Web rende molto difficile il debug della mia esperienza.

Qualsiasi aiuto è molto apprezzato!

risposta

3

Qual è la vera domanda qui?

In primo luogo, non vedo un problema con l'avere tutti i siti in un singolo WebRole. Quando si raggiunge il picco, basta scalare. Sì, ridimensionerai tutti i siti, ma questo è solo un vantaggio. Windows Azure Load Balancer utilizza l'algoritmo RoundRobin, che garantisce che tutte le richieste vengano inviate uniformemente in tutte le istanze. Lo dirò di nuovo - quando vedi i picchi, scala, niente di cui preoccuparsi. Dopotutto, questo è ciò per cui Azure sta lì. Per i costi non ha molta importanza, perché scalerai comunque. Che si tratti di un singolo sito per ruolo web o di 10 siti per ruolo web, la scala è scalabile e prende gli stessi soldi.

Come per l'altra preoccupazione. Ho lavorato molto con soluzioni multi-progetto. E non ho mai visto problemi con una libreria comune utilizzata da più progetti. Soprattutto quando tutto è sotto controllo (sorgente). Visual Studio ha la caratteristica accurata di "Aggiungi progetto esistente" (quando si fa clic sulla soluzione):

Add Existing Project

Quindi, si libreria di classi comuni è solo un singolo progetto utilizzato in molte soluzioni e modificata su un posto unico del file system.

Come linea di fondo, dirò ancora una volta - se l'unico problema è che quando ridimensionate il sito al massimo, scalerete anche gli altri siti, semplicemente non farlo! E se non vuoi scalare sotto picchi massimi e lasciare il sito in basso - non preoccuparti di usare Azure.

+0

Eseguo il ridimensionamento, quindi non si tratta di un problema. Non avevo idea che l'aggiunta di un progetto esistente fosse semplicemente referenziata, quindi grazie per questo! Suppongo che la mia domanda sia: vale la pena separare un sito web da un'API dividendoli in diversi servizi cloud? – Jamie

+1

La motivazione principale per la separazione sarebbe quella di consentire diversi cicli di aggiornamento e diversi schemi di ridimensionamento, quindi questo è ciò che sarà necessario valutare rispetto a ciò che si sta aggiungendo la complessità attorno al debug a causa dell'assembly condiviso che cambia spesso. forse hai bisogno di vedere come gestirlo se la separazione è desiderabile? –

+0

Grazie Yossi. Alla fine della giornata l'API cambierà raramente nello stesso momento degli altri due ruoli e sì, i pattern di ridimensionamento saranno diversi per cui hai risposto alla mia domanda, grazie ancora! – Jamie

Problemi correlati