Qual è la differenza tra un sito Web di Azure e un ruolo Web di Azure


241

Quali sono le differenze sostanziali tra i nuovi siti Web di Azure e i ruoli Web di Azure tradizionali per un'applicazione MVC ASP.NET? Quale motivo sceglierei un "sito Web" piuttosto che un "ruolo Web" o viceversa?

Supponiamo che avrei bisogno della stessa capacità in entrambi i casi (ad es. 2 piccole istanze). I prezzi sembrano comparabili a parte il fatto che esiste uno sconto temporaneo del 33% per i siti Web durante il periodo di anteprima.

Ci sono cose che posso fare con un "sito web" che sono difficili o impossibili con un ruolo web? Ad esempio, diventa facile inserire più siti Web in un singolo set di macchine virtuali utilizzando "siti Web"? Perdo qualcosa con un "sito Web" contro un "ruolo Web"? Capacità di mettere a punto IIS? Capacità di utilizzare il servizio cache localmente?


aveva gli stessi qs. dovrebbero davvero chiarire nei loro documenti.
90abyss,

Risposte:


213

I ruoli Web offrono diverse funzionalità oltre alle app Web (precedentemente siti Web):

  • Capacità di eseguire script di avvio elevati per installare app, modificare le impostazioni del registro, installare contatori delle prestazioni, perfezionare IIS, ecc.
  • Possibilità di suddividere un'app in livelli (forse Ruolo Web per front-end, Ruolo lavoratore per elaborazione back-end) e ridimensionare in modo indipendente
  • Capacità di RDP nella VM per scopi di debug
  • Isolamento della rete
  • Indirizzo IP virtuale dedicato, che consente alle istanze del ruolo Web in un servizio cloud di accedere a macchine virtuali con restrizioni IP
  • Endpoint con restrizioni ACL (aggiunti in Azure SDK 2.3, aprile 2014)
  • Supporto per qualsiasi porta TCP / UDP (i siti Web sono limitati a TCP 80/443)

Le app Web presentano vantaggi rispetto ai ruoli Web:

  • Distribuzione quasi istantanea con cronologia / rollback della distribuzione
  • Supporto per l'implementazione di Visual Studio Online, github, git locale, ftp, CodePlex, DropBox, BitBucket
  • Possibilità di implementare uno dei numerosi CMS e framework (come WordPress, Joomla, Django, MediaWiki, ecc.)
  • Utilizzo del database SQL o MySQL
  • Semplice e veloce da scalare da livello gratuito a livello condiviso a livello dedicato
  • Lavori Web
  • Backup del contenuto del sito Web
  • Strumenti di debug integrati sul web (semplice console di debug cmd / powershell, esploratore di processi, strumenti diagnostici come lo streaming dei log, ecc.)

Con le distribuzioni di aprile 2014 e settembre 2014, ora ci sono alcune funzionalità comuni sia alle app Web che ai ruoli Web (e ai ruoli di lavoro), tra cui:

  • Staging + slot di produzione
  • DNS jolly, certificati SSL
  • Integrazione con Visual Studio
  • Supporto per Traffic Manager
  • Supporto di rete virtuale

Ecco uno screengrab che ho preso dal modulo di selezione della galleria di siti Web: inserisci qui la descrizione dell'immagine

Penso che le app Web siano un ottimo modo per iniziare rapidamente, dove è possibile passare da risorse condivise a risorse riservate. Una volta superato questo, puoi quindi passare a Ruoli Web ed espandere di cui hai bisogno.


Oltre a Git + ftp un altro grande è PublishSettings (può essere utilizzato anche in WebMatrix 2 per esempio)
Kris van der Mast

18
Suddividere in livelli non è un fattore di differenziazione. È possibile utilizzare i ruoli di lavoratore con i siti Web.
RickAndMSFT,

4
Per quanto riguarda i livelli: con i siti Web, è necessario connettersi a un lavoratore tramite endpoint esterno, poiché i siti Web non supportano le reti virtuali. Inoltre: dovresti dividere il codice tra più distribuzioni (una per i siti Web, una per il servizio cloud con ruolo di lavoratore). Con il servizio cloud, puoi facilmente suddividere il codice in livelli scalabili, quindi ridimensionare e ridimensionare ogni livello in modo indipendente, il tutto pur avendo una comunicazione interna tra detti livelli. Questo è ciò che intendevo quando indicavo i livelli come elemento di differenziazione dei servizi cloud (web / lavoratore).
David Makogon,

