การประมาณการและ capacity planning — การคำนวณภาระงานที่คาดหวัง ปริมาณข้อมูล และความต้องการทรัพยากร — เป็นส่วนสำคัญของการออกแบบระบบ การคำนวณคร่าว ๆ แบบ "back-of-the-envelope" ช่วยให้ข้อมูลในการตัดสินใจออกแบบ (ควรขยายขนาดเท่าไร ต้องการทรัพยากรอะไร) และพบบ่อยในการสัมภาษณ์การออกแบบ
ทำไมการประมาณการจึงสำคัญ
Estimating scale informs DESIGN decisions:
→ how many servers? how much storage? what database? do you need sharding/caching?
→ understanding the SCALE (small vs massive) shapes the whole design
→ rough numbers guide whether/how to scale (don't over- or under-engineer)
สิ่งที่ต้องประมาณ (back-of-the-envelope)
✓ TRAFFIC → users, requests/sec (QPS); read vs write ratio (e.g. 100:1 reads:writes)
→ peak vs average (design for peak); daily active users → requests
✓ STORAGE → data size per item × volume × growth over time → total storage (and growth rate)
✓ BANDWIDTH → data transferred per second (request size × QPS)
✓ MEMORY → cache size needed (e.g. cache the hot 20% of data)
→ rough estimates (order of magnitude) → good enough to inform design
