Di Windows Azure: Apa itu peran web, peran pekerja, dan peran VM?
115
Aplikasi yang saya kerjakan berisi peran web: ini adalah aplikasi web sederhana. Saya perlu menghosting aplikasi di Windows Azure, jadi saya membuat peran web. Saya sebenarnya ingin tahu untuk apa peran ini. Apa signifikansi pengkodeannya bijaksana atau penyimpanannya bijaksana?
EDIT 3/3/2013 - diperbarui ke titik akhir referensi UDP, Mesin Virtual, dan bahasa lainnya
EDIT 6/6/2013 - diperbarui untuk mencerminkan penghentian Peran VM, dan perbarui ke gambar OS dasar peran web / pekerja ke Windows Server 2012
Tautan bagus oleh @Vladimir. Klarifikasi lebih lanjut: Semua peran (web, pekerja) pada dasarnya adalah Windows Server. Peran Web dan Pekerja hampir identik:
Peran web adalah VM Server Windows dengan IIS diaktifkan
Peran pekerja adalah Windows Server VM dengan IIS dinonaktifkan (dan Anda dapat mengaktifkannya secara manual)
Peran VM adalah gambar Windows Server 2008 yang Anda buat secara lokal melalui Hyper-V dan unggah ke Azure (dan sekarang dihentikan dan tidak lagi tersedia mulai 31 Mei 2013
Mesin Virtual adalah gambar Windows atau Linux yang dibuat di Azure, disimpan sebagai vhd di penyimpanan Anda sendiri, dan memiliki beberapa penyempurnaan melalui peran VM. Misalnya: karena vhd ada di akun penyimpanan Anda sendiri, Anda dapat dengan mudah membuat template gambar dari vhd Anda, menyalinnya ke vhd baru, atau bahkan mengunggahnya ke VM Depot (khusus Linux).
Untuk menjawab pertanyaan Anda tentang apa yang harus dilakukan dengan peran-peran ini: Kit Pelatihan Platform (disebutkan di bawah) akan memberi Anda banyak ide dan contoh yang bagus, tetapi berikut adalah beberapa kasus penggunaan langsung:
Anda dapat menjalankan kode apa pun yang mengekspos titik akhir tcp, http, https, atau udp (aplikasi web, layanan SOAP / REST, dll.). Anda perlu memikirkan tentang stateless cara untuk melakukan sesuatu - jika Anda menjalankan lebih dari satu instance VM, lalu lintas pengguna didistribusikan ke seluruh instance tersebut. Kit pelatihan platform akan menunjukkan kepada Anda bagaimana menggunakan penyimpanan atau cache untuk menangani hal ini.
Anda dapat menjalankan kode yang berada di luar antrian atau pengatur waktu. Mungkin Anda memiliki tugas sesuai permintaan seperti pembuatan gambar mini foto, atau penghitungan berdasarkan masukan pengguna. Ini tidak membutuhkan titik akhir yang tersedia secara eksternal. Anda dapat mendorong permintaan Anda ke antrean, lalu menjalankan tugas yang langsung keluar dari antrean ini (dan Anda dapat menskalakan proses ini di beberapa instans, dengan pesan antrean yang digunakan oleh semua instans).
Anda dapat menjalankan .NET, Java, php, python, node, ruby, dll. Anda hanya perlu mendistribusikan kode runtime yang sesuai bersama dengan kode proyek Anda. Semua bahasa dapat melakukan panggilan REST ke Azure API, dan beberapa bahasa (termasuk yang disebutkan di atas) memiliki SDK yang menangani ini untuk Anda. Semua SDK bahasa ada di sini , dengan kode sumber di github, di sini .
Dengan peran VM, Anda dapat menginstal dan menjalankan software dengan penginstalan yang sangat kompleks / memakan waktu, penginstalan yang memerlukan intervensi manual, dan penginstalan yang tidak dapat diotomatiskan dengan andal. Anda harus berurusan dengan pemeliharaan OS dalam kasus ini. Di luar Peran VM, sekarang ada Mesin Virtual, yang menyediakan konstruksi VM berbasis cloud bersama dengan dukungan Windows dan Linux. Saya akan menyarankan Mesin Virtual daripada Peran VM.
Dengan peran Web dan Pekerja, OS dan tambalan terkait diurus untuk Anda; Anda membangun komponen aplikasi Anda tanpa harus mengelola VM.
Dengan peran VM, Anda membuat image Windows Server lengkap, menambahkan kait Azure ke dalamnya, dan mendorong seluruh VM ke cloud (lalu mempertahankan image VM dari waktu ke waktu).
Dengan Mesin Virtual, Anda cukup memilih gambar OS dari galeri, yang dibuat untuk Anda dan disimpan sebagai vhd di penyimpanan blob. Anda kemudian RDP / ssh dan mengaturnya sesuka Anda.
Mengenakan topi arsitek, ini adalah tempat yang menyenangkan dan menarik. Anda dapat menjalankan layanan web dalam Peran Web atau peran pekerja (dan dapat membuka port dengan salah satunya); Anda dapat menghosting Tomcat atau server web lain dalam peran Pekerja. Anda dapat memilih untuk menggabungkan situs web plus layanan dalam satu peran, atau membaginya menjadi beberapa peran untuk kebutuhan skalabilitas yang berbeda.
Sebagai permulaan yang baik, lihat Kit Pelatihan Platform dan mulai berjalan melalui latihan.
Bisakah Anda benar-benar mengekspos titik akhir tcp pada peran web? Menurut smarx, semuanya harus HTTP: stackoverflow.com/questions/2926737/… Hal ini membuat perbedaan halus lainnya antara peran.
Richard Astbury
Saya telah menjawab pertanyaan saya sendiri, Anda dapat membuka port tcp, tetapi tidak mengikatnya ke situs web.
Richard Astbury
2
Richard - Meskipun dulu masalahnya, endpoint sekarang dapat berupa tcp, http, atau https, apa pun jenis perannya. Saya membuat aplikasi sampel yang memiliki campuran tcp dan http, sambil mendemonstrasikan pembaruan 25-endpoint-per-role baru beberapa bulan yang lalu - lihat di sini untuk posting blog - davidmakogon.com/2011/05/…
David Makogon
Maaf - maksud saya menunjukkan 25 titik akhir per penerapan. Dan ... melihat komentar Anda yang lain, saya mungkin telah menjawab pertanyaan yang salah. :)
David Makogon
@DavidMakogon - Apa yang menggantikan Peran Web dan Peran Pekerja? Saya perlu menerapkan situs web dengan PhantomJS yang memerlukan GDI +. GDI + tidak sepenuhnya didukung oleh Pekerjaan Web. Saya berharap saya bisa menggunakan Peran Web. Apa yang menggantikan Peran Web? Saya menyukai konsep VM yang ditambal dan dipelihara oleh Azure. Terima kasih!
Martin
30
Peran web adalah aplikasi web yang dihosting di IIS.
Peran pekerja adalah proses yang dapat melakukan beberapa pekerjaan (mis. Secara otomatis mengkompres gambar yang diunggah, melakukan hal-hal setiap kali ada perubahan dalam database Anda, mendapatkan pesan baru dari antrian dan proses, sebut saja)
Sebenarnya, Peran Web dan Peran Pekerja adalah VM.
David Makogon
Ini adalah jawaban yang jauh lebih sederhana dan maaf, mereka bukan VM ... dapatkah Anda membayangkan berapa biayanya untuk solusi multitier dengan beberapa peran Pekerja yang berjalan di latar belakang jika itu adalah VM terpisah? blogs.msdn.microsoft.com/silverlining/2012/06/27/…
Clarence
untuk lebih spesifik Peran pekerja adalah VM tanpa IIS
dejjub-AIS
21
Saya menemukan pertanyaan / jawaban SO ini beberapa hari yang lalu dan saya menemukan jawaban yang diberikan agak berlebihan (saya baru di Azure dan Web). Saya menemukan ringkasan ini di dasar-dasar Azure malam ini yang menurut saya merupakan ikhtisar tingkat tinggi yang bagus tentang perbedaan inti antara peran pekerja dan web:
Perbedaan utama antara keduanya adalah bahwa instance dari peran web menjalankan IIS, sedangkan instance dari peran pekerja tidak. Keduanya dikelola dengan cara yang sama, bagaimanapun, dan itu umum bagi aplikasi untuk menggunakan keduanya. Misalnya, instance peran web mungkin menerima permintaan dari pengguna, lalu meneruskannya ke instance peran pekerja untuk diproses. Untuk meningkatkan atau menurunkan skala aplikasi Anda, Anda dapat meminta agar Windows Azure membuat lebih banyak contoh peran atau menutup contoh yang ada. Dan serupa dengan Mesin Virtual Azure Windows, Anda hanya dikenai biaya untuk setiap waktu saat setiap instance peran web atau pekerja berjalan.
Jika Anda baru dalam pengembangan Azure, saya sangat menyarankan membaca artikel lengkap di sini: Pengenalan Windows Azure
Saya harap ini membantu seseorang sebanyak itu membantu menyalakan bola lampu untuk saya.
Peran web di Windows Azure memiliki tujuan khusus, dan menyediakan server web Layanan Informasi Internet (IIS) khusus yang digunakan untuk menghosting aplikasi web front-end. Anda dapat dengan cepat dan mudah menerapkan aplikasi web ke Peran Web dan kemudian meningkatkan atau menurunkan kemampuan Compute untuk memenuhi permintaan.
sumber
Saya menemukan pertanyaan / jawaban SO ini beberapa hari yang lalu dan saya menemukan jawaban yang diberikan agak berlebihan (saya baru di Azure dan Web). Saya menemukan ringkasan ini di dasar-dasar Azure malam ini yang menurut saya merupakan ikhtisar tingkat tinggi yang bagus tentang perbedaan inti antara peran pekerja dan web:
Jika Anda baru dalam pengembangan Azure, saya sangat menyarankan membaca artikel lengkap di sini: Pengenalan Windows Azure
Saya harap ini membantu seseorang sebanyak itu membantu menyalakan bola lampu untuk saya.
sumber
Peran web di Windows Azure memiliki tujuan khusus, dan menyediakan server web Layanan Informasi Internet (IIS) khusus yang digunakan untuk menghosting aplikasi web front-end. Anda dapat dengan cepat dan mudah menerapkan aplikasi web ke Peran Web dan kemudian meningkatkan atau menurunkan kemampuan Compute untuk memenuhi permintaan.
sumber