Deployment and CI-CD Release Strategies

Mental model

CI/CD không chỉ là automation. Nó là hệ thống giảm rủi ro khi code đi từ máy developer tới production. CI giảm rủi ro integration; delivery/deployment giảm rủi ro release; deployment strategies giảm blast radius; observability và rollback quyết định team có phát hiện lỗi đủ sớm không.

Các lớp quyết định

Câu hỏiConceptGhi nhớ
Code có tích hợp được không?Continuous IntegrationMerge nhỏ, build/test tự động, feedback nhanh
Artifact đã sẵn sàng release chưa?Continuous Delivery, Deployment PipelineCode luôn ở trạng thái deployable
Có tự động lên production không?Continuous DeploymentCần test, metric và rollback đủ trưởng thành
Rollout giảm blast radius thế nào?Rolling Deployment, Blue-Green Deployment, Canary DeploymentMỗi strategy đổi safety lấy cost/cognitive load
Deploy và release có tách được không?Feature Flag, Dark Launch, Shadow TrafficChạy code không nhất thiết đồng nghĩa user thấy feature
Schema có rollback-safe không?Expand-Contract MigrationSchema change cần nhiều bước tương thích ngược
Dừng rollout bằng gì?Rollback Alarm, Bake PeriodDefine health trước khi rollout, không thương lượng khi incident

Bài học

  • Big-bang đơn giản nhưng blast radius lớn.
  • Rolling không downtime nhưng tạo mixed-version state.
  • Blue-green mua rollback nhanh bằng chi phí hạ tầng.
  • Canary cần per-version observability; thiếu nó thì strategy yếu đi nhiều.
  • Feature flag hữu ích nhưng phải có owner và cleanup để tránh flag debt.
  • Expand-contract là nền tảng cho schema change an toàn trong rollout dần.

Liên kết