SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Scaling Open Source Operations
Arnaud
Porterie
Sr. Engineering Manager, Docker
The people
Three groups
One culture
Agenda
The processes
Maintainership
Code & design
The tooling
Measure
Automate
The people
Who are the people in open source?
The people
Users
Contributors Maintainers
Who are the people in open source?
The people
Users
Contributors Maintainers
● Influence the roadmap and priorities
● Report usability issues and bugs (+1!)
● Want to learn about what is coming next
Who are the people in open source?
The people
Users
Contributors Maintainers
● Contribute something (code, docs, tests, …)
● Come to improve a project they use (hobbyist)
● Come to influence the project (professional)
Who are the people in open source?
The people
Users
Contributors Maintainers
● Organize the project
● Filter and review contributors input
● Influence by defining the roadmap
Contributors
(~800+ / 6M)
Who are the people in open source?
The people Users
(~6000+ / 6M)
● These groups aren’t mutually exclusive
● These groups aren’t mapped to employers
● These groups are very different in size!
Mtnr.
(~60)
Props to (some of!) the Docker maintainers
The people
The secret sauce for a healthy project
● Culture defines your open source community
● Of all things, culture is the one that scales best
○ Old habits die hard
○ Newcomers tend to follow community’s codes
○ It takes very few people to show the example to many
● Behave like you want your community to behave
Open source culture
The processes
The role of maintainers
● A maintainer is not a super contributor
○ Typically know the project best and happen to also be top contributors
● To the contrary, the maintainers role is to reach 0 open contributions
○ By interacting with community: coaching contributors, reviewing code
○ By improving the project infrastructure: guides, testing infra, tooling
● To maintainers, unreviewed contributions are a liability
Becoming a maintainer
How to identify those key community members?
● Golden rule: anybody should be able to become maintainer
○ The hobbyist dedicating a few hours every week
○ The professional paid by their employer to participate
● Docker’s approach: reward regular activity over extended period of time
○ Decision is vote-based (⅔ of maintainers + BDFL to approve)
○ But how to measure activity?
Becoming a maintainer
How to identify those key community members?
● Number of contributions is not the right metric to identify maintainers
● Our solution: number of issues & pull requests interacted with
○ Opening a pull request and commenting 10 times on it counts as 1
○ Commenting on someone else’s pull request also counts as 1
● Promotes people showing broader interest than their own contributions
Becoming a maintainer
● Different groups
● Different expectations
● Conflicting priorities
What and who are you optimizing for?
Defining the process
Features Quality
Users
Contributors
Maintainers
Project pace
● Quality first
● Review fast
● Minimize feature creep
Docker project tradeoffs
Defining the process
Features Quality
Project pace
What and who are you optimizing for?
● Docker open source processes mostly favor contributors
○ We don’t delay merges during code freeze
○ We carry patches that can’t be merged as is
○ We work hard to “reach a yes” (80% of contributions are merged)
● A happy contributor may eventually become a helpful maintainers
Defining the process
The goals of the process
● Minimizing frustration for the contributor...
○ By processing contributions in a timely manner
○ By “failing early” for contributions which won’t get merged
● … While preserving quality
○ Good automated testing and coverage
○ Two maintainers are required to merge
Example: code review process
Our approach: 4 steps workflow using GitHub labels
● Easy to tell what’s expected next
○ Is it a contribution we want?
○ Is it properly written, tested, and safe?
○ Is it documented?
○ Profit!
● Plus a few special labels for problematic contributions
○ Tests aren’t passing
○ Not progressing
Example: code review process
The pitfalls of “design by committee”
● Design decisions don’t scale (“too many cooks in the kitchen”)
● Golden rule: “No is temporary, yes is forever”
○ The default is “no” unless consensus can be reached
○ Reaching consensus gets harder as the group grows
● Divide and conquer: smaller groups on better delimited problems
Scaling design
Manage your processes as code
● Processes are just another tool
○ Document them as text files in the repository
○ Adjust the processes through pull requests
● For examples, see project/ subdirectory in github.com/docker/docker
Processes best practices
The tooling
Measure, automate, repeat
Metrics, metrics, metrics!
Measuring open source activity
● Many new questions will arise as a project scales
○ Who are the active members of the community?
○ Who is contributing to the project?
○ How fast do maintainers process contributions?
○ What are the most active repositories?
● We failed to find our ideal tool for that, so we built it
icecrime/vossibility-stack
Metrics, metrics, metrics!
Measuring open source activity
Automation
● GitHub webhooks are essential for open source automation
○ Docker uses NSQ to persist and fan-out messages
○ Allows for multiple listeners (queues) for a single repository (topic)
docker/leeroy Automate actions on GitHub events
docker/gordon-bot IRC bot to interact with Jenkins CI server
icecrime/poule Mass interact with pull requests
What’s next?
● Come learn how to contribute, or meet the maintainers!
Day 1
2:00pm Contribute 101: Engine / Swarm / Containerd
2.55pm Meet the maintainers: Engine / Swarm / Containerd
Day 2
1:30pm Contribute 101: Compose / Kitematic / Machine
2:25pm Meet the maintainers: Compose / Kitematic / Machine
Thank you!
@icecrime

