Skip to content

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
1System Design Thinking25-35 phútFoundationTốc độ phát triển vs. Khả năng mở rộng
2OSI as Mental Scaffold30-40 phútFoundationAbstraction depth vs. Debugging speedBài 1
3TCP vs UDP30-40 phútFoundationReliability vs. LatencyBài 2
4DNS Resolution25-35 phútFoundationCaching TTL vs. Propagation delayBài 3
5HTTP/1.1 vs 2 vs 335-45 phútIntermediateHead-of-line blocking vs. ComplexityBài 4
6Load Balancing & Reverse Proxy 🟢35-45 phútFoundationL4 throughput vs. L7 flexibilityBài 5
7Caching Strategies 🟢30-40 phútIntermediateFreshness vs. PerformanceBài 5
8Database Scaling 🟢40-50 phútFoundationConsistency vs. Partition toleranceBài 5
9Capstone: Building Blocks Combined30-40 phútIntermediateToàn bộ trade-offs kết hợpBài 6, 7, 8
10Bridge to Case Studies15-20 phútFoundationChọn đúng tool cho đúng bài toánBà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