2012-06-11 39 views
4

我很好奇其他人如何構建(或建議構建)具有多個角色的Azure應用程序。特別是我很好奇你是如何讓他們在訂閱和託管服務之間破碎的。構建具有多種角色的Azure解決方案

在我的特殊情況下,我們有一個web角色託管一個webapp & API。這種變化很快,有時每天多次。我們還有幾個不同的工作人員角色來處理視頻處理,電子郵件發送和報告/分析。工人變動很少,有時每月不到一次。我們有這一切都在一個訂閱中運行。每個角色都在自己的託管服務中。

該設置讓我們可以輕鬆部署一個角色而不會影響其他角色。它還避免了不必要地中斷Worker角色,因爲他們有時處於需要重新啓動的長時間(10分鐘以上)處理工作中。

那麼你們怎麼做呢?

我要求的部分原因是,微軟似乎希望您將所有內容都放入一個託管服務中。例如,Preview中的新緩存功能僅在單個託管服務中可見,這使得它對於我現有的佈局幾乎沒有用處。

回答

4

這是一個意見,但我認爲你有權利。爲所有角色部署單個軟件包(原子更新,版本控制等)肯定有優勢。但是,在更復雜的情況下,我發現分裂成不同的部署和託管服務運行良好。如果你想要地理冗餘,你必須有不同的部署。

如果您對版本管理比較謹慎(假設您的部署正在進行通信),則可以輕鬆進行不同的部署並從更快的部署中受益。我們發現我們的工作人員角色比我們的網絡角色具有更高的部署率,所以將Web角色分開是有意義的。使用新的Windows Azure for Websites功能,我們正在認真考慮將它們分離出來,並簡單地從中運行我們的應用程序的Web部分。我們的API可以去那裏,甚至可以部署到其他專用實例。

我們沒有做的唯一事情是在訂閱之間進行分割。我不認爲有這樣的技術理由。可能會有一個企業來解決配額問題,但現實情況是,訂購併不重要。然而,如果您使用Mgmt API爲不同的託管服務使用不同的訂閱ID,它可能會是真正的痛苦。爲了管理的目的,我也會毫不猶豫地混合搭配來自不同訂閱的存儲和託管服務。 Probaby是一個好主意,可以將它全部保留在同一個子版本中。

+0

我在徵求意見,所以謝謝你的意見!我絕對同意不跨訂閱。我們意外地結束了這麼做,這很痛苦。不幸的是,這是一個很難恢復的錯誤,因爲無法在訂閱之間移動數據存儲。 –