Monday, October 23, 2017

Docker and Kubernetes. Kubernetes and Docker.

Kubernetes has become the trending orchestration solution for containers. All big Cloud providers bet on it, and even in smaller companies, k8s (written that way as there are 8 letters between k and s) is what all the hip developers go for.
Docker is still used to build all the images, and they have made it to a commercial product used by many customers.
Kubernetes has focused on being an extensible and scalable framework, and is still growing fast; it has a credible reputation for managing data center scale with best possible control. In fact, control is IMHO the word that describes its nature best.
Docker has chosen to put user experience first: it provides rich functionality with sane defaults, but users don't have to think about it -- Docker simply and quickly does what you mean. User experience is (IMHO) Docker's core characteristics.

Over time, Docker has picked up a lot of features that used to be specific to Kubernetes, and Kubernetes attempted to become easier to use (clusters can now quickly be spun up, but you still need a bunch of yaml files to get anything going).
There are two paradigms out there: the "GIFEE" (Google Infrastructure for Everyone Else) crowd claims that if Google and friends are using it, it can't be wrong. Why would anyone want a less stable, scalable and yet flexible infrastructure? The opposite stance is "You are not Google". Which has got more truth to it that it appears at first glance.
At last week's DockerCon EU, a very interesting move was announced: moby and docker will support Kubernetes as an orchestration layer (optional, sitting next to swarm), and the Docker and Kubernetes communities will get closer to each other. Docker intends to add Kubernetes support into the upstream and open source projects as well as their commercial products, while Kubernetes maintainers repeatedly welcomed the Docker community in theirs ; it felt they wanted or needed to emphasize their independence; also, there is no blog entry of theirs on that topic yet. Remember: if you like kubernetes as-is, the Docker integration does probably not add a lot of value.
While a lot of technical questions about how this integration would look exactly yet remain unanswered, Docker seemed to put user experience first and chose the hardest way: a full side-by-side operation at the CLI/API layer, as well as the ability to manage Kubernetes clusters in Docker Enterprise Edition (in Universal Control Plane, that is).
After a true integration of Kubernetes orchestration in the docker stack, two orchestration layers are one too many. Until that point, we can expect two things: a lot of work happening, and the best is yet to come.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.