CI (Continuous Integration): tự động build và test mỗi lần push hoặc mở PR, bắt lỗi lúc còn dễ sửa.
CD (Continuous Delivery): CI xanh thì tự deploy lên staging, còn lên production vẫn cần người duyệt.
Continuous Deployment: deploy thẳng lên production, không cần ai bấm.
Pipeline điển hình: Lint → Type check → Unit test → Build → Integration test → Deploy staging → Smoke test → Deploy production.
- Environment promotion: code đi qua dev → staging → production, mỗi bậc có biến môi trường riêng và tuyệt đối không dùng chung secret giữa các môi trường.
- Rollback: blue-green (trỏ traffic ngược lại), feature flag (tắt tính năng mà không cần deploy lại), rollback migration bằng down script — đây chính là lý do mỗi migration phải có
down. - Feature flag: deploy code mới nhưng để tính năng tắt, rồi bật dần cho user; muốn tắt là tắt ngay không cần redeploy, và tiện cho A/B testing.
- Secret: không commit secret vào code — dùng GitHub Secrets, HashiCorp Vault hoặc AWS Secrets Manager, và xoay vòng định kỳ.
Công cụ: GitHub Actions (gắn chặt với GitHub, marketplace lớn), GitLab CI (có sẵn, hợp self-hosted), Jenkins (linh hoạt nhưng nuôi mệt), CircleCI, Buildkite (runner self-hosted nhanh).