72 lines
1.5 KiB
Markdown
72 lines
1.5 KiB
Markdown
# Quy Trình Rollback
|
|
|
|
## Khi Nào Cần Rollback
|
|
|
|
- Service ngừng hoạt động hoặc không ổn định
|
|
- Lỗi nghiêm trọng được phát hiện
|
|
- Hiệu suất suy giảm
|
|
- Rủi ro hỏng dữ liệu
|
|
|
|
## Các Bước Rollback
|
|
|
|
### Rollback Kubernetes
|
|
|
|
1. **Xác định phiên bản hiện tại**
|
|
```bash
|
|
kubectl get deployment iam-service -n production -o jsonpath='{.spec.template.spec.containers[0].image}'
|
|
```
|
|
|
|
2. **Rollback về phiên bản trước**
|
|
```bash
|
|
kubectl rollout undo deployment/iam-service -n production
|
|
```
|
|
|
|
3. **Xác minh rollback**
|
|
```bash
|
|
kubectl rollout status deployment/iam-service -n production
|
|
```
|
|
|
|
4. **Kiểm tra health của service**
|
|
```bash
|
|
curl https://api.goodgo.vn/health
|
|
```
|
|
|
|
### Rollback Database Migration
|
|
|
|
**Lưu ý**: Prisma không hỗ trợ rollback tự động. Tạo migration mới để đảo ngược thay đổi.
|
|
|
|
1. Tạo migration đảo ngược:
|
|
```bash
|
|
cd services/iam-service
|
|
pnpm prisma migrate dev --name rollback_previous_change
|
|
```
|
|
|
|
2. Áp dụng migration đảo ngược:
|
|
```bash
|
|
pnpm prisma migrate deploy
|
|
```
|
|
|
|
### Rollback Docker Compose
|
|
|
|
1. Dừng các container hiện tại:
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
2. Checkout phiên bản trước:
|
|
```bash
|
|
git checkout <previous-commit>
|
|
```
|
|
|
|
3. Rebuild và khởi động:
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
## Sau Khi Rollback
|
|
|
|
1. Xác minh chức năng
|
|
2. Theo dõi metrics
|
|
3. Ghi lại lý do rollback
|
|
4. Lập kế hoạch sửa lỗi cho deployment tiếp theo
|