Ước lượng và capacity planning — tính toán tải kỳ vọng, lượng dữ liệu và nhu cầu tài nguyên — là một phần quan trọng của system design. Các phép tính "back-of-the-envelope" thô định hướng các quyết định thiết kế (scale bao nhiêu, cần tài nguyên gì) và phổ biến trong phỏng vấn thiết kế.
Tại sao ước lượng quan trọng
Ước lượng quy mô định hướng các quyết định THIẾT KẾ:
→ bao nhiêu server? bao nhiêu lưu trữ? database nào? có cần sharding/caching không?
→ hiểu QUY MÔ (nhỏ vs khổng lồ) định hình toàn bộ thiết kế
→ các con số thô hướng dẫn việc có/cách scale (đừng over- hay under-engineer)
Ước lượng cái gì (back-of-the-envelope)
✓ TRAFFIC → user, request/giây (QPS); tỷ lệ đọc vs ghi (vd 100:1 đọc:ghi)
→ đỉnh vs trung bình (thiết kế cho đỉnh); daily active user → request
✓ STORAGE → kích thước dữ liệu mỗi item × lượng × tăng trưởng theo thời gian → tổng lưu trữ (và tốc độ tăng)
✓ BANDWIDTH → dữ liệu truyền mỗi giây (kích thước request × QPS)
✓ MEMORY → kích thước cache cần (vd cache 20% dữ liệu nóng)
→ ước lượng thô (cấp độ lớn) → đủ tốt để định hướng thiết kế
