Giao diện
Phase 1 — Bản đồ học System Design
Khi một kỹ sư senior được hỏi "Thiết kế hệ thống cho 10 triệu users", điều đầu tiên họ làm không phải là vẽ diagram — mà là đặt câu hỏi. Read/write ratio là bao nhiêu? Latency budget ra sao? Data có cần strong consistency không? Những câu hỏi đó chỉ xuất hiện tự nhiên khi bạn đã nắm vững building blocks — những viên gạch nền tảng mà mọi hệ thống lớn đều được xây dựng từ đó. Phase 1 chính là nơi bạn xây bộ từ vựng kiến trúc này.
Thay vì nhảy thẳng vào case study (Design Twitter, Design YouTube), chúng ta sẽ đi từ dưới lên: bắt đầu từ cách hai máy tính nói chuyện với nhau (networking), tiến đến cách phân phối traffic (load balancing), lưu trữ thông minh (caching), và cuối cùng là mở rộng database. Mỗi bài học giải quyết đúng một trade-off cốt lõi — kiểu quyết định mà architect phải đưa ra hàng ngày. Đến cuối Phase 1, bạn sẽ có đủ công cụ tư duy để bước vào bất kỳ cuộc thảo luận thiết kế hệ thống nào mà không cảm thấy lạc lõng.
🗺️ Lộ trình học — Learning Path
Diagram dưới đây thể hiện thứ tự bài học và sự phụ thuộc giữa chúng. Mỗi mũi tên nghĩa là bài trước cung cấp kiến thức cần thiết cho bài sau — đừng nhảy cóc.
Chú thích: 🔵 Cyan = Bài mới · 🟢 Xanh lá = Bài hiện có (được nâng cấp) · 🟣 Tím = Bài tổng hợp & chuyển tiếp
Sau bài HTTP/1.1 → 2 → 3, lộ trình mở rộng thành 3 nhánh song song — Load Balancing, Caching, và Database Scaling. Ba nhánh này độc lập nhau nên bạn có thể học theo bất kỳ thứ tự nào, nhưng cả ba đều cần hoàn thành trước khi vào bài Capstone.
📋 Chi tiết từng bài học
| # | Bài học | ⏱️ Thời gian | 🎯 Độ khó | 🔑 Trade-off cốt lõi | 📌 Yêu cầu trước |
|---|---|---|---|---|---|
| 1 | System Design Thinking | 25-35 phút | Foundation | Tốc độ phát triển vs. Khả năng mở rộng | — |
| 2 | OSI as Mental Scaffold | 30-40 phút | Foundation | Abstraction depth vs. Debugging speed | Bài 1 |
| 3 | TCP vs UDP | 30-40 phút | Foundation | Reliability vs. Latency | Bài 2 |
| 4 | DNS Resolution | 25-35 phút | Foundation | Caching TTL vs. Propagation delay | Bài 3 |
| 5 | HTTP/1.1 vs 2 vs 3 | 35-45 phút | Intermediate | Head-of-line blocking vs. Complexity | Bài 4 |
| 6 | Load Balancing & Reverse Proxy 🟢 | 35-45 phút | Foundation | L4 throughput vs. L7 flexibility | Bài 5 |
| 7 | Caching Strategies 🟢 | 30-40 phút | Intermediate | Freshness vs. Performance | Bài 5 |
| 8 | Database Scaling 🟢 | 40-50 phút | Foundation | Consistency vs. Partition tolerance | Bài 5 |
| 9 | Capstone: Building Blocks Combined | 30-40 phút | Intermediate | Toàn bộ trade-offs kết hợp | Bài 6, 7, 8 |
| 10 | Bridge to Case Studies | 15-20 phút | Foundation | Chọn đúng tool cho đúng bài toán | Bài 9 |
🟢 = Bài hiện có, được nâng cấp: Load Balancing, Caching và Database Scaling đã có nội dung — Phase 1 sẽ bổ sung phần networking context và liên kết chúng vào một lộ trình mạch lạc hơn.
Tổng thời gian ước tính: 5-7 giờ học (có thể chia thành 3-4 buổi)
🔮 Sneak Peek — Bạn sẽ phân tích hệ thống gì?
Mỗi building block trong Phase 1 đều xuất hiện lại trong các case study thực tế ở Phase 2. Đây là preview để bạn hình dung kiến thức Phase 1 được áp dụng như thế nào:
🐦 High-traffic Social Feed — Facebook / Twitter
300K requests/giây đổ vào timeline API. Fanout-on-write hay fanout-on-read? Cache ở đâu, invalidate khi nào? Bạn sẽ cần Load Balancing (bài 6) để phân phối traffic, Caching (bài 7) để giảm database load, và Database Scaling (bài 8) để shard user data — tất cả building blocks từ Phase 1.
📺 Video Streaming Platform — Netflix / YouTube
Một video 4K = 20 GB raw data, phục vụ cho hàng triệu viewers đồng thời ở 190 quốc gia. DNS Resolution (bài 4) quyết định user được route đến CDN edge nào. TCP vs UDP (bài 3) giải thích vì sao adaptive bitrate streaming chọn TCP thay vì UDP. HTTP/2 & HTTP/3 (bài 5) là backbone của mọi video chunk delivery.
📝 Real-time Collaborative App — Google Docs
50 người cùng edit một document — mỗi keystroke phải đồng bộ trong < 100ms. OSI layers (bài 2) giúp bạn hiểu WebSocket hoạt động ở tầng nào. Load Balancing (bài 6) phải đảm bảo sticky sessions cho cùng một document. Caching (bài 7) trở nên phức tạp khi data thay đổi liên tục — cache invalidation là bài toán khó nhất.
💬 Chat Application — WhatsApp / Slack
100 tỷ messages/ngày, end-to-end encrypted, offline delivery guarantee. TCP (bài 3) đảm bảo không mất message nào. DNS (bài 4) route users đến server gần nhất. Database Scaling (bài 8) — làm sao lưu trữ lịch sử chat khi mỗi ngày thêm hàng tỷ records mà query vẫn nhanh?
🎯 Sau Phase 1, bạn sẽ...
Khi hoàn thành cả 10 bài học, bạn sẽ có khả năng:
- ✅ Vẽ architecture diagram cho bất kỳ hệ thống nào với đúng các building blocks — không còn cảm giác "không biết bắt đầu từ đâu"
- ✅ Phân tích trade-offs giữa consistency, availability, và partition tolerance (CAP theorem) — và giải thích tại sao bạn chọn một bên
- ✅ Giải thích luồng request từ khi user nhấn Enter trong browser đến khi response hiện trên màn hình — qua DNS, TCP, HTTP, Load Balancer, Cache, Database
- ✅ Đặt đúng câu hỏi trong buổi phỏng vấn System Design — thay vì im lặng rồi nhảy vào vẽ boxes
- ✅ Nhận diện bottleneck trong một kiến trúc hiện có — biết chỗ nào sẽ chết trước khi traffic tăng 10x
- ✅ Sẵn sàng cho Phase 2 — Case Studies, nơi bạn thiết kế Twitter, YouTube, Uber, WhatsApp từ zero
Nhớ: Mục tiêu của Phase 1 không phải là ghi nhớ — mà là xây dựng trực giác kỹ thuật. Khi ai đó nói "thêm cache đi", bạn sẽ tự động hỏi: "Cache ở layer nào? Invalidation strategy là gì? Write-through hay write-behind?" Đó là tư duy của một architect.
🚀 Bắt đầu ngay
| Bạn là ai? | Bắt đầu tại |
|---|---|
| Mới với System Design | 👉 System Design Thinking — bài đầu tiên |
| Đã hiểu networking cơ bản | 👉 Load Balancing — nhảy thẳng vào application layer |
| Muốn xem case study trước | 👉 Case Studies — xem đích đến trước, quay lại Phase 1 khi cần |