Back in the simpler, more innocent time of early 2018 I wrote a blog post All in on kubernetes for developers, which was partly a statement of our “bet” (not really a super risky one!) that Kubernetes would become increasingly central for server side developers. In fact we invested a lot of time and energy in replatforming a bunch of internal things to Kubernetes, and of course Jenkins X was launched into the world.
Given this is almost two years ago now, I thought it was time for a look back at what has happened since. In late 2017/2018 Kubernetes was huge in perception, but there were other things floating around out there (Docker Swarm being one notable one that was popular among developers I spoke to).
In this time, mainstream, general availability (and heavily used in anger) support has emerged in all 3 “big clouds”: GKE from Google (a very popular place for developers by all accounts), EKS from Amazon (continuously improving, and from all accounts a very safe mainstream choice) and AKS from Microsoft Azure. Whilst I hear some developers complaining, and audible eyerolls (yes you can hear them when people try hard enough), overall these seem to work well (considering the complexity of installing and managing Kubernetes yourself). GKE seems to lead the way for hands off operations (which auto upgrading and scaling of nodes increasingly on by default). VMWare and Red Hat (now IBM!) are also providing strong successful enterprise Kubernetes distributions.
As much as the “turnkey” (turkey?) experience of Kubernetes is now taken care of for you by the cloud support above (and even upgrades/patches etc.. if you are lucky), as a developer you are still left scratching your head with what to do next. You have an immensely powerful platform at your fingertips (literally with kubectl or gcloud command line interfaces) but now what do you do with it? What is all this service mesh stuff? How do I build and update and version my apps? Etc etc etc.
Thankfully there has been a ton of innovation here to provide more opinionated ways to drive kubernetes vs using it directly: (this is a problem that Jenkins X was created directly to address), open source projects, startups aplenty (anything I enumerate will be out of date by the time I write this) are also tackling this.
Some notable projects that emerged are Tekton (the engine inside Jenkins X for pipelines), Knative (serverless style runtimes) and of course GitOps has taken off as a way to manage the state of apps and developments which is fundamentally quite friendly for developers.
From my conversations with development shops (not literal shops!) - it seems most are beyond the “adopt” stage of Kubernetes and actively run services in production with it. There is also a desire to use “function as a service” or serverless patterns where they can (think Amazon Lambda) and Kubernetes for the rest. This dual stack of functions for glue + kubernetes for services seems to come up again and again (in fact supporting functions as a service on kubernetes seems a popular idea, but I think Lambda from Amazon is probably the most used here for now. Personally I am a fan of Google Cloud Functions).
KubeCon and developers
Another way to take the temperature of things is to see how the flagship conferences are doing.
I was lucky to attend KubeCon 2018 in Seattle and it was a jam packed 8000 or so people. It took me an hour to queue for the cloak room when checking out to leave for home (not sure why I remember that fact… but gives an indication of the scale). Over 12000 attended KubeCon 2019 in San Diego recently - so that is a massive growth rate.
Chris Aniszczyk from the Linux foundation mentioned that there was a good split between people that identify as being from a Dev or Ops job function:
The above is from KubeCon Barcelona. This split shouldn’t be surprising, if we have all been talking about DevOps for all this time, we should see a split of attendees like this I believe (and it is healthy! It wouldn’t be so great if it was all developers attending and Ops specialists watching from the side rolling their eyes).
Another measure is how much the conferences involve crazy parties. In Seattle I got to see Ice Cube play (Ice Kube Con) they called it:
Which made the long trip across the pacific worth it for me. The rumour this year was that there were helicopter rides to a jFrog party. Sadly I missed out on that.
If you did (like me) miss out on KubeCon 2019 in San Diego, all the sessions are available on YouTube. What I really missed out on however was Oscar (our Jenkins X developer advocate) taking a trip to Tijuana for real tacos.
Given these crazy antics, I have heard people compare it to the OpenStack community at its height (which apparently had some pretty amazing events too), however I would wager the developer split at those OpenStack events was very different. Given Kubernetes position in production workloads today, and the support by clouds, and interest from developers, I think it has a long way to go. The KubeCon conference also does seem to be a nexus where all the cloud providers come together, attracting attendees that want to attend one conference, not 3 separate ones.
What is next: the platform underneath your platform
Looking ahead, it isn’t hard to forecast that Kubernetes will underpin a lot of platforms and tools (a platform for… a platform?). Perhaps this means at some point people will talk about it less (do you talk about building apps for the Linux Kernel? Or even Linux? No, they are just apps for the web, or android etc). So in that sense, the ultimate indicator of success is that people stop talking about it perhaps? It will be interesting to see how things shape up in 2020 and 2021.
How popular is Kubernetes
Author: Michael Neale