118
@JoeSondow Netflix Open Source Software Who, what, where, when, why, how

Netflix Open Source Software: Who What Where When Why How

Embed Size (px)

DESCRIPTION

Since 2011, Netflix has been releasing more and more components of their cloud platform and utilities as free and open source software. This session will answer questions about NetflixOSS, including who makes the software, what does it do, where can you get it and learn about it, when is more coming, why does Netflix do this, and how can you do something like this at your company? Apple Keynote version with animations: https://docs.google.com/file/d/0B4baN-arrqbJUHRZbE1HbmQ3azA/edit?usp=sharing

Citation preview

Page 1: Netflix Open Source Software: Who What Where When Why How

@JoeSondow

Netflix Open Source SoftwareWho, what, where, when, why, how

Page 2: Netflix Open Source Software: Who What Where When Why How

Who am I?

@JoeSondow

Page 3: Netflix Open Source Software: Who What Where When Why How

Who am I?

@JoeSondow

Page 4: Netflix Open Source Software: Who What Where When Why How

Who am I?Joe Sondow

@JoeSondow

Page 5: Netflix Open Source Software: Who What Where When Why How

Who am I?Joe Sondow

Netflix since 2010

@JoeSondow

Page 6: Netflix Open Source Software: Who What Where When Why How

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

@JoeSondow

Page 7: Netflix Open Source Software: Who What Where When Why How

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

Grails

@JoeSondow

Page 8: Netflix Open Source Software: Who What Where When Why How

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

Grails

jQuery

@JoeSondow

Page 9: Netflix Open Source Software: Who What Where When Why How

Open Sourcing Netflix Software

Page 10: Netflix Open Source Software: Who What Where When Why How

Open Sourcing Netflix SoftwareGive it away, give it away, give it away now

Page 11: Netflix Open Source Software: Who What Where When Why How

Open Sourcing Netflix Apps

Who

What

Where

When

Why

How

Page 12: Netflix Open Source Software: Who What Where When Why How
Page 13: Netflix Open Source Software: Who What Where When Why How

Netflix is the world’s leading Internet television network with nearly 38 million members in 40 countries enjoying more than one billion hours of TV shows and movies per month, including original series.

