使用Azure SDK 1.4.1中的Web Deploy
公告 ???:本博客為微軟云計算中文博客 ?的鏡像博客。 ? 部分文章因為博客兼容性問題 ?,會影響閱讀體驗 ?。如遇此情況,請訪問 ?原博客。
剛剛更新的Azure SDK v1.4.1通過使用Web Deploy,支持單一運行的Web Role實例就地升級。本文詳細介紹了如何使用這些新的功能。
SDK更新可以從這里下載:開始
?正如Windows Azure團隊博客宣布的,
直到今天,托管服務的反復的部署過程仍需要你使用Management portal或者Service Management API重新打包應用程序并將它上傳到Windows Azure。Windows Azure SDK 1.4更新包通過與Web Deployment Tool(Web Deploy)結合,解決了這個問題。
?關于Azure的一個普遍的抱怨就是roles啟動花費太長時間,而且之后的每次升級,你的軟件都需要一個啟動周期(條款,初始化,啟動,運行),開發過程明顯變慢。Web Deploy Tool可以用來代替升級一個in-place role — 意味著程序的核心可以在反復的開發周期中不必打包全部云項目而更新。這意味著一個缺少的CSS鏈接,驗證元素,隱藏代碼元素或者其他改變可以在不終止你的Role Instance的情況下創建。
?值得注意的是Web Deploy僅限于一個單一的Role Instance — 如果你有一個擁有多個角色的復雜的網站(如果你處在開發周期并進行到了部署產品前的最后一個階段,很有可能在Production中,而不太可能在Staging中)你將無法使用Web Deploy。既然這樣,我建議你應該考慮在開始規劃之前,使用一個單獨的開發實例實現你的技術,或者你可以在總是將實例數目減到1之前,再次增加你所選數量的規模。查看更多限制,請參閱這里。
?這是一種十分有用的Windows Azure流水線化部署方式,因為它略過了長時間的啟動過程。這應當在選擇使用完全部署,還是部分Web Deploy時考慮,例如Startup Tasks在執行Web Deploy時無法運行。一些安裝任務(例如)在Role最開始創建的時候已經被執行了,因此不需要再次執行它。
?這篇博客中,我使用了我之前一篇博客中的代碼,Restricting Access to Azure by IP Address。我使用這篇博客是因為它包含了一個在最初發布到Role生效并響應服務器請求時,添加了一個重要的時限的啟動任務。這個延遲要優于啟動Azure Role的延遲,因為它在IIS中安裝了一個模塊。這也是那些集成Web Deploy后所希望能解決的耗時類型之一,因為start up task不需要在Web Deploy中被重復調用。
?首先,必須安裝標準步驟將Cloud Project部署到Azure。右擊Cloud Project,選擇“Publish”。?
?標準發布
那些熟悉SDK v1.4和早期版本的人會注意到這個截圖上出現了一個新的復選框;最初是灰色的,這允許Web Deploy授權到你的Azure role。我們需要允許這一點,這樣做的方式是(按照屏幕標簽上的暗示)首先使Remote Desktop訪問Azure role。點擊“Configure Remote Desktop Connections”鏈接,選擇Enable Connections for all Roles并按照截圖上的內容填滿所有需要的細節。確保你記住了你輸入的密碼,因為稍后你將要用到它。?
設置Remote Desktop到Azure Roles
?當我們一做完這些,Enable Web Deploy復選框將可以使用。?
選擇Enable Web Deploy復選框
這個三角顯示警告:?
“Web Deploy默認使用一個不受信任的,自簽名的證書,建議不要上場敏感數據。請參閱幫助查看更多安全的Web Deploy信息。”?
現在我建議你不要使用Web Deploy Tool上傳敏感數據。如果有疑問,這不應該作為你使用的首選路徑。
一旦你已經為roles激活Web Deploy,點擊OK,開始部署。這是標準的完全部署,需要一段時間生成一個Instance,并實例化它。?
造成這么長的延遲的原因是因為我在IIS中安裝了一個新的模塊,這個過程完成至少需要8到9分鐘。典型的部署將會使用10到15分鐘。
從我的日志來看,這個過程花費了21分鐘。?
12:33:52 - Preparing... 12:33:52 - Connecting... 12:33:54 - Uploading... 12:35:08 - Creating... 12:36:04 - Starting... 12:36:46 - Initializing... 12:36:46 - Instance 0 of role IPRestricted is initializing 12:41:27 - Instance 0 of role IPRestricted is busy 12:54:12 - Instance 0 of role IPRestricted is ready 12:54:12 - Creating publish profiles in local web projects... 12:54:12 - Complete.?這21分鐘的延遲就是Web Deploy力圖減少的。我現在將進入到我的role。
你是一個IP地址!
我們現在將要對解決方案的MasterPage做一點點小的改變,將“You are: an ip address”改為“Your IP is: an ip address”。這個變化需要對ASPX Web應用程序重新編譯(通過編程或者引用上的變化也可以在這里做為例子示范)。使用Web Deploy不可能做一些改變 — 例如添加新的Roles,改變啟動任務和改變ServiceDefinitions。
為了更新我們的代碼,在Visual Studio中右擊Web Role APPLICATION項目。這與以前通過右擊云項目發布不同。選擇“Publish”。
Web Deployment選項
這些選項都將替你完成,你只需要輸入之前在設置Remote Desktop鏈接到你的Roles時輸入的密碼。
點擊Publish生成你的程序并發布至Azure。我的這個過程只用了不到5秒鐘。
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
就是那樣。令人驚訝的快,我甚至不能確定它已經開始工作了。
?按照下面的訪問相同的Service URL
更新的Web應用程序!
?正如你所看到的,web應用程序已經被更新。我們從一個21分鐘的部署周期到一個5秒鐘的反復的部署周期。這是令人驚訝的。
最后需要注意的一點是,引自 Windows Azure團隊博客上關于使用Web Deploy的限制:
當在Windows Azure托管服務的交互式部署時使用Web Deploy請注意以下幾點:
- Web Deploy只適用于單一角色實例
- 該工具僅用于反復部署和測試階段
- Web Deploy跳過打包階段。網頁上的更改不會持久。為了保存更改,你必須對服務進行打包和部署。
?
Happy clouding,
Andy
?
本文翻譯自:http://blog.bareweb.eu/2011/04/using-web-deploy-in-azure-sdk-1-4-1/
轉載于:https://www.cnblogs.com/wuwa/archive/2011/04/19/6192322.html
總結
以上是生活随笔為你收集整理的使用Azure SDK 1.4.1中的Web Deploy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动易标签调用大全
- 下一篇: hdu 1568 (log取对数 / F