Deploy lên production mà không có checklist, không log, rollback bằng cách cầu nguyện.
Trong nhiều dự án, deploy vẫn là “nghệ thuật thủ công”: SSH vào server, chạy git pull, sửa config bằng tay, rồi cầu trời cho hệ thống không sập. Đây là cơn ác mộng của bất kỳ Fractional CTO nào khi audit quy trình release.
![]() |
Khi deploy production mà không có checklist |
Phân tích: Deploy thủ công đầy rủi ro
Deploy bằng tay thường thấy ở các team nhỏ hoặc dự án MVP:
- Quy trình: Dev SSH vào server, chạy git pull origin main, restart service.
- Sửa config thủ công: Chỉnh file .env hoặc database connection ngay trên production.
- Không log, không checklist: Ai deploy? Deploy gì? Không ai nhớ!
Hậu quả:
- Loạn version: Server production chạy code lẫn lộn giữa các commit.
- Môi trường lệch nhau: Dev, staging, production có config khác nhau, lỗi chỉ xuất hiện ở production.
- Rollback bất khả thi: Khi lỗi, chỉ còn cách sửa code và deploy lại, thường vào 2h sáng.
Giải pháp: GitOps và CI/CD cơ bản
Để release chuyên nghiệp hơn:
- Dùng GitOps: Mọi thay đổi code/config được quản lý qua Git, không sửa tay trên server.
- Setup CI/CD cơ bản: Dùng GitHub Actions, GitLab CI để tự động build, test, deploy.
- Checklist release: Ghi lại các bước (build, test, backup DB, deploy), log ai làm gì, khi nào.
Ví dụ: Một pipeline đơn giản: build → test → deploy staging → manual approval → deploy production.
🎯 Tóm lại: Deploy thủ công là con đường dẫn đến thảm họa. Áp dụng GitOps, CI/CD, và checklist để release an toàn, minh bạch, và không cần cầu nguyện.
Đăng nhận xét