1
Non è un po 'obsoleto rispetto a stackoverflow.com/a/10960755/56145 ?
Matt Kocaj,

2
Con il ruolo Web puoi anche eseguire l'elaborazione in background sulle stesse macchine virtuali
Boris Lipschitz,

44

EDIT 2014: per quello che vale, molte delle informazioni in questa risposta non sono più corrette - vedi commenti.

Aggiungi altro alla risposta @David:

Con i siti Web Windows Azure, non hai il controllo su IIS o sul server Web perché stai utilizzando una sezione di risorse insieme a centinaia di altri siti Web sullo stesso computer, stai condividendo risorse come qualsiasi altra, quindi non c'è controllo su IIS.

La grande differenza tra un sito Web condiviso e il ruolo Web di Azure è che un sito Web è considerato associato al processo mentre i ruoli sono associati alla VM.

I siti Web vengono archiviati in una condivisione di contenuti accessibile da tutti i "server Web" della farm, pertanto non è necessaria alcuna replica o altro.

I siti Web di Windows Azure non possono avere il proprio nome host, ma devono utilizzare solo il nome sito web . L'impostazione CNAME non è supportata per i siti Web condivisi.


AFAIK WebRoles non ha nemmeno il proprio nome host - sono tutti rolename.cloudapp.net. A meno che non ci sia qualche funzionalità che non conosco?
Brian Reischl,

Non puoi usare DNS per creare un alias CNAME che punta da www.tuodominio.com a websitename.azurewebsite.net?
Bernard Vander Beken,

Credo che per i siti Web WA, solo le app in esecuzione con istanze riservate (macchine virtuali dedicate) possano avere domini personalizzati associati a esse.
user94559

Penso che Scottgu abbia recentemente affermato che stanno cercando di supportare domini personalizzati anche su istanze condivise.
Jeremy,

19
Per quello che vale, molte delle informazioni contenute in questa risposta non sono più corrette (anche se era a giugno 2012): i siti Web ora possono avere domini personalizzati. I siti Web possono essere eseguiti in modalità "riservata", che è essenzialmente una macchina virtuale, ma completamente gestita.
Jay Querido,

34

Ho appena pubblicato un post completo sul blog su questo argomento all'indirizzo http://robdmoore.id.au/blog/2012/06/09/windows-azure-web-sites-vs-web-roles/ .

Un estratto dalla mia conclusione: se hai bisogno di data center su larga scala, SSL, asiatici o degli Stati Uniti occidentali, una configurazione non standard (di IIS, porte, diagnostica, certificati di sicurezza o script di avvio), RDP o ruoli dei lavoratori convenienti ( in combinazione con il tuo ruolo Web), per ora dovrai attenersi ai ruoli Web.

Altrimenti, i siti Web sono un'ottima opzione!


14

Il ruolo Web di Azure è come un host privato virtuale. Si ottiene una macchina virtuale che funge da server Web e si possiede quell'istanza della macchina virtuale.

I siti Web di Azure sono come un servizio di hosting condiviso elastico. Distribuisci la tua app su un server Web che non è controllato da te e che server anche i siti di altri utenti. Puoi ridimensionare il tuo sito su e giù (a un costo aggiuntivo) per renderlo più elastico man mano che le risorse devono spostarsi.


6

C'è un altro scenario che è in onda: dopo che queste 500 eccezioni sono state eliminate, non hanno detto nulla sulla capacità dei siti Web di Azure di gestire i CNAME con caratteri jolly. Molti di noi stanno utilizzando l'acceleratore di ruoli Web di Nate nei servizi cloud, poiché un hack di una riga ha fornito funzionalità di sottodominio con caratteri jolly nel software di Nate. Non possiamo spostare queste app di sottodomini con caratteri jolly finché non sappiamo che i siti Web di Azure saranno in grado di gestirle. Se non sarà mai in grado di farlo, diventerà positivo dal punto di vista del ruolo Web dell'equazione. Inoltre, nota che i prezzi sono esattamente gli stessi (dopo la scadenza dello sconto di anteprima), non sono sicuro di voler rinunciare al mio accesso a RDC e al Visualizzatore eventi (solo per citare due cose).