(from http://ir.netflix.com)

Page 14: Netflix Open Source Software: Who What Where When Why How

Who

Page 15: Netflix Open Source Software: Who What Where When Why How

WhoYou, maybe?

Page 16: Netflix Open Source Software: Who What Where When Why How

Who

Page 17: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Page 18: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Cloud Database Engineering

Page 19: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Page 20: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Page 21: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Cloud and Platform Engineering

Page 22: Netflix Open Source Software: Who What Where When Why How

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Cloud and Platform Engineering

Anyone with code that’s not a competitive advantage

Page 23: Netflix Open Source Software: Who What Where When Why How

What

Page 24: Netflix Open Source Software: Who What Where When Why How

WhatUndifferentiated heavy lifting

Page 25: Netflix Open Source Software: Who What Where When Why How

What

Page 26: Netflix Open Source Software: Who What Where When Why How

What

Page 27: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Page 28: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Page 29: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Page 30: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Page 31: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Page 32: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Page 33: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Page 34: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Page 35: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Page 36: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

Page 37: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

Robustness

Page 38: Netflix Open Source Software: Who What Where When Why How

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

Robustness

Security

Page 39: Netflix Open Source Software: Who What Where When Why How

Not

Page 40: Netflix Open Source Software: Who What Where When Why How

Not

Streaming

Encoding

Merchandising

Movie metadata

Recommendations

10’ UI

Page 41: Netflix Open Source Software: Who What Where When Why How

What

Page 42: Netflix Open Source Software: Who What Where When Why How

WhatIf it’s about streaming video, keep it closed

If it’s about computing, open source it

When possible, extract an open computation system from a closed Netflix system

Be pragmatic

Page 43: Netflix Open Source Software: Who What Where When Why How

Examples

Page 44: Netflix Open Source Software: Who What Where When Why How

AsgardWeb interface for application deployment and cloud management in Amazon Web Services

Page 45: Netflix Open Source Software: Who What Where When Why How

IceBird’s-eye view of AWS usage and cost

Page 46: Netflix Open Source Software: Who What Where When Why How

Simian ArmyKeeps your cloud operating well. Chaos Monkey, Janitor Monkey, Conformity Monkey…

Page 47: Netflix Open Source Software: Who What Where When Why How

Hystrix and TurbineCircuit breakers protect from downstream service failures, and enable dashboard monitoring

Page 48: Netflix Open Source Software: Who What Where When Why How

Where

Page 49: Netflix Open Source Software: Who What Where When Why How

WhereTake a guess

Page 51: Netflix Open Source Software: Who What Where When Why How
Page 52: Netflix Open Source Software: Who What Where When Why How
Page 53: Netflix Open Source Software: Who What Where When Why How
Page 54: Netflix Open Source Software: Who What Where When Why How
Page 55: Netflix Open Source Software: Who What Where When Why How
Page 56: Netflix Open Source Software: Who What Where When Why How
Page 57: Netflix Open Source Software: Who What Where When Why How
Page 58: Netflix Open Source Software: Who What Where When Why How
Page 59: Netflix Open Source Software: Who What Where When Why How
Page 60: Netflix Open Source Software: Who What Where When Why How

When

Page 61: Netflix Open Source Software: Who What Where When Why How

WhenSoon

Page 62: Netflix Open Source Software: Who What Where When Why How

When

Average so far: 1.5 new OSS projects per month

Astyan

ax

Servo

Priam CassJM

eter

Exhibit

or

Archaiu

s

Asgard

Chaos

Mon

key

Eureka

Governa

tor

EddaBlitz

4j

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec2012

HystrixTur

bine

Ribbon

NetflixG

raph

Janito

r Mon

key

EVCache

RxJava

Karyon

Denom

inator

RSS Reade

r

Confor

mity Mon

key

gcviz

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec2013

Isthmus

Pythea

s

Curator

Nov Dec2011

Genie

NfWeb

Crypto

Glisten

Ice Zuul

Aminator

Lipstic

k

Page 63: Netflix Open Source Software: Who What Where When Why How

When

Monitoring/Graphing

Deployment canary analyzer

Web notification widget

Asgard client library

Other things getting dreamed up

Future Possibilities

Page 64: Netflix Open Source Software: Who What Where When Why How

When

Roll-out schedules

Dependencies

Best practices

Tooling

Guest speakers

Legal

Internal OSS meeting every two weeks

Page 65: Netflix Open Source Software: Who What Where When Why How

Why

Page 66: Netflix Open Source Software: Who What Where When Why How

Why

Page 67: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Page 68: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Motivate, retain, hire top engineers (Did I mention…?)

Page 69: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Motivate, retain, hire top engineers (Did I mention…?)

“Peer pressure” code clean up & documentation

Page 70: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Motivate, retain, hire top engineers (Did I mention…?)

“Peer pressure” code clean up & documentation

External contributions

Page 71: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Motivate, retain, hire top engineers (Did I mention…?)

“Peer pressure” code clean up & documentation

External contributions

Good public relations, more good, less evil

Page 72: Netflix Open Source Software: Who What Where When Why How

Why

Give back to Apachelicense OSS community

Motivate, retain, hire top engineers (Did I mention…?)

“Peer pressure” code clean up & documentation

External contributions

Good public relations, more good, less evil

Make Netflix solutions into common standards

Page 73: Netflix Open Source Software: Who What Where When Why How

Help your career

Page 74: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

Page 75: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

Page 76: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

GitHub = portfolio

Page 77: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Page 78: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Write blog posts

Page 79: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Write blog posts

Tweet

Page 80: Netflix Open Source Software: Who What Where When Why How

Help your careerStatistically, you will probably change jobs in <10 years

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Write blog posts

Tweet

Be googleable

Page 81: Netflix Open Source Software: Who What Where When Why How

Why free as in beer?

Page 82: Netflix Open Source Software: Who What Where When Why How

Why free as in beer?No significant commitments to external customers

Page 83: Netflix Open Source Software: Who What Where When Why How

Why free as in beer?No significant commitments to external customers

Avoid distracting complications of charging money

Page 84: Netflix Open Source Software: Who What Where When Why How

Why free as in beer?No significant commitments to external customers

Avoid distracting complications of charging money

Focus on accomplishing the company’s mission

Page 85: Netflix Open Source Software: Who What Where When Why How

Why free as in beer?No significant commitments to external customers

Avoid distracting complications of charging money

Focus on accomplishing the company’s mission

The benefits of free exceed the benefits of charging

Page 86: Netflix Open Source Software: Who What Where When Why How

How

Page 87: Netflix Open Source Software: Who What Where When Why How

How

Page 88: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Page 89: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Page 90: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Page 91: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Page 92: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Page 93: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Page 94: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Page 95: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Page 96: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Page 97: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Remove infringement

Page 98: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Remove infringement

Write tech blog post

Page 99: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Remove infringement

Write tech blog post

Make repo public

Page 100: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Remove infringement

Write tech blog post

Make repo public

Tweet on @NetflixOSS

Page 101: Netflix Open Source Software: Who What Where When Why How

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

Document

Licensing and attribution

Remove infringement

Write tech blog post

Make repo public

Tweet on @NetflixOSS

Support the community

Page 102: Netflix Open Source Software: Who What Where When Why How

External Config

Page 103: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Page 104: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Page 105: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Make extension points for plugins as needed

Page 106: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Make extension points for plugins as needed

Put Netflix config in internal SCM(Perforce or Atlassian Stash)

Page 107: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Make extension points for plugins as needed

Put Netflix config in internal SCM(Perforce or Atlassian Stash)

Jenkins build for open release

Page 108: Netflix Open Source Software: Who What Where When Why How

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Make extension points for plugins as needed

Put Netflix config in internal SCM(Perforce or Atlassian Stash)

Jenkins build for open release

Jenkins build for Netflix release

Page 109: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHub

Page 110: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

Page 111: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Page 112: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Page 113: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Commit into a feature branch

Page 114: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Commit into a feature branch

Push commits to your fork

Page 115: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Commit into a feature branch

Push commits to your fork

Create a pull request

Page 116: Netflix Open Source Software: Who What Where When Why How

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Commit into a feature branch

Push commits to your fork

Create a pull request

Get comments, add commits

Page 117: Netflix Open Source Software: Who What Where When Why How

Thank you

@JoeSondow @NetflixOSS

Page 118: Netflix Open Source Software: Who What Where When Why How

Thank youQuestions?

@JoeSondow @NetflixOSS