Docker may not be as doomed as many—including myself—had come to believe.
Docker is refocusing on creating a coherent development experience on the assumption that the container runtime and Kubernetes-based container orchestration is a commodity. The focus will be on providing tools to manage application development at scale in what is rapidly becoming a very complex coordination problem.
“If we assume a Kubernetes substrate,” says Scott Johnston, Docker’s Chief Product Officer, “Docker can add developer services, CI/CD services, content management services, and security services on top of that substrate, whether it’s our Kubernetes cluster or someone else’s.”
Modern application development essentially consists of composing an application from a variety of services. These services aren’t just infrastructure components that live on a server any more. They’re delivered via an API and could be almost anything underneath as the abstractions start to pile up.
COBOL code at the other end of a message bus with a lambda-function frontend? Okay. Ephemeral container running a Spring Boot service that connects to an RDBMS on a physical Unix server on the other side of the country? Sure, why not? Modern applications don’t really care, because it’s all about getting the job done. The name of the game is loosely-coupled modular components.
This is why Docker has joined forces with Microsoft, Bitnami, HashiCorp, and a few others to create the Cloud Native Application Bundle (CNAB) specification. Docker uses this spec as part of its Docker App tool, which behaves a lot like docker-compose to collect a variety of services together into a single application bundle that can be shared around. It’s a lot like a container collection, and brings the same easy portability of containers to composed applications.
“[Docker App] allows you to describe not just containers, but other services around which the app is dependent,” says Johnston. “And it allows you to do things that enterprises care about, such as signing the bundle, verifying that signature, and automatically promoting it based on that signature and things like that.”
This brings me personal joy as a user of the source docker-compose functionality in my own company’s back-end systems.
Real, live workloads in successful and established companies are often a shifting combination of components as some services are refactored from ancient JavaEE on big-iron Unix systems to Spring Boot applications on public-cloud IaaS, or whatever the upgrade pathway a given enterprise has chosen. These tech stacks are complex, and no two companies will have the same overall stack.
Dealing with this complexity provides an opportunity for Docker as a brand that is trusted by developers. The kinds of organizations that have these problems have budget to purchase tools to help, and Docker is already well-known to enterprises. The challenge, as always, is figuring out how to charge money for the right things so that Docker can capture more of the value it creates.
While we’ve all benefited from Docker figuring out how to make cgroups useful in practice, Docker didn’t manage to get enough people to pay for that functionality in ways that would sustain the company long term. Its generosity in making so much code open-source spawned whole new ecosystems, and yet Docker isn’t the wildly profitable behemoth it possibly deserves to be.
The big challenge for me remains the OPM problem: Other People’s Money. Docker has so far raised $272.9 million (according to Crunchbase) and those people will want a return on their investment. Ignoring the nuances of differing rates of return for each raise round, an exit of 5-10x the money raised means Docker needs to get purchased for at least $1.36 billion to achieve a 5x return for its investors.
That’s about the level of the reported valuation of the company’s last funding round two years ago. I’m hard pressed to find a compelling argument that the company is worth more now than it was then, given everything that has happened with containers and Kubernetes in the interim. An IPO in the current climate, and with this kind of valuation, seems unlikely to me.
The new focus provides encouraging signs, so it would be premature to write the company off, which is not something I would have said a month ago. I’ll be keeping a close eye on developments to see how well Docker can execute on its plans, and whether it can start keeping a little more pie for itself.
We are all better off when the people who create good and useful technology don’t starve to death.Tags: ci/cd, docker, k8s, kubernetes, opm