I recently came across a very confident entry by Steven J. Vaughan-Nichols about the rise of Kubernetes, and how it is spearheading a push by cloud vendors to break into the market by way of containers. Interesting; I knew Kubernetes was highly used — indeed, I use it myself — but to have the astonishingly high 71% that use it? There must be more to that.
Step one, on any such claim, is to go for the source. The source, in this case, is a press release touting a study commissioned by CoreOS — purely coincidentally a vendor of docker runtime base OS, although I’m sure that certainly does not affect the study’s angle — that is hidden behind an annoying email-wall. While the press release handily touts the 71% Kubernetes usage number, this is, in fact, not represented in the study. The study states that “almost 75%” of respondents use Kubernetes, a number discrepancy that, while not big, shows that there’s more baking in this press release.
Let’s compare the press release, to start with. “Our mission at CoreOS is to break the cycle of vendor lock-in by making the best open source infrastructure management software available to our customers,” the press release quotes the CEO of CoreOS. Like a badly written comedy show, here’s a graph from their own study on why the surveyed companies are looking into container runtimes.
So out of 200 surveyed companies, 6-7 considered the biggest benefit avoiding vendor lock-in. I’ll avoid the issue of which vendor is being avoided here; there are multiple items confounding this question: whether it’s the technology vendor (e.g. Docker), platform vendor (e.g. Kubernetes, PaaS) or infrastructure vendor (Amazon, VMWare, Dell). I’m lumping together the companies here a bit, but to me the biggest statement of the above graph is that companies are looking for some form of boost, presumably based on where their biggest expense is, by using container runtimes.
Before I continue, I’d like to address a small point from the original post. The post references Amazon as ideally wanting to use Lambda instead of containers. Since that’s a bit of an apples-to-oranges comparison, I will assume EC2 Container Service instead. Amazon’s quite-sprawling cloud offering has many tentacles that aren’t always easy to follow, but to my mind ECS is a better match.
Amazon’s ECS is, effectively, a hosted docker runtime. It’s a like-for-like match to Google Container Engine (intuitively named GKE), except the latter runs a Kubernetes cluster on-demand, whereas ECS does proprietary AWS magic. That, together with the survey respondents, is where the crux lies. The survey was conducted across fairly large companies; the type that are likely to use many solutions because they have many branches. From the study:
We surveyed 201 enterprise IT decision-makers in April and May 2017. This was not a survey of developers; rather, we received responses from those in C-level and director-level positions, including CISO, CTO, CIO, director of IT, IT Ops and DevOps, and VPs and managers of IT. […] A significant slice of the survey respondents represented large enterprises. The largest groups of respondents reported annual revenue of $500m-1bn; $1b or more; and $100-500m. Some respondents did cite $25-100m or less in annual revenue, but together they made up less than a quarter of our respondents. It was a similar story in terms of number of employees; most said their organizations have 1,000 employees or more, and a large portion cited 2,500-5,000 employees. [Emphasis mine]
The study additionally went on to detail that 36% of their respondents would “move workload” depending on where it was cheaper, and that a majority either hosted their container runtimes on their own hardware or a “combination of hosted containers as a service (CaaS) and on-premises CaaS”. Teasing out this we should be able to understand the appeal of Kubernetes to this crowd: the ability to run, privately and for “free”, the same runtime as is available in Google Cloud, Azure and, yes, even in AWS (with some hoops) means they can count the cost savings and the agile bonuses and all that other devops goodness we hear so much about without having to make a decision. Great. Of course, there is a small caveat we also have to deal with before we proceed.
We see the aforementioned bias reflected here. As company size increases, there appears to be a trend towards Kubernetes. Of course, this is just my hypothesis and the sample size isn’t very large, but I find it likely the thought process of a large company would be “Google’s doing it, and supporting it, and we can also take it in-house.” (It also bears noting that the study, at least if they asked the questions in the order they did, was incredibly slanted. The first question reads “Which of the following best describes your hybrid or multi-cloud strategy?”)
So that’s it, really. While there is an undercurrent of “not-Amazon” going on, the rise of Kubernetes has less to do with trying to compete with Amazon’s dominance of VMs, and more to do with technology evolving beyond VMs and towards containers. With that, the companies needed a way to manage them, and, certainly they are using a mixture of technologies as per figure 6. The 71/75% headline figure was how many are using Kubernetes, but that doesn’t necessarily tell us whether they are moving towards or from using it (and it may befit the study to not do so).
In conclusion… Kubernetes is nice, and big companies like it because they can — or think they can — easily migrate loads onto public and private clouds as they want to. This approach (or bias in the survey) will automatically slant usage away from a solution that is cloud-exclusive (e.g. ECS) and towards one that can be run in-house. It is important to note, however, that the study does not mention how many companies are not hybrid, and even defines hybrid as having in-house testing environments while running production fully in a public cloud.