Windows Azure'da: Web rolü, çalışan rolü ve VM rolü nedir?


Yanıtlar:


101

EDIT 3/3/2013 - UDP uç noktaları, Sanal Makineler ve daha fazla dile referans verecek şekilde güncellendi

DÜZENLE 6/6/2013 - VM Rolünün sonlandırılmasını yansıtacak şekilde güncellendi ve web / çalışan rolü temel işletim sistemi görüntülerine Windows Server 2012'ye güncelleme yapıldı

@Vladimir'den iyi bağlantı. Biraz daha açıklama: Tüm roller (web, çalışan) esasen Windows Sunucusudur. Web ve Çalışan rolleri neredeyse aynıdır:

  • Web rolleri, IIS etkinleştirilmiş Windows Server VM'leridir
  • Çalışan rolleri, IIS'nin devre dışı bırakıldığı Windows Server VM'leridir (ve manuel olarak etkinleştirebilirsiniz)
  • VM rolleri, Hyper-V aracılığıyla yerel olarak oluşturduğunuz ve Azure'a yüklediğiniz Windows Server 2008 görüntüleridir (ve artık kullanımdan kaldırılmıştır ve 31 Mayıs 2013 itibarıyla artık kullanılamamaktadır.
  • Sanal Makineler, Azure'da oluşturulan, kendi depolamanızda bir vhd olarak depolanan ve VM rolü üzerinde çeşitli geliştirmelere sahip Windows veya Linux görüntüleridir. Örneğin: vhd kendi depolama hesabınızda olduğundan, vhd'nizden kolayca bir görüntü şablonu oluşturabilir, bunu yeni bir vhd'ye kopyalayabilir veya hatta VM Depot'a (yalnızca Linux) yükleyebilirsiniz .

Bu rollerle ne yapacağınızla ilgili sorunuza cevap vermek için: Platform Eğitim seti (aşağıda belirtilmiştir) size birçok iyi fikir ve örnek verecektir, ancak işte bazı basit kullanım örnekleri:

  • Bir tcp, http, https veya udp uç noktası (web uygulamaları, SOAP / REST hizmetleri vb.) Ortaya çıkaran herhangi bir kodu çalıştırabilirsiniz. Yine de, işleri yapmanın durumsuz yolunu düşünmeniz gerekir - çalışan birden fazla sanal makine örneğiniz varsa, kullanıcı trafiği bu örnekler arasında dağıtılır. Platform eğitim kiti, bununla başa çıkmak için depolamayı veya önbelleği nasıl kullanacağınızı gösterecektir.
  • Bir kuyrukta veya bir zamanlayıcıda yaşayan kodu çalıştırabilirsiniz. Belki fotoğrafların küçük resim üretimi veya kullanıcı girdisine dayalı hesaplamalar gibi isteğe bağlı görevleriniz vardır. Bunların harici olarak kullanılabilen uç noktalara ihtiyacı yoktur. İsteklerinizi bir kuyruğa itebilir ve ardından bu kuyruğu besleyen bir görev çalıştırabilirsiniz (ve bu işlemi, tüm örnekler tarafından tüketilen kuyruk mesajlarıyla birden çok örnek arasında ölçekleyebilirsiniz).
  • .NET, Java, php, python, node, ruby ​​vb. Çalıştırabilirsiniz. Proje kodunuzla birlikte uygun çalışma zamanı kodunu dağıtmanız yeterlidir. Tüm diller Azure API'ye REST çağrıları yapabilir ve çeşitli dillerde (yukarıda belirtilenler dahil) bunu sizin için halleden SDK'lar bulunur. Tüm dil SDK'ları burada , kaynak kodu github'da, burada .
  • Bir VM rolüyle, çok karmaşık / zaman alan kurulumlar, manuel müdahale gerektiren kurulumlar ve güvenilir bir şekilde otomatikleştirilemeyen kurulumlarla yazılım yükleyip çalıştırabilirsiniz. Bu durumda işletim sistemi bakımı ile ilgilenmelisiniz. VM Rolünün ötesinde, artık hem Windows hem de Linux desteği ile birlikte bulut tabanlı VM yapımı sağlayan Sanal Makineler var. Sanal Makineleri VM Rolü üzerinden öneririm.

Web ve Çalışan rolleriyle, işletim sistemi ve ilgili yamalar sizin için halledilir; bir sanal makineyi yönetmek zorunda kalmadan uygulamanızın bileşenlerini oluşturursunuz.

VM rolleriyle, eksiksiz bir Windows Server görüntüsü oluşturursunuz, ona Azure kancalarını eklersiniz ve tüm VM'yi buluta gönderirsiniz (ve ardından zaman içinde VM görüntüsünü korur).

Sanal Makineler ile, sizin için oluşturulan ve blob depolamasında bir vhd olarak saklanan bir galeriden bir işletim sistemi görüntüsü seçmeniz yeterlidir. Daha sonra RDP / ssh ve istediğiniz gibi ayarlayın.

