risposta

30
  • I ruoli Web sono applicazioni Web ospitate in IIS.
  • ruoli dei lavoratori sono processi che possono fare un po 'di lavoro (cioè comprimere automaticamente le immagini caricate, fare cose ogni volta che qualcosa cambia nel database, ottenere nuovi messaggi dalla coda e di processo, è il nome)
  • ruoli di macchine virtuali VM
+10

In realtà, i ruoli Web e i ruoli di lavoro sono VM. –

+0

Questa è una risposta molto più semplice e mi dispiace, non sono VM ...potresti immaginare quale sarebbe il costo per una soluzione a più livelli con più ruoli Worker in esecuzione in background se si tratta di una VM separata? https://blogs.msdn.microsoft.com/silverlining/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which/ – Clarence

95

EDIT 2013/03/03 - aggiornato per fare riferimento UDP endpoint, macchine virtuali e più lingue

EDIT 2013/06/06 - aggiornato per riflettere l'interruzione del VM Ruolo e aggiornamento web/immagini del sistema operativo di riferimento del ruolo dei dipendenti su Windows Server 2012

Buon collegamento da @Vladimir. Un po 'più di chiarezza: tutti i ruoli (web, worker) sono essenzialmente Windows Server. ruoli Web e dei lavoratori sono quasi identiche:

  • ruoli Web sono Windows Server VM con IIS abilitato
  • ruoli dei lavoratori sono Windows Server VM con IIS disabilitato (e si potrebbe attivare manualmente)
  • ruoli VM sono Windows Immagini di Server 2008 costruite localmente tramite Hyper-V e caricate in Azure (e sono ora fuori produzione e non più disponibili al 31 maggio 2013
  • Le macchine virtuali sono immagini Windows o Linux create in Azure, memorizzate come un disco rigido in il tuo spazio di archiviazione e presenta numerosi miglioramenti rispetto al ruolo della VM. Ad esempio: dal momento che il vhd si trova nel tuo account di archiviazione, puoi facilmente creare un modello di immagine dal tuo vhd, copiarlo su un nuovo vhd o persino caricarlo su VM Depot (solo Linux).

per rispondere alla tua domanda su cosa fare con questi ruoli: Il kit di formazione Piattaforma (di cui sotto) vi darà un sacco di buone idee e di campioni, ma qui ci sono alcuni casi di utilizzo semplici:

  • È possibile eseguire qualsiasi codice che esponga un endpoint tcp, http, https o udp (applicazioni Web, servizi SOAP/REST, ecc.). Devi pensare allo stateless come fare le cose - se hai più di un'istanza VM in esecuzione, il traffico degli utenti viene distribuito tra queste istanze. Il kit di addestramento della piattaforma ti mostrerà come utilizzare lo spazio di archiviazione o la cache per affrontare questo problema.
  • È possibile eseguire il codice che vive di una coda o di un timer. Forse hai compiti su richiesta come la generazione di foto in miniatura o calcoli basati sull'input dell'utente. Questi non hanno bisogno di endpoint disponibili esternamente. È possibile inoltrare le richieste a una coda e quindi eseguire un'attività in esecuzione che si alimenta semplicemente da questa coda (ed è possibile ridimensionare questo processo su più istanze, con i messaggi di coda consumati da tutte le istanze).
  • È possibile eseguire .NET, Java, php, python, nodo, rubino, ecc. È sufficiente distribuire il codice runtime appropriato insieme al codice del progetto. Tutte le lingue possono effettuare chiamate REST all'API di Azure e diverse lingue (incluse quelle sopra menzionate) dispongono di SDK che si occupano di ciò per te.Tutti gli SDK in lingua sono here, con codice sorgente su github, here.
  • Con un ruolo di macchina virtuale, è possibile installare ed eseguire software con installazioni molto complesse/che richiedono molto tempo, installazioni che richiedono l'intervento manuale e installazioni che non possono essere automatizzate in modo affidabile. In questo caso devi gestire la manutenzione del sistema operativo. Oltre il ruolo di VM, ora ci sono macchine virtuali, che forniscono la costruzione di macchine virtuali basata su cloud con supporto per Windows e Linux. Suggerirei Macchine virtuali su ruolo VM.

Con i ruoli Web e Worker, il sistema operativo e le patch correlate sono a cura dell'utente; costruisci i componenti dell'app senza dover gestire una VM.

Con i ruoli VM, si crea un'immagine completa di Windows Server, si aggiungono gli hook di Azure e si spinge l'intera VM nel cloud (e quindi si mantiene l'immagine della VM nel tempo).

Con Virtual Machines, è sufficiente selezionare un'immagine del sistema operativo da una galleria, che viene creata per l'utente e memorizzata come un file VHD nell'archiviazione BLOB. È quindi RDP/ssh e configurarlo come preferisci.

Indossando il cappello dell'architetto, è qui che diventa divertente e interessante. È possibile eseguire servizi Web in un ruolo Web o un ruolo di lavoro (e essere in grado di aprire le porte in entrambi); È possibile ospitare Tomcat o altri server Web in un ruolo di lavoratore. puoi scegliere di combinare un sito Web e servizi in un singolo ruolo o dividerli in più ruoli per esigenze di scalabilità diverse.

Per un buon inizio, dare un'occhiata allo Platform Training Kit e iniziare a camminare attraverso gli esercizi.

+0

Puoi esporre in realtà tcp endpoint su un ruolo web? Secondo smarx devono essere tutti HTTP: http://stackoverflow.com/questions/2926737/is-it-possible-to-host-a-wcf-service-in-an-azure-webrole-mvc Questo crea un'altra sottile differenza tra i ruoli. –

+0

Ho risposto alla mia query, è possibile aprire la porta TCP, ma non collegarla al sito Web. –

+2

Richard - Anche se questo era il caso, gli endpoint possono ora essere tcp, http o https, indipendentemente dal tipo di ruolo. Ho creato un'app di esempio che ha una combinazione di tcp e http, dimostrando il nuovo aggiornamento di 25 endpoint per ruolo pochi mesi fa - vedi qui per il post sul blog - http://www.davidmakogon.com/2011/05 /windows-azure-tip-go-beyond-5-endpoints.html –

3

I ruoli Web in Windows Azure sono speciali e forniscono un server Web Internet Information Services (IIS) dedicato utilizzato per l'hosting di applicazioni Web front-end. È possibile distribuire rapidamente e facilmente applicazioni Web a ruoli Web e quindi aumentare o ridurre le funzionalità di Compute per soddisfare la domanda.

21

Mi sono imbattuto in questa domanda/risposta SO diversi giorni fa e ho trovato le risposte fornite un po 'sopra la mia testa (sono nuovo su Azure e Web). Ho trovato questa sintesi nei fondamenti Azure stasera, che ho pensato che fosse una buona panoramica di alto livello delle differenze fondamentali tra il lavoratore e web ruoli:

La differenza principale tra i due è che un esempio di un ruolo web esegue IIS, mentre non ha un'istanza di un ruolo di lavoratore. Entrambi sono gestiti allo stesso modo, tuttavia, ed è comune per un'applicazione utilizzare entrambi. Ad esempio, un'istanza del ruolo Web potrebbe accettare richieste dagli utenti , quindi passarle a un'istanza del ruolo di lavoro per l'elaborazione. Per scalare l'applicazione in alto o in basso, è possibile richiedere che Windows di Azure crei più istanze di entrambi i ruoli o interrompa istanze esistenti di . E simile a Windows Azure Virtual Machines, sei addebitato solo per il tempo in cui ogni istanza di ruolo web o worker è in esecuzione .

Se sei nuovo allo sviluppo Azure mi raccomando di leggere l'articolo completo qui: Intro to Windows Azure

Spero che questo aiuta qualcuno tanto quanto ha contribuito a trasformare la lampadina su per me.

Problemi correlati