2012-01-13 123 views
2

將Windows服務移植到Azure時建立的最佳實踐是什麼?是否應該將其更改爲工作者角色或遷移到虛擬機角色?還有其他選擇嗎?假設我的服務寫入外部持久性源(MSMQ,數據庫,WCF),而不是直接寫入文件系統。將Windows服務轉換爲Azure WorkerRoles

回答

2

將Windows服務轉換爲工作角色比虛擬機角色好得多。虛擬機角色旨在容納需要複雜的不可自動安裝過程的應用程序。他們也是一個更大的管理痛苦,你想盡可能遠離虛擬機角色。如果您可以通過工作角色找到自動部署現有Windows服務的方法,那絕對是一條可行的路。

您還可以查看HPC角色,並根據本地/非本地和加載/計算要求,將Azure機器添加到HPC羣集中可能會有所幫助。

所有類型的角色(Web/Worker/VM/HPC)都是無狀態的,需要能夠根據需要從頭開始調整或拆卸。所有類型的角色一次只能運行多個VM實例。

HTH

+0

沒有HPC角色(除非我錯過了某些東西?)。 Azure是HPC的理想人選,但沒有特定的HPC角色 – BritishDeveloper 2012-01-14 13:56:48

+0

http://technet.microsoft.com/en-us/library/gg481749(WS.10).aspx – Igorek 2012-01-15 03:24:57

+0

感謝您確認我是對的;)否,我在開玩笑,我正在澄清,儘管Azure對於HPC來說很棒,但沒有像例如「Web角色」那樣具體的「HPC角色」 – BritishDeveloper 2012-01-15 12:48:01

-1

Azure中有一個名爲 「WCF服務Web角色」,其對應於一個Windows WCF服務Web角色的一種特殊類型。這是遷移現有服務的好處。 理想情況下,遷移之後應該利用Azure的特定功能,例如使用隊列和工作角色來最大化性能和可伸縮性。

0

我之前寫過一篇博文。正是在這裏:

http://blogs.msdn.com/b/golive/archive/2011/02/11/installing-a-windows-service-in-a-worker-role.aspx

注意,Windows服務不會與網絡控制器直接通信,所以你需要週期性地查驗它來檢查健康狀況,然後根據需要採取行動remediative。

將Windows服務放入工作者或Web角色是可以接受的做法。使用VM角色的主要原因在於是否需要重大(> 10分鐘)的設置。我的博客文章詳細說明如何安裝您的服務。

當然,如果您想將代碼移動到工作角色中,那也很好。在這種情況下,您不需要任何特殊步驟來確保結構控制器瞭解其運行狀況。

如果成本是一個問題,將功能組合到網絡/員工中也是可以接受的做法。而且,您可以通過不處理代碼將其存入網絡/工作人員來進行保存。