2012-02-14 68 views
0

假設我在Azure中有3個實例。每個應用程序都運行單獨的層,如我在此問題Independent deployment of separate layers to Azure中所述。爲了獨立部署每個層(讀取角色),創建一個單獨的Azure部署項目。問題是,什麼時候會被替換,什麼時候我會部署,例如業務層?我可以確定具有UI和數據訪問的實例將保持不變嗎?如何根據角色的名稱找到要替換的實例?將單獨的圖層部署到Azure

回答

1

爲了澄清,你有3層,每層承載在不同的Windows Azure角色(不是實例)。如果您將每個角色分開部署(單獨託管的服務),那麼在部署時,您只會升級該層。其他層不會受到影響。

但是,如果存在任何簽名差異,則依賴層可能會中斷,如果其嘗試調用的服務發生更改。基於這個原因,您要確保任何服務支持版本控制,並始終向後兼容至少一個版本。

我創建了a quick blog post with some screen shots of doing a single role upgrade。請注意,silverlight門戶網站在執行此操作時對我發佈了一個例外情況,並且我報告了該錯誤,並且會在更新博客文章時發現它的含義。

更新: Silverlight管理門戶中存在一個錯誤,目前阻止單個角色升級的性能。 Windows Azure團隊意識到這一點,並將在未來的更新中解決它。目前沒有更新的ETA。但是,您仍然可以通過管理API執行單個角色更新/升級。

+0

這些作用,可以在同一個託管的服務?找到屬於特定層的實例的原則是什麼?這是角色的名字嗎? – 2012-02-14 21:30:30

+0

是的,您可以將角色託管在同一服務中。如果使用RoleEnvironment,則可以遍歷角色及其特定實例。但這不是真正的服務升級,更多的是內部發現和直接連接。通過手動升級,您可以爲該服務實施單一部署包,但只能升級特定角色(我認爲,從未嘗試過)。 – BrentDaCodeMonkey 2012-02-14 22:04:24

+0

是的,這是我想弄明白的,如果它工作的話) – 2012-02-14 22:18:09

0

正如布倫特所言,絕對有可能做單一角色升級。過去,如果您在升級角色時對ServiceDefinition進行了任何更改(更改虛擬機大小,添加了新的配置設置,更新的角色名稱或更改了當前部署的服務定義中的實例數),Azure Fabric Controller將不允許您進行就地升級。現在,這也是可能的。因此,您可以對角色執行就地升級並提升VM大小。與往常一樣,您至少需要2個實例來確保您不會遇到任何停機時間。

蘭芝斯
http://www.opstera.com