A talk given at All Thing Open's Open Source 101 event at NC State University, Raleigh, North Carolina on Saturday, 17th February, 2018.
This talk covered some interesting history lessons of the Docker open source project and inter-vendor tensions. If you were not at this talk do not read intent into these slides as this was truly an attempt at a "blame-free" post-mortem of the important topics of open source, governance, and foundations as it related to the extremely popular Docker open source project.
2. Hello!
Phil Estes
> Office of the CTO
> IBM Watson & Cloud Platform
> Docker Captain
> Containerd and Moby Project
maintainer
2
3. @estesp
Why me?
▪ Started contributing to Docker in August 2014
□ First PR merged Sep 22, 2014
□ Have code in Docker in every release since 1.3.0
(Oct 16, 2014)
▪ Became a core maintainer in March 2015
▪ Participated in Docker governance discussions
since early 2015
▪ 107 PRs merged into Docker in 3.5 years
□ #33 all time contributor (out of 1,750 contributors)
▪ Member of OCI Technical Oversight Board (TOB),
Moby Technical Steering Committee (TSC)
3
5. @estesp
2013-2014 Docker explosion
▪ Everyone gets
involved in the
Docker open source
project
▪ Red Hat, Google,
CoreOS, Microsoft,
IBM, Huawei, many
others...
5
6. @estesp
2014-15: The Open Source Firehose
▪ 130-150 PRs submitted per week
▪ 20+ active maintainers (~30% external)
▪ docker/docker repo passes 1000
contributors
▪ Difficult to process non-trivial PRs
(design/UX, API adds/changes, features)
□ Some PRs lapse for 6mo, 1yr, or more
□ Some PRs rejected after months of
discussion, leading to contributor frustration
6
8. @estesp
2014-15: OSS + Product = Hard.
> December 2014: During DockerCon EU
Amsterdam CoreOS announces a competing
container runtime: rkt
> June 2015: During DockerCon SF, the
Linux Foundation, Google, Docker, CoreOS,
Red Hat, IBM and others announce the Open
Container Initiative (OCI) to solve tensions
8
Is Docker really open?
9. @estesp
Red Hat & Docker tensions
▪ Red Hat packaged a modified Docker
engine, delivered in RHEL/Project Atomic
□ RH publishes list of declined/closed PRs:
□ http://www.projectatomic.io/docs/docker_patches
▪ Competition heats up with marketing
(e.g. “accept no imitations” t-shirt)
▪ OCI Standardization provides some relief
□ RH can produce OCI-specific tools without
Docker (cri-o, buildah, skopeo, etc.)
9
11. @estesp
But why?
11
Let’s Make Containers Boring - Vincent
Batts, Red Hat (meetup talk)
An Ode To Boring: Creating Open and Stable
Container World - Bob Wise (Medium)
The goal of standardising containers is,
ultimately, to make them boring.
- Jonathan Boulle (Container Camp interview)
But many platform builders and operators are looking for “boring
infrastructure”: a basic component that provides the robust primitives
for running containers on their system, bundled in a stable interface,
and nothing else. - Docker Blog, containerd announcement
13. @estesp
Open Container Initiative
▪ Create a common runtime and image
specification to standardize the
“container” concept
▪ Implementation of the runtime spec,
runc, created from contributed
libcontainer code from Docker
13
• Announced June 20th,
2015
• Charter signed on
December 8th, 2015
• 38 current member
companies
• v1.0 runtime & image
spec released June 2017
https://opencontainers.org
https://github.com/opencontainers
14. @estesp
CNCF
▪ Formed in Summer 2015 (announced at
OSCON) with very similar vendor
participation and timeframe to OCI
▪ Took Google donation of Kubernetes as
first member project
▪ In March 2017, Docker donates
containerd as a member project under
the CNCF
14
15. @estesp
Moby Project
> April 2017: The Moby project announced
at DockerCon Austin
> Q4 2017 - The BDFL governance is retired,
replaced with a technical steering committee
(TSC) model
15
16. @estesp
CNCF containerd project
> December 2016: A boring core container
runtime for everyone, announced by Docker
> March 2017: Contributed to CNCF
> December 2017: v1.0 release announced
Consumable by many upstream projects: Kubernetes,
Docker, LinuxKit, BuildKit, Cloud Foundry garden runtime,
OpenWhisk FaaS, others.
16
17. @estesp
Summary
▪ Open Source “openness” is a difficult dance
to balance with vendor oversight
□ Especially under these circumstances:
▫ A very hot industry/ecosystem with many players
▫ Assumptions of VC control due to large funding
▫ Vendor commercial goals can diverge from OSS
▪ Foundations & standards can help mitigate
□ Pros/cons to vendor-foundation governance
▪ Open Source is still a powerful tool for
cross-vendor collaboration when done well!
17