2010-10-29 136 views
0

我已經在Windows Azure和亞馬遜Web服務EC2上工作了好幾個月(幾乎已經到了多年的範圍),並且我看到了一些反覆出現的問題, 。在EC2和Windows Azure上部署項目

當我將.NET構建部署到Windows Azure中成爲Web角色(或服務角色)時,通常需要6-15分鐘才能啓動。在AWS的EC2中,啓動映像需要大約相同的時間,然後需要一兩分鐘的時間才能將應用程序部署到IIS(當然,其設置尚未完成)。

但是,當我用SUSE Linux & Mono啓動AWS實例以運行.NET時,我在大約2-3分鐘內(在安裝完成之後再次獲取這些啓動並部署的代碼之一)。

什麼是Windows操作系統映像,導致他們花了很長時間才能在雲中啓動?我不想要FUD,我對引發這一點的具體細節感到好奇。任何關於此的具體技術信息將不勝感激!謝謝。

回答

2

正如在PDC上宣佈的,Azure很快就會開始提供完整的Azure Web角色的IIS。在Don Box的主題演示中,他表示這允許您使用Visual Studio中的標準「發佈」選項快速部署到雲中。

如果我記得沒錯,啓動一個新的Azure角色會發生什麼情況的一部分是配置網絡組件,並且我記得在會議上有人發言說這非常耗時。這可以解釋爲什麼添加額外的實例到一個已經運行的角色通常更快(但並非總是如此:我已經看到這需要超過15分鐘以上)。

編輯:也見this PDC session

2

我不認爲EC2行爲是特定於雲的。只需比較本地系統上Windows和Linux的啓動時間 - 根據我的經驗,Linux只是啓動速度更快。通常情況下,這是因爲啓動的服務/惡魔的數量較少,每個啓動時需要進行的磁盤訪問次數也較少。

至於Azure發佈時間:很難說,也不能與機器靴(IMO)相提並論。沒有人知道Azure在啓動應用程序時會做什麼。這可能是因爲他們需要首先組裝VM映像,或者發生大量記錄/報告會減慢速度。

2

不要忘記,有一個Fabric控制器需要檢查故障區域並跨多個故障區域部署您的VM(以便爲您提供高可用性,至少在存在兩個以上的實例時)。我不能肯定地說,但是這種邏輯本身可能需要一些額外的時間。這也可以解釋爲什麼網絡設置可能會有點複雜。

這當然會解釋雲啓動時間與本地或亞馬遜窗口的啓動時間之間的差異(如果有的話)。操作系統的任何差異完全取決於操作系統的構建方式!