如何在 VSTS 實現 CI & CD -[使用 Microsoft Azure WebSite]

現在越來越多人在談敏捷、Scrum 開發,所謂的敏捷並不是指開發的速度變快,而是能快速的反應客戶的需求或 Bug,以期在一個 Sprint 衝刺內交付一個可以給客戶測試的 UAT 版本,如何在VSTS做到 CI & CD?,詳細可參考文章

前言

現在越來越多人在談敏捷、Scrum 開發,所謂的敏捷並不是指開發的速度變快,而是能快速的反應客戶的需求或 Bug,以期在一個 Sprint 衝刺內交付一個可以給客戶測試的 UAT 版本。

 

為了快速反應客戶的需求、修改、測試、建置、上版的過程中,除了程式需要人員來修改外,其他的動作若無法自動化 (Continuous Integrated, CI & Continuous Delivery, CD) 來進行的話,便無法發揮敏捷開發的最大價值。

 

今天呢,我們就在 VSTS 上,結合 Microsoft Azure 來做到 CI & CD 這件事,將一個 VSTS 上面的一個網站透過自動化建置 Build 之後,自動化的佈署到 Azure 的既有的 WebSite 上。

 

環境

在環境的部分,首先,在你的 VSTS 中準備一個 ASP.NET 專案,並建立一個 Build,在觸發程序使用『持續整合- 建置每次簽入』

來源設定請將『原始檔控制資料夾 』與 『組件代理程式資料夾 』設定目前要自動建置的專案就好。

組件預設值請選擇『將組件輸出複製到伺服器』

接著就是請備妥一個 Azure 的 WebSite,空的 WebSite 執行起來應該如下:

然後到 Azure Portal 中你的的 WebSite 可以從原始檔控制中進行佈署,如下:

它也可以支援從 Github、CodePlex、Dropbx 等.. 甚至從您本機端的 Github 原始檔控制提供者進行連續佈署。

 

選擇 Visual Studio Online (其實現在叫做 VSTS 還來不及改名)

接著輸入您目前 VSTS 的使用者後按立即授權。

點選立即授權後,會談出一個確認授權的對話視窗,點選 Accept 如下:

確認完畢後,會再彈出一個讓你選擇要佈署的原始檔儲存機制來源是哪一個,請選擇正確,否則佈署不會成功。

 

這時回到你的 Visual Studio 組建定義畫面中,應該會多出一個 『testWebSite20151214_CD』的 Build 組建定義

VSTS 的畫面應該也是一樣,如下:

 

進行自動化佈署 CD 作業

這裡我們真的要開始進行實際的 CI & CD 的演練,筆者使用一個 ASP.NET MVC 5 的專案,我們使用這個專案來做一些簡單的修改,因為現在這個 VSTS 的原始檔控制已經與 Azure 的 WebSite 整合,所以現在在 WebApplication1 這個應用程式內所作的修改,簽入後除了都會觸發 testWebSite20151214_CD 這個 Build 之外,還會將這個 WebApplication1 的輸出結果佈署到我們的 testWebSite20151214 這個 Azure 的 WebSite 上面。

 

原本的 WebApplication1 執行如下:

我們加入一個名稱為 AspNet 的 Action,並加入一個 View

並在 _layout.cshtml 裡加入一個 ActionLink

在本機執行沒有問題後我們執行簽入,簽入後會立即在 Visual Studio 看到一個名稱為 『testWebSite20151214_CD』 的 Build 進入到佇列中。

你也可以在你的 VSTS 裡看見這個 Build 在執行中

Double-Click 後也可看見『testWebSite20151214_CD』 的 Build 的執行狀態

執行完畢後會顯示 Build Succeeded

這時,我們只要重新整理一下,我們可以看見 testWebSite20151214 這個 WebSite 已經是最新的,上方有我們剛剛加入的 ASP.NET 頁籤。

結語

在不搭配 Release Management 的情況下,Microsoft Azure 的解決方案經可以做到基本的 CI & CD ,因此我們可以在 UAT 階段時持續的交付給 User 來進行測試,除了程式碼修改外,其它都在自動化情況下完成的,不需要人工的介入,可完全避免人工過版可能的失誤。如果是 Production 的過版可能需要簽核時,可能就須使用 Azure 上的 Release Management。

 

 


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^