netflix oss meetup season 4 episode 4

62
Netflix Open Source Season 4, Episode 4

Upload: aspyker

Post on 12-Jan-2017

671 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Netflix OSS Meetup Season 4 Episode 4

Netflix Open SourceSeason 4, Episode 4

Page 2: Netflix OSS Meetup Season 4 Episode 4

Introduction

Page 3: Netflix OSS Meetup Season 4 Episode 4

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

Page 4: Netflix OSS Meetup Season 4 Episode 4

Industry Alignment

Why does Netflix Open Source?

Netflix movesto cloud

2008

2013

2016

Page 5: Netflix OSS Meetup Season 4 Episode 4

Netflix Github -http://netflix.github.io

Page 6: Netflix OSS Meetup Season 4 Episode 4

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).

Page 7: Netflix OSS Meetup Season 4 Episode 4

Open source enabler - OSS Interest Group

● Internal mailing list● Meets once per month● Topics from developers● Help each other with

common problems

Page 8: Netflix OSS Meetup Season 4 Episode 4

Agenda

Assisting open source at Netflix● Github management and security● Build, CI and release tools

Engaging in open source● Transparency & OSS maturity● Fostering communities

@rusmeshenberg

@SonOfGarr

@rfletcherEW

mikegrima

Page 9: Netflix OSS Meetup Season 4 Episode 4

Agenda

Open Source Offices and the TODO Group

Nithya A. RuffDirector, Open Source Office, Western Digital

@nithyaruff

Page 10: Netflix OSS Meetup Season 4 Episode 4

Github Management & SecurityMike Grima

Page 11: Netflix OSS Meetup Season 4 Episode 4

Security Tools - Sensitive Data Leakage

● We scan source code for○ Access keys, passwords, tokens,

hostnames

● We scan code automatically and frequently

Page 12: Netflix OSS Meetup Season 4 Episode 4

Scumblr

Page 13: Netflix OSS Meetup Season 4 Episode 4

Security Tools - User Management

● Provide tools and automation for user access○ Adding / Removing users○ Performing privileged tasks

● We aim for self-service as much as possible!

Page 14: Netflix OSS Meetup Season 4 Episode 4

Github Organizational Management

● Management must be easy○ Otherwise, teams will go it alone (BAD)

● Less is more: fewer orgs = Good

Page 15: Netflix OSS Meetup Season 4 Episode 4

Github Organizational ManagementBYOGID:● 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!

Page 16: Netflix OSS Meetup Season 4 Episode 4

Github Organizational Management

● Owners○ Limited group - due to power○ Broker owner actions via ChatOps

● Netflixer group○ Full write permissions on all repos

● Outside collaborators○ Added by netflixers, validated over time

Page 17: Netflix OSS Meetup Season 4 Episode 4

ChatOps for GitHub Management

Page 18: Netflix OSS Meetup Season 4 Episode 4

ChatOps for GitHub Management

Page 19: Netflix OSS Meetup Season 4 Episode 4

ChatOps for GitHub Management

Page 20: Netflix OSS Meetup Season 4 Episode 4

More advanced commands & DUO!

Page 21: Netflix OSS Meetup Season 4 Episode 4

Building Netflix OSSMike McGarr

Page 22: Netflix OSS Meetup Season 4 Episode 4

OSS builds needs...

● Consistent build automation● Continuous integration● Release software versions● Publish to JCenter and Maven central● Validate license files● Simple and consistent

Page 23: Netflix OSS Meetup Season 4 Episode 4

http://nebula-plugins.github.io

Page 24: Netflix OSS Meetup Season 4 Episode 4

build.gradle file

Page 25: Netflix OSS Meetup Season 4 Episode 4

● Add contacts to build.gradle● Bundle build metadata into .jar ● Publish .jar files to Bintray● Git tag to build release versions● Optional: lock dependencies

Reduce boilerplate

Page 26: Netflix OSS Meetup Season 4 Episode 4

● Jenkins on Cloudbees● Setup builds with the Job DSL plugin

Continuous integration

● What we didn’t like?○ Lacked declarative builds○ Config not in source○ Complex setup○ Not as common in OSS community

Page 27: Netflix OSS Meetup Season 4 Episode 4

Travis CI

Page 28: Netflix OSS Meetup Season 4 Episode 4

All commits to master./gradlew -Prelease.travisci=true build snapshot

Releases w/ Nebula + TravisCI

Every pull request./gradlew build

Commit tagged with vX.Y.Z-rc#./gradlew -Prelease.travisci=true candidate

Commit tagged with vX.Y.Z./gradlew -Prelease.travisci=true final

Page 29: Netflix OSS Meetup Season 4 Episode 4

https://jcenter.bintray.com

Distributing the binaries

Page 30: Netflix OSS Meetup Season 4 Episode 4

What happens when...

Page 31: Netflix OSS Meetup Season 4 Episode 4

Backup source Netflix OSS

● Backup Github repos to internal Git

git remote add internal \ ssh://[email protected]/foo/bar.git

Page 32: Netflix OSS Meetup Season 4 Episode 4

Transparency and OSS MaturityRuslan Meshenberg@rusmeshenberg

Page 33: Netflix OSS Meetup Season 4 Episode 4

4 seasons of NetflixOSS