Contenu connexe

Tendances

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJulien Pivotto
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Bert Jan Schrijver
 
Devopsguys DevOps 101 for recruiters
Devopsguys   DevOps 101 for recruitersDevopsguys   DevOps 101 for recruiters
Devopsguys DevOps 101 for recruitersDevOpsGroup
 
DSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development PracticesDSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development Practices4Science
 
10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ? Kris Buytaert
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101Linaro
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"Daniel Bryant
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...JAXLondon2014
 
50 Shades of DevOps
50 Shades of DevOps50 Shades of DevOps
50 Shades of DevOpsDan Hardiker
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseJames Wickett
 
The Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionThe Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionKris Buytaert
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
 
Unlocking the Power of Iteration
Unlocking the Power of IterationUnlocking the Power of Iteration
Unlocking the Power of IterationClement Ho
 
Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)Manuel Pais
 
Devops is (not ) a buzzword
Devops is (not ) a buzzwordDevops is (not ) a buzzword
Devops is (not ) a buzzwordMiguel Fonseca
 

Tendances (20)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Apple IT Managing Containers
Apple IT Managing Containers Apple IT Managing Containers
Apple IT Managing Containers
 
Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster Jfokus 2017 - The DevOps Disaster
Jfokus 2017 - The DevOps Disaster
 
Devopsguys DevOps 101 for recruiters
Devopsguys   DevOps 101 for recruitersDevopsguys   DevOps 101 for recruiters
Devopsguys DevOps 101 for recruiters
 
Icebreaker with DevOps
Icebreaker with DevOpsIcebreaker with DevOps
Icebreaker with DevOps
 
DSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development PracticesDSpace 7 - Creating High-Quality Software: Update to Development Practices
DSpace 7 - Creating High-Quality Software: Update to Development Practices
 
10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ? 10 years of #devopsdays, but what have we really learned ?
10 years of #devopsdays, but what have we really learned ?
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101
 
Gitting better
Gitting betterGitting better
Gitting better
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
 
50 Shades of DevOps
50 Shades of DevOps50 Shades of DevOps
50 Shades of DevOps
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
The Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial InstitutionThe Journey of devops and continuous delivery in a Large Financial Institution
The Journey of devops and continuous delivery in a Large Financial Institution
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
 
Unlocking the Power of Iteration
Unlocking the Power of IterationUnlocking the Power of Iteration
Unlocking the Power of Iteration
 
Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)Everyone Is Part of Continuous Delivery (Agile Portugal)
Everyone Is Part of Continuous Delivery (Agile Portugal)
 
Devops is (not ) a buzzword
Devops is (not ) a buzzwordDevops is (not ) a buzzword
Devops is (not ) a buzzword
 

En vedette

Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie
 
The rise of Docker, and the future of computing
The rise of Docker, and the future of computingThe rise of Docker, and the future of computing
The rise of Docker, and the future of computingArnaud Porterie
 
Arnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build DockerArnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build DockerArnaud Porterie
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)Jérôme Petazzoni
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsDockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsArnaud Porterie
 
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Decentralized cloud   an industrial reality with higher resilience by jean-pa...Decentralized cloud   an industrial reality with higher resilience by jean-pa...
Decentralized cloud an industrial reality with higher resilience by jean-pa...Khazret Sapenov
 
Docker presentation
Docker presentationDocker presentation
Docker presentationEugen Oskin
 
Hilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud CommunicationHilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud CommunicationArmin Pühringer
 
WSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and RoadmapWSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and RoadmapWSO2
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database OverviewSteve Min
 
Try Cloud Spanner
Try Cloud SpannerTry Cloud Spanner
Try Cloud SpannerSimon Su
 
An Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed DatabaseAn Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed DatabaseBenjamin Bengfort
 
NewSQL overview, Feb 2015
NewSQL overview, Feb 2015NewSQL overview, Feb 2015
NewSQL overview, Feb 2015Ivan Glushkov
 
Big data landscape map collection by aibdp
Big data landscape map collection by aibdpBig data landscape map collection by aibdp
Big data landscape map collection by aibdpAIBDP
 
MySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey resultsMySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey resultsMatthew Aslett
 
D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)Predix
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road aheadshykes
 
DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1Docker, Inc.
 
DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2 DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2 Docker, Inc.
 

En vedette (20)

Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++Arnaud Porterie - The Truth About C++
Arnaud Porterie - The Truth About C++
 
