我工作的應用程序包含一個Web角色:它是一個簡單的Web應用程序。我需要在Windows Azure中託管應用程序,所以我創建了一個Web角色。我其實想知道這些角色是什麼。他們的意義是明智的編碼還是存儲?在Windows Azure中:什麼是Web角色,工作者角色和VM角色?
回答
- Web角色是託管在IIS中的Web應用程序。
- 輔助角色是可以做一些工作流程(即自動壓縮上傳的圖片,做的東西,只要東西在你的數據庫的變化,從隊列和進程中取得新的消息,你的名字)
- VM角色託管虛擬機
編輯2013年3月3日 - 更新以引用UDP端點,虛擬機和更多的語言
編輯2013年6月6日 - 更新,以反映VM角色停產,並更新到網絡/工作人員角色將OS映像映射到Windows Server 2012
Good link by @Vladimir。稍微澄清一點:所有角色(網絡,工作者)本質上都是Windows Server。 Web和輔助角色幾乎是一樣的:
- 的Web角色的Windows Server虛擬機與IIS啓用
- 輔助角色在Windows Server虛擬機與IIS禁用(你可以手動啓用它)
- VM角色的Windows Server 2008映像您通過Hyper-V在本地構建並上傳到Azure (現在已停止使用,並且截至2013年5月31日不再提供
- 虛擬機是在Azure中創建的Windows或Linux映像,存儲爲vhd您自己的存儲空間,並對虛擬機角色進行了一些增強,例如:由於vhd位於您自己的存儲帳戶中,因此您可以輕鬆地從vhd創建映像模板,將其複製到新的vhd,甚至將其上傳到VM Depot(僅限Linux)。
要獲得關於如何處理這些角色做題:平臺培訓工具包(下文提到)會給你很多好的想法和樣品,但這裏有一些簡單的使用情況:
- 您可以運行公開tcp,http,https或udp端點的任何代碼(Web應用程序,SOAP/REST服務等)。您需要考慮無狀態的方式 - 如果您有多個VM實例在運行,則用戶流量將分佈在這些實例中。該平臺培訓套件將向您展示如何使用存儲或緩存來處理此問題。
- 您可以運行離開隊列或計時器的代碼。也許你有點播任務,如縮略圖生成照片或基於用戶輸入的計算。這些不需要外部可用的端點。您可以將請求推送到一個隊列中,然後運行一個簡單地饋送此隊列的任務(並且您可以在多個實例之間擴展此過程,並且所有實例都使用隊列消息)。
- 您可以運行.NET,Java,php,python,node,ruby等。您只需要將相應的運行時代碼與您的項目代碼一起分發。所有語言都可以使用REST調用Azure API,並且有多種語言(包括上面提到的那些語言)都有爲您提供幫助的SDK。所有語言SDK都是here,源代碼在github上,here。
-
使用VM角色,您可以安裝和運行非常複雜/耗時的安裝,需要手動干預的安裝以及無法可靠自動化安裝的軟件。在這種情況下,您必須處理操作系統維護。除虛擬機角色外,現在還有虛擬機,提供基於雲的虛擬機構建以及Windows和Linux支持。我建議虛擬機角色虛擬機。
使用Web和Worker角色時,操作系統和相關的修補程序將爲您照顧;您可以構建應用程序的組件,而無需管理VM。
使用VM角色,您可以構建完整的Windows Server映像,向其中添加Azure掛鉤,並將整個VM推入雲中(然後隨時間維護VM映像)。
使用虛擬機,您只需從圖庫中選擇一個OS圖像,該圖像會爲您創建並作爲vhd存儲在BLOB存儲中。然後你可以使用RDP/ssh並設置你喜歡的方式。
戴着建築師的帽子,這是它獲得樂趣和有趣的地方。您可以使用Web角色或輔助角色運行Web服務(並且可以在任何一箇中打開端口);您可以託管Tomcat或其他Web服務器的角色。您可以選擇將網站和服務合併爲一個角色,或者將其分成多個角色以滿足不同的可擴展性需求。
一個好的開始,看看Platform Training Kit並開始穿過練習。
你真的可以公開tcp網絡角色端點?根據smarx他們都必須是HTTP:http://stackoverflow.com/questions/2926737/is-it-possible-to-host-a-wcf-service-in-an-azure-webrole-mvc This使得角色之間的另一個細微差別。 –
我已經回答了我自己的查詢,您可以打開tcp端口,但不能將其綁定到網站。 –
Richard - 雖然過去是這種情況,但無論角色類型如何,端點現在都可以是tcp,http或https。我構建了一個示例應用程序,其中包含tcp和http的混合體,並在幾個月前展示了每個角色的新25端點更新 - 請參閱博客文章 - http://www.davidmakogon.com/2011/05 /windows-azure-tip-go-beyond-5-endpoints.html –
Windows Azure中的Web角色是特殊用途,並提供用於託管前端Web應用程序的專用Internet信息服務(IIS)Web服務器。您可以快速輕鬆地將Web應用程序部署到Web角色,然後向上或向下擴展計算功能以滿足需求。
幾天前我遇到了這個SO問題/答案,我發現答案提供了一點點在我頭上(我是Azure和Web的新手)。我發現這個總結在Azure的基本面,今晚,我認爲是的工人和Web角色之間的核心分歧好高層次的概述:
兩者之間的主要區別是,Web角色 實例運行IIS,而工作者角色的實例則不運行。然而,兩者都是以相同的方式管理的 ,並且應用程序 同時使用兩者。例如,Web角色實例可能接受來自用戶的請求 ,然後將它們傳遞給輔助角色實例進行處理。 要向上或向下擴展應用程序,可以請求Windows Azure創建更多角色實例或關閉現有的 實例。與Windows Azure虛擬機類似,您只需在每個網絡或工作者角色實例運行的時間爲 時收取費用。
如果您在Azure的開發是新我強烈建議你閱讀完整的文章在這裏:Intro to Windows Azure
我希望這可以幫助別人一樣,因爲它有助於打開燈泡上我。
- 1. Web角色/員工角色/ VM角色?
- 2. Windows Azure工作者角色和SVG
- 3. 喚醒Windows Azure工作者角色
- 4. Azure網站和工作者角色
- 5. 是否使用輔助角色或Web角色:Windows Azure的
- 6. IP限制Azure VM角色
- 7. 無法剖析Azure工作者角色
- 8. Microsoft Azure Web角色
- 9. F#Web角色Azure
- 10. 如何在web角色(IIS)中完成後臺工作(如工作者角色)?
- 11. Azure Web角色中的工作流程
- 12. Azure工作者角色拋出System.IO.FileNotFoundException
- 13. Azure Web角色和Codeigniter
- 14. 在單個實例中部署Web角色和工作者角色
- 15. SslRequireCert和Azure Web角色
- 16. 在Windows Azure中的Web角色縮放
- 17. Azure文檔Db工作者角色
- 18. 關於Azure工作者角色的MongoDB
- 19. Microsoft Azure主從工作者角色
- 20. 工作者角色與Web作業
- 21. 什麼LifeStyle應該在Azure工作者角色中擁有ISession?
- 22. 如何在Azure中只部署工作者/ Web角色
- 23. Azure Web角色或工作者角色或邏輯應用程序或Web作業
- 24. Azure Worker角色
- 25. Cloudformation和角色......但主要是角色
- 26. Windows Azure中的工作者角色重要性?
- 27. 每個Azure訂閱可以擁有多少個工作者角色和Web角色?
- 28. Asp.Net的Web API和Azure的Web角色
- 29. TCP Worker角色到Web角色通信
- 30. 什麼是角色提供者?
實際上,Web角色和角色是虛擬機。 –
這是一個非常簡單的答案,很抱歉,他們不是虛擬機......你能想象一下,如果多個Worker角色在單獨的虛擬機中運行在後臺,那麼多層角色的解決方案的成本將會是多少? https://blogs.msdn.microsoft.com/silverlining/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which/ – Clarence