You have to hand it to Solomon Hykes, founder and semi-benevolent dictator of the Docker ecosystem. He has shown an uncanny ability to come back from a less than ideal situation and pivot into something more real. We saw this when Hykes pivoted what was ultimately a failed PaaS project, dotCloud, into everyone’s favorite new approach to infrastructure, Docker Containers.
With prescience and an awareness of the world around him, Hykes took a relatively unknown thing (Linux Containers) and created a massive movement around them.
It all went swimmingly for awhile. As I’ve written about many times in the past, Docker picked up huge amounts of funding and intense industry interest and parlayed that into what looked like being the “next big thing.” But this industry is a fickle beast and headwinds approached. First were competitive tensions, in particular from CoreOS and its alternative view of the container world. Then ecosystem pressures – Docker’s need to commercialize in tension with third-parties’ needs to build viability for their own businesses – created some issues.
And over the past year or so, the seemingly never-ending rise of Kubernetes has introduced even more stress to Docker’s world. Kubernetes has, most would agree, become the default orchestration platform for containers and Docker’s main opportunity to monetize (the container standards themselves, of course, being open source) via its own Docker Swarm orchestration offering was deftly removed fr0m the menu of options available to it.
But Hykes and the company he has built have shown themselves well-versed in ducking and diving and so it was at DockerCon in Europe a few weeks ago when Hykes announced that Docker users would be able to deploy their applications using Kubernetes. I wasn’t at the event myself, one thing Hykes and crew have proved not so deft at is taking constructive criticism, but I was fascinated to watch the event from afar.
The announcement was somewhat nuanced and the finer detail was that customers using the Enterprise Edition of Docker will be able to pick whichever orchestration software they want, Docker’s own Swarm or Kubernetes. Docker will provide the same level of security and administrative control regardless of which orchestration system is being used.
This was sold as a win/win proposition, with customers able to adopt what has become the default orchestration platform, Kubernetes, while retaining the management features they know and love from Docker. The company will be shipping the most recent stable open source release of Kubernetes with its Enterprise Edition software and keeping that up to date.
Alongside the Kubernetes news, Docker also announced that developers will also be able to work on Kubernetes applications on their own hardware. Docker for Mac and Windows will support using that container orchestration software for local development using the same tools that also power developers’ Swarm-based workflows.
It needs to be reiterated that Docker hasn’t completely given up on its own orchestration tool, Swarm still exists, of course. But by accepting that Kubernetes is probably the default way that organizations will orchestrate their containers, Docker is giving a tacit admission that Kubernetes is an ascendant technology. While they’d never admit that the ascension of Kubernetes is casting a shadow over their own orchestration product, it’s hard not to come to that conclusion.
What's not to love? Choice is always a good thing, right? Well, yes it is, and by offering customers the ability to use either Swarm or Kubernetes, Docker is allowing enterprises to have autonomy. But if all we were doing was discussing enterprise adoption and usage patterns, that would be where it ends. There is also the unavoidable question over how Docker Inc. will grow and prosper as a business, and in this light, the announcement is a grim reminder of the realties.
Let’s face it, pretty much every vendor under the sun has anointed Kubernetes as the orchestration tool of choice – AWS, Oracle, Microsoft, VMware and Pivotal among them. The only vendor who suggests that Swarm brings something to the party is Docker. Given these facts, Docker had no choice but to align itself with the usage patterns of its customers. Sure Docker is supporting both its own orchestrator as well as Kubernetes, but we need to face facts, Kubernetes has won.
That is particularly interesting given the history. The Information reported that back when Google was just starting to develop the publicly available Kubernetes system off the back of its own internal management toolset, Borg, Google actually offered to collaborate with Docker and let it to house the Kubernetes project. Fatefully the company decided to develop Swarm itself and Kubernetes was moved into the Cloud Native Computing Foundation. That decision was probably a necessary gamble at the time, but this announcement shows it was probably the wrong one.
If nothing else, Docker Inc. has given commentators on business strategy an interesting case study to observe. Either way I’m sure Hykes has a few more tricks up his sleeve. Watch this space.