How Netflix Builds High Performance Applications at Global Scale

ScyllaDB 926 views 41 slides Jul 01, 2024
Slide 1
Slide 1 of 41
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41

About This Presentation

We all want to build applications that are blazingly fast. We also want to scale them to users all over the world. Can the two happen together? Can users in the slowest of environments also get a fast experience? Learn how we do this at Netflix: how we understand every user's needs and preferenc...


Slide Content

How Netflix Builds High Performance Applications at Global Scale Prasanna Vijayanathan Senior Software Engineer at Netflix

Prasanna Vijayanathan ( he/him ) Senior Software Engineer at Netflix Something cool I’ve done My perspective on P99s Another thing about me What I do away from work

Your app (phone, browser, TV, multiverse?)

Your app (phone, browser, TV, multiverse?)

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users

Understanding your application Observability and monitoring

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency Tracking

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency Tracking

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency Tracking

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency Tracking

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users Errors, latency Tracking

User Experience

Your infrastructure Your app (phone, browser, TV, multiverse?) Reverse proxy/load balancer Data Microservices CDNs Users

Your app (phone, browser, TV, multiverse?) Users Engagement Sessions Time spent on app Environment Platform Device capabilities Network conditions Experience Time to load the app Time to render Video quality

App load time App load time

Diversity at scale

Diversity at scale Platform Memory Computing & efficiency Device Location Network Geo Needs Preferences Users

Diversity in devices Web Mobile TV Other devices (VR, Watches, Glasses,..) Platform Crashes and errors Storage Buffering Memory CPU/GPU Energy consumption Computing and efficiency

Diversity in network Ethernet, Fiber, WiFi, 4G, 5G Type of Network 1000s of providers different plans ISPs bandwidth, throughput, errors Factors impacting networks

Diversity in Users What does the user need from the app? User's needs How does the user expect the app to behave? User's preferences

Consistency of QoE

Consistency of QoE Experience is relative Users like to get expected behavior

Consistency of QoE Provide the expected behavior every time Do better whenever possible

Consistency of QoE How to know what’s expected? User disruptions

User Disruptions Needs & Preferences Environment

Needs & Preferences App improvements New product offerings, features, performance Better feedback Lower support calls Longer sessions, more engagement User Needs & Preferences Distruptions Environment

Disruptions Errors, crashes Action fails Loading spinners User Disruptions Needs & Preferences Environment

Environment User Environment Needs & Preferences Device Make/model, platform, memory, CPU Network throughput, latency, errors Others time, location, seasonality Disruptions

User Disruptions Needs & Preferences Environment

How could we do this? QOE models Devices Networks Disruption prediction Transfer learning Learn what’s good and bad for each user

How could we do this? <Demo: building a model with a sample data set>

How could we do this? <Demo: Show using SHAP values for interpretability>

What’s possible? Constant iteration and improvement Automatic feature selection and experimentation The best experience possible, every user, every time.

First Last [email protected] @twitter website/blog url Thank you! Let’s connect.
Tags