Canary Deployment
金絲雀部署
金絲雀部署會先讓少量真實使用者或流量使用新版。觀察結果用來決定要擴大還是停止。
stable + small canary share -> observe gates -> promote, pause, or abort95%金絲雀 v25%- ✓錯誤率
0.3% ≤ 1% - ✓p95 latency
380 ≤ 500 ms - ✓結帳成功率
穩定
stable + small canary share -> observe gates -> promote, pause, or abortOPS另一個例子
第 2 版先接收 5% 的結帳流量。團隊會觀察十分鐘的錯誤與延遲。任何一項超過上限就停止。
主要部分
- 01穩定版本
- 02金絲雀版本
- 03流量或使用者比例
- 04觀察時間
- 05成功與停止上限
- 06擴大或中止
什麼時候用
需要觀察正式環境的真實行為,而且能安全分流時,可以使用金絲雀部署。要定義對象、步驟、指標、上限、等待時間和回滾。
什麼時候不要用
不要把每次慢慢推出都叫做金絲雀部署。必須讓選定群組試用,並依結果決定是否擴大。
程式裡的名稱
stable + small canary share -> observe gates -> promote, pause, or abort 上線前要檢查
發布前核對正確的程式碼儲存庫、分支、目標與程式差異。保留尚未發布的工作,並通過審查與自動檢查(CI)。記錄衝突、資料遺失風險、發布順序、版本追查、復原與回復上一版的方法。
預期成果:用 金絲雀部署 (Canary Deployment) 安全交付或復原變更,並留下可查核記錄。 使用者情境:第 2 版先接收 5% 的結帳流量。團隊會觀察十分鐘的錯誤與延遲。任何一項超過上限就停止。 交付概念或操作:金絲雀部署 (Canary Deployment)。 適用理由:需要觀察正式環境的真實行為,而且能安全分流時,可以使用金絲雀部署。要定義對象、步驟、指標、上限、等待時間和回滾。 不應使用的情況:不要把每次慢慢推出都叫做金絲雀部署。必須讓選定群組試用,並依結果決定是否擴大。 交付要求:指出程式碼儲存庫與目標。列出前置條件、變更內容、審查與自動檢查(CI)、衝突和資料遺失風險、發布順序,以及復原或回復上一版的指令。 儲存庫防護:保留尚未發布的工作與可查核歷史。沒有明確備份時,不可執行破壞性操作。發布前核對精確的程式差異與遠端儲存庫目標。 驗收條件:預期的程式差異已審查,必要檢查已通過。目標版本可追查,失敗復原已演練,發布歷史也可查核。 證據與限制(證據邊界):沒有一份官方標準能管到全部內容。不同團隊、平台或框架的用法可能不同。 待確認:程式碼儲存庫與分支、協作狀態、發布環境、核准負責人、受保護的檢查,以及要回復的版本。
檢查這份需求
請 AI 程式助手檢查目前如何使用 金絲雀部署 (Canary Deployment)。 定義:金絲雀部署會先讓少量真實使用者或流量使用新版。觀察結果用來決定要擴大還是停止。 正式環境檢查:發布前核對正確的程式碼儲存庫、分支、目標與程式差異。保留尚未發布的工作,並通過審查與自動檢查(CI)。記錄衝突、資料遺失風險、發布順序、版本追查、復原與回復上一版的方法。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。