---
title: "更新策略"
description: "設定副本更新順序、並行度、觀察窗口和失敗動作，並評估容量與業務影響。"
---

> Documentation Index
> Fetch the complete documentation index at: https://cdelivery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 更新策略

更新策略決定執行副本如何替換。Operator 或 Admin 在應用程式設定中設定這些字段；它會影響設定更新和重啟等需要重新建立容器的操作。

## 字段與預設值

| 字段 | 預設值 | 作用 |
| --- | --- | --- |
| 並行度 | 全部 | 每輪同時更新的副本數量 |
| 順序 | StopFirst | 先停止舊副本，再啟動新副本 |
| 觀察時間 | 60 秒 | 判斷新任務失敗的觀察窗口 |
| 最大失敗比例 | 0% | 超過閾值時觸發失敗動作 |
| 失敗動作 | Rollback | 更新失敗後嘗試回到上一份設定 |

觀察時間不是兩批更新之間固定等待的延遲，也不是業務就緒檢查。應用程式需要業務回應驗證時設定 XHealth 或 Guardian。

## 選擇更新順序

**StopFirst** 先停止舊實例，額外容量需求較低，但單副本應用程式可能中斷服務。

**StartFirst** 先啟動新實例，新舊副本可能短暫重疊。它需要足夠資源和可用調度位置，應用程式本身也必須允許並行執行。僅選擇 StartFirst 並不能保證零停機，尤其當進程執行後仍需要較長初始化時間時。

使用本地資料的資料庫應特別注意同一資料目錄的併發存取。不要未經確認讓新舊資料庫進程同時操作同一份資料。

## 選擇並行度與失敗動作

多個無狀態副本可使用較小並行度，逐批替換並觀察業務。並行處理全部副本會擴大一次變更的影響範圍。

| 失敗動作 | 含義 |
| --- | --- |
| Continue | 繼續更新，需要操作者持續觀察 |
| Pause | 暫停更新，等待人工判斷 |
| Rollback | 嘗試恢復可用的上一份設定 |

回復不恢復業務資料，也不提供任意歷史版本選擇。當前回復執行時並行處理全部副本，失敗動作是繼續，繼承更新順序、觀察時間和失敗比例；不能假定回復與正向更新的並行度完全相同。

## 修改策略前檢查

1. 當前應用程式是否有足夠副本承擔業務。
2. 伺服器是否能容納新舊實例重疊。
3. 每台伺服器副本上限和標籤是否允許更新。
4. 應用程式啟動、連接排空和資料兼容是否滿足所選方式。
5. 是否需要啟用[發佈驗證](/docs/zh-tw/guides/release-safety/guardian/)。

儲存後先在可控環境驗證一次版本更新，觀察副本替換、請求錯誤和日誌。出現等待時檢查[資源](/docs/zh-tw/guides/apps/resources/)與[調度](/docs/zh-tw/guides/apps/placement/)，不要只修改並行度。

Source: https://cdelivery.dev/docs/zh-tw/guides/release-safety/update-strategy/index.mdx