6

Siti Web di Azureconsente di creare rapidamente siti Web altamente scalabili su Azure. È possibile usare il portale di Azure o gli strumenti da riga di comando per configurare un sito Web con linguaggi popolari come .NET, PHP, Node.js e Python. I framework supportati sono già distribuiti e non richiedono ulteriori passaggi di installazione. La raccolta di siti Web di Azure contiene molte applicazioni di terze parti, come Drupal e WordPress, nonché framework di sviluppo come Django e CakePHP. Dopo aver creato un sito, è possibile migrare un sito Web esistente o creare un sito Web completamente nuovo. Siti Web elimina la necessità di gestire l'hardware fisico e offre anche diverse opzioni di ridimensionamento. È possibile passare da un modello multi-tenant condiviso a una modalità standard in cui macchine dedicate servono il traffico in entrata. I siti Web consentono inoltre di integrarsi con altri servizi di Azure, come database SQL, bus di servizio e archiviazione. Utilizzando l'anteprima di Azure WebJobs SDK, è possibile aggiungere l'elaborazione in background. In breve, i siti Web di Azure semplificano la concentrazione sullo sviluppo di applicazioni supportando un'ampia gamma di lingue, applicazioni open source e metodologie di distribuzione (FTP, Git, Web Deploy o TFS). Se non si dispone di requisiti specializzati che richiedono servizi cloud o macchine virtuali, è molto probabile che un sito Web di Azure sia la scelta migliore.

Servizi cloudconsentono di creare applicazioni Web altamente disponibili e scalabili in un ambiente PaaS (Platform as a Service) avanzato. A differenza dei siti Web, un servizio cloud viene creato prima in un ambiente di sviluppo, come Visual Studio, prima di essere distribuito in Azure. I framework, come PHP, richiedono passaggi o attività di distribuzione personalizzati che installano il framework all'avvio del ruolo. Il vantaggio principale dei servizi cloud è la capacità di supportare architetture a più livelli più complesse. Un singolo servizio cloud potrebbe consistere in un ruolo Web front-end e uno o più ruoli di lavoro. Ogni livello può essere ridimensionato in modo indipendente. Vi è anche un maggiore livello di controllo sull'infrastruttura dell'applicazione Web. Ad esempio, è possibile eseguire il desktop remoto sui computer che eseguono le istanze del ruolo.

Macchine virtualiconsente di eseguire applicazioni Web su macchine virtuali in Azure. Questa funzionalità è anche nota come Infrastruttura come servizio (IaaS). Crea nuove macchine Windows Server o Linux attraverso il portale o carica un'immagine di macchina virtuale esistente. Le macchine virtuali offrono il massimo controllo su sistema operativo, configurazione e software e servizi installati. Questa è una buona opzione per migrare rapidamente complesse applicazioni Web locali sul cloud, poiché le macchine possono essere spostate nel loro insieme. Con le reti virtuali, è anche possibile connettere queste macchine virtuali a reti aziendali locali. Come per i servizi cloud, hai accesso remoto a questi computer e hai la possibilità di eseguire modifiche alla configurazione a livello amministrativo. Tuttavia, a differenza dei siti Web e dei servizi cloud, è necessario gestire completamente le immagini della macchina virtuale e l'architettura dell'applicazione a livello di infrastruttura. Un esempio di base è che devi applicare le tue patch al sistema operativo.

Vedi il confronto aggiornato e completo da questo link: http://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/


4

Siti Web di Azure, Web Worker e Macchine virtuali sono tre diversi approcci di elaborazione disponibili su Windows Azure. Differiscono nel livello di controllo e responsabilità:

  • Il sito Web di Azure ha il livello di controllo più basso, ma non ti interessa mantenere in salute la macchina virtuale e IIS, perché roba di Azure fa questo per te
  • I ruoli Web ti offrono maggiore controllo (gestore del traffico, desktop remoto), ma è possibile una maggiore amministrazione da parte tua, il che significa che puoi rompere qualcosa tramite il desktop remoto, ad esempio
  • Le macchine virtuali offrono il pieno controllo della VM, quindi richiedono la maggior parte degli sforzi amministrativi.

