搭配擴充功能版本使用部署通道
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
使用部署更新步調,您可以逐漸部署及驗證生產環境中延伸模組的變更,同時限制對用戶的影響。
我們不建議您同時部署到所有生產環境,這會將所有用戶公開至變更。 漸進式推出會將用戶公開給一段時間的變更,以較少的使用者驗證生產環境中所做的變更。
下表顯示當您使用環形與沒有環形時受影響區域的差異。
沒有環形 | 受影響的區域 | 使用環形 |
---|---|---|
手動和容易出錯 | 組建 | 自動化且一致 |
手動和容易出錯 | 版本 | 自動化且一致 |
小時 | 建置時間 (TTB) | 秒 |
天 | 發行時間(TTR) | 分鐘 |
從使用者撥打電話 | 問題偵測 | 主動式 |
天到周 | 問題解決方式 | 分鐘到天 |
如需詳細資訊,請參閱 設定安全部署的發行管線。
必要條件
指派用戶類型
判斷哪些使用者最適合每個用戶類型。 傳達提供意見反應的機會,以及每一層的風險層級,因為設定期望並確保成功至關重要。 在下列範例中,用戶會分成三個生產群組:
- Canaries:一旦可用,就會主動測試功能。
- 早期採用者:自願預覽版本,視為比 Canary 位更精細。
- 使用者:在經過 Canaries 和早期採用者之後,取用產品。
對應拓撲
將延伸模組的拓撲對應至環狀部署模型,以限制變更對使用者的影響並傳遞價值。 對於開放原始碼社群延伸模組,我們大多使用通道型部署,逐漸向 Canary、早期採用者和用戶公開新版本。
在應用層級,Azure DevOps 擴充功能的組合很容易獨立摘要、調整和部署。
每個擴充功能都會執行下列工作:
- 有多個 Web 和腳本檔案
- 搭配 Core 用戶端的介面
- 使用 REST 用戶端和 REST API 的介面
- 在快取或復原記憶體中保存狀態
在基礎結構層級,擴充功能會發佈至 Marketplace。 一旦您在組織中安裝擴充功能,它就會由 Azure DevOps 服務入口網站裝載,狀態會保存至 Azure 記憶體或延伸模組 數據記憶體。
擴充拓撲非常適合通道部署模型,並將擴充功能發佈至每個部署通道:
- Canary 通道的私人開發版本
- 早期採用者通道的私人預覽版本
- 使用者通道的公用生產版本
提示
將您的延伸模組發佈為 私人,以控制受邀使用者的曝光。
透過部署更新步調移動變更
請參閱下列透過部署通道移動變更的範例流程。
使用 Azure DevOps 開發人員工具建置工作延伸模組,將擴充功能封裝併發佈至 Marketplace。
- 倒數小工具延伸模組專案的開發人員會將變更認可至 GitHub 存放庫。
- 認可會觸發持續整合組建。
- 新的組建會觸發持續部署觸發程式,這會自動啟動 Canaries 環境部署。
- Canaries 部署會將私人擴充功能發佈至 Marketplace,並與預先定義的組織共用。 只有 Canaries 會受到變更的影響。
- Canaries 部署會觸發早期採用者環境部署。 預先部署核准網關需要任何一個授權的使用者核准發行。
- 早期採用者部署會將私人延伸模組發佈至市集,並與預先定義的組織共用。 Canaries 和早期採用者都會受到變更的影響。
- 早期採用者部署會觸發用戶環境部署。 更嚴格的部署前核准網關會要求所有已授權的使用者核准發行。
- 使用者部署會將公用擴充功能發佈至市集。 在這個階段,在組織中安裝擴充功能的每一個人都會受到變更的影響。
- 關鍵是意識到當變更通過環形時,效果會增加。 將變更公開至 Canaries 和 早期採用者 ,可讓您在發行至生產環境之前,先驗證變更和 Hotfix 重大錯誤。
監視問題
監視和警示可協助您偵測並減輕問題。 判斷哪種類型的數據很重要,例如:基礎結構問題、違規和功能使用量。 專注於可採取動作的警示,以避免使用者忽略這些警示並遺漏高優先順序問題。
提示
從數據的高階檢視開始,您可以視需要從遠處觀看和向下切入的視覺儀錶板。 定期管理您的檢視,並移除所有噪音。 可視化儀錶板比許多通知電子郵件更能講述一個更好的故事,通常透過電子郵件規則篩選和忘記。
使用 Team Project Health 和其他延伸模組來建置管線、潛在客戶和週期時間的概觀,並收集其他資訊。 在範例儀錶板中,很明顯有 34 個成功的組建、21 個成功發行、1 個失敗的版本,以及 2 個進行中的版本。
功能旗標是否有相依性?
否。 有時候,您可能需要將特定功能部署為發行的一部分,但一開始不會公開給使用者。 功能旗標可讓您更精細地控制變更中包含的功能。 例如,如果您對功能不完全有信心,您可以使用功能旗標 來隱藏 一個或所有部署通道中的功能。 您可以啟用 Canaries 通道中的所有功能,並微調早期採用者和生產使用者子集,如下圖所示。
如需詳細資訊,請參閱 使用功能旗標進行漸進式實驗。
常見問題集
問:您如何知道變更可以部署到下一個通道?
答:您應該為核准發行的使用者提供一致的檢查清單。
問:在將變更推送至下一個通道之前,您等待多久?
沒有固定持續時間或「冷卻」期間。 這取決於您成功完成所有發行驗證所需的時間。
問:如何管理 Hotfix?
答:通道部署模型可讓您像任何其他變更一樣處理 Hotfix。 您越早就發現問題,您就能將 Hotfix 部署至下游通道並無作用。
問:如何處理跨越共用發行環境的變數?
答:請參閱 預設和自定義發行變數。
問:如何管理管線所使用的秘密?
答:若要保護管線所使用的密碼編譯密鑰和其他秘密,請參閱 Azure 金鑰保存庫。
相關文章
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應