
起因
延續上篇文章,當我們使用開發工具或是在 Release pipeline 上部署 App Service 時,都會有一定的停機時間,所以經常安排在晚間離峰時部署,以減少影響,那藍綠部署可以作為解決方案之一,可以讓系統在不間斷提供服務的情況下,上線新版本的部署方式,讓我們在收到使用者回饋的bug當下,可以快速上線修復後的版本或是回滾到上個版本.
前置環境
Web Application 服務
- 名稱: blue-green-0523
- 發布: 代碼
- 執行階段堆疊: Node16LTS
- 作業系統: Linux
- 地區: East Asia
- SKU和大小: 標準S1
在建立好的 App Service 裡,打開部署/部署位置
加入新的部署位置

設置 Release
建立新的 Release
並選擇 Azure App Service deployment

設置 Artifact

設置 Stage 1

設置部署服務
下面的設定開啟後
會先部署到稍早加入的 pre-blue-green-0523
而不影響到正式的生產環境

設置 Stage

移除 Deploy Azure App Service
對著 Deploy Azure App Service右鍵移除該 task

設置 Slot Swap 設定

新增 Task

設置剛新增的 Task
在這邊我們設置要交換的來源為 pre-blue-green-0523
也就是我們上一個 stage 部署的位置
並且將交換的位置設為 Production 位置


在執行之前,我分別將 blue-green-0523 及 pre-blue-green-0523 的 URL 位置開啟



當第二個 stage 交換成功後

blue-green-0523 和 pre-blue-green-0523 的內容做交換了

查看第二個 stage 的 log
也可以看到會先做暖機的動作 在交換兩個 App Service
達成服務不中斷

本文同步發布在: 使用 Azure Devops 設置藍綠部署 - 張育誠 - Medium
若對內容有任何疑問或內容有錯誤,歡迎在下方留言讓我知道,
或是來信: calvinchang@build-school.com