SlideShare a Scribd company logo
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

More Related Content

What's hot (19)

PDF
ContainerCon - Test Driven Infrastructure
Yury Tsarev
 
PPTX
Apple IT Managing Containers
Claire Priester Papas
 
PDF
Jfokus 2017 - The DevOps Disaster
Bert Jan Schrijver
 
PPTX
Devopsguys DevOps 101 for recruiters
DevOpsGroup
 
PDF
Icebreaker with DevOps
WhiteHedge Technologies Inc.
 
PPTX
DSpace 7 - Creating High-Quality Software: Update to Development Practices
4Science
 
PDF
10 years of #devopsdays, but what have we really learned ?
Kris Buytaert
 
PDF
Run stuff, Deploy Stuff, Jax London 2017 Edition
Kris Buytaert
 
PDF
LCE12: Intro Training: Upstreaming 101
Linaro
 
PDF
Gitting better
Ali Servet Donmez
 
PDF
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
Daniel Bryant
 
PDF
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
JAXLondon2014
 
PPTX
50 Shades of DevOps
Dan Hardiker
 
PDF
DevOps for Defenders in the Enterprise
James Wickett
 
PDF
The Journey of devops and continuous delivery in a Large Financial Institution
Kris Buytaert
 
PDF
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM
 
PDF
Unlocking the Power of Iteration
Clement Ho
 
PDF
Everyone Is Part of Continuous Delivery (Agile Portugal)
Manuel Pais
 
PDF
Devops is (not ) a buzzword
Miguel Fonseca
 
ContainerCon - Test Driven Infrastructure
Yury Tsarev
 
Apple IT Managing Containers
Claire Priester Papas
 
Jfokus 2017 - The DevOps Disaster
Bert Jan Schrijver
 
Devopsguys DevOps 101 for recruiters
DevOpsGroup
 
Icebreaker with DevOps
WhiteHedge Technologies Inc.
 
DSpace 7 - Creating High-Quality Software: Update to Development Practices
4Science
 
10 years of #devopsdays, but what have we really learned ?
Kris Buytaert
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Kris Buytaert
 
LCE12: Intro Training: Upstreaming 101
Linaro
 
Gitting better
Ali Servet Donmez
 
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...
JAXLondon2014
 
50 Shades of DevOps
Dan Hardiker
 
DevOps for Defenders in the Enterprise
James Wickett
 
The Journey of devops and continuous delivery in a Large Financial Institution
Kris Buytaert
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM
 
Unlocking the Power of Iteration
Clement Ho
 
Everyone Is Part of Continuous Delivery (Agile Portugal)
Manuel Pais
 
Devops is (not ) a buzzword
Miguel Fonseca
 

Viewers also liked (20)

PDF
Arnaud Porterie - The Truth About C++
Arnaud Porterie
 
PDF
The rise of Docker, and the future of computing
Arnaud Porterie
 
PDF
Arnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie
 
PDF
How to contribute to large open source projects like Docker (LinuxCon 2015)
Jérôme Petazzoni
 
PDF
DockerCon US 2016 - Extending Docker With APIs, Drivers, and Plugins
Arnaud Porterie
 
PPTX
The Real Time Cloud
Enrique A. Ortiz-Mundo, MS
 
PDF
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Khazret Sapenov
 
PDF
Docker presentation
Eugen Oskin
 
PDF
Hilscher netIOT - Industrial Cloud Communication
Armin Pühringer
 
PDF
WSO2 Cloud Platform: Vision and Roadmap
WSO2
 
PDF
NewSQL Database Overview
Steve Min
 
PDF
Try Cloud Spanner
Simon Su
 
PDF
An Overview of Spanner: Google's Globally Distributed Database
Benjamin Bengfort
 
PDF
NewSQL overview, Feb 2015
Ivan Glushkov
 
PDF
Big data landscape map collection by aibdp
AIBDP
 
PPTX
MySQL vs. NoSQL and NewSQL - survey results
Matthew Aslett
 
PDF
D6: Cloud Directions ( Predix Transform 2016)
Predix
 
PDF
Docker: the road ahead
shykes
 
PPTX
DockerCon 16 General Session Day 1
Docker, Inc.
 
PPTX
DockerCon 16 General Session Day 2
Docker, Inc.
 
Arnaud Porterie - The Truth About C++
Arnaud Porterie
 
The rise of Docker, and the future of computing
Arnaud Porterie
 
Arnaud Porterie - Using Machine & Docker to develop & build Docker
Arnaud Porterie
 
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
Arnaud Porterie
 
The Real Time Cloud
Enrique A. Ortiz-Mundo, MS
 
Decentralized cloud an industrial reality with higher resilience by jean-pa...
Khazret Sapenov
 
