工作的這幾年實作 (或見過) 許多產品與應用程式的佈署,但常常與書上的名詞銜接不起來,這邊簡單紀錄一下各種部署策略的說明,也提供有需要的朋友參考,若有錯誤或任何建議,歡迎各位前輩不吝提出。
Big-Bang (大爆炸)
- 一次且全面性的部署方法
- 可以一次性完整更新
- 如名稱所示,整體的解決方案一次性應用在整個系統
- 因應服務相依,需要各團隊進行協調
- 通常需要花費較長時間進行部署,除了持續交接,也可能需要較長停機時間
Rolling (滾動式)
- 較節省資源,但意外著需要停機 (暫停服務)
- 部署期間無法確認系統能完整正常運作
- 部署失敗需要恢復 (Roll Back),且恢復過程可能耗時費力
- 進行流程:
- 停止某些服務並更新後,啟用這些服務
- 持續停止另一群服務、更新 與 啟用
- 持續到過版結束
- 若有問題則逐一退回前一版本
Blue-green deployments (藍綠部署)
- 主要減少發佈時的停機時間 (可能無需停機)
- 可以快速撤回發佈
- 需要兩套系統進行切換 (需要資源較多)
- 進行流程:
- 綠色為目前對外服務的系統,藍色為準備發佈系統(不提供服務)
- 兩套系統皆功能完整且通過測試
- 佈署時切換兩套系統
- 若新版本有問題,可以隨時切回上一個版本
Canary releases (金絲雀部署)
- 適用於大規模更版
- 適用於對新版本穩定性缺乏信心 (或版本更動內容較大)
- 部署時間較長
- 進行流程:
- 將其中幾台伺服器更新新版本
- 導引少部分 (10%) 真實流量進行測試
- 確認沒有問題即全面更新版本
- 若有問題只需移除新版本伺服器即可
0 留言