共用方式為


搭配擴充功能版本使用部署通道

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

使用部署更新步調,您可以逐漸部署及驗證生產環境中延伸模組的變更,同時限制對用戶的影響。

我們不建議您同時部署到所有生產環境,這會將所有用戶公開至變更。 漸進式推出會將用戶公開給一段時間的變更,以較少的使用者驗證生產環境中所做的變更。

下表顯示當您使用環形與沒有環形時受影響區域的差異。

沒有環形 受影響的區域 使用環形
手動和容易出錯 組建 自動化且一致
手動和容易出錯 版本 自動化且一致
小時 建置時間 (TTB)
發行時間(TTR) 分鐘
從使用者撥打電話 問題偵測 主動式
天到周 問題解決方式 分鐘到天

如需詳細資訊,請參閱 設定安全部署的發行管線。

必要條件

  • 如需管線的詳細檔,以及版本的核准功能,請檢閱 CI/CD 管線核准

指派用戶類型

判斷哪些使用者最適合每個用戶類型。 傳達提供意見反應的機會,以及每一層的風險層級,因為設定期望並確保成功至關重要。 在下列範例中,用戶會分成三個生產群組:

  • Canaries:一旦可用,就會主動測試功能。
  • 早期採用者:自願預覽版本,視為比 Canary 位更精細。
  • 使用者:在經過 Canaries 和早期採用者之後,取用產品。

使用者通道

對應拓撲

將延伸模組的拓撲對應至環狀部署模型,以限制變更對使用者的影響並傳遞價值。 對於開放原始碼社群延伸模組,我們大多使用通道型部署,逐漸向 Canary、早期採用者和用戶公開新版本。

在應用層級,Azure DevOps 擴充功能的組合很容易獨立摘要、調整和部署。

每個擴充功能都會執行下列工作:

  • 有多個 Web 和腳本檔案
  • 搭配 Core 用戶端的介面
  • 使用 REST 用戶端和 REST API 的介面
  • 在快取或復原記憶體中保存狀態

應用層的漸進式曝光

在基礎結構層級,擴充功能會發佈至 Marketplace。 一旦您在組織中安裝擴充功能,它就會由 Azure DevOps 服務入口網站裝載,狀態會保存至 Azure 記憶體或延伸模組 數據記憶體

基礎結構層的漸進式暴露

擴充拓撲非常適合通道部署模型,並將擴充功能發佈至每個部署通道:

  • Canary 通道的私人開發版本
  • 早期採用者通道的私人預覽版本
  • 使用者通道的公用生產版本

提示

將您的延伸模組發佈為 私人,以控制受邀使用者的曝光。

透過部署更新步調移動變更

請參閱下列透過部署通道移動變更的範例流程。

使用 Azure DevOps 開發人員工具建置工作延伸模組,將擴充功能封裝併發佈至 Marketplace。

擴充通道

  1. 倒數小工具延伸模組專案的開發人員會將變更認可至 GitHub 存放庫。
  2. 認可會觸發持續整合組建。
  3. 新的組建會觸發持續部署觸發程式,這會自動啟動 Canaries 環境部署。
  4. Canaries 部署會將私人擴充功能發佈至 Marketplace,並與預先定義的組織共用。 只有 Canaries 會受到變更的影響。
  5. Canaries 部署會觸發早期採用者環境部署。 預先部署核准網關需要任何一個授權的使用者核准發行。 早期採用者環境的預先部署核准
  6. 早期採用者部署會將私人延伸模組發佈至市集,並與預先定義的組織共用。 Canaries早期採用者都會受到變更的影響。
  7. 早期採用者部署會觸發用戶環境部署。 更嚴格的部署前核准網關會要求所有已授權的使用者核准發行。 用戶環境的預先部署核准
  8. 使用者部署會將公用擴充功能發佈至市集。 在這個階段,在組織中安裝擴充功能的每一個人都會受到變更的影響。
  9. 關鍵是意識到當變更通過環形時,效果會增加。 將變更公開至 Canaries早期採用者 ,可讓您在發行至生產環境之前,先驗證變更和 Hotfix 重大錯誤。

監視問題

監視和警示可協助您偵測並減輕問題。 判斷哪種類型的數據很重要,例如:基礎結構問題、違規和功能使用量。 專注於可採取動作的警示,以避免使用者忽略這些警示並遺漏高優先順序問題。

提示

從數據的高階檢視開始,您可以視需要從遠處觀看和向下切入的視覺儀錶板。 定期管理您的檢視,並移除所有噪音。 可視化儀錶板比許多通知電子郵件更能講述一個更好的故事,通常透過電子郵件規則篩選和忘記。

使用 Team Project Health 和其他延伸模組來建置管線、潛在客戶和週期時間的概觀,並收集其他資訊。 在範例儀錶板中,很明顯有 34 個成功的組建、21 個成功發行、1 個失敗的版本,以及 2 個進行中的版本。

Azure DevOps 上的高階儀錶板

功能旗標是否有相依性?

否。 有時候,您可能需要將特定功能部署為發行的一部分,但一開始不會公開給使用者。 功能旗標可讓您更精細地控制變更中包含的功能。 例如,如果您對功能不完全有信心,您可以使用功能旗標 來隱藏 一個或所有部署通道中的功能。 您可以啟用 Canaries 通道中的所有功能,並微調早期採用者和生產使用者子集,如下圖所示。

功能旗幟

如需詳細資訊,請參閱 使用功能旗標進行漸進式實驗。

常見問題集

問:您如何知道變更可以部署到下一個通道?

答:您應該為核准發行的使用者提供一致的檢查清單。

問:在將變更推送至下一個通道之前,您等待多久?

沒有固定持續時間或「冷卻」期間。 這取決於您成功完成所有發行驗證所需的時間。

問:如何管理 Hotfix?

答:通道部署模型可讓您像任何其他變更一樣處理 Hotfix。 您越早就發現問題,您就能將 Hotfix 部署至下游通道並無作用。

問:如何處理跨越共用發行環境的變數?

答:請參閱 預設和自定義發行變數

問:如何管理管線所使用的秘密?

答:若要保護管線所使用的密碼編譯密鑰和其他秘密,請參閱 Azure 金鑰保存庫