Netflix Open Source Software: Who What Where When Why How

Post on 20-May-2015

5.490 views 4 download

Tags:

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

Transcript of Netflix Open Source Software: Who What Where When Why How

@JoeSondow

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

Who am I?

@JoeSondow

Who am I?

@JoeSondow

Who am I?Joe Sondow

@JoeSondow

Who am I?Joe Sondow

Netflix since 2010

@JoeSondow

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

@JoeSondow

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

Grails

@JoeSondow

Who am I?Joe Sondow

Netflix since 2010

Asgard lead

Grails

jQuery

@JoeSondow

Open Sourcing Netflix Software

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

Open Sourcing Netflix Apps

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)

Who

WhoYou, maybe?

Who

Who

Platform Infrastructure

Who

Platform Infrastructure

Cloud Database Engineering

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Cloud and Platform Engineering

Who

Platform Infrastructure

Cloud Database Engineering

Cloud Solutions

Engineering Tools

Cloud and Platform Engineering

Anyone with code that’s not a competitive advantage

What

WhatUndifferentiated heavy lifting

What

What

What

Infrastructure

What

Infrastructure

Caching

What

Infrastructure

Caching

Database

What

Infrastructure

Caching

Database

Cloud

What

Infrastructure

Caching

Database

Cloud

Building

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

Robustness

What

Infrastructure

Caching

Database

Cloud

Building

Deployment

Configuration

Testing

Monitoring

Networking

Robustness

Security

Not

Not

Streaming

Encoding

Merchandising

Movie metadata

Recommendations

10’ UI

What

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

Examples

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

IceBird’s-eye view of AWS usage and cost

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

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

Where

WhereTake a guess

When

WhenSoon

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

When

Monitoring/Graphing

Deployment canary analyzer

Web notification widget

Asgard client library

Other things getting dreamed up

Future Possibilities

When

Roll-out schedules

Dependencies

Best practices

Tooling

Guest speakers

Legal

Internal OSS meeting every two weeks

Why

Why

Why

Give back to Apachelicense OSS community

Why

Give back to Apachelicense OSS community

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

Why

Give back to Apachelicense OSS community

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

“Peer pressure” code clean up & documentation

Why

Give back to Apachelicense OSS community

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

“Peer pressure” code clean up & documentation

External contributions

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

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

Help your career

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

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

LinkedIn = resume

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

LinkedIn = resume

GitHub = portfolio

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

LinkedIn = resume

GitHub = portfolio

Speak at tech events

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

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Write blog posts

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

LinkedIn = resume

GitHub = portfolio

Speak at tech events

Write blog posts

Tweet

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

Why free as in beer?

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

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

Avoid distracting complications of charging money

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

Avoid distracting complications of charging money

Focus on accomplishing the company’s mission

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

How

How

HowInternal OSS mailing list

HowInternal OSS mailing list

Edit internal OSS wiki

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

HowInternal OSS mailing list

Edit internal OSS wiki

Attend OSS meetings

Make private GitHub repo in Netflix org

Soften dependencies

Externalize configuration

Clean up

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

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

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

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

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

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

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

External Config

External ConfigExternalize Netflix-specific values

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

External ConfigExternalize Netflix-specific values

Turn off soft dependencies by default

Make extension points for plugins as needed

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)

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

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

Code Review on GitHub

Code Review on GitHubLearn Git

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Code Review on GitHubLearn Git

GitHub projects are owned by Netflix on master branch

Fork your project

Commit into a feature branch

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

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

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

Thank you

@JoeSondow @NetflixOSS

Thank youQuestions?

@JoeSondow @NetflixOSS