Non esiste una scelta migliore, perché dipende dal livello di controllo di cui hai bisogno, dalle funzionalità di cui hai bisogno e da cosa vuoi lasciare alle cose di Azure. Ed è un grande argomento ..

Consulta questi articoli per ulteriori informazioni per effettuare una scelta più informata:

Si riduce al compromesso tra facilità d'uso e funzionalità.


3

Altre due cose che ho scoperto sono state il costo per ottenere SSL per un sito di dominio personalizzato e configurazioni multi-tenant.

Per il sito Web è necessario pagare mensilmente sopra l'istanza standard (L'istanza piccola è l'opzione più economica). Ciò significa che per ottenere un dominio personalizzato https ti costerebbe ~ 70 / mese per piccola istanza più ~ 41 / mese per SSL che supporta tutto il browser.

Per WebRole puoi ottenere l'istanza XS e aggiungere il tuo SSL gratuitamente, il che significa ~ $ 15 al mese e hai un dominio personalizzato con SSL.

Per il sito Web multi-tenant, consultare CName jolly dinamico Azure multi-tenant


1

Un ruolo Web è una macchina virtuale che ospita più siti Web


2
Non abbastanza preciso. È possibile ospitare più siti Web in un ruolo Web, ma i ruoli Web vanno ben oltre, poiché sono macchine virtuali Windows Server. Puoi scegliere di non eseguire alcun sito Web e di eseguire semplicemente attività in background, endpoint REST, server di database, ecc. (Non è necessario utilizzare IIS e puoi persino disabilitarlo). E non dimenticare che sono apolidi che li rende molto facili da ridimensionare.
David Makogon,

@DavidMakogon Quindi posso anche dire che i ruoli Web svolgono effettivamente alcune attività, ma poiché utilizza il protocollo HTTP, si chiama ruolo "WEB" e poiché supporta questo protocollo, supporta anche i siti Web, ma non è l'obiettivo principale come tale?
Aditya Bokade,

@AdityaBokade Non tentare di leggere altro: Il nome è una reliquia di quando Azure è stato lanciato per la prima volta, in cui i ruoli Web erano l' unico modo per ospitare un'applicazione rivolta verso l'esterno (i ruoli di lavoro non avevano endpoint esterni e nient'altro esisteva - non VM, non App Web). I ruoli Web (e di lavoro) sono macchine virtuali Windows senza stato, con pacchetti speciali per il codice e gli script di avvio. Non è definito supportando http: puoi comunicare con risorse esterne tramite http (s), tcp, udp o addirittura niente. Questo è davvero tutto ciò che c'è da fare.
David Makogon,

0

Questa è una domanda comune, e vorrei dare un estratto da msdn.

Accesso a servizi come cache, bus di servizio, archiviazione, database SQL Azure - sito Web: Sì Ruolo Web: Sì

Supporto per ASP.NET, ASP classico, Node.js, PHP-WebSite: Sì WebRole: Sì

Contenuto e configurazione condivisi - Sito Web: Sì WebRole: No

Distribuire il codice con GIT, FTP-WebSite: Sì WebRole: No

Implementazione quasi istantanea del sito Web: Sì WebRole: No

MySQL-as-a-service support-WebSite: Sì WebRole: Sì

Ambienti di distribuzione multipli (produzione e gestione temporanea) -Sito Web: No WebRole: Sì

Isolamento di rete-Sito Web: No Ruolo Web: Sì

Accesso desktop remoto a server-sito Web: No Ruolo Web: Sì

Possibilità di eseguire programmi con autorizzazioni elevate-Sito Web: No Ruolo Web: Sì

Capacità di definire / eseguire attività di avvio-WebSite: No WebRole: Sì

Possibilità di utilizzare framework o librerie non supportate-WebSite: No WebRole: Sì

Supporto per Windows Azure Connect / Windows Azure Network-WebSite: No WebRole: Sì

Per maggiori dettagli, visita questo link: http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-we website - web - roles - and - vms - when- to -use-which.aspx

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.