System Design Architecture Playbook

Bộ playbook system design

PLAYBOOK #3: MASTERING SYSTEM DESIGN FOR HIGH-SCALE ARCHITECTURE

Dành cho: Senior Developers, Tech Leads & Software Architects

“Hệ thống tốt không phải là hệ thống không bao giờ lỗi, mà là hệ thống được thiết kế để chịu lỗi một cách duyên dáng.” Playbook này giúp bạn làm chủ tư duy thiết kế hệ thống quy mô lớn, vượt qua các vòng Case Study hóc búa nhất.

PHẦN 1: The Architect’s checklist

Khi thiết kế, hãy tự hỏi hệ thống của bạn sẽ hành xử ra sao khi lượng truy cập tăng gấp 100 lần trong 1 giây?

1. Scalability & Load Balancing (Khả năng mở rộng)

  • Vertical vs. Horizontal Scaling: Khi nào nên nâng cấp Server, khi nào nên thêm máy ảo?
  • Load Balancing: Sử dụng thuật toán nào (Round Robin, Least Connections, Consistent Hashing) cho từng lớp hệ thống?
  • Caching Strategy: Tối ưu hóa Read-heavy system với Redis/Memcached. Chiến lược Cache Aside, Write-through hay Write-back?

2. Database Design & Consistency (Dữ liệu là trái tim)

  • SQL vs. NoSQL: Phân tích sự đánh đổi giữa tính nhất quán (ACID) và khả năng mở rộng (Scaling).
  • Database Sharding & Replication: Cách chia nhỏ dữ liệu để tránh điểm nghẽn (Bottleneck). Hiểu rõ Master-Slave vs. Multi-master.
  • CAP Theorem: Bạn chọn CP (Consistency & Partition Tolerance) hay AP (Availability & Partition Tolerance)? Tại sao?

3. Communication Patterns (Luồng giao tiếp)

  • Synchronous (REST, gRPC): Khi nào cần phản hồi tức thì?
  • Asynchronous (Message Queues - Kafka, RabbitMQ): Sử dụng kiến trúc Event-driven để giải quyết bài toán "Spike" (truy cập tăng đột biến) và Decoupling hệ thống.

PHẦN 2: Framework Để Trả Lời Case Interview về Tư Duy Thiết Kế

Đừng vẽ sơ đồ ngay lập tức. Hãy đi theo quy trình 4 bước của một Architect:

  • Step 1: Understand Constraints (Hiểu giới hạn): Hỏi về DAU/MAU (lượng người dùng), Read/Write ratio, lưu trữ dữ liệu trong bao lâu?
  • Step 2: High-level Design: Vẽ các thành phần chính (API Gateway, Load Balancer, Services, DB).
  • Step 3: Deep Dive: Xoáy sâu vào các điểm "nhạy cảm". Ví dụ: "Làm sao để đảm bảo không bị double-payment khi mạng lag?" (Idempotency).
  • Step 4: Identify Bottlenecks & Single Point of Failure (SPOF): Thừa nhận điểm yếu của thiết kế và đưa ra phương án dự phòng.

PHẦN 3: Reverse Interviewing: Đọc vị Engineering Culture

Đặt những câu hỏi này cho người phỏng vấn để biết bạn sẽ vào công ty để xây dựng hệ thống hay để "chữa cháy" suốt ngày.

  • Technical Debt: "Hệ thống hiện tại đang gặp Bottleneck lớn nhất ở đâu? Team dành bao nhiêu % thời gian để xử lý 'Legacy code'?"
  • Testing: "Quy trình Integration Test và Load Test cho các hệ thống tải cao được thực hiện như thế nào trước khi Go-live?"
  • Release: "Công ty có hỗ trợ Canary Release hay Feature Flags để giảm thiểu rủi ro khi thay đổi kiến trúc lớn không?"
  • Disaster Recovery: "Nếu Database chính bị sập hoàn toàn, mất bao lâu để hệ thống tự phục hồi (RTO) và lượng dữ liệu bị mất tối đa là bao nhiêu (RPO)?"

Tài Liệu Tham Khảo Cho Architect

Job phù hợp