Distributed Systems · Scalability · Interviews
Khóa học System Design từ cơ bản đến nâng cao
Biên soạn lại từ repo nổi tiếng karanpratapsingh/system-design (43k+ ⭐) bằng tiếng Việt, kèm bảng so sánh, sơ đồ và case study — phân chia rõ 3 cấp độ để bạn biết nội dung nào cần nắm chắc và nội dung nào là nâng cao.
Cách học hiệu quả: Học tuần tự theo số thứ tự. Nắm chắc nhóm Cơ bản (networking, caching, scaling) trước — đây là "từ vựng" của System Design. Sang Trung cấp để hiểu dữ liệu & kiến trúc. Nhóm Nâng cao đỉnh điểm là Bài 14 — vận dụng tất cả để giải 5 case study phỏng vấn thực tế.
🟢 Cơ bản
Bài 01
Giới thiệu System Design
System Design là gì, tại sao quan trọng, tư duy tổng thể từ hạ tầng đến dữ liệu.
Bài 02
Mạng cơ bản
IP, mô hình OSI, TCP vs UDP, và cách DNS phân giải tên miền hoạt động.
Bài 03
Load Balancing & Clustering
Phân phối tải, thuật toán định tuyến, cluster active-active/passive.
Bài 04
Caching, CDN & Proxy
Cache hit/miss, chiến lược write, eviction, CDN push/pull, forward/reverse proxy.
Bài 05
Availability, Scalability & Storage
"Số 9" của availability, scale dọc vs ngang, RAID, file/block/object storage.
🟡 Trung cấp
Bài 06
Databases: SQL vs NoSQL
DBMS, các loại NoSQL (document/key-value/graph...), khi nào chọn cái nào.
Bài 07
Mở rộng Database
Replication, Sharding, Consistent Hashing, Indexes, Normalization, Federation.
Bài 08
Nhất quán dữ liệu
ACID vs BASE, định lý CAP & PACELC, Transactions, 2PC/3PC, Saga.
Bài 09
Kiến trúc ứng dụng
N-tier, Monolith vs Microservices, API Gateway, BFF.
Bài 10
Giao tiếp & API
REST vs GraphQL vs gRPC; Long polling vs WebSockets vs SSE.
🔴 Nâng cao
Bài 11
Messaging bất đồng bộ
Message Brokers, Queues, Pub-Sub, ESB, EDA, Event Sourcing, CQRS.
Bài 12
Mẫu hệ phân tán
Geohashing/Quadtrees, Circuit Breaker, Rate Limiting, Service Discovery, SLA/SLO/SLI, DR.
Bài 13
Bảo mật & Hạ tầng
VMs vs Containers, OAuth 2.0/OIDC, SSO/SAML, SSL/TLS/mTLS.
Bài 14
Phỏng vấn & Case Studies
Quy trình 7 bước + thiết kế URL Shortener, WhatsApp, Twitter, Netflix, Uber.
ℹ️ Nguồn
Toàn bộ nội dung tổng hợp & dịch từ repo mã nguồn mở karanpratapsingh/system-design (giấy phép code MIT, tài liệu CC BY 4.0). Đây là tài liệu rất phổ biến để chuẩn bị phỏng vấn System Design. Khuyến khích đọc thêm repo gốc để xem các sơ đồ (diagrams) trực quan đi kèm.