DevOps — Tổng quan hệ thống nền#
Mục tiêu: DevOps/SRE mới nhận hiểu stack T-Fluencers, các job nền, integrations chính, và quy trình incident response.
Mục tiêu#
- Hiểu kiến trúc tổng thể T-Fluencers.
- Biết các services/jobs chính.
- Hiểu các integrations ngoài (Techcombank, OpsHub, MXH APIs).
- Quy trình xử lý sự cố.
Kiến trúc hệ thống#
Stack#
- Frontend (Creator Portal): Next.js / React
- Admin Portal: Umi (Ant Design Pro)
- Dashboard (Brand Analytics): Next.js 16 + next-intl
- Backend: Go + MongoDB + Redis
- Queue: Asynq
- File Storage: MinIO
- External services: Vertex AI, Techcombank API, OpsHub
Components chính#
[Creator Portal] [Admin Portal] [Dashboard]
↓ ↓ ↓
[Backend API - Go]
↓
[MongoDB] [Redis] [Asynq Queue]
↓
[Crawlers MXH] [Techcombank API] [OpsHub AI] [Notifications]
Multi-partner#
Hệ thống hỗ trợ multi-partner (AccessTrade quản lý nhiều partner; Techcombank là 1 partner).
Mỗi partner có:
- Staff riêng
- Campaigns riêng
- Budget pool riêng
- Branding config riêng
Các job nền chính#
| Job | Tần suất | Mục đích |
|---|---|---|
| Crawl MXH | Mỗi 1–6h | Đồng bộ views/likes/comments |
| Daily Snapshot | 2 AM mỗi ngày | Chốt số liệu hàng ngày |
| Post-expiry Snapshot | Khi event hết hạn | Chốt số liệu cuối |
| Auto-reject | Mỗi giờ | Reject bài không đủ chuẩn sau contentAge |
| Segment match (AUTOMATIC) | Mỗi giờ | Gán user vào segment tự động |
| Score calculation | Daily | Tính Creator Score |
| Reconciliation running | Trigger bởi admin | Cộng tiền cho content approved |
| Transfer sync | Trigger bởi admin | Sync status với Techcombank API |
| Notification dispatch | On-demand / Schedule | Gửi push |
| Budget alert | Mỗi 15 phút | Check threshold, gửi alert |
Chi tiết: Giám sát Cron Jobs.
Integrations#
Techcombank API#
- Purpose: Sync withdraw transactions + reconciliation.
- Endpoint: (internal, do DevOps hold credential).
- Auth: OAuth2 / API key.
- Failure modes: rate limit, timeout, webhook miss.
OpsHub (AI Moderator)#
- Purpose: Review bài dự thi bằng AI.
- Endpoint:
opshub-api.diso.vn. - Trigger: webhook từ T-Fluencers → OpsHub.
- Callback: OpsHub → T-Fluencers với verdict.
- Maintenance APIs:
POST /api/v1/maintenance/rerun-ai— chạy lại AI cho failed checks.POST /api/v1/maintenance/redispatch-verdict— resend verdict.POST /api/v1/maintenance/backfill-shift-code— backfill dữ liệu.
MXH APIs#
- TikTok: OAuth + Content Posting API.
- YouTube: YouTube Data API v3.
- Facebook/Instagram: Graph API.
Credentials trong Vault / secret manager (DevOps).
Xử lý sự cố (Incident response)#
Pha 1: Phát hiện#
Nguồn:
- Alert từ monitoring (Prometheus, Grafana, Sentry).
- Complaint từ Ops/Admin qua Slack.
- Dashboard Brand báo số lệch.
Pha 2: Triage#
- Severity: P0 (tiền không chạy) / P1 (feature broken) / P2 (lạ, chờ xem).
- Identify service affected.
Pha 3: Mitigate#
Short-term:
- Rollback nếu deploy gần đây.
- Scale up nếu overload.
- Block create reward nếu số tiền lệch (prevent damage).
Pha 4: Fix + Postmortem#
- Root cause analysis.
- PR fix, merge, deploy.
- Postmortem doc.
Lỗi thường gặp#
1. Mới join, không biết login đâu#
- URLs Admin Portal, Dashboard, OpsHub — hỏi team lead.
- Credentials trong Vault.
2. Không có access CI/CD#
- Yêu cầu Infra team thêm role.
3. Data hệ thống test khác production#
- Đúng. Test env có data dummy. Verify trên staging trước khi production change.
Câu hỏi thường gặp (FAQ)#
Repo code ở đâu?
- Frontend, Admin, Dashboard:
accesstrade-projects/techcombank/{frontend,admin,dashboard}. - Backend:
accesstrade-projects/techcombank/backend. - OpsHub: repo riêng.
- at-core (Go middleware):
accesstrade-projects/at-core.
Docs internal?
docs/context/ARCHITECTURE.md(có thể outdated — tham khảo kèm code).docs/nghiemthu-tfluencers/srs-v2.md— SRS authoritative.- Handbook (này) — end-user docs.
On-call rotation?
- Check Slack channel
#tcb-oncallhoặc tool PagerDuty.
SLO/SLA?
- API p99 < 500ms.
- Uptime > 99.5%.
- Withdraw processing < 7 ngày.
Chi tiết trong doc SRE riêng.
Có runbook không?
Runbook cho các incident thường gặp nằm trong docs/runbooks/ (nếu có) hoặc Confluence.
Liên kết liên quan#
Tham khảo SRS: background-system/00-overview