CHƯƠNG 08 · Docker Production & CI/CD•BÀI 32 / 80

Deploy, rollback và dữ liệu bền vững

Thực hành vòng đời release không làm hỏng database.

Vận hành◷ 4 phút đọc4/4 trong chương

Nắm bản chất

Một deployment production-style cần release artifact xác định, preflight checks, backup có thể restore, migrations tương thích, smoke test và rollback trigger. Single-VPS Docker Compose deployment không phải zero-downtime hay HA tự nhiên.

Tách image rollback khỏi database rollback. Nếu schema migration đã xóa column cũ, đổi image về phiên bản trước chưa chắc chạy. Ưu tiên expand-and-contract migrations và kiểm tra rollback path trước release.

Luồng hoạt động

Backup→deploy→verify→rollback

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

docker compose -f compose.prod.yaml config --quiet
docker compose -f compose.prod.yaml pull
docker compose -f compose.prod.yaml up -d --no-build
docker compose -f compose.prod.yaml ps
curl -fsS http://127.0.0.1:8088/api/health/ready

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

✳

Viết release checklist có người phê duyệt, image digest, backup file, smoke test và dấu hiệu rollback. Thực hành chỉ trên VPS lab có dữ liệu giả lập.

Lỗi dễ mắc

!

Không dùng docker compose down -v trong rollback. Không restore database về snapshot cũ khi chưa tính đến giao dịch mới vừa phát sinh.

Tự kiểm tra

Rollback image có tự đảo ngược migrations không?Xem đáp án ↗

Không. Database schema/data cần chiến lược backward compatibility hoặc restore riêng.

TÀI NGUYÊN ĐI KÈM

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 08
NGUỒN CHÍNH THỨC

Đố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 ↗