Đặt kiểm soát ở environment, không ở trong script deploy — script nằm trong repo thì người sửa được repo cũng sửa được kiểm soát.
Cấu hình môi trường production:
- Required reviewers: job deploy dừng chờ người có thẩm quyền duyệt, ai duyệt được ghi lại.
- Deployment branch rules: chỉ ref từ nhánh chính hoặc tag release mới deploy được prod.
- Environment secrets: credential production chỉ hiện diện trong job gắn với environment đó — job CI thường không thấy.
- Wait timer cho hệ thống nhạy cảm, tạo khoảng dừng để hủy trước khi rollout.
deploy-prod:
environment: production # kích hoạt approval + secret riêng
needs: [build]Audit — cần trả lời được: cái gì, ai, khi nào, từ commit nào. Bản ghi triển khai nên gồm commit SHA, digest image, người khởi tạo, người duyệt, thời điểm và kết quả. Lưu ngoài repo (deployment API, hệ thống log) để không sửa được bằng một commit.
Thông báo: bắn sự kiện deploy vào kênh trực (Slack/Teams) kèm link tới run, diff so với version trước và nút dẫn tới quy trình rollback. Mục tiêu là khi có sự cố, người trực biết ngay thay đổi gần nhất là gì — phần lớn sự cố production đến ngay sau một thay đổi.
Lưu ý về tách quyền: approval chỉ có giá trị nếu người duyệt khác người viết, và nếu không ai được bỏ qua kiểm soát bằng quyền admin.