您可以透過使部署還原到故障部署管線中緊隨故障的先前穩定狀態的工作,將復原設定為一個管線。若要在發生故障時進行復原,請將復原管線連結至工作或階段。
根據您的角色,復原的原因可能有所不同。
- 做為發行工程師,我想要 Code Stream 驗證發行是否成功,以便我瞭解是否應該繼續發行還是應該復原。可能的故障包含工作故障、UserOps 拒絕、超出度量臨界值。
- 做為環境擁有者,我想重新部署先前的發行,以便可以快速將環境還原為已知良好狀態。
- 做為環境擁有者,我想支援復原藍綠部署,以便最大程度地縮短因發行失敗導致的停機時間。
使用智慧管線範本建立 CD 管線並按一下復原選項時,會自動將復原新增至管線中的工作。在此使用案例中,您將使用智慧管線範本為使用輪流升級部署模型部署到 Kubernetes 叢集的應用程式定義復原。智慧管線範本會建立一個部署管線和一或多個復原管線。
- 在部署管線中,如果 [更新部署] 或 [確認部署] 工作失敗,則需要復原。
- 在復原管線中,會使用舊映像更新部署。
您也可以使用空白範本手動建立復原管線。建立復原管線之前,您需要計劃復原流程。如需有關復原的更多背景資訊,請參閱在 Code Stream 中規劃復原。
必要條件
- 確認您是 Code Stream 中的專案的成員。如果您不是管理員,請要求 Code Stream 管理員將您新增為專案成員。請參閱如何在 Code Stream 中新增專案。
- 設定 Kubernetes 叢集,以便管線在其中部署應用程式。設定一個開發叢集和一個生產叢集。
- 確認您具有 Docker 登錄設定。
- 識別專案以便對所有工作進行分組,包括您的管線、端點和儀表板。
- 請按使用智慧管線範本前在 Code Stream 中規劃 CICD 原生建置的 CD 部分所述自行熟悉 CD 智慧範本,例如:
- 建立 Kubernetes 開發端點和生產端點,以將應用程式映像部署到 Kubernetes 叢集。
- 準備建立命名空間、服務和部署的 Kubernetes YAML 檔案。如果需要從專有存放庫下載映像,YAML 檔案必須包含具有 Docker 組態密碼的區段。
程序
- 按一下。
- 在智慧管線範本中輸入資訊。
- 選取專案。
- 輸入管線名稱,例如 RollingUpgrade-Example。
- 選取應用程式的環境。若要將復原新增至部署,您必須選取生產。
- 按一下選取,選擇 Kubernetes YAML 檔案,然後按一下處理。
智慧管線範本會顯示可用的服務和部署環境。
- 選取管線將用於部署的服務。
- 選取用於開發環境和生產環境的叢集端點。
- 針對映像來源,選取管線執行期間輸入。
- 針對部署模型,選取輪流升級。
- 按一下復原。
- 提供健全狀況檢查 URL。
- 若要建立名為 RollbackUpgrade-Example 的管線,請按一下建立。
將顯示名為 RollbackUpgrade-Example 的管線,並且復原圖示會顯示在可於開發階段和生產階段中復原的工作上。
- 關閉管線。
在 [管線] 頁面中,會顯示已建立的管線以及管線中每個階段的新管線。
- RollingUpgrade-Example。 Code Stream 預設會停用已建立的管線,這可確保您在執行管線前先進行檢閱。
- RollingUpgrade-Example_Dev_Rollback。如果開發階段中的工作 (例如建立服務、、建立密碼、建立部署和驗證部署) 失敗,會叫用此復原開發管線。為確保復原開發工作, Code Stream 預設會啟用復原開發管線。
- RollingUpgrade-Example_Prod_Rollback。如果生產階段中的工作 (例如部署階段 1、驗證階段 1、部署推出階段、完成推出階段和驗證推出階段) 失敗,會叫用此復原生產管線。為確保復原生產工作, Code Stream 預設會啟用復原生產管線。
- 啟用並執行已建立的管線。
開始執行時,
Code Stream 會提示您提供輸入參數。您需要為所使用的 Docker 存放庫中的端點提供映像和標籤。
- 在 [執行] 頁面中,選取,然後監視管線執行。
管線將從 RUNNING 狀態開始,並經過開發階段中的多項工作。如果管線無法執行開發階段中的工作,則會觸發名為 RollingUpgrade-Example_Dev_Rollback 的管線並復原部署,且管線狀態會變更為 ROLLING_BACK。
復原後,[執行] 頁面會列出兩個 RollingUpgrade-Example 管線執行。
- 您建立的管線已復原,並顯示 ROLLBACK_COMPLETED。
- 觸發並執行復原的復原開發管線會顯示 COMPLETED。
結果
恭喜您!您已成功定義包含復原的管線並看到
Code Stream 會在發生故障時復原管線。