TF
T-Fluencers Docs
Quay lại Wiki

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#

JobTần suấtMục đích
Crawl MXHMỗi 1–6hĐồng bộ views/likes/comments
Daily Snapshot2 AM mỗi ngàyChốt số liệu hàng ngày
Post-expiry SnapshotKhi event hết hạnChốt số liệu cuối
Auto-rejectMỗ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 calculationDailyTính Creator Score
Reconciliation runningTrigger bởi adminCộng tiền cho content approved
Transfer syncTrigger bởi adminSync status với Techcombank API
Notification dispatchOn-demand / ScheduleGửi push
Budget alertMỗi 15 phútCheck 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-oncall hoặ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