Files
goodgo-platform/docs/audits/README_INFRASTRUCTURE.md
Ho Ngoc Hai 11f2bf26e6
Some checks failed
CI / Lint → Typecheck → Test → Build (22) (push) Failing after 29s
CI / E2E Tests (push) Has been skipped
CodeQL Analysis / CodeQL (javascript-typescript) (push) Failing after 2m42s
Deploy / Build Web Image (push) Failing after 27s
Deploy / Build AI Services Image (push) Failing after 29s
E2E Tests / Playwright E2E (push) Failing after 43s
Deploy / Build API Image (push) Failing after 1m31s
Security Scanning / Dependency Audit (pnpm) (push) Failing after 6s
Security Scanning / Trivy Scan — API Image (push) Failing after 5m35s
Security Scanning / Trivy Scan — AI Services Image (push) Failing after 3m45s
Deploy / Deploy to Staging (push) Has been skipped
Deploy / Smoke Test Staging (push) Has been skipped
Deploy / Deploy to Production (push) Has been skipped
Deploy / Smoke Test Production (push) Has been skipped
Deploy / Rollback Staging (push) Has been skipped
Deploy / Rollback Production (push) Has been skipped
Security Scanning / Trivy Scan — Web Image (push) Failing after 13m51s
Security Scanning / Trivy Filesystem Scan (push) Failing after 14m46s
Security Scanning / Security Gate (push) Has been cancelled
chore: update project documentation, audit reports, and initialize IDE configuration files
2026-04-19 03:12:54 +07:00

279 lines
11 KiB
Markdown

