# Runbook Phản Ứng Sự Cố

## Mức Độ Nghiêm Trọng

- **P0 - Nghiêm Trọng**: Dịch vụ hoàn toàn ngừng hoạt động, mất dữ liệu
- **P1 - Cao**: Chức năng chính bị lỗi, ảnh hưởng đến nhiều người dùng
- **P2 - Trung Bình**: Chức năng phụ bị lỗi, có giải pháp thay thế
- **P3 - Thấp**: Lỗi giao diện, không ảnh hưởng người dùng

## Quy Trình Phản Ứng

### 1. Xác Nhận Sự Cố

- Xác định mức độ nghiêm trọng
- Thông báo cho team qua Slack/email
- Tạo ticket sự cố

### 2. Điều Tra

- Kiểm tra các endpoint health của service
- Xem logs: `./scripts/dev/logs.sh <service>`
- Kiểm tra monitoring dashboards (Grafana)
- Xem lại các deployment gần đây

### 3. Giảm Thiểu

- Áp dụng các sửa lỗi nhanh nếu có
- Rollback nếu deployment gần đây gây ra vấn đề
- Scale up nếu thiếu tài nguyên

### 4. Giải Quyết

- Triển khai sửa lỗi vĩnh viễn
- Xác minh giải pháp
- Cập nhật tài liệu

### 5. Hậu Phân Tích

- Ghi lại sự cố
- Xác định nguyên nhân gốc rễ
- Tạo các hành động cần thực hiện
- Cập nhật runbooks

## Các Tình Huống Thường Gặp

### Service Ngừng Hoạt Động

1. Kiểm tra Kubernetes pods: `kubectl get pods -n <namespace>`
2. Kiểm tra pod logs: `kubectl logs <pod-name> -n <namespace>`
3. Khởi động lại service: `kubectl rollout restart deployment/<service> -n <namespace>`
4. Nếu vẫn lỗi, rollback: `kubectl rollout undo deployment/<service> -n <namespace>`

### Vấn Đề Database

1. Kiểm tra kết nối database
2. Xem lại các query chậm
3. Kiểm tra connection pool
4. Scale database nếu cần

### Tỷ Lệ Lỗi Cao

1. Kiểm tra error logs
2. Xem lại các thay đổi gần đây
3. Kiểm tra các dependencies bên ngoài
4. Triển khai circuit breaker nếu cần
