Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2Ezs08q.
Justin Ryan talks about Netflix’ scalability issues and some of the ways they addressed it. He shares successes they’ve had from unintuitively partitioning computation into multiple services to get better runtime characteristics. He introduces us to useful probabilistic data structures, innovative bi-directional data passing, open-source projects available from Netflix that make this all possible. Filmed at qconsf.com.
Justin Ryan is Playback Edge Engineering at Netflix. He works on some of the most critical services at Netflix, specifically focusing on user and device authentication. Years of building developer tools has also given him a healthy set of opinions on developer productivity.
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Scaling Patterns for Netflix's Edge
1. Justin Ryan, Senior Software Engineer @ Netflix
Twitter: quidryan, LinkedIn: www.linkedin.com/in/justin-charles-ryan
Scaling
Patterns for
Netflix’s Edge
November 2019
2. InfoQ.com: News & Community Site
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
netflix-edge-scalability-patterns/
3. Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
27. Scaling Patterns for Netflix’s Edge
Justin Ryan
Side Note:
Bloom Filter
— Bad Interview Question? Yes
— Used in complex databases? Yes
— Guava Library? Yes
— Usable by you in your day-to-day
jobs? Yes
28. Scaling Patterns for Netflix’s Edge
Justin Ryan
Melnitz
L7 Proxy
Account
Service
API
Bloom
Filter
Expired
Yes
No
Maybe
No
29. Scaling Patterns for Netflix’s Edge
Justin Ryan
Melnitz
Account
Service Auth
Event
Melnitz A
DB
Melnitz B
1m
L7 Proxy
35. Scaling Patterns for Netflix’s Edge
Justin Ryan
Mantis 2 million request per second *
3 kilobytes per request *
10 micro-services =
57 GB/s =~ 4.6 PB / day
36. Scaling Patterns for Netflix’s Edge
Justin Ryan
Naive Approach
Service Elastic Search
Kibana
76. Scaling Patterns for Netflix’s Edge
Justin Ryan
Trough - Used Instances
- Reserved Instances
77. Scaling Patterns for Netflix’s Edge
Justin Ryan
Pattern #6
Trough
— Leverage Unused Resources
78. Scaling Patterns for Netflix’s Edge
Justin Ryan
Trade Odds
● Probabilistic Data Structure
● Off the Shelf Components
● Avoid Work
● Scale Solution to Zero
● Data Passing
● Heavy Data Structures
● Leverage Existing Infrastructure
● Business Tuned Fallbacks
● Runtime Refactoring
Melnitz
Melnitz
Mantis
Mantis
Passport
Passport
DTS
DTS
Sharding
79. Scaling Patterns for Netflix’s Edge
Justin Ryan
When to Use
Debuggability ✗ ✓ ✓ ✓ ✓ ✗
Infrastructure ✓ ✗ ✗ ✓ ✗ ✗
Managing ✗ ✗ ✗ ✓ ✗ ✗
Costs ✓ ✓ ✗ ✗ ✓ ✓
Melnitz
Mantis
Passport
DeviceTypesSharding
Trough
80. Scaling Patterns for Netflix’s Edge
Justin Ryan
Bonus Trade
Offs
— Do the laundry