# 📚 GoodGo Platform — Tài liệu Hạ tầng
Thư mục này chứa **ba tài liệu vận hành toàn diện** dành cho hạ tầng GoodGo Platform.
## 📖 Các Tệp Tài liệu
### 1. **INFRASTRUCTURE_RUNBOOK.md** (1.458 dòng)
**→ Đọc tài liệu này để có tài liệu tham chiếu vận hành đầy đủ**
Hướng dẫn toàn diện bao gồm:
- ✅ Tóm tắt điều hành (tổng quan 12+ dịch vụ)
- ✅ Danh sách đầy đủ các dịch vụ kèm cổng, kiểm tra sức khoẻ, phụ thuộc
- ✅ Đặc tả Docker Compose (môi trường dev, prod, CI)
- ✅ Tầng cơ sở dữ liệu (PostgreSQL 16 + PostGIS, 22 mô hình Prisma)
- ✅ Gộp kết nối (cấu hình PgBouncer, chế độ giao dịch)
- ✅ Chiến lược sao lưu & khôi phục (sao lưu tự động hàng ngày, xác minh)
- ✅ Bộ nhớ đệm & tìm kiếm (Redis giảm cấp nhẹ nhàng, Typesense toàn văn)
- ✅ Giám sát & quan sát (Prometheus, bảng điều khiển Grafana, nhật ký Loki)
- ✅ Tích hợp thanh toán (VNPay, MoMo, ZaloPay, xử lý callback)
- ✅ Kiểm tra sức khoẻ (liveness, readiness, probe theo phụ thuộc)
- ✅ Tài liệu tham chiếu đầy đủ biến môi trường
- ✅ Quy trình triển khai (CI/CD GitHub Actions, bản dựng Docker)
- ✅ Hướng dẫn xử lý sự cố chi tiết với 7+ vấn đề phổ biến
- ✅ Quy trình khẩn cấp và truy vấn Prometheus
**Dùng khi:** Tạo runbook, điều tra sự cố, giới thiệu thành viên mới vào đội vận hành
---
### 2. **INFRASTRUCTURE_QUICK_REFERENCE.md** (222 dòng)
**→ Đọc tài liệu này để tra cứu nhanh**
Tài liệu tham chiếu nhanh bao gồm:
- 🚀 Lệnh khởi động nhanh (dev, prod, CI)
- 📊 Bản đồ dịch vụ với cổng và kiểm tra sức khoẻ
- 🗄️ Tổng quan cơ sở dữ liệu (lịch sao lưu, gộp kết nối)
- 💾 Tóm tắt bộ nhớ đệm & tìm kiếm (tính năng Redis, Typesense)
- 📈 Liên kết bảng điều khiển giám sát
- 💳 Tóm tắt cổng thanh toán
- 🏥 Tài liệu tham chiếu endpoint kiểm tra sức khoẻ
- 🔐 Biến môi trường quan trọng
- 📦 Ảnh container triển khai
- 🆘 Các bước xử lý sự cố phổ biến (5 cách khắc phục nhanh)
- 📝 Vị trí tệp quan trọng và liên kết
- 📞 Lệnh Docker thường dùng
**Dùng khi:** Gỡ lỗi nhanh, tra cứu ca trực, kiểm tra sức khoẻ nhanh
---
### 3. **INFRASTRUCTURE_AUDIT.md** (1.246 dòng)
**→ Đọc tài liệu này để xem toàn bộ lịch sử kiểm tra**
Kiểm tra chi tiết bao gồm:
- Nội dung tệp cấu hình thô
- Phân tích từng dòng của từng dịch vụ
- Đặc tả biến môi trường
- Sơ đồ luồng callback thanh toán (dạng văn bản)
- Chi tiết cài đặt kiểm tra sức khoẻ
- Quy trình xác minh sao lưu
- Các giai đoạn quy trình CI/CD
**Dùng khi:** Xác minh độ chính xác tài liệu hạ tầng, kiểm toán tuân thủ
---
## 🎯 Điều hướng Nhanh
### Theo Vai trò
**🔧 Kỹ sư DevOps/SRE**
1. Bắt đầu: INFRASTRUCTURE_QUICK_REFERENCE.md (tổng quan 5 phút)
2. Tìm hiểu sâu: INFRASTRUCTURE_RUNBOOK.md (phần 2-3, 7, 11)
3. Tham chiếu: INFRASTRUCTURE_AUDIT.md (để xem cấu hình thô)
**💼 Quản lý Kỹ thuật/Trưởng nhóm Kỹ thuật**
1. Bắt đầu: INFRASTRUCTURE_RUNBOOK.md (phần 1: Tóm tắt Điều hành)
2. Chi tiết: INFRASTRUCTURE_RUNBOOK.md (phần 2-6, 10)
**🚀 Kỹ sư Trực**
1. Bắt đầu: INFRASTRUCTURE_QUICK_REFERENCE.md (toàn bộ tài liệu)
2. Xử lý sự cố: INFRASTRUCTURE_RUNBOOK.md (phần 12)
3. Gỡ lỗi: INFRASTRUCTURE_AUDIT.md (nhật ký/cấu hình thô nếu cần)
**👤 Thành viên Mới**
1. Bắt đầu: INFRASTRUCTURE_QUICK_REFERENCE.md (tổng quan)
2. Tìm hiểu: INFRASTRUCTURE_RUNBOOK.md (phần 1-6)
3. Thực hành: Dùng các lệnh phổ biến từ Quick Reference
---
## 🔍 Câu hỏi Thường gặp & Nơi Tìm Câu trả lời
| Câu hỏi | Tài liệu | Phần |
|----------|----------|------|
| "Có bao nhiêu dịch vụ đang chạy?" | Runbook | 1. Tóm tắt Điều hành |
| "Tôi cần biết những cổng nào?" | Quick Reference | 📊 Bản đồ Dịch vụ |
| "Cơ sở dữ liệu được sao lưu thế nào?" | Runbook | 8. Sao lưu & Khôi phục |
| "Callback thanh toán thất bại, làm gì?" | Runbook | 12. Xử lý Sự cố (Callback Thanh toán) |
| "Redis bị lỗi, ứng dụng có hoạt động không?" | Runbook | 5. Bộ nhớ đệm & Tìm kiếm (Giảm cấp Nhẹ nhàng) |
| "Làm sao khởi động lại một dịch vụ?" | Quick Reference | 📞 Lệnh Thường dùng |
| "Cấu hình giám sát như thế nào?" | Runbook | 6. Giám sát & Quan sát |
| "Biến môi trường ở đâu?" | Runbook | 9. Biến Môi trường |
| "Làm sao triển khai lên production?" | Runbook | 11. Quy trình Triển khai |
| "Kiểm tra sức khoẻ làm gì?" | Runbook | 7. Kiểm tra Sức khoẻ |
---
## 📊 Tổng quan Hạ tầng
```
Development Environment
├── 12 Services (no resource limits)
├── PostgreSQL 16 + PostGIS (5432)
├── Redis 7 (6379, 256MB)
├── Typesense 27.1 (8108)
├── Prometheus (9090, 15-day retention)
├── Grafana (3002, 7 dashboards)
├── Loki (3100, 15-day logs)
└── API/Web/AI services
Production Environment
├── 14 Services (with resource limits, security hardening)
├── PgBouncer (6432, 20-connection pool)
├── PostgreSQL 16 + PostGIS (5432)
├── Redis 7 (6379, 512MB, password auth)
├── Typesense 27.1 (8108)
├── Prometheus (9090, 30-day retention)
├── Grafana (3002, secrets management)
├── Loki (3100, 15-day logs)
└── API/Web/AI services (zero-downtime deployments)
CI/E2E Environment
├── 4 Services (tmpfs for speed)
├── PostgreSQL test DB
├── Redis (no persistence)
└── Typesense + MinIO (tmpfs)
```
---
## 🔗 Tệp Liên quan trong Kho lưu trữ
```
goodgo-platform-ai/
├── README_INFRASTRUCTURE.md (TỆP NÀY)
├── INFRASTRUCTURE_RUNBOOK.md (Tài liệu tham chiếu đầy đủ)
├── INFRASTRUCTURE_QUICK_REFERENCE.md (Tra cứu nhanh)
├── INFRASTRUCTURE_AUDIT.md (Kiểm tra chi tiết)
├── docker-compose.yml (Môi trường Dev)
├── docker-compose.prod.yml (Production)
├── docker-compose.ci.yml (Testing)
├── .env.example (Mẫu biến môi trường)
├── prisma/schema.prisma (Mô hình dữ liệu, 22 mô hình Prisma)
├── infra/pgbouncer/ (Gộp kết nối)
├── monitoring/ (Cấu hình Prometheus, Grafana, Loki)
├── scripts/backup/ (Script sao lưu và xác minh)
└── .github/workflows/ (Quy trình CI/CD)
├── ci.yml (Lint → Test → Build)
├── deploy.yml (Dựng ảnh, triển khai)
├── e2e.yml (Kiểm thử đầu-cuối)
├── backup-verify.yml (Xác minh sao lưu hàng tuần)
└── security.yml (Quét phụ thuộc)
```
---
## 🆘 Hỗ trợ Khẩn cấp
### "API bị lỗi. Tôi cần kiểm tra gì?"
1. Đọc: INFRASTRUCTURE_QUICK_REFERENCE.md → 🆘 Xử lý Sự cố
2. Lệnh nhanh:
```bash
docker compose ps api
docker compose logs api --tail=50
curl http://localhost:3001/health/ready
```
3. Vẫn chưa giải quyết được: Xem INFRASTRUCTURE_RUNBOOK.md → 12. Xử lý Sự cố
### "Tôi cần triển khai lên production"
1. Đọc: INFRASTRUCTURE_QUICK_REFERENCE.md → 📦 Triển khai
2. Tiếp theo: INFRASTRUCTURE_RUNBOOK.md → 11. Quy trình Triển khai
3. Xem lại: `.github/workflows/deploy.yml` để biết các bước thực tế
### "Cơ sở dữ liệu chậm"
1. Đọc: INFRASTRUCTURE_RUNBOOK.md → 4. Tầng Cơ sở Dữ liệu (Gộp Kết nối)
2. Kiểm tra: INFRASTRUCTURE_QUICK_REFERENCE.md → 🆘 "Gộp kết nối cơ sở dữ liệu đầy?"
3. Truy vấn: Dùng truy vấn Prometheus từ INFRASTRUCTURE_RUNBOOK.md
### "Làm sao khôi phục từ bản sao lưu?"
1. Đọc: INFRASTRUCTURE_RUNBOOK.md → 8. Sao lưu & Khôi phục
2. Các bước: Phần "Restore from Backup" với lệnh chính xác
---
## 📈 Chỉ số Chính & SLO
Từ phần giám sát trong INFRASTRUCTURE_RUNBOOK.md:
| Chỉ số | Cảnh báo | Nghiêm trọng | Nguồn |
|--------|---------|----------|--------|
| Độ trễ p99 API | > 1s (5 phút) | > 3s (3 phút) | Histogram Prometheus |
| p99/endpoint API | > 2s (5 phút) | N/A | Prometheus |
| Tỷ lệ lỗi 5xx | > 1% (5 phút) | N/A | Prometheus |
| Phản hồi cơ sở dữ liệu | Được giám sát | Được giám sát | Bảng điều khiển Grafana |
| Khả dụng Redis | Giảm cấp nhẹ nhàng | Giảm cấp nhẹ nhàng | Ứng dụng tiếp tục trên DB |
Bảng điều khiển có sẵn tại `http://localhost:3002` (Grafana):
- API Latency
- API Overview
- Database Metrics
- Logs & Errors
- Search Analytics
- Web Vitals
- Business Metrics
---
## 🔐 Lưu ý Bảo mật
Từ phần biến môi trường trong INFRASTRUCTURE_RUNBOOK.md:
**QUAN TRỌNG (Production):**
- JWT_SECRET phải có ít nhất 32 ký tự (tạo: `openssl rand -base64 48`)
- KYC_ENCRYPTION_KEY phải là 64 ký tự hex (tạo: `openssl rand -hex 32`)
- Tất cả thông tin xác thực cổng thanh toán phải được luân chuyển định kỳ
- Redis yêu cầu xác thực bằng mật khẩu trong môi trường production
- Container Docker chạy với người dùng không phải root (người dùng node)
- Hệ thống tệp chỉ đọc cho container ứng dụng
- Đặt cờ no new privileges
---
## 📞 Quy trình Leo thang
1. **Vấn đề Khẩn cấp?** → INFRASTRUCTURE_QUICK_REFERENCE.md
2. **Vấn đề Phức tạp?** → INFRASTRUCTURE_RUNBOOK.md phần 12
3. **Cần Lịch sử Kiểm tra?** → INFRASTRUCTURE_AUDIT.md
4. **Vẫn Chưa Giải quyết?** → Kiểm tra .github/workflows/ hoặc lịch sử git
---
## 📝 Cập nhật Tài liệu
Các tài liệu này được tạo vào **ngày 11 tháng 4 năm 2026** từ một cuộc kiểm tra hạ tầng toàn diện của monorepo GoodGo Platform.
**Để giữ tài liệu luôn cập nhật:**
- Cập nhật tài liệu này khi thêm dịch vụ mới
- Xem lại cấu hình giám sát sau khi thay đổi hạ tầng
- Kiểm thử quy trình sao lưu hàng tháng (đã được tự động hoá)
- Cập nhật runbook dựa trên postmortem sự cố
---
## 🎓 Lộ trình Học tập
**Dành cho thành viên mới:**
1. **Ngày 1:** Đọc INFRASTRUCTURE_QUICK_REFERENCE.md (30 phút)
2. **Ngày 2:** Đọc INFRASTRUCTURE_RUNBOOK.md phần 1-3 (1 giờ)
3. **Ngày 3:** Thực hành lệnh từ Quick Reference cùng người hướng dẫn
4. **Ngày 4:** Đọc INFRASTRUCTURE_RUNBOOK.md phần 4-7 (1,5 giờ)
5. **Ngày 5:** Đọc INFRASTRUCTURE_RUNBOOK.md phần 8-12 (1,5 giờ)
6. **Tuần 2:** Theo sát kỹ sư trực, thực hành xử lý sự cố
7. **Tuần 3:** Nhận ca trực
---
**Cập nhật lần cuối:** Ngày 11 tháng 4 năm 2026
**Phiên bản:** 1.0
**Người bảo trì:** GoodGo Platform SRE Team
---
*Để đặt câu hỏi hoặc cập nhật tài liệu này, liên hệ: devops@goodgo.vn*