Docker presentation
Eugen Oskin
 
Hilscher netIOT - Industrial Cloud Communication
Armin Pühringer
 
WSO2 Cloud Platform: Vision and Roadmap
WSO2
 
NewSQL Database Overview
Steve Min
 
Try Cloud Spanner
Simon Su
 
An Overview of Spanner: Google's Globally Distributed Database
Benjamin Bengfort
 
NewSQL overview, Feb 2015
Ivan Glushkov
 
Big data landscape map collection by aibdp
AIBDP
 
MySQL vs. NoSQL and NewSQL - survey results
Matthew Aslett
 
D6: Cloud Directions ( Predix Transform 2016)
Predix
 
Docker: the road ahead
shykes
 
DockerCon 16 General Session Day 1
Docker, Inc.
 
DockerCon 16 General Session Day 2
Docker, Inc.
 
Ad

Similar to DockerCon US 2016 - Scaling Open Source operations (20)

PDF
Contribute 101: Engine/Swarm/ContainerD by Phil Estes
Docker, Inc.
 
PDF
Docker enables agile_devops
Boyd Hemphill
 
PDF
Contribute and Collaborate 101
Docker, Inc.
 
PPTX
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
PDF
Dockercon EU 2014
Rafe Colton
 
PDF
Docker 102 - Immutable Infrastructure
Adrian Otto
 
PDF
Markings of a Healthy OSS Project
Clement Ho
 
PPTX
OpenStack Doc Overview for Boot Camp
Anne Gentle
 
PPTX
Zero to Merge Journey to OpenInfra by Sang Tran
sangtqvn
 
PPTX
Docker Docker - Docker Security - Docker
Boyd Hemphill
 
PPTX
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
E. Camden Fisher
 
PDF
What every successful open source project needs
Steven Francia
 
PDF
DockerCon SF 2015: Keynote Day 1
Docker, Inc.
 
PDF
The "Holy Grail" of Dev/Ops
Erik Osterman
 
ODP
The journey to container adoption in enterprise
Igor Moochnick
 
PDF
Docker Oxford launch - Introduction to Docker
jonatanblue
 
PDF
Killer Docker Workflows for Development
Chris Tankersley
 
PDF
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
Ambassador Labs
 
PDF
How kubernetes works community, velocity, and contribution - osls 2017 (1)
Brian Grant
 
PDF
Docker Overview
Alex Ellis
 
Contribute 101: Engine/Swarm/ContainerD by Phil Estes
Docker, Inc.
 
Docker enables agile_devops
Boyd Hemphill
 
Contribute and Collaborate 101
Docker, Inc.
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
Dockercon EU 2014
Rafe Colton
 
Docker 102 - Immutable Infrastructure
Adrian Otto
 
Markings of a Healthy OSS Project
Clement Ho
 
OpenStack Doc Overview for Boot Camp
Anne Gentle
 
Zero to Merge Journey to OpenInfra by Sang Tran
sangtqvn
 
Docker Docker - Docker Security - Docker
Boyd Hemphill
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
E. Camden Fisher
 
What every successful open source project needs
Steven Francia
 
DockerCon SF 2015: Keynote Day 1
Docker, Inc.
 
The "Holy Grail" of Dev/Ops
Erik Osterman
 
The journey to container adoption in enterprise
Igor Moochnick
 
Docker Oxford launch - Introduction to Docker
jonatanblue
 
Killer Docker Workflows for Development
Chris Tankersley
 
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
Ambassador Labs
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
Brian Grant
 
Docker Overview
Alex Ellis
 
Ad

More from Arnaud Porterie (6)

PDF
Docker Barcelona Meetup - An Introduction to BuildKit
Arnaud Porterie
 
PDF
Building software: the lessons from open source
Arnaud Porterie
 
PDF
DockerCon EU 2015 - Windows Server Containers
Arnaud Porterie
 
PDF
DockerCon US 2015 - Engine Breakout Session
Arnaud Porterie
 
PDF
DockerCon EU 2015 - The Latest on Docker Engine
Arnaud Porterie
 
PDF
Abusing text/template for data transformation
Arnaud Porterie
 
Docker Barcelona Meetup - An Introduction to BuildKit
Arnaud Porterie
 
Building software: the lessons from open source
Arnaud Porterie
 
DockerCon EU 2015 - Windows Server Containers
Arnaud Porterie
 
DockerCon US 2015 - Engine Breakout Session
Arnaud Porterie
 
DockerCon EU 2015 - The Latest on Docker Engine
Arnaud Porterie
 
Abusing text/template for data transformation
Arnaud Porterie
 

Recently uploaded (20)

PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Digital Circuits, important subject in CS
contactparinay1
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 

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