Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Netflix Open Source
Andrew Spyker (@aspyker) - Engineering Manager
Building a distributed and
automated open source program
About Netflix
● 86.7M members
● A few thousand employees
● 190+ countries
● > ⅓ NA internet download traffic
● 500+ Micros...
Trivia
Netflix been open
sourcing, since?
a) Around the start of streaming service - 2007
b) Around when we went internati...
Answer
2010
Why does Netflix Open Source?
Improve Engineering
● Great feedback from wider community
● Collaborate through open code
Re...
Industry Alignment
Why does Netflix Open Source?
Netflix moves
to cloud
2008
2013
2016
http://netflix.github.io
Open Source Functional Areas
● Contribute to Hadoop, Hive, Pig, Parquet, Presto, Spark
● Genie - RESTful API’s for Big Dat...
Open Source Functional Areas
● Nebula - Plugins for gradle to simplify builds
● Animator - Bakes AMI’s from OS installatio...
Open Source Functional Areas
● Eureka, Ribbon, Hystrix - Cloud native, resilient IPC
● Karyon, Prana, Archius - Microservi...
Open Source Functional Areas
● Photon - Java Interoperable File Format implementation
● VMAF - Perceptual quality metric a...
Open Source Functional Areas
● Raigad/Priam - Management/ops sidecars for ES and C*
● EVCache - Distributed, replicated me...
Open Source Functional Areas
● Spectator/Atlas - Monitoring and Telemetry client and server
● Vector - Fine grained per in...
Open Source Functional Areas
● Security Monkey - Automated cloud security monitoring
● Scumblr/Sketchy - Internet intellig...
Open Source Functional Areas
● Work across front end technologies including Restify
● Falcor - Virtual JSON graph & optimi...
Netflix’s approach to open source
Form a small cross-functional team working
group that centralizes OSS competence,
assist...
Open source enabler - OSS Interest Group
● Internal mailing list
● Meets once per month
● Topics from developers
● Help ea...
Trivia
How many OSS projects does
Netflix have?
a) 59
b) 102
c) 176
Answer
176
Netflix (119) Spinnaker (17) nebula-plugins (40)
Open Source Shepherds
● Management with business context
● Consistency across related projects
● Document how area fits to...
Common tools accelerate developers
● Security
● Backup
● Github user/group repo management
● Project tracking
● Build syst...
Security tools
● We scan code for
○ Access keys, credentials, email
addresses, hostnames
● Provide tools and automation to...
Source code management
● Backup and archival
○ Github down != Netflix down
● Internal mirrors we could build from
Project Ownership
All projects have
● Development lead, Management lead
● Shepherd from OSS function area
Only projects wi...
Github management
● Has to be easy
○ Otherwise, teams will go it alone
● Has to be automated
○ Self service - chat ops
○ F...
Github user management
Support bring github id
● User links to internal id
● All tools then can
associate identity
Two Fac...
Github group management
● Owners
○ Limited group - due to power
○ Automate via chatops all owner actions
● Netflixer group...
Github automated through chat ops
Overall Org Health Tracking
Metrics we track
● Issues
○ open, closed, TTC
● Pull Requests
○ open, closed, TTC
● Last commi...
Project Health Tracking
github.com/
Netflix/
OSSTracker
● Repeatable builds
● deb/rpm files for OS
package baking
● Reduces boilerplate for
common best practices
● Standards for
...
Common CI Systems
● Travis CI
○ Populate .travis.yml and sh files
○ Standard targets for snapshots,
candidates, and releas...
Using Docker to make projects easier
● A running image is worth a
thousand wiki documents
● Started with ZeroToDocker
○ Mo...
Introducing TravisCI Docker builds
Function Dockerhub
trusted builds
TravisCI Docker
support
Github commit traceable build...
TODO Group
● Joined 2015
● Collaborate on how
to better collaborate
● Leverage TODO group’s work
○ Github focus
○ Automati...
Trivia
Which of the following
does Hystrix lead in?
a) Most PR’s closed d) Most Forks
b) Most Issues closed e) Most contri...
Answer
All of the above
Recent NetflixOSS Releases
CI at
Netflix
scale
Multi-region
deployment
control
Advanced CI/CD pipelines
Recent NetflixOSS Releases
Chaos Monkey 2.0
● Integrated with Spinnaker
● Termination scheduling better
● Termination even...
Recent NetflixOSS Releases
Vizceral
● React and Web Component
● Graph data to visualize traffic
Dynomite
● Dynamo layer on...
Questions?
Andrew Spyker (@aspyker) - Engineering Manager
Netflix Open Source:  Building a Distributed and Automated Open Source Program
Upcoming SlideShare
Loading in …5
×

