Sometimes success can be as dangerous as failure for a software project. In the course of less than two years, Docker has become its own ecosystem, but now faces growing pains due to the sheer volume of contributions, third-party extensions, and applications created with it.
Faced with this reality, Docker -- the project and the company -- is attempting a reorganization to better handle its growth and scalability. In what can only be described as a gesture of faith in open source as both a governance and developmental model, the project's leaders opted to discuss the proposed changes by way of a GitHub pull.
Most of the organizational changes involve "distribut[ing] critical responsibilities across a strong team of three leaders with distinct responsibilities," according to Docker's press release. Solomon Hykes, founder of Docker, is assuming the role of chief architect for the project and continuing his role at CTO of Docker, Inc. Michael Crosby, creator of libcontainer -- the real core of Docker -- will work as chief maintainer, ensuring that the quality of the submitted code and released product are up to par. Steve Francia, a three-year veteran of MongoDB, will step in as chief operator to oversee day-to-day matters for the project.
Critics of Docker technology have largely zeroed in on four details:
- Security for containers
- Networking of containers
- Project governance
- Client construction
The technical issues raised by the first two are being fixed, if slowly, by new revisions of Docker and by third-party projects. One change to the project seems to address how to make the repairs themselves; it's described as the "creation of open design sprint sessions involving a broad cross-section of community members for developing functionality (e.g. networking, clustering, trust and provenance) that cannot be easily handled by external, large pull requests."
To defray criticism about the governance of the project -- likely to surface where any open source project is under the stewardship of a for-profit corporation -- Docker formed an advisory board, the DGAB, in April 2014, but shied away from turning Docker into a stand-alone entity managed by a foundation, à la jQuery or MariaDB.
"We think that Docker is at a unique stage in its lifecycle, and we want to craft a model that is appropriate for where we are as a project," Golub wrote. He also noted that due to the project's rapid growth and "its unique stage in its lifecycle," "the last thing we want to do is weigh the project down with bureaucracy." (Part of Francia's role is to work with the DGAB to ensure the project and its governance are in sync.)
Finally, Docker CEO Ben Golub maintains that the characterization of the Docker client as monolithic and top-heavy is unfair and inaccurate. The core APIs (mainly libcontainer) are externally accessible, and the project can in theory support multiple container image types -- including Rocket, if the demand surfaces. Rocket, a challenger container format spearheaded by CoreOS, is moving forward with fresh changes inspired by what could be interpreted as lessons learned from the challenges faced by Docker.