One of the questions my colleague Stephen is adept at asking and answering is of the form: “You won, so now what?” On the flight home from Kubecon 2018 recently it struck me that this frame is appropriate for a discussion of the state of the union. Kubernetes is the de facto standard for container orchestration. The Kubernetes community won. So now what?
What are the jobs to be done?
Grow the community.
Broaden the platform.
Establish a strong narrative for event-driven computing/serverless
Improve the developer experience
So first let’s look at
First some impressions from Copenhagen. The energy and positivity of the community was palpable. Sessions were packed, the hallway track was buzzing, and booths were getting plenty of attention (there were even rumours of solid leads, with some IT budget holders at the show). Also Copenhagen – can we just hear it for Copenhagen one more time. Such a great city.
There were more than 4300 attendees this year, three times as many as the show last time around in Berlin, and about the same size as the US event in Austin last December.
Kubernetes is not just for the cool kids any more. We’ve seen enterprises start to use Kubernetes in production over the past 18 months or so. At least 54% of the Fortune 500 were hiring for Kubernetes skills in 2017, a fairly reasonable proxy for adoption. So far implementations have generally been for new workloads and departmental in nature. But some organisations in the midst of major “Digital Transformation” projects are explicitly embracing Kubernetes to underpin a radical improvement in software development velocity as they move to continuous integration/continuous deployment and trunk based development.
My favourite talk of the conference was by Sarah Wells, technical director of operations at the Financial Times, describing using Kubernetes to manage 150 microservices. As I said at the time:
Well @sarahjwells just made kubernetes in the enterprise practical, sensible and inevitable, like a nice cup of tea. Well played
— Sticky Bits (@monkchips) May 3, 2018
Kubernetes is now at the epicenter of a growing tooling ecosystem for associated technologies for logging (Fluentd), monitoring and metrics (Grafana, Prometheus), tracing (Opentracing, Jaeger), messaging (NATS), service mesh (Envoy, Istio, Linkerd), functions as a service (OpenFaaS, Kubeless, OpenWhisk, and now Serverless) and so on (this list of projects is not intended to be comprehensive).
Docker, long a hold out given competitive issues, has fallen into line. More tellingly, Kubernetes forced Amazon Web Services (AWS) onto the back foot, perhaps for the first time since 2005. A vibrant community, convened by Google, with Red Hat as fast follower, was able to move faster than AWS in delivering a compelling new platform for container deployment.
The Cloud Native Computing Foundation (CNCF), which hosts Kubernetes and runs Kubecon, has so far done a great job of positioning itself as a curator for associated technologies. Not everyone is happy of course – one industry luminary at Kubecon complained the CNCF needs a stronger opinion on technology choices because the landscape is so fragmented. They said it was too easy to become a CNCF project.
On the other hand I recently spoke to Gitlab CEO Sid Sijbrandij and he was clear that CNCF curatorship was reducing risk and making it easier to decide which technologies to embrace and package for his customers- for example Gitlab’s recent decision to offer monitoring using Prometheus.
Core functionality aside though, then, what comes next? Service Mesh is one answer – we’re going to see a ton of innovation in there, as companies start breaking down their monolithic apps and redeploying them as microservices, to allow for canarying and feature flagging.
Serverless and Events
The danger is in winning the battle, you lose the war. So Kubernetes won. But there are loud, smart, influential voices out there arguing that in winning a battle (with Docker) Kubernetes has in fact already lost the war to serverless.
According to the inimitable Joe Emison for example:
“I think Kubernetes is ultimately sort of dead technology walking, just like mainframes, but it gets people moving in the right direction.”
For many enterprises AWS Lambda will be the the main on-ramp for a more modular style of development in the shape of function-based programming. Serverless abstracts all the gorp, so developers don’t need to worry about container or VM configuration, and can instead focus on writing code. Lambda is making massive inroads at enterprises and startups alike, but I would argue Kubernetes has plenty of runway ahead. One size never fits all in IT, and many enterprises like to manage things, whether they admit it or not. When you get outside the tech insider beltway, there’s plenty of on premise IT and applications to manage. Of course mainframes have been called “dead technology walking” since forever. We’ll see hybrids.
What I am most interested in are overlaps between serverless and container-based approaches, and ways to integrate the two. As mentioned above there are some interesting function-as-a-service platforms being built on top of Kubernetes. Arguably these platforms are not “proper serverless” because they’re not built on a web scale infrastructure, don’t include per function billing as standard, and require some configuration to set up. But as in my comments about ops above, there will be a world of triggers and events outside AWS Lambda. We’re going to need choreography across platforms, on prem and off.
For me then the really interesting news – the So Now What – at Kubecon was the announcement of the CloudEvents spec, organised by the CNCF’s serverless working group – “a specification for describing event data in a common way”. Active participants include Iguazio, Google, Microsoft, IBM, VMware, SAP, Oracle, Huawei, Alibaba, Red Hat.
Or as Austen Collins of Serverless, Inc, puts it
“CloudEvents’ scope is simple: provide a consistent set of metadata which you can include with event data to make events easier to work with for publishers, middleware, subscribers & applications in general. In short, it’s a standard event envelope.”
Specs are nice and all, but what about demos and production environments?
For the announcement Collins did a live demo across 11 different event providers (show off!)
Microsoft had quite a coup by immediately announcing native support for CloudEvents with Azure Event Grid at the conference.
In April 2017 I wrote
“It could be time to resurface message oriented middleware concepts as a way to think about managing apps based on independent functions and microservices. Guaranteed delivery, fan outs, publish and subscribe. Step functions with retries, a world made of messages and active points. Think of Kafka, for example, a distributed commit log, used by Salesforce to bridge the gap between Force.com and Heroku services, and now offered as a managed service on Heroku. Serverless is going to be huge, but I suspect we’ll see AWS delivering some MoM style functionality to help manage functions and triggers, above and beyond the monitoring and API Gateway functionality so far. Especially as we move into multicloud serverless apps messaging is going to prove its worth.”
That’s why I am excited about CloudEvents and why I think it’s one big answer to the So Now What?
Developer experience is an area that the Kubernetes ecosystem has a lot of room to innovate, with plenty of room to improve, especially with serverless looming. Google’s group product manager Aparna Sinha used her keynote to talk about DX pretty extensively, giving a demo of the Skaffold developer workflow automation tool, in the process. We’re seeing a lot of new tooling around developer workflow emerge, and the GitOps term seems to be gaining in currency.
In conclusion Kubernetes has made life a lot easier for everyone, by winning so comprehensively. Now the industry can innovate on that core. Perhaps most importantly some of the most motivated, smartest people and vendors in technology are digging in for the long haul, ready to push Kubernetes into spaces as diverse as device telemetry for IoT and managing massive back end database clusters.
disclosure: AWS, CNCF, Google, and Microsoft are all subscription clients. CNCF paid for my T&E for the event. All analysis here is my own.
(Read this and other great posts @ RedMonk)