|
|
||
|---|---|---|
| .. | ||
| README.zh-TW.md | ||
| SKILL.md | ||
README.zh-TW.md
遷移與上線設計 (Migration Rollout Design) 知識合約指南
概述
migration-rollout-design 是知識合約,用來提供遷移與上線設計的原則與模式。涵蓋向後相容、上線策略、Canary Deployment、Feature Flags、Schema Evolution 與 Rollback。供 design-architecture 在定義 Migration & Rollout Strategy 時參考。
核心原則
向後相容優先
- 新版本必須與舊版本共存於遷移期間
- API 必須向後相容直到所有消費者都遷移完成
- 資料庫結構必須同時支援舊版和新版程式碼
增量勝過 Big-Bang
- 增量遷移,一步一步來
- 每步必須可獨立部署與逆轉
- Big-Bang 遷移風險高,逆轉困難
預設 Rollback
- 每個遷移步驟必須有明確的 rollback 計畫
- Feature Flags 可實現即時 rollback,無需重新部署
設計重點
- 上線策略:Blue-Green Deployment、Canary Deployment、Rolling Deployment、Feature Flag Deployment
- Feature Flags:Release flags、Operational flags、Experiment flags、Permission flags
- Schema Evolution:Additive Changes(安全)vs Destructive Changes(需遷移)
- Migration Strategy:Expand → Migrate → Contract 三階段
- Rollback:Application Rollback、Database Rollback 與決策矩陣
知識合約職責
- 提供遷移與上線設計的理論指引
- 不直接產生遷移腳本或上線腳本
不應做的事
- 不替系統選擇特定部署策略
- 不定義具體的 Feature Flag 名稱或值
- 不產生遷移或部署腳本