TechPartner

← Quay lại Blog
Khóa học System Design cơ bản — thiết kế hệ thống scale 1 → 1 triệu user · Phần 3 / 10

Scale database (3/10): ~100 user — PostgreSQL managed & connection pool

Thiết kế hệ thống ~100 người dùng: tách PostgreSQL managed, connection pool, health check, backup — chuẩn bị scale app sau này.

· 2 min read

Khóa học System Design cơ bản — thiết kế hệ thống scale 1 → 1 triệu user · Phần 3/10
  1. 1Nền tảng metric & CAP
  2. 2Monolith 1 server
  3. 3Tách DB & vận hành
  4. 4Redis + CDN
  5. 5Read replica
  6. 6Load balancer
  7. 7Message queue
  8. 8Sharding & đa vùng
  9. 9Phỏng vấn & cheat sheet
  10. 10Capstone ShortLink
Mục lục
  1. Mục tiêu phần 3
  2. Vì sao tách DB khỏi app?
  3. Connection pool
  4. Health check
  5. Backup & restore drill
  6. Bài tập
Users (~100)App VM + Connection poolManaged PostgreSQL + BackupHealth check / metrics
Giai đoạn ~100 người dùng: tách app và DB managed, thêm pool và backup.

Mục tiêu phần 3

Quy mô ~100 người dùng: traffic không lớn nhưng bạn cần vận hành an toàn — DB tách khỏi app, backup tự động, connection pool, health check.


Vì sao tách DB khỏi app?

Khi ~100 user, burst traffic và cron backup có thể làm CPU spike trên một máy. Tách DB sang managed service (RDS, Cloud SQL, Neon…):

  • Patch/security do nhà cung cấp lo một phần
  • Snapshot backup theo lịch
  • Scale vertical DB độc lập app
Users → Nginx → App VM (pool 20 conn)
                    → Managed PostgreSQL
                    → /health + uptime ping

Connection pool

Mỗi request mở connection mới → tốn RAM Postgres (max_connections). App giữ pool (PgBouncer hoặc pool trong driver).

Tham số Gợi ý beginner
pool_size 10–30 cho app nhỏ
idle timeout 30s
statement timeout 5–10s cho API

Health check

  • Liveness: process sống → 200 /health
  • Readiness: app kết nối DB OK → mới nhận traffic (khi có LB sau này)

Backup & restore drill

  1. Bật daily snapshot.
  2. Một lần/quý: restore sang instance test → verify row count.

Bài tập

Tính: 100 user, peak 20 concurrent request, mỗi request 2 query 10ms — DB cần mấy core? (gợi ý: so sánh với 1 core ~100 query/s tuỳ query)


Điều hướng seri: ← Phần 2 · Phần 4 →

Câu hỏi thường gặp

Phần 3 tập trung vào quy mô nào?

Thiết kế hệ thống ~100 người dùng: tách PostgreSQL managed, connection pool, health check, backup — chuẩn bị scale app sau này.

Startup của bạn cần tech partner?

Trao đổi miễn phí về MVP, timeline và mô hình chia lợi nhuận phù hợp.