Build once, promote by digest
Một artifact qua Dev, Staging, Prod thay vì build lại ba lần.
Nắm bản chất
CI kiểm tra tests, build và scan một image; các môi trường dùng chung digest được phê duyệt. Điều này làm giảm biến thể build giữa environments và giúp truy vết rollback. Tags có thể mutable; digest định danh nội dung manifest/index tương ứng.
Promotion thay values GitOps, không thực thi build lại. Release audit nên giữ source SHA, CI run, signature, image digest, PR reviewers và observed imageID khi deploy.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
image:
repository: ghcr.io/ORG/APP
digest: sha256:REPLACE_WITH_VERIFIED_DIGEST
cosign verify --certificate-identity IDENTITY --certificate-oidc-issuer ISSUER ghcr.io/ORG/APP@sha256:REAL_DIGEST
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Trong lab Buổi 18, dùng promotion script trên data giả lập kiểm tra Dev→Staging→Prod chỉ nhận đúng digest của môi trường trước.
Lỗi dễ mắc
Promotion JSON tự ghi không phải bằng chứng reviewer thực sự approve. Phải đối chiếu protected PR history/environment audit.
Tự kiểm tra
Build lại source trong production có bảo đảm cùng digest với image đã test không?Xem đáp án ↗
Không. Build environment và dependencies có thể thay đổi; ưu tiên promote artifact đã kiểm chứng.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 18Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