SlideShare a Scribd company logo
1 of 64
The Netflix API Platform for
Server-Side Scripting
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
netflix-groovy-scripting
Presented at QCon New York
www.qconnewyork.com
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
Problem identified: new
servers aren’t coming up
healthy!
Ugh! There’s a problem.
Errors from API are up.
Stream starts per second more and
more off.
Expected value
Actual value
Finally root-caused!
Now restarting all
unhealthy servers.
Back to
normal!
Stream starts per
second also back to
normal.
Expected value
Actual value
Js
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
Network
boundary
API Server JVM
Js
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
scripts
scripts
scripts
scripts
...
scripts
scripts
scripts
scripts
Network
boundary
API Server JVM
~700 active
groovy
[...]
Device1VideoCommon. formatKidsSeason (apiRequest,[...], imageUrl)
[...]
[...]
Device2Common. formatAllSeasons([...])
[...]
[...]
dataPublishingService.getShowFeedbackBuilder(user, video)
[...]
n+3
i+4
i+1
i+2i+3
i
n+2
n+1
n
k+1
k j
j+1
l
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
Strong
resiliency
with Hystrix
What about
resiliency on
this side?
groovy
Periodic
cleanup
New upload
increases
memory usage.
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
few, small
scripts
fewer uploads
groovy
Js
(mostly)
java
Client A
Client B
Client C
Client A
Client Y
Client Z
...
...
Netflix
Microservices
script/app
script/app
script/app
script/app
...
script/app
script/app
script/app
script/app
Network
boundary
API Server JVM
script/app
script/app
~700 more
complex
scripts/apps,
10-50 uploads
per day
groovy
→
→
Lack of process isolation is a growing risk.
Js
(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
node.js
process
isolation
API
Temporarily
unavailable!
API
Docker Machine
local
project
Local Container
live reload file watcher
docker build / run
File watcher
agent
Proxy
Network
Agent
node-inspector
debugger
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
script
script
Problems hard to
root cause, hard to
measure/optimize
performance
groovy
API
device
server-side
script
device client
API
device server-
side
script
ATLAS
Versioning
Easy
access to
instances
Rollback
Client A
Client B
Client C
Client E
Netflix
Microservices
node script
Network
boundary API Server JVM
Client A
Client B
Client C
Client E
Netflix
Microservices
node script
Network
boundary API Server JVM
Memory leak makes
RSL blow up.
Clearer idea of
where the problem
is.
node.js
Client A
Client B
Client C
Client E
Netflix
Microservices
node script
Network
boundary API Server JVM
Same with node script.
Js
(mostly)
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
node.js
Watch the video with slide synchronization on
InfoQ.com!
https://www.infoq.com/presentations/netflix-
groovy-scripting

More Related Content

Viewers also liked

Communal Violence Bill - Summary - Hindi
Communal Violence Bill - Summary - HindiCommunal Violence Bill - Summary - Hindi
Communal Violence Bill - Summary - Hindi
communal
 
Cataluña islámica
Cataluña islámicaCataluña islámica
Cataluña islámica
Acorrecto
 

Viewers also liked (9)

Presentación Road Show Island Tours Marzo 2017
Presentación Road Show Island Tours Marzo 2017Presentación Road Show Island Tours Marzo 2017
Presentación Road Show Island Tours Marzo 2017
 
Apresentação atmo setembro_2016
Apresentação atmo setembro_2016Apresentação atmo setembro_2016
Apresentação atmo setembro_2016
 
Gestão na prática & Gestão Estratégica
Gestão na prática & Gestão EstratégicaGestão na prática & Gestão Estratégica
Gestão na prática & Gestão Estratégica
 
Communal Violence Bill - Summary - Hindi
Communal Violence Bill - Summary - HindiCommunal Violence Bill - Summary - Hindi
Communal Violence Bill - Summary - Hindi
 
31 1-earthsoft-effective teachers
31 1-earthsoft-effective teachers31 1-earthsoft-effective teachers
31 1-earthsoft-effective teachers
 
Cataluña islámica
Cataluña islámicaCataluña islámica
Cataluña islámica
 
What If Solar String Monitoring Was An Affordable, Temporary Solution?
What If Solar String Monitoring Was An Affordable, Temporary Solution?What If Solar String Monitoring Was An Affordable, Temporary Solution?
What If Solar String Monitoring Was An Affordable, Temporary Solution?
 
AASA Redefining Ready Initiative
AASA Redefining Ready InitiativeAASA Redefining Ready Initiative
AASA Redefining Ready Initiative
 
Piggybacking on Platforms
Piggybacking on PlatformsPiggybacking on Platforms
Piggybacking on Platforms
 

More from C4Media

More from C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 

The Netflix API Platform for Server-side Scripting