DockerCon 2015 For a while, it looked as though software containers were heading for the kind of standards squabble that has plagued the tech industry too often in its history.
On the one hand, Docker – the plucky startup that's almost singlehandedly responsible for the recent explosion of interest in containers in the Linux world – had argued that its homemade container format has become the de facto standard, and that should be good enough for anyone.
More ReadingOracle: Docker container tech will be in the Zone on SolarisA hybrid upstart trying to sink its fangs into Docker: ApceraOpen Container Project renames, says standard is just weeks awayKubernetes claque bursts into SPONTANEOUS APPLAUSE for v1.0Gazing at the future: Taking a look at two $20m storage upstarts
On the other hand, developers who preferred a more formal specification that's governed by consensus, rather than by a single company, had begun rallying around appc, an independent container spec launched by cloudy Linux vendor CoreOS.
With Monday's unveiling of the Open Container Project (OCP), a new cross-industry governance body under the aegis of the Linux Foundation, the container market looks like it has a chance to avoid a protracted and costly shouting match. But just how does the OCP plan to unite the various stakeholders, with their differing interests?
Docker leads the way
It all starts with Solomon Hykes. The creator of Docker and now CTO of the eponymous company initially seemed dismissive of appc, and of the need for an independent, open container standard. "All I see is a bunch of hype in the press," Hykes sneered in a December GitHub comment, when a contributor suggested that Docker should implement appc.
These days he seems more resigned to the idea. "Standards wars are an ugly, terrible thing," he said during Monday's keynote address at the DockerCon conference in San Francisco. "They're both terrible and boring at the same time, if that's possible."
Hykes even went as far as to credit CoreOS CEO Alex Polvi for helping him see the light about standards, and for "being open-minded enough and forward-thinking enough to help us unite the industry and set everything on the right path."
But it's not all a win for the CoreOS camp. Hykes is getting most of what he's wanted, too – including having Docker write the first draft of OCP's Open Container Format (OCF) specification.
OCP's members have also agreed to have the project be based on Docker's implementation, something else Hykes has favored. "Code leads spec, rather than vice-versa," reads the project's FAQ. "We seek rough consensus and running code."
That pretty much describes the starting point for OCP, though how much consensus there really is in these early days remains to be seen. As for an actual spec, so far there isn't one. The project's maintainers – including the appc maintainers, who have all joined OCP as founding members – are still working on the first draft, which they expect to release in 2-3 weeks at the project's GitHub page.
What OCP does have today, however, is running code, in the form of an open source tool called runC that Docker donated to the project.
Part of a larger effort at Docker to spin off pieces of Docker functionality – what Hykes calls "plumbing" – into lightweight, composable tools, runC is the core of the Docker container runtime repurposed as a standalone utility.
"It's basically everything you need to run containers on the low-level system and nothing else," Hykes said during his DockerCon keynote. "There's no dependency on the rest of the Docker platform at all."
A reference implementation for all
That independence has already allowed runC to evolve beyond the current state of Docker itself. It has a number of features that today's Docker Engine doesn't, and Docker plans to add more. Most notably, all of the work Microsoft is doing to get Docker containers running on Windows Server is going to go straight into runC, which Hykes said would make it "the first container runtime to support both Linux and Windows natively."
Over the long term, the OCP members want the standard to support a wide range of operating systems, processor architectures, public clouds, and so on – without being tightly associated with any.
It may seem odd, then, that OCP will be overseen by the Linux Foundation. But according to Hykes, the decision to work with the Foundation has less to do with the Linux operating system itself and more to do with the project's core values and system of governance.
"They're helping us setup the right structure to have an independence governance model that works, that is independent, but that's also lightweight and doesn't actually get in the way of the engineers doing their work," Hykes said.
Joining Docker in the OCP effort are Amazon Web Services, Apcera, Cisco, CoreOS, EMC, Fujitsu, Goldman Sachs, Google, HP, Huawei, IBM, Intel, Joyent, the Linux Foundation, Mesosphere, Microsoft, Pivotal, Rancher, Red Hat, and VMWare, it was announced on Monday. All of them will contribute to funding the project.
The initial technical leadership of OCP will consist of the current maintainers of Docker's libcontainer container execution environment, plus two prominent maintainers of the appc spec. The group includes employees of CoreOS, Docker, Google, Red Hat, and a few independent developers.
There will also be a technical oversight board composed of vendor-neutral individuals who will oversee the work and make sure the technical leadership is doing its job in ways that are consistent with the project's stated values.
"We are not trying to define a large stack, become a big marketing organization, throw large conferences, etc," the group's FAQ explains. "We are focused on container format and runtime, areas where stability and standardization are more important, so that we can allow innovation to happen around us."
The real test of any standard is how widely it is adopted and used. But there are already encouraging signs for OCF. In a Monday blog post, Polvi said that despite having developed appc independently of Docker, CoreOS will now turn its attention to OCP's shared, open standard.
"We will work hard to ensure that users of appc will have a smooth migration to the new standard," Polvi said. "Open standards only work if there are multiple implementations of the specification, and we will develop rkt into a leading container runtime around the new shared container format." ®