1

我之前已經在雲端部署了網站和服務,但之前我曾想重溫一下我的方法來清理我的技能。在研究過程中,我被告知要使用工作者角色,但我不確定在什麼星座上應用它。Azure中的網站和服務層是否需要工作角色以外的其他角色?

enter image description here

圖像呈現我的選擇。我將設置兩件事(最好在同一個基本URL上)。
1.網站(ASP.NET,最有可能的MVC搭載剃刀)
2.服務層(guessingly WCF,因爲有沒有多少人從今天挑)

所以,在我幼稚無知,我爲前者添加了ASP.NET Web角色,爲後者添加了WCF服務Web角色。然後,根據提示,我還添加了工人角色。這是我謙虛的地方,開始懷疑我的無知是一種傲慢......

我需要他們三個嗎?或者,這也許是工人角色涵蓋其他角色?或者其他人是否足夠,我需要工人角色?或者我完全混淆了這裏的概念?

我試過谷歌這些,但我意識到我還沒有達到在這方面做的學習門檻。我讀得越多,我越感到困惑和頭痛。無可否認,我的問題可能在於搜索詞的錯誤選擇和/或語言誤解。如果是的話,我向你道歉......

回答

1

答案是,這取決於...

Web角色基本上是與安裝+ IIS配置輔助角色。如果您真的想要,您可以託管一個WebApi/MVC,WCF和處理所有來自同一個Web角色的事件,從而降低成本。

請記住,每個角色是一個單獨的虛擬機,您必須付費,因此添加額外角色以保持一切分離可能並不總是最好的主意。

例如,在我們的一個項目中,我們使用Web角色來託管WebApi。處理內部事件的Worker角色和承載WCF服務的工作者角色(您也可以使用Web角色)。我們將它們分開是因爲它們承擔了非常不同的工作量並執行單獨的功能,因此能夠獨立擴展它們是有意義的。

HTH

+0

也許一個愚蠢的問題 - 如果我打算運行我的服務和網頁**沒有**僱用虛擬機?我還需要工人嗎? (當然,我確實知道Azure中有一個虛擬機**,但是**如果我正在部署到使用門戶網站創建的網頁「thingy」並使用在其中創建的數據庫,該怎麼辦?難道這不會讓我「不知道」VM嗎?) –

+0

您可以使用「網站」項目,而不是雲服務。這更加虛擬化了虛擬機,並且在將來您需要的時候不需要花費大量的精力將其轉移到Web/Worker角色。如果您一般在學習MVC或網絡內容,最好在免費層上部署網站項目,直到您熟悉它爲止。然後,當你必須掌握一切時,你可以做出更明智的決定。 –

+0

通過網站,您可以將兩個應用程序部署到網站中不同的網址和應用程序下的同一網站。如果您不需要專門的工作人員或網站進行多項目部署或隔離級別,則簡化成本。 – ElvisLives

1

對於在雲服務中使用多少角色沒有正確答案。但重要的是要準確理解這些角色是什麼。

添加位@彼得的回答是:每個角色是一個VM(內容)的定義 - 認爲它作爲一個VM模板。對於每個角色(模板),您必須至少運行一個實例(VM)。如果您有一個角色,則您的最小佔用空間將爲一個虛擬機(您爲該角色指定的任意大小)。如果您有三個角色,則至少有3個虛擬機正在運行。

您是否有一個或多個角色取決於您希望如何擴展您的應用程序。每個角色不僅定義了它的內容,還定義了角色實例使用的VM的大小。通過爲架構的不同部分分配不同的角色,您可以選擇以不同的方式縮放這些部分。例如,您可能只需要低資源實例來處理您的Web層,但可能會爲您的服務層提供更多的CPU能力。也許你的web層可以根據用戶流量動態擴展,但你只需要一兩個實例即可處理你的服務層。當然,您可以將所有內容放在一個角色定義中,並將所有內容放在一起。這完全取決於你。

+0

我想我開始明白了。問題是我是否需要參與工人。我只需要將網站部署到Azure,並且可以使用門戶網站創建。那麼根本就沒有需要工人的東西(或者至少我可以保持對它們的無知)。那是對的嗎? –

相關問題