Netflix's Edge Engineering team is responsible for handling all device traffic for to support the user experience, including sign-up, discovery and the triggering of the playback experience. Developing and maintaining this set of massive scale services is no small task and its success is the difference between millions of happy streamers or millions of missed opportunities.
This video captures the presentations delivered at the first ever Edge Engineering Open House at Netflix. This video covers the primary aspects of our charter, including the evolution of our API and Playback services as well as building a robust developer experience for the internal consumers of our APIs.
24. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2Playback Lifecycle
S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2 S2S2Playback Data
S2S2DRMMetadata
25. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2Metadata
S2S2Playback Data
S2S2DRM
Owned
by Edge
Engineering
Playback Lifecycle
26. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2 S2S2Playback Data
S2S2DRMMetadata
Playback Lifecycle
27. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2 S2S2Playback Data
S2S2DRMMetadata
Playback Lifecycle
28. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2 S2S2Playback Data
S2S2DRMMetadata
Playback Lifecycle
29. D
E
V
I
C
E
S
R
O
U
T
I
N
G
A
P
I
API API API API API API
S
E
R
V
I
C
E
S
S2S2Recs
S2S2Member
S2S2Ratings
S2S2S2S2Authn/z
S2S2A/B
S2S2Search
S2S2Identity
S2S2 S2S2Playback Data
S2S2DRMMetadata
Playback Lifecycle
30. API API API API API API
S2S2S2S2Authn/z
S2S2Playback Data
S2S2DRM
I
N
S
I
G
H
T
S
T
O
O
L
S
D
X
Playback Lifecycle
34. Talking About the Future of Edge
Engineering
Satish Gudiboina
API and Upcoming
Re-Architecture
Suudhan Rangarajan
Playback Experience
Vasanth Asokan
Developer Tools,
Velocity and Experience
35. The Netflix API Platform for Server-
Side Scripting
Current and The Future
Satish Gudiboina
38. Scale is multi-faceted
Growing number of users ( → RPS)
Growing number of device types
Growing number of A/B tests
Growing number of languages
Growing number of countries
39. What we need to build for
Velocity
Resiliency
Other requirements:
Performance
Great developer experience
Operational insights
Tooling
40. SERVICELAYER
Js
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
script
script
script
script
...
script
script
script
script
Network
boundary
API Server JVM
Today’s architecture
Resiliency
with Hystrix
41. Developer Velocity:
Decoupled deployments of versions
n+3
Day 1
Day 2
Day 3
Day 4
Day 5
API device 1 device 2 device 3 device 4
i+4
i+1
i+2i+3
i
n+2
n+1
n
k+1
k j
j+1
l
42. Changing risk profile
Growing number of users ( → RPS)
Growing number of devices
Growing number of A/B tests
Growing number of languages
Growing number of countries
Growing number and complexity of scripts (scripts → apps)
43. SERVICELAYER
Js
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
script
script
...
script
script
Network
boundary
API Server JVM
Today’s system (T-3yrs)
few, small
scripts
fewer uploads
44. SERVICELAYERJs
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
script
script
script
script
...
script
script
script
script
Network
boundary
API Server JVM
Today’s system (T)
scripts
scripts
hundreds of
more complex
scripts,
10-50 uploads
per day
47. Moving toward our ideal API:
What will change
Scripts will run in containers
Scripts will call API remotely
48. SERVICELAYERJs
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
node script
node script
...
node script
node script
Network
boundary API Server JVM
The (near) future
node.js
process
isolation
node for
device teams
65. $ newt auto-deploy -d
nodeJS
project
Docker Machine
node-inspector
Debugger
File watcher / live reload trigger
File watcher agent
NeWT: Local Container Development
Local
Container
docker build / run
66. $ newt auto-deploy -d
Docker Machine
NeWT: Local Container Development
Local
Container
Cloud
Microservices
Cloud
Proxy
Terminate
security
DiscoveryAgent
Service
Discovery
Local
System
Cloud
68. • Low Latency, High throughput, Highly Efficient
• Handle bursty or large scale loads
• Extensible programming model
600 jobs in production, 8M messages/sec at peak, 100Gbps network throughput
Mantis - Stream Processing Platform
81. • Scaling developer productivity with business growth
•Provide fully managed PaaS experience to client developers
• Shift Left Insights to power smart development
• Curated, blended visualizations that simplify devops
In conclusion...
88. Collect & Learn
Bookmarks & Hours
Watched
Streaming Errors and
Metrics
Quality Of Experience
metrics
4
89. Lets look at Play
Decisions
DECIDE
MANIFEST
AUTHORIZE
COLLECT &
LEARN
LICENS
E
SESSIO
N
90. Huge number of Streams
Resolutions - 720p, 1080p, 4K etc
Codecs - H.264,HEVC etc
Bitrates - 230, 780, 3000 etc
Channels - Stereo, Surround
Sound
Languages - English, French etc
Types - Subtitles, Closed
Captions, Forced Narratives
Languages - English, French etc
91. Streams to Tracks
- H.264 Main Profile
- English 5.1 Audio
- No Subtitle
- HEVC Dash Profile
- French 2.0 Audio
- English CC
- HDR Dash Profile
- Spanish AAC Audio
- English Forced Narrative