Docker’s Moby Project Aims to Expand Container Usage Beyond the Clouds
The question of what’s a framework, what’s a platform, and what’s an ecosystem got a more thorough — if more complex — answer Tuesday morning in Austin. There, during Docker Inc.’s annual U.S. conference, it officially launched a second open source project based on its own standards and practices, entitled the Moby Project, a framework for assembling custom container-based systems, as well as a meeting ground for system builders “to experiment and exchange ideas.”
You could call it a “stack,” and that’s where things get truly confusing if they’re not explained quickly. From what we’ve seen thus far, it may make sense to think of Moby as providing for container systems builders what OpenStack provides for cloud platform builders: an assembly of open source components from various creators, but for containers. In Moby’s case, the assembly enables system builders to quickly stand up a microservices-ready platform, including on bare metal.
As for a “place to experiment and exchange ideas,” that’s perhaps a bit of idealistic decoration. But Moby does adopt some principles of continuous deployment that will facilitate, and perhaps necessitate, communication between the various stakeholders. (OpenStack contributors have continually stressed the need for similar collaboration, with mixed results.) Still, Moby may end up competing against brand-name container deployment platforms such as the one HPE unveiled last week.
“The container ecosystem is just now going into the mainstream,” Docker Inc. Chief Technology Officer Solomon Hykes told attendees during his Tuesday morning keynote. “With mainstream comes great responsibilities.
“It’s not just cloud-native applications anymore. You’ve got pretty much any type of application you can imagine — old or new, traditional, modern. Any industry — healthcare, retail, data sciences. And any possible app you can imagine is getting containerized; someone’s doing it right now. And the systems these applications are being deployed on, are also becoming much more diverse and much more specialized. It’s not just the Linux server anymore. It’s the Windows Server; it’s the desktop; it’s the phones; it’s the mainframe. Industrial IoT; consumer IoT; it’s the cloud — basically, anything that has a computer in it, is in the process of adopting containers.”
It’s a compelling counter-argument to the viewpoint that containers are an exclusive artifact of cloud-native development. But it’s also a means of broadening Docker’s potential reach beyond the merely cloud-native development realm, and finally making that important pitch to systems and software integrators that containerization has yet to successfully make.
Because the use cases along all these diverse models are heavily specialized, said Hykes, participation in the single ecosystem — to use his phrase, the “one movement” — requires a somewhat different approach, whose inspiration comes from his own company’s experience.
"We're no longer trying to be one project for one company" @golubbe #Dockercon2017
— The New Stack (@thenewstack) April 18, 2017
“Around 2015, things started getting a little crazy,” as the CTO tells the story. “All of a sudden, containers were the hot, new thing, and you started seeing a lot of solid container deployments. You still had to know what you were doing, but chances were, around that time, if you were building cloud-native applications on Linux servers — this next-generation application, stateless, 12-factor, DevOps, all of that stuff, microservices — chances were, you were getting into containers, and even deploying them to production.”
It was at about this time that Hykes’ company upgraded its production model, he continued, moving to a componentized platform, each component of which was a project in itself. Several of these components, such as libnetwork, containerd, its SwarmKit orchestration platform, and on Tuesday, LinuxKit, were all spun off (and upon which Docker’s built-in Swarm Mode is based) were spun off into independent projects. Meanwhile, Docker’s editions had become specialized, based on the platform upon which they were designed to run.
“Something really interesting happened: Our usual production model — open components, single product — started to break down,” the CTO admitted. “We started seeing redundancies; we started seeing wasted effort. We had different teams building specialized systems: Docker for Mac, Docker for Google Cloud, Docker for Windows Server. You still want to collaborate on open components, but then you have to do everything else yourself.”
So whereas GitHub may be a perfect collaboration platform for several contributors working on one contiguous project, when that project branches out, the need for continuity conflicts with the needs for independence and conformity to special cases. Hykes may have hit upon one of the key sticking points — or perhaps the single point — where OpenStack appears to have bogged down, and he may be actively working to avoid a similar situation.
“Docker is not a large company. We’ve got 150 engineers doing all of this,” he said. “So when we say, ‘Great, ten more versions of the platform,’ that is not something we can throw hundreds of engineers at. We’ve got to be efficient. That’s why openness is so important to us.”
Moby, from what we’ve gathered at this early stage, would appear to incorporate those processes that Docker Inc. has had to create for itself, in order to manage and adapt several concurrent versions of its core project. There are not many other companies, regardless of its size, that may have to do such a thing; arguably, the whole point of Docker now may be to equalize the playing field for every platform, enabling any single server to become incorporated into a cluster and run any single containerized application, in whole or in part. And if Docker succeeds in providing that, conceivably, no one else will ever have to, unless Docker’s competitors are willing to compete with Moby at this level.
This leaves open the question, just whom is Moby designed to serve? It’s nice to be open and transparent with the world, but it may be a monumental achievement if the world finds a way to share back.
#Kubernetes on Mac using Moby, pretty cool hack to end #DockerCon Day 1 keynote! This feels real … pic.twitter.com/EmhAEz4k9B
— Arun Gupta (@arungupta) April 18, 2017