Success can build a feedback loop that sustains its own momentum, making those who are successful certain they are doing the right thing. I don't want to charge Docker with such hubris, but recent events illustrate why open source code projects function the way they do.
The beauty of open source code is that there are breakpoints in the feedback loop. Some outsider speaks up and says, "What you just did was wrong, the code was no good, the function doesn't belong in the heart of the product, and, by the way, your code review process stinks. Maybe I'll start my own project."
The threat of a fork keeps project leaders on their toes. They don't want to give up a major initiative, along with a segment of their best developers, to a competing project. Somewhere in its recent rush to prominence, Docker's code leaders didn't listen. There must have been rumblings of discontent within the ranks about Docker's direction. In effect, the drive to standardize and make Linux containers more useful just split off a dissenting group: CoreOS's Rocket. It remains to be seen whether Rocket becomes a legitimate threat to Docker's place in the cloud container driver's seat.
[For more on Rocket's competition with Docker, see: Rocket Vs. Docker Will Come Down To DevOps.]
Docker didn't come up with the original Linux control groups or Linux namespaces on which containers are based. If it began assuming what's good for Docker Inc. would always be good for Linux containers, it was on thin ice. Docker founder and CTO Solomon Hykes was skilled at envisioning what could be done next from a developer's point of view with containers, but developers aren't the only parties with a stake in containers. And not all developers fit into Docker's definition of what developers should be doing. For some, "open," as in Docker open source, began to feel more like a straightjacket.
Leaders in open source projects tend to be good at doing two things. They recognize good code when they see it, but perhaps more importantly, they can both listen to submitters and infer from the code the submitter's point of view. I've always been struck by how much the committers of a project are able to conclude about the talents and attitudes of contributors from brief email exchanges and the code itself.
In some cases, with little or no face-to-face interaction, they accept and congratulate the contributor or they reject and advise a would-be project participant. When arguments ensue, they don't hesitate to say when someone is getting a little full of themselves. Egos are kept in check, and issues are decided on how well the code fits into the strategic direction of the project. Committers are elected for the task by the community because their abilities to both listen and think on their feet show up in their comments on other people's work.
Brian Behelendorf did that with Apache. Linus Torvalds did it with Linux. Marc Fleury did it abrasively with JBoss, forking the project in process (but the fork never went anywhere because he continued to guide the code's strategic direction wisely). (JBoss was acquired by Red Hat in 2006 for $350 million.)
In the aftermath of the Docker fork, it seems clear that not a lot of quality listening has been going on. Docker's Hykes is a skilled code creator; some people call him a technical genius. He's responsible for establishing Linux containers in what may prove to be their most widely used format. But like I said, successful open source project leaders also listen.
About a month before CoreOS publicly broke away from the Docker project, on Nov. 6 Hykes issued 13 Docker tenets. After CoreOS went public Monday, Hykes responded in a blog post and on Hacker News: "Hi, I created Docker. I have exactly three things to say," with number three being a reference to the 13 tenets.
Hykes' first comment was: "Competition is always good ... Docker brought competition to lxc [Linux containers]. And now tools like lxd, rocket, and nspawn are bringing competition to Docker. In response Docker is forced to up its game and earn its right to be the dominant tool. This is a good thing."
Next, he said: "'disappointed' doesn't even begin to describe how I feel about the behavior and language in [CoreOS's] post and in the accompanying press campaign. If you're going to compete, just compete! Slinging mud accomplishes nothing and will backfire in the end."
Hykes was objecting to CoreOS's post on its Rocket container runtime. The post set out CoreOS's goals and objectives and didn't hesitate to cite how it differed from Docker. In establishing an open source project, all of the foregoing should be fair game.
His third comment led to his 13 tenets; the last three are most relevant here:
"11) Anyone is free to try 'embrace, extend, extinguish' on Docker. But incentives are designed to make that a stupid decision.
"12) Docker's scope and direction are constant. It's people's understanding of it, and execution speed, that are changing."
And, saving the best for last: "13) If you USE Docker I should listen to your opinion on scope and design. If you SELL Docker, you should listen to mine."
These three points treat the Docker ecosystem of partners and contributors in a condescending fashion. Everyone in the community has the right
to take Docker's code and fork it. Technically speaking, CoreOS has not done that. There's no Docker code acknowledged in Rocket, so let's say it's come up with its own container runtime. It has a right to do so -- even if it wanted to begin with Docker code.
Open source communities have made explicit the right of partners and participants to take source code and commercialize it. One reason they come into existence is to give their members the opportunity to do so, and numerous projects have thrived with the approach. The rules for doing so vary with the open source license, but the core leadership of any project has to be tolerant of that activity and continue to view contributions on their merits. It's very adult behavior to do so, and Hykes tripped himself up by not understanding this.
CoreOS's announcement came the same week as DockerCon Europe, and Hykes viewed CoreOS's move as an effort to undercut Docker presentations there. In fact, there is no "correct" time to break away from an established project to start your own. You simply do it, put out your goals, and highlight your profile as best you can, hoping to attract contributors.
Matt Asay, VP of mobile at Adobe and with a decade of earlier experience with Canonical and other open source suppliers, responded Thursday with a blog on ReadWrite: "When it comes to crisis management, Docker hasn't done so well lately. In a blog post and then a series of Twitter broadsides (the modern-day equivalent of the rashly written 'reply all' email), Docker founder Solomon Hykes ripped into critics, competitors, and interested onlookers, challenging the integrity of CoreOS, which had just announced Rocket."
The developer comments on Hacker News alone should have told Hykes he was treading the wrong path. "Yes, there is some mild-mannered disparagement in the announcement, but it's hard to characterize it as 'slinging mud,' and it's not really fair to disparage it with the name-calling you're injecting," wrote Vacri.
Hykes' Hacker News post drew developers' comments supporting Docker, but he also elicited this comment: "CoreOS made a grand announcement, and yes it competes with Docker ... but just let it play out. Frankly, there are a lot of things Rocket aims to do that are more appealing to me. Security being one of them, and a standardized container specification is another. If anything, it will make Docker compete better," wrote Alupis.
Slightly worse than Hykes' "slinging mud" was a claim, started by an unknown party, that Sequoia, which the lead investor in Docker's $40 million round of venture capital in September, was withdrawing as an investor in CoreOS. The charge that Sequoia had resigned its CoreOS board seat was slinging mud, especially considering that Sequoia didn't have a board seat.
All is not lost, and I'm sure the good ship Docker Inc. will right itself shortly, hopefully with its container cargo intact. In the seas of software development there are tempests, and sometimes there are real storms. It's hard to maintain your balance when success comes quickly -- and accompanied by a $40 million thrust of venture funding. But in the open source world, that's what's required, and that's what Hykes and Docker still need to show us they can do.
Our latest survey shows growing demand, fixed budgets, and good reason why resellers and vendors must fight to remain relevant. One thing's for sure: The data center is poised for a wild ride, and no one wants to be left behind. Get the Research: 2014 State Of The Data Center report today. (Free registration required.)Charles Babcock is an editor-at-large for InformationWeek and author of Management Strategies for the Cloud Revolution, a McGraw-Hill book. He is the former editor-in-chief of Digital News, former software editor of Computerworld and former technology editor of Interactive ... View Full Bio