如果管線執行失敗,您可以使用復原將環境復原為先前穩定的狀態。若要使用復原,需規劃復原流程並瞭解如何實作。

復原流程規定在部署中反向失敗所需的步驟。此流程採用復原管線的形式,此管線包含一或多個連續工作,這些工作視執行和失敗的部署類型而有所不同。例如,傳統應用程式的部署和復原不同於 容器應用程式的部署和復原。

若要還原為正常的部署狀態,復原管線通常包含下列工作:
  • 清理狀態或環境。
  • 執行使用者指定的指令碼以還原變更。
  • 部署先前的部署修訂。

若要將復原新增至現有部署管線,請在執行部署管線之前,將復原管線連結至要復原的部署管線中的工作或階段。

如何設定復原

若要在部署中設定復原,您需要:

  • 建立部署管線。
  • 識別在部署管線中將觸發復原的潛在故障點,以便您可以連結復原管線。例如,您可以將復原管線連結至部署管線中的條件或輪詢工作類型,以檢查上一個工作是否成功完成。如需條件工作的相關資訊,請參閱如何在 Code Stream 中使用 [條件] 工作中的變數繫結來執行或停止管線
  • 確定將觸發復原管線的故障範圍,例如工作或階段故障。您還可以將復原連結至階段。
  • 確定發生故障時要執行的復原工作。將建立包含這些工作的復原管線。

您可以手動建立復原管線,也可以使用 Code Stream 建立。

  • 使用空白畫布,您可以手動建立遵循與現有部署管線平行流程的復原管線。然後,將復原管線連結至部署管線中 發生故障時觸發復原的一或多個工作。
  • 透過智慧管線範本,您可以使用復原動作設定部署管線。然後, Code Stream 會自動建立一或多個預設復原管線,其中包含發生故障時復原部署的預先定義的工作。

如需有關如何使用智慧管線範本為 CD 管線設定復原的詳細範例,請參閱如何在 Code Stream 中復原我的部署

如果我的部署管線有多個工作或階段具有復原,會怎樣

如果您有多個工作和階段新增了復原,請注意復原順序會有所不同。
表 1. 判定復原順序
如果將復原新增至... 復原執行時間...
並行工作 如果其中一個並行工作失敗,則所有並行工作完成或失敗後會復原此工作。該工作失敗後,不會立即執行復原。
階段中的工作和階段 如果工作失敗,則執行此工作復原。如果工作是在一組並行工作中,則所有並行工作完成或失敗後會執行工作復原。工作復原完成或無法完成後,會執行階段復原。

考量具有下列階段或工作的管線:

  • 具有復原的生產階段。
  • 一組並行工作,且每個工作具有自己的復原。

名為 UPD Deploy US 的工作具有復原管線 RB_Deploy_US。如果 UPD Deploy US 失敗,則復原會遵循 RB_Deploy_US 管線中定義的流程。

在具有並行工作的管線階段中,復原索引標籤會顯示在工作失敗時使用的復原管線。

如果 UPD Deploy US 失敗,RB_Deploy_US 管線會在 UPD Deploy UKUPD Deploy AU 已完成或失敗後執行。UPD Deploy US 失敗後,不會立即執行復原。另外,由於生產階段也有復原,因此在 RB_Deploy_US 管線執行後,將執行階段復原管線。