Many OSS Projects

In 4 years

Page 34: Netflix OSS Meetup Season 4 Episode 4

All wildly successful?

Some - yes

Some… not so much

Page 35: Netflix OSS Meetup Season 4 Episode 4

What are some of the challenges?

Lack of OSS transparency / direction

Page 36: Netflix OSS Meetup Season 4 Episode 4

What are some of the challenges?

Internal / OSS Divergence

Page 37: Netflix OSS Meetup Season 4 Episode 4

What are some of the challenges?

Maturing and EOL of projects

Page 38: Netflix OSS Meetup Season 4 Episode 4

What are some of the challenges?

Separating ideas from code

Page 39: Netflix OSS Meetup Season 4 Episode 4

What are some of the challenges?

All leading to variable levels of support

Page 40: Netflix OSS Meetup Season 4 Episode 4

What are we doing about it?

Data to the rescue!

Org Health TrackingProject Health TrackingBacklog of PRs and Issues

Page 41: Netflix OSS Meetup Season 4 Episode 4

Overall Org Health Tracking

Metrics we track

● Issues○ open, closed, TTC

● Pull Requests○ open, closed, TTC

● Last commit timing● Stars/forks● Num contributors

Page 42: Netflix OSS Meetup Season 4 Episode 4

Project Health Tracking

github.com/Netflix/

OSSTracker

Page 43: Netflix OSS Meetup Season 4 Episode 4

Transparency about project lifecycle

OSSMETADATA file:

● Active● Maintenance● Archived

Page 44: Netflix OSS Meetup Season 4 Episode 4

Project Ownership

All projects have● Development lead, Management lead● Shepherd from OSS function areaOnly projects with active leads stay active!

Page 45: Netflix OSS Meetup Season 4 Episode 4

Transparency about project evolution

Page 46: Netflix OSS Meetup Season 4 Episode 4

Transparency about project evolution

Page 47: Netflix OSS Meetup Season 4 Episode 4

Converging internal and OSS

Less maintenance for us

You get exactly what we use

Page 48: Netflix OSS Meetup Season 4 Episode 4

Fostering communitiesRob Fletcher

Page 49: Netflix OSS Meetup Season 4 Episode 4
Page 50: Netflix OSS Meetup Season 4 Episode 4

What’s in it for us?Tangible contributions

● Leverage enhancements made for other cloud providers

● Titus integration made easier● Role-based authentication

Intangible benefits

● Influencing the conversation● Validation of concept & implementation● Recruitment● Retention

Page 51: Netflix OSS Meetup Season 4 Episode 4

Spinnaker contributions — Clouddriver

Page 52: Netflix OSS Meetup Season 4 Episode 4

Spinnaker contributions — Orca

Page 53: Netflix OSS Meetup Season 4 Episode 4

Encouraging engagementContributors

● Public roadmap● “no” > ignoring people● We can’t do everything — encourage

contributions ● Review community PRs & issues regularly● Make the 1st step easy● Don’t let docs mislead

Open tools

● GitHub● Slack● Readme.io● Travis CI

Page 54: Netflix OSS Meetup Season 4 Episode 4

You gotta do it every day…that’s the hard part

Page 55: Netflix OSS Meetup Season 4 Episode 4

TODO GroupNithya A. Ruff

Page 56: Netflix OSS Meetup Season 4 Episode 4

• Many of us who ran open source program offices shared a private mailing list to commiserate…

• It was an avenue to discuss issues in private and even find ways to collaborate on open source projects…

• Focused on Silicon Valley companies initially

• In 2014 we had an idea of scaling and opening up the the community more…

• Announced the TODO Group @Scale 2014 conference!

Page 57: Netflix OSS Meetup Season 4 Episode 4

• TODO Group is a group of companies who want to– collaborate on best practices on running open source program

offices– share open source policies and training material– codify quality criteria for well-run open source projects and

communities– build and share tools to maintain those quality standards

• As we scaled our open source programs, we realized we all built similar tools for the purposes of corporate scale open source…

• What is corporate scale open source?

Page 58: Netflix OSS Meetup Season 4 Episode 4

• Corporate participants in open source have a number of unique concerns:– scale (i.e., Google and Microsoft have many open source projects)– insights– cultural– legal / governance

• Companies doing open source generally want to be good community citizens, to be open and inclusive, to operate meritocracies. They also need to run a business and be aware of responsibilities to their employees, shareholders and the broader community.

Page 59: Netflix OSS Meetup Season 4 Episode 4

• To establish the TODO Group as a legitimate legal entity, we partnered with the Linux Foundation to make the TODO Group an official collaborative project!

• The LF helps with legal paperwork, running events and gives the TODO Group access to its 650+ members

Page 60: Netflix OSS Meetup Season 4 Episode 4

Western Digital and Open Source

• Started the Open Source office at SanDisk to engage with the community and go past consumption and compliance

• Branded it Open @ SanDisk and became a visible supporter of events and communities

• Increased contribution and competency inside the company around open source development models

• With the acquisition by Western Digital, created a single office across WD, HGST and SanDisk

Page 61: Netflix OSS Meetup Season 4 Episode 4

Demo Stations

Conductor(workflow)

Page 62: Netflix OSS Meetup Season 4 Episode 4

Questions?