Mimar şapkasını takmak, burası eğlenceli ve ilginç hale geliyor. Web hizmetlerini bir Web Rolü veya çalışan rolünde çalıştırabilirsiniz (ve bağlantı noktalarını ikisinde de açabilirsiniz); Bir Çalışan rolünde Tomcat veya diğer web sunucularını barındırabilirsiniz. bir web sitesini ve hizmetleri tek bir rolde birleştirmeyi veya farklı ölçeklenebilirlik ihtiyaçları için bunları birden çok role ayırmayı seçebilirsiniz.

İyi bir başlangıç ​​için Platform Eğitim Kitine bir göz atın ve egzersizlerde yürümeye başlayın.


Bir web rolündeki tcp uç noktalarını gerçekten açığa çıkarabilir misiniz? Smarx'e göre hepsinin HTTP olması gerekir: stackoverflow.com/questions/2926737/… Bu, roller arasında başka bir ince fark yaratır.
Richard Astbury

Kendi sorgumu cevapladım, tcp portunu açabilirsiniz, ancak web sitesine bağlamayın.
Richard Astbury

2
Richard - Önceden durum böyleyken, uç noktalar artık rol türünden bağımsız olarak tcp, http veya https olabilir. Birkaç ay önce yeni rol başına 25 uç nokta güncellemesini gösterirken, tcp ve http karışımına sahip örnek bir uygulama geliştirdim - blog yazısı için buraya bakın - davidmakogon.com/2011/05/…
David Makogon

Maalesef, dağıtım başına 25 uç nokta göstermeyi kastetmiştim. Ve ... diğer yorumunuzu görünce, yanlış soruyu cevaplamış olabilirim. :)
David Makogon

@DavidMakogon - Web Rolü ve Çalışan Rolünün yerini ne aldı? PhantomJS ile GDI + gerektiren bir web sitesi kurmam gerekiyor. GDI +, Web Jobs tarafından tamamen desteklenmez. Bir Web Rolü kullanabileceğimi umuyordum. Web Rolünün yerini ne almıştır? Azure tarafından yamalanan ve bakımı yapılan VM konseptini beğendim. Teşekkürler!
Martin

30
  • Web rolleri, IIS'de barındırılan web uygulamalarıdır.
  • Çalışan rolleri, bazı işleri yapabilen süreçlerdir (yani, yüklenen görüntüleri otomatik olarak sıkıştırın, veritabanınızda bir şey değiştiğinde işleri yapın, kuyruktan yeni mesajlar alın ve işleyin, siz adlandırın)
  • Sanal makine rolleri sanal makineleri barındırır

10
Aslında, Web Rolleri ve Çalışan Rolleri sanal makinelerdir.
David Makogon

Bu çok daha basit bir cevap ve üzgünüm, bunlar VM değiller ... Ayrı bir VM ise, arka planda çalışan birden fazla İşçi rolü olan çok katmanlı bir çözümün maliyetinin ne olacağını tahmin edebiliyor musunuz? blogs.msdn.microsoft.com/silverlining/2012/06/27/…
Clarence

İşçi rollerinin daha spesifik olması için
IIS'siz

21

Bu SO sorusuna / cevabına birkaç gün önce rastladım ve cevapları biraz kafamın üzerinde buldum (Azure ve Web'de yeniyim). Bu özeti, çalışan ve web rolleri arasındaki temel farklılıklara ilişkin iyi bir üst düzey genel bakış olduğunu düşündüğüm bu akşam Azure temellerinde buldum:

İkisi arasındaki temel fark, bir web rolü örneğinin IIS'yi çalıştırması, ancak bir çalışan rolü örneğinin çalıştırmamasıdır. Ancak her ikisi de aynı şekilde yönetilir ve bir uygulamanın her ikisini de kullanması yaygındır. Örneğin, bir web rolü örneği, kullanıcılardan gelen istekleri kabul edebilir, ardından bunları işlenmek üzere bir çalışan rolü örneğine iletebilir. Uygulamanızı büyütmek veya küçültmek için, Windows Azure'un iki rolün daha fazla örneğini oluşturmasını veya mevcut örnekleri kapatmasını isteyebilirsiniz. Ve Windows Azure Sanal Makineler'e benzer şekilde, yalnızca her web veya çalışan rolü örneğinin çalıştığı süre için ücretlendirilirsiniz.

Azure geliştirmede yeniyseniz buradaki makalenin tamamını okumanızı şiddetle tavsiye ederim: Windows Azure'a Giriş

Umarım bu, birisine ampulü açmaya yardımcı olduğu kadar yardımcı olur.


3

Windows Azure'daki web rolleri özel amaçlıdır ve ön uç web uygulamalarını barındırmak için kullanılan özel bir İnternet Bilgi Hizmetleri (IIS) web sunucusu sağlar. Web uygulamalarını Web Rollerine hızlı ve kolay bir şekilde dağıtabilir ve ardından talebi karşılamak için Hesaplama yeteneklerinizi artırabilir veya azaltabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.