Ưu tiên phục hồi dịch vụ trước, điều tra sau. Thứ tự xử lý theo mức rủi ro tăng dần:
1. Tắt feature flag nếu tính năng có flag — vài giây, không đụng tới quy trình deploy.
2. Chuyển traffic về version cũ (blue-green giữ nguyên môi trường cũ, hoặc kubectl rollout undo). Vẫn là artifact đã chạy ổn định trước đó nên rủi ro thấp nhất trong nhóm deploy.
3. Deploy lại image của commit trước. Chỉ khả thi nếu artifact bất biến, tag theo SHA và còn trong registry.
4. Revert commit rồi chờ pipeline build lại — chậm nhất, phụ thuộc pipeline đang xanh. Là phương án cuối, không phải phương án đầu.
Ràng buộc thường bị bỏ sót:
- Migration DB đã chạy thì rollback code không tự hoàn tác schema. Nếu migration không tương thích ngược, version cũ sẽ hỏng ngay khi quay lại — đây là lý do migration phải backward compatible.
- Cache và message đang chờ có thể mang format mới; version cũ phải bỏ qua được field lạ.
- Cần định nghĩa trước tiêu chí rollback (error rate, p99 latency vượt ngưỡng trong N phút) để người trực quyết định mà không cần họp.
Rollback phải được tập dượt định kỳ; đường thoát chưa từng thử là đường thoát chưa có.