Netflix Open Source: Building a Distributed and Automated Open Source Program

3,685 views

Published on

Netflix has been using and contributing to open source for several years. Over the years, Netflix has released over one hundred Netflix Open Source (aka NetflixOSS) libraries, servers, and technologies. Netflix engineers benefit by accepting contributions and gathering feedback with key collaborators around the world. Users of NetflixOSS from many industries benefit from our solutions including Big Data, Build and Delivery Tools, Runtime Services and Libraries, Data Persistence, Insight, Reliability and Performance, Security and User Interface. With such a large and mature open source program, Netflix has worked on approaches and tools that help manage and improve the NetflixOSS source offerings and communities. Netflix has taken a different approach to building support for open source as compared to other Internet scale companies. Come to this session to learn about the unique approaches Netflix has taken to both distribute and automate the responsibilities of building a world-class open source program.

Published in: Technology
  • Be the first to comment

Netflix Open Source: Building a Distributed and Automated Open Source Program

  1. 1. Netflix Open Source Andrew Spyker (@aspyker) - Engineering Manager Building a distributed and automated open source program
  2. 2. About Netflix ● 86.7M members ● A few thousand employees ● 190+ countries ● > ⅓ NA internet download traffic ● 500+ Microservices ● Many 10’s of thousands VM’s ● 3 regions across the world
  3. 3. Trivia Netflix been open sourcing, since? a) Around the start of streaming service - 2007 b) Around when we went international - 2010 c) Around House of Cards release time - 2013
  4. 4. Answer 2010
  5. 5. Why does Netflix Open Source? Improve Engineering ● Great feedback from wider community ● Collaborate through open code Recruit new and retain engineering talent ● Hard problems are openly worked on
  6. 6. Industry Alignment Why does Netflix Open Source? Netflix moves to cloud 2008 2013 2016
  7. 7. http://netflix.github.io
  8. 8. Open Source Functional Areas ● Contribute to Hadoop, Hive, Pig, Parquet, Presto, Spark ● Genie - RESTful API’s for Big Data Jobs ● Lipstick - Graphical depiction of executing Pig jobs ● Aegisthus - Data pipeline from Cassandra to Big Data
  9. 9. Open Source Functional Areas ● Nebula - Plugins for gradle to simplify builds ● Animator - Bakes AMI’s from OS installation packages ● Spinnaker - New continuous delivery platform
  10. 10. Open Source Functional Areas ● Eureka, Ribbon, Hystrix - Cloud native, resilient IPC ● Karyon, Prana, Archius - Microservice App Frameworks ● Fenzo - Mesos advanced scheduling library
  11. 11. Open Source Functional Areas ● Photon - Java Interoperable File Format implementation ● VMAF - Perceptual quality metric algorithm and test toolkit
  12. 12. Open Source Functional Areas ● Raigad/Priam - Management/ops sidecars for ES and C* ● EVCache - Distributed, replicated memcache++ ● Dynomite - Dynamo layer on top of non-dynamo data stores
  13. 13. Open Source Functional Areas ● Spectator/Atlas - Monitoring and Telemetry client and server ● Vector - Fine grained per instance performance monitoring ● Vizceral - Worldwide traffic to microservice graph visualization
  14. 14. Open Source Functional Areas ● Security Monkey - Automated cloud security monitoring ● Scumblr/Sketchy - Internet intelligence gathering ● FIDO - Security event orchestration (analysis/response) ● Lemur - Simplified x.509 cert management ● Sleepy Puppy - Delayed cross site scripting framework
  15. 15. Open Source Functional Areas ● Work across front end technologies including Restify ● Falcor - Virtual JSON graph & optimized query to backends ● RxJS - Simplify Javascript async event based programming
  16. 16. Netflix’s approach to open source Form a small cross-functional team working group that centralizes OSS competence, assisting decentralized teams working with OSS spend less time focusing on the administrative aspects (legal, tooling, branding, monitoring, and community promotion).
  17. 17. Open source enabler - OSS Interest Group ● Internal mailing list ● Meets once per month ● Topics from developers ● Help each other with common problems
  18. 18. Trivia How many OSS projects does Netflix have? a) 59 b) 102 c) 176
  19. 19. Answer 176 Netflix (119) Spinnaker (17) nebula-plugins (40)
  20. 20. Open Source Shepherds ● Management with business context ● Consistency across related projects ● Document how area fits together ● Focus on OSS health of each area
  21. 21. Common tools accelerate developers ● Security ● Backup ● Github user/group repo management ● Project tracking ● Build systems ● CI systems
  22. 22. Security tools ● We scan code for ○ Access keys, credentials, email addresses, hostnames ● Provide tools and automation to ○ Scan before initial release ○ Scan repeatedly on github
  23. 23. Source code management ● Backup and archival ○ Github down != Netflix down ● Internal mirrors we could build from
  24. 24. Project Ownership All projects have ● Development lead, Management lead ● Shepherd from OSS function area Only projects with active leads stay active!
  25. 25. Github management ● Has to be easy ○ Otherwise, teams will go it alone ● Has to be automated ○ Self service - chat ops ○ Following secure best practices
  26. 26. Github user management Support bring github id ● User links to internal id ● All tools then can associate identity Two Factor Auth Enforcement ● Automation to boot users who don’t ● Be careful - education on recovery!
  27. 27. Github group management ● Owners ○ Limited group - due to power ○ Automate via chatops all owner actions ● Netflixer group ○ Full write permissions on all repos ● Outside contributors ○ Added by netflixers, validated over time
  28. 28. Github automated through chat ops
  29. 29. Overall Org Health Tracking Metrics we track ● Issues ○ open, closed, TTC ● Pull Requests ○ open, closed, TTC ● Last commit timing ● Stars/forks ● Num contributors
  30. 30. Project Health Tracking github.com/ Netflix/ OSSTracker
  31. 31. ● Repeatable builds ● deb/rpm files for OS package baking ● Reduces boilerplate for common best practices ● Standards for release/version mgmt Common Build For Gradle/Java nebula-plugins.github.io
  32. 32. Common CI Systems ● Travis CI ○ Populate .travis.yml and sh files ○ Standard targets for snapshots, candidates, and releases ○ Binary upload credentials handled ○ Consistency across projects ● Cloudbees ○ Job-dsl to create release jobs
  33. 33. Using Docker to make projects easier ● A running image is worth a thousand wiki documents ● Started with ZeroToDocker ○ Monolithic solution ○ Leveraged Dockerhub trusted builds
  34. 34. Introducing TravisCI Docker builds Function Dockerhub trusted builds TravisCI Docker support Github commit traceable builds ✔ ✔ Trusted build servers ✔ ✔ Full build control (labels, etc.) ✖ ✔ Easy to integrate with artifact releases ✖ ✔ ● Experimenting: OSSTracker & Genie ● Docker compose used across images
  35. 35. TODO Group ● Joined 2015 ● Collaborate on how to better collaborate ● Leverage TODO group’s work ○ Github focus ○ Automation innovations ● Good group for helping OSS companies
  36. 36. Trivia Which of the following does Hystrix lead in? a) Most PR’s closed d) Most Forks b) Most Issues closed e) Most contributors c) Most Stars
  37. 37. Answer All of the above
  38. 38. Recent NetflixOSS Releases CI at Netflix scale Multi-region deployment control Advanced CI/CD pipelines
  39. 39. Recent NetflixOSS Releases Chaos Monkey 2.0 ● Integrated with Spinnaker ● Termination scheduling better ● Termination event tracking Photon ● Java IMF implementation ● Parsing, Interpretation, Validation
  40. 40. Recent NetflixOSS Releases Vizceral ● React and Web Component ● Graph data to visualize traffic Dynomite ● Dynamo layer on top of data stores ● Redis and memcache ● Manager (config, multi-region, backup)
  41. 41. Questions? Andrew Spyker (@aspyker) - Engineering Manager

×