The process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements.
How to design NetFlix?
Top level design:
Scenario:
Necessary: requirement/ assumptions
First step: ask how many users
5,000,000 daily users
Second step: prediction
2 - 10 times more - future, 3 months, Netflix - twice more users
125 users
3MBps -> peak bandwidth 3.75 Tb/s
Storage
10KB
3 months later storage 5,000,000 * 2 * 10 = 100GB
Hard disk
14,000 movies
Total storage:
Application:
service/ algorithms
Step 1:
Step 2:
Kilobit (Data)
First step:
Evolve (How to advance system design?)
Step 1: analysis
directions:
Better: limitation
Broad: scenarios
Depth: small details
Angles:
. Property
SNAKE:
Scenario
Necessary
Application
Kilobit
Evolve
Micro:
recommendations:
u1 = {m3, m5, m7, m11)
Class Recommender{
}
Necessary (limitation)
prediction
Algorithm & Kilobit
For movie liked by u1
No comments:
Post a Comment