Here's an interesting way to think of Docker and Kubernetes: They're platform-as-a-service (PaaS) elements that work because they're separated from the rest of PaaS.

Craig McLuckie, a Google senior product manager, believes that's how you can explain the success of Docker, the Linux container platform. And it's a result Google is trying to emulate with the Kubernetes management tool for containers.

McLuckie explained his PaaS interpretation during a brief Wednesday morning talk at Openstack Silicon Valley, held at the Computer History Museum in Mountain View, California.

Where PaaS goes wrong is that its users tend to hit an "experiential cliff," a point where "you want to do something your platform can't do," McLuckie said.

The problem is that PaaS attempts to tackle too many worthy causes. It's a deterministic way to deploy code onto infrastructure, it includes runtime orchestration, it provides a build process, and it automates code management.

That's a lot for one platform. What if you tried doing just a subset of those things?

This was the eventual lesson of PaaS startup dotCloud. It didn't grow to critical mass partly because of the experiential cliff, McLuckie said. But one of its projects involved just two of the things a PaaS offered — packaging and distribution of code.

You might already know the punchline: The resulting beasties are Docker containers. And while the dotCloud service still exists, the company changed its name to Docker Inc.

They went viral due to their simplicity. Code became a "hermetically sealed unit" that could be deployed, whole, into disparate environments — a test cloud and a production cloud, for instance.

Next Stop: Kubernetes

By McLuckie's reading of history, then, containers (which, I know, was a concept that existed before dotCloud came around) fulfilled some of the promise of PaaS, but did so on developers' own terms.

The logical followup would be to investigate ways of managing containers in an OpenStack environment, and the eventual result was Kubernetes, Google's orchestration tool. Kubernetes could be seen as another distillation of PaaS, this time taking just the orchestration and management pieces.

It's good for deploying containers in a way that most efficiently uses up resources and for tasks such as updating an application in production. Google thinks OpenStack, Docker, and Kubernetes make for a great combination together, which is one reason why Google is now a sponsor of the OpenStack Foundation.

Coincidentally (or maybe not), Wednesday was also the day Google announced general availability for Google Container Engine, which is Kubernetes offered in the form of a service.

McLuckie ended his talk by discussing some likely next steps for Kubernetes.

He thinks Kubernetes needs to be extended to applications that aren't built for the cloud, so that it could transparently flicker between virtual machine and container environments. Kubernetes should also be robust enough for different environments, such as those using OpenStack Neutron or containers-on-bare-metal, he said.