The rise of Docker, and the future of computing
The rise of Docker, and the future of computingThe rise of Docker, and the future of computing
The rise of Docker, and the future of computing
 
Arnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build DockerArnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie - Using Machine & Docker to develop & build Docker
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)
 
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsDockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
 
The Real Time Cloud
The Real Time CloudThe Real Time Cloud
The Real Time Cloud
 
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Decentralized cloud   an industrial reality with higher resilience by jean-pa...Decentralized cloud   an industrial reality with higher resilience by jean-pa...
Decentralized cloud an industrial reality with higher resilience by jean-pa...
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Hilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud CommunicationHilscher netIOT - Industrial Cloud Communication
Hilscher netIOT - Industrial Cloud Communication
 
WSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and RoadmapWSO2 Cloud Platform: Vision and Roadmap
WSO2 Cloud Platform: Vision and Roadmap
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database Overview
 
Try Cloud Spanner
Try Cloud SpannerTry Cloud Spanner
Try Cloud Spanner
 
An Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed DatabaseAn Overview of Spanner: Google's Globally Distributed Database
An Overview of Spanner: Google's Globally Distributed Database
 
NewSQL overview, Feb 2015
NewSQL overview, Feb 2015NewSQL overview, Feb 2015
NewSQL overview, Feb 2015
 
Big data landscape map collection by aibdp
Big data landscape map collection by aibdpBig data landscape map collection by aibdp
Big data landscape map collection by aibdp
 
MySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey resultsMySQL vs. NoSQL and NewSQL - survey results
MySQL vs. NoSQL and NewSQL - survey results
 
D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)D6: Cloud Directions ( Predix Transform 2016)
D6: Cloud Directions ( Predix Transform 2016)
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
 
DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1DockerCon 16 General Session Day 1
DockerCon 16 General Session Day 1
 
DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2 DockerCon 16 General Session Day 2
DockerCon 16 General Session Day 2
 

Similaire à DockerCon US 2016 - Scaling Open Source operations

Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015rgristroph
 
Drupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source SustainabilityDrupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source SustainabilityAll Things Open
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4aspyker
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering PrimerGeorg Buske
 
Open agile is free and open source community agile-
Open agile  is free and open source community agile-Open agile  is free and open source community agile-
Open agile is free and open source community agile-Agile Tour Beirut
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 
Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Linaro
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...LibbySchulze
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceLinaro
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)Brian Grant
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open sourceArnaud Porterie
 
Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013Shawn Day
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupBen VanEvery
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklistDavid Bain
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software EntrepreneurshipSouth Tyrol Free Software Conference
 
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...UXPA Boston
 
How to work with virtual volunteers
How to work with virtual volunteersHow to work with virtual volunteers
How to work with virtual volunteersTemi Adewumi
 
Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...berhanu taye
 

Similaire à DockerCon US 2016 - Scaling Open Source operations (20)

Large drupal site builds a workshop for sxsw interactive - march 17, 2015
Large drupal site builds   a workshop for sxsw interactive - march 17, 2015Large drupal site builds   a workshop for sxsw interactive - march 17, 2015
Large drupal site builds a workshop for sxsw interactive - march 17, 2015
 
Drupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source SustainabilityDrupal's Credit System and Evidence-Based Open-Source Sustainability
Drupal's Credit System and Evidence-Based Open-Source Sustainability
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Open agile is free and open source community agile-
Open agile  is free and open source community agile-Open agile  is free and open source community agile-
Open agile is free and open source community agile-
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01Philosophy of Open Source - SFO17-TR01
Philosophy of Open Source - SFO17-TR01
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
 
BUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open SourceBUD17-TR01: Philosophy of Open Source
BUD17-TR01: Philosophy of Open Source
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open source
 
Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013Digital Project Management UCC Nov 2013
Digital Project Management UCC Nov 2013
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
 
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
Micheal Monty Widenius -  Free Open Source Software EntrepreneurshipMicheal Monty Widenius -  Free Open Source Software Entrepreneurship
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
 
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
 
How to work with virtual volunteers
How to work with virtual volunteersHow to work with virtual volunteers
How to work with virtual volunteers
 
Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...Project management.docx communictionLecture notes Training for Trainers in Ge...
Project management.docx communictionLecture notes Training for Trainers in Ge...
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

DockerCon US 2016 - Scaling Open Source operations

  • 1. Scaling Open Source Operations Arnaud Porterie Sr. Engineering Manager, Docker
  • 2. The people Three groups One culture Agenda The processes Maintainership Code & design The tooling Measure Automate
  • 4. Who are the people in open source? The people Users Contributors Maintainers
  • 5. Who are the people in open source? The people Users Contributors Maintainers ● Influence the roadmap and priorities ● Report usability issues and bugs (+1!) ● Want to learn about what is coming next
  • 6. Who are the people in open source? The people Users Contributors Maintainers ● Contribute something (code, docs, tests, …) ● Come to improve a project they use (hobbyist) ● Come to influence the project (professional)
  • 7. Who are the people in open source? The people Users Contributors Maintainers ● Organize the project ● Filter and review contributors input ● Influence by defining the roadmap
  • 8. Contributors (~800+ / 6M) Who are the people in open source? The people Users (~6000+ / 6M) ● These groups aren’t mutually exclusive ● These groups aren’t mapped to employers ● These groups are very different in size! Mtnr. (~60)
  • 9. Props to (some of!) the Docker maintainers The people
  • 10. The secret sauce for a healthy project ● Culture defines your open source community ● Of all things, culture is the one that scales best ○ Old habits die hard ○ Newcomers tend to follow community’s codes ○ It takes very few people to show the example to many ● Behave like you want your community to behave Open source culture
  • 12. The role of maintainers ● A maintainer is not a super contributor ○ Typically know the project best and happen to also be top contributors ● To the contrary, the maintainers role is to reach 0 open contributions ○ By interacting with community: coaching contributors, reviewing code ○ By improving the project infrastructure: guides, testing infra, tooling ● To maintainers, unreviewed contributions are a liability Becoming a maintainer
  • 13. How to identify those key community members? ● Golden rule: anybody should be able to become maintainer ○ The hobbyist dedicating a few hours every week ○ The professional paid by their employer to participate ● Docker’s approach: reward regular activity over extended period of time ○ Decision is vote-based (⅔ of maintainers + BDFL to approve) ○ But how to measure activity? Becoming a maintainer
  • 14. How to identify those key community members? ● Number of contributions is not the right metric to identify maintainers ● Our solution: number of issues & pull requests interacted with ○ Opening a pull request and commenting 10 times on it counts as 1 ○ Commenting on someone else’s pull request also counts as 1 ● Promotes people showing broader interest than their own contributions Becoming a maintainer
  • 15. ● Different groups ● Different expectations ● Conflicting priorities What and who are you optimizing for? Defining the process Features Quality Users Contributors Maintainers Project pace
  • 16. ● Quality first ● Review fast ● Minimize feature creep Docker project tradeoffs Defining the process Features Quality Project pace
  • 17. What and who are you optimizing for? ● Docker open source processes mostly favor contributors ○ We don’t delay merges during code freeze ○ We carry patches that can’t be merged as is ○ We work hard to “reach a yes” (80% of contributions are merged) ● A happy contributor may eventually become a helpful maintainers Defining the process
  • 18. The goals of the process ● Minimizing frustration for the contributor... ○ By processing contributions in a timely manner ○ By “failing early” for contributions which won’t get merged ● … While preserving quality ○ Good automated testing and coverage ○ Two maintainers are required to merge Example: code review process
  • 19. Our approach: 4 steps workflow using GitHub labels ● Easy to tell what’s expected next ○ Is it a contribution we want? ○ Is it properly written, tested, and safe? ○ Is it documented? ○ Profit! ● Plus a few special labels for problematic contributions ○ Tests aren’t passing ○ Not progressing Example: code review process
  • 20. The pitfalls of “design by committee” ● Design decisions don’t scale (“too many cooks in the kitchen”) ● Golden rule: “No is temporary, yes is forever” ○ The default is “no” unless consensus can be reached ○ Reaching consensus gets harder as the group grows ● Divide and conquer: smaller groups on better delimited problems Scaling design
  • 21. Manage your processes as code ● Processes are just another tool ○ Document them as text files in the repository ○ Adjust the processes through pull requests ● For examples, see project/ subdirectory in github.com/docker/docker Processes best practices
  • 23. Metrics, metrics, metrics! Measuring open source activity ● Many new questions will arise as a project scales ○ Who are the active members of the community? ○ Who is contributing to the project? ○ How fast do maintainers process contributions? ○ What are the most active repositories? ● We failed to find our ideal tool for that, so we built it
  • 25. Automation ● GitHub webhooks are essential for open source automation ○ Docker uses NSQ to persist and fan-out messages ○ Allows for multiple listeners (queues) for a single repository (topic) docker/leeroy Automate actions on GitHub events docker/gordon-bot IRC bot to interact with Jenkins CI server icecrime/poule Mass interact with pull requests
  • 26. What’s next? ● Come learn how to contribute, or meet the maintainers! Day 1 2:00pm Contribute 101: Engine / Swarm / Containerd 2.55pm Meet the maintainers: Engine / Swarm / Containerd Day 2 1:30pm Contribute 101: Compose / Kitematic / Machine 2:25pm Meet the maintainers: Compose / Kitematic / Machine