How Netflix directs 1/3rd of
Haley Tucker Mohit Vora
QCon
San Francisco Nov 16, 2015
How Netflix directs 1/3rd of Haley Tucker QCon San Francisco - - PowerPoint PPT Presentation
How Netflix directs 1/3rd of Haley Tucker QCon San Francisco Mohit Vora Nov 16, 2015 Playback Overview DATA PLANE NETFLIX STREAM DEVICE (CDN) CONTROL PLANE Project 366 #59; 280212 Days Gone By..., CC BY-SA, Pete 2012, Flickr VIDEO
QCon
San Francisco Nov 16, 2015
(CDN)
STREAM NETFLIX DEVICE
Project 366 #59; 280212 Days Gone By..., CC BY-SA, Pete 2012, Flickr
AUDIO VIDEO TEXT
DEVICE TITLE CONNECTIONS COUNTRY NETWORK
Broadband - wired or wifi Cellular - Edge, 3G, LTE, ...
CUSTOMER
GENERATE PLAYBACK MANIFEST PLAYBACK MANIFEST
PLAYBACK MANIFEST
Keymaster, CC BY-SA, Sean McGrath 2007, Flickr
LICENSE
LICENSE
SESSION (START, STOP, PAUSE, RESUME, KEEPALIVE)
SESSION EVENTS
LICENSE PLAYBACK MANIFEST GENERATE PLAYBACK MANIFEST SESSION (START, STOP, PAUSE, RESUME, KEEPALIVE)
PLAYBACK LIFECYCLE
A NETFLIX ORIGINAL
CONTENT RANK B Y T E S S T R E A M E D
PREDICTABLE VIEWING PATTERNS
FILLING WHEN YOU SLEEP
Dreaming…, CC BY-SA, Eleni Boulsaiki 2009, Flickr
FILLING WHEN YOU SLEEP
A NETFLIX ORIGINAL
READ XOR WRITE
ONE WAY, CC BY-SA, Kenny Louie 2010, Flickr
(CDN)
STREAM NETFLIX DEVICE
STREAM ISP DATA CENTER
ISP ROUTER
NETFLIX DEVICE
STREAM ISP DATA CENTER
ISP ROUTER
NETFLIX DEVICE
ISP CO-LOCATION
STREAM ISP DATA CENTER
ISP ROUTER
NETFLIX DEVICE
STREAM ISP DATA CENTER NETFLIX DEVICE IXP DATA CENTER
NFLX ROUTER ISP ROUTER ISP ROUTER
NETFLIX
STREAM ISP DATA CENTER NETFLIX DEVICE IXP DATA CENTER
NFLX ROUTER ISP ROUTER ISP ROUTER
NETFLIX
STREAM ISP DATA CENTER NETFLIX DEVICE IXP DATA CENTER
NFLX ROUTER ISP ROUTER ISP ROUTER
IXP INTERCONNECTION
NETFLIX
STREAM NETFLIX DEVICE CDN CONTROL PLANE DEVICE CONTROL PLANE
DON’T KEEP SECRETS
Network Proximity Content Positioning Load Distribution
Social Network in a Course, CC BY-SA, Hans Põldoja 2010, Flickr
Doesn’t scale
TAKEAWAY
BGP ROUTE 175.231.128.0/24
(+ proximity attributes)
Use BGP
ISP2 DATA CENTER
ISP2 BGP ROUTES
CONTROL PLANE IXP DATA CENTER
ISP1 BGP ROUTES
ISP1 DATA CENTER
ISP1 NFLX
BGP ROUTE 175.231.128.0/24
(+ proximity attributes)
LOCALIZE TRAFFIC
ISP DATA CENTER SERVE CACHE MISS
HOW DO WE DETERMINE WHAT CONTENT WILL BE POPULAR TOMORROW?
CHANGING CATALOG
EVOLVING MEMBER TASTES
MINIMIZE FILL CHURN
ISP DATA CENTER OFF PEAK FILL
USE HISTORICAL DATA
CONTENT RANK
B Y T E S S T R E A M E D
bytesStreamed/bytesStored
IS ONE DAY OF HISTORY ENOUGH?
EXPONENTIALLY WEIGHTED MOVING AVERAGE
WEIGHT DAYS AGO 10 20 30 40
TAKEAWAY Weigh Recent Data Higher
HOW SHOULD CONTENT BE ALLOCATED?
MILLIONS OF FILES THOUSANDS OF SERVERS HOW SHOULD CONTENT BE ALLOCATED?
SVR4 SVR2 SVR1
SVR3
FILE1 FILE3 FILE1
TAKEAWAY
ALLOCATE MULTIPLE REPLICAS RESILIENT TO CLUSTER CHANGES REPEATABLE
Consistent Hashing
ISP2 DATA CENTER
WHAT TO FILL?
CONTROL PLANE IXP DATA CENTER
WHERE TO FILL FROM?
ISP1 DATA CENTER S3
FILL OVER HTTP
CONTENT RANK BYTES STREAMED
LOTS OF THROUGHPUT LOTS OF STORAGE
CONTENT WITH CONFLICTING CONSTRAINTS
SSD BASED SPINNING DISK BASED
WITHIN CLUSTERS ON EACH SERVER
MEMORY
CONTENT RANK BYTES STREAMED
SSD S P I N N I N G D I S K
TAKEAWAY Tier Infrastructure
ACROSS SERVERS WITHIN CLUSTERS
BALANCE BALANCE
ACROSS EQUIDISTANT CLUSTERS HOW DO WE BALANCE LOAD?
NETFLIX DEVICE CDN CONTROL PLANE DEVICE CONTROL PLANE LOAD BALANCER STREAM
USING CONTENT DISTRIBUTION HOW DO WE BALANCE LOAD?
FLIP A COIN AND WHEN WE HAVE EQUALLY ATTRACTIVE LOCATIONS TO SERVE FROM –
INCIDENT LOAD S Y S T E M M E T R I C S
MAX
INSANE SANE
HOW DO WE LOAD SERVERS OPTIMALLY?
… AMIDST EVER CHANGING INTERNET WEATHER
TRAFFIC t
… AND DAILY TRAFFIC EBBS AND FLOWS
+
SERVE STREAMS FEEDBACK
EFFECT ON SYSTEM METRICS CONTROL
WE INTRODUCE A FEEDBACK LOOP
TAKEAWAY PID CONTROLLER
TAKEAWAY PID CONTROLLER
Process Variable Set Point Control Variable Current RPM Desired RPM Input Voltage System Metrics System Metrics Max Controlled Traffic DC MOTOR
TAKEAWAY PID CONTROLLER
Process Variable Set Point Control Variable System Metrics System Metrics Max Controlled Traffic Current RPM Desired RPM Input Voltage LOADING SERVERS
ISP2 DATA CENTER
CONTROL TO 80%
CONTROL PLANE IXP DATA CENTER
NO CONTROL
ISP1 DATA CENTER
0.0 < CONTROL VAR < 1.0
TRAFFIC t NEXT HOP
TRAFFIC SHIFTS TO NEXT HOP LOCATION
STREAM NETFLIX DEVICE CDN CONTROL PLANE PLAYBACK SERVICES STEERING
Got URLs for f1, f2, …, fn? Yes, here’s the URLs PROXIMITY HEALTH CONTENT
CASS
KAFKA
5 CHALLENGES
API
STEERING SESSION MANIFEST DRM LICENSE
API
STEERING SESSION MANIFEST DRM LICENSE CLIENT SCRIPTS SERVICE LAYER
RULES INSIGHTS
5 SOLUTIONS
CACHE
DEVICE CUSTOMER TITLE NETWORK
Broadband - wired or wifi Cellular - Edge, 3G, LTE, ...
CONNECTIONS COUNTRY
CHALLENGE
ALL STREAMS FOR CONTENT ENGINE
RULES
BEST STREAMS FOR SESSION
Stream Filtering USE CASE
EXAMPLE RULES
ENGINE
CONFIGURATION MANAGEMENT UI
UPDATING RULES
TOPIC
PUBLISH
RULES
SUBSCRIBE
Dynamic Business Rules
API STEERING SESSION MANIFEST DRM LICENSE
RULES
TAKEAWAY
CHALLENGE
Haystacks, CC BY-SA, John Pavelka 2008, Flickr
METRICS AND ALERTING
Indexed Logging
Detailed Domain Insights
API STEERING SESSION MANIFEST DRM LICENSE
RULES
INSIGHTS
TAKEAWAY
CHALLENGE
MANIFESTS
CUSTOMER A CUSTOMER A CUSTOMER B
Ping Pong project, CC BY-SA, Michael Knowles 2008, Flickr
API STEERING SESSION MANIFEST DRM LICENSE
RULES INSIGHTS
Reduce client state TAKEAWAY
CACHE
CHALLENGE
Square peg, round hole, CC BY-SA, Simon Law 2006, Flickr
DYNAMIC SCRIPTING PLATFORM
SESSION LICENSE MANIFEST
XBOX iPHONE HTML5 PLAYER
iphone.groovy JAVA SERVICE LAYER xbox.groovy html5.groovy API
STEERING SESSION MANIFEST DRM LICENSE
RULES INSIGHTS
Client-driven protocols
API CLIENT SCRIPTS SERVICE LAYER
TAKEAWAY
CACHE
CHALLENGE
CC BY-SA, Nathan E Photography 2008, Flickr
MANIFEST Stream
Stream’
This works from API:
Works both ways!
This works from CLIENT SCRIPT!
CLIENT SCRIPT Stream’’
Works both ways! API MANIFEST Stream
Stream’
Works both ways!
API CLIENT SCRIPTS SERVICE LAYER STEERING SESSION MANIFEST DRM LICENSE
RULES INSIGHTS
Data pass-thru TAKEAWAY
CACHE
Haley Tucker @hwilson1204 Mohit Vora @mohitvora
STREAM NETFLIX DEVICE NETFLIX DEVICE STREAM
SPINNING DISK SERVERS SSD SERVERS WHAT TO FILL? WHERE TO FILL FROM?
API CLIENT SCRIPTS SERVICE LAYER CACHE CONTROL
DON’T KEEP SECRETS
STEERING SESSION MANIFEST DRM LICENSE
RULES
CACHE
INSIGHTS
IXP DATA CENTER ISP1 ISP2
ISP2 BGP ROUTES ISP1 BGP ROUTES CONTROL TO 80%
cropped and red lines and dots were drawn on top, https://creativecommons.org/licenses/by/2.0/.
https://creativecommons.org/licenses/by/2.0/.
cropped, https://creativecommons.org/licenses/by/2.0/.
changes made, https://creativecommons.org/licenses/by/2.0/.
made, https://creativecommons.org/licenses/by/2.0/.
https://creativecommons.org/licenses/by/2.0/.
https://creativecommons.org/licenses/by/2.0/.
https://creativecommons.org/licenses/by/2.0/.
//creativecommons.org/licenses/by-sa/2.0/.