server-side scripting the netflix api platform for 10-50 uploads ... node.js client a client b...
TRANSCRIPT
The Netflix API Platform for Server-Side Scripting
Problem identified: new servers aren’t coming up healthy!
Ugh! There’s a problem. Errors from API are up.
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient Z
...
...Netflix Microservices
Network boundary
API Server JVM
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient 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)
[...]
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient Z
...
...Netflix Microservices
script
script
...
script
script
Network boundary
API Server JVM
Strong resiliency with Hystrix
What about resiliency on this side?
groovy
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient Z
...
...Netflix Microservices
script
script
...
script
script
Network boundary
API Server JVM
few, small scriptsfewer uploads
groovy
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient 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
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient Z
...
...Netflix Microservices
node script
node script
...
node script
node script
Network boundary API Server JVM
node.js
process isolation
Docker Machine
localproject
Local Container
live reload file watcher
docker build / run
File watcher agent
Proxy
NetworkAgent
node-inspector
debugger
Js(mostly)
java
Client AClient BClient C
Client A
Client YClient 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
Client AClient BClient CClient E
Netflix Microservicesnode script
Network boundary API Server JVM
Memory leak makes RSL blow up. Clearer idea of where the problem is.
node.js
Client AClient BClient CClient E
Netflix Microservicesnode script
Network boundary API Server JVM
Same with node script.
Js(mostly)
Client AClient BClient C
Client A
Client YClient Z
...
...Netflix Microservices
node script
node script
...
node script
node script
Network boundary API Server JVM
node.js