Quy trình xử lý sự cố
| Bước | Hành động | Thời gian mục tiêu |
|---|---|---|
| 1. Phát hiện | Alert hoặc user báo lỗi | < 5 phút |
| 2. Đánh giá | Severity? Ảnh hưởng bao nhiêu user? | < 10 phút |
| 3. Thông báo | Báo team, stakeholder, status page | < 15 phút |
| 4. Khoanh vùng | Tìm service/component lỗi | < 30 phút |
| 5. Xử lý | Rollback, hotfix, restart | Tuỳ mức độ |
| 6. Postmortem | Viết báo cáo, rút kinh nghiệm, tạo action item | < 48 giờ |
Rollback: vũ khí số 1
Khi sự cố xảy ra ngay sau deploy, rollback là cách nhanh nhất để phục hồi. Tag mỗi release bằng git tag v1.2.0 và Docker tag. Rollback = deploy lại bản cũ, mất < 2 phút.
// File: rollback.sh
# Tag trước mỗi release
git tag v1.2.0
docker tag myapp:latest myapp:v1.2.0
# Khi cần rollback
docker stop myapp
docker run -d --name myapp myapp:v1.1.0 # quay lại bản cũ
# Hoặc với Railway/Render
# Vào dashboard → Deployments → Redeploy bản trước
Postmortem: không đổ lỗi, chỉ tìm nguyên nhân gốc
Postmortem không phải để trách ai, mà để hệ thống không lặp lại lỗi. Format: (1) Timeline chính xác, (2) Root cause, (3) Impact, (4) What went well, (5) What can be improved, (6) Action items có người và deadline.
Văn hoá “không đổ lỗi” khuyến khích mọi người thật thà chia sẻ sai lầm. Nếu mọi người sợ bị phạt, họ giấu thông tin → lần sau lặp lại. Senior tạo không gian an toàn để team học từ sự cố.
❓ Hành động đầu tiên khi phát hiện sự cố production nên là gì?
- Thuộc 6 bước xử lý sự cố
- Chuẩn bị rollback nhanh trước mỗi deploy
- Viết postmortem blameless
- Tạo action items có người và deadline