Post Serverless, Post Kubernetes
Cross post from the Senzo X blog here
There is a human desire for there to be winners and losers, regardless of whether it actually matters or not. I see it with my daughters (4 and 2) who are competing with each other to be first, have more, and “win” against the other in the most trivial things. One must outdo the other. Even if it's who gets dinner first, or in the bath first, one of them must win. Regardless of consequence, there MUST be a winner. For now my youngest is placated by my proclamations of “you’re both first!”, though this strategy may be on its last legs as her grasp of the English language improves.
For the last ten or so years there has been this competition between Serverless and container based approaches to building applications in the cloud. Docker and subsequently Kubernetes has provided a developer friendly way to package and run applications in a portable standardised format without imposing many constraints on developers. It enabled modernization without a significant refactoring of existing code.
AWS’s Lambda platform ushered in the Serverless era by providing a constrained environment that enabled rapid scalability, whilst creating a cost model aligned with actual usage, and reducing operational overhead. This came with the tradeoff that the constraints imposed by the platform, which unlocked the value, also required varying degrees of refactoring to fully realise the value.
These two approaches have been pitted against each other, with the advocates of either approach often being absolute in their backing of one over the other, without acknowledging the tradeoffs. There was a desire for one approach to “win”, without understanding what “winning” actually meant. Surely at some point one side of the divide was going to realise they were being silly and realise there was only one true way?
Over ten years since the announcement of Kubernetes, and almost ten since the announcement of Lamba, both approaches' hype trains are slowing down. All things AI have usurped both as the new thing, as money gets funnelled into the furnace of the AI hype train to capture market and mindshare. Where does that leave these two approaches as we enter a post Serverless, post Kubernetes world?
Out of conference halls and blog posts, real world adoption has always been mixed. It’s very common to see an enterprise adopting both approaches. When you’re looking to modernise your infrastructure without incurring significant development costs containers and Kubernetes offer a compelling solution. When looking to build new systems where there are significant unknowns, tight budgets and a small team, a Serverless approach meets the bill of requirements. Companies like Lego Group or Capital One are two examples among many organisations that have adopted both approaches.
Like I tell my daughters, they’re “both first”. We have entered a new phase in the evolution of technology, and both these approaches are past the hype.
Post Kubernetes
Modernisation and consolidation use cases have been a staple of Kubernetes implementations. You have a legacy infrastructure estate, mixed between on-premise workloads and cloud infrastructure, with a mix of tools to manage them through varying degrees of automation. In this case Kubernetes makes sense. Consolidation onto a single platform technology with a single set of tooling without a refactor of existing applications will provide significant cost and efficiency benefits.
It’s also an easy business case to make. There is already a budget allocated to running existing infrastructure, so as long as the opex savings from the new platform pay for the upfront capex to migrate over a 3 to 5 year period it becomes a no brainer. It’s the same business case that was successful for VMware for many years.
This type of migration done at scale can be exciting, and makes for great conference talks, for the first few years at least. Now this work has become mundane, and easier. Commercially it has many years of success ahead of it, as there is still a critical mass of organisations that will benefit from this type of consolidation and modernisation exercise. Kubernetes is entering its OpenStack phase of life. It’s achieved what it set out to achieve, and all the improvements from here are incremental.
Post Serverless
A key value proposition of Serverless platforms is the ability to offload operational tasks and responsibilities to your platform provider, allowing you to focus on the stuff that makes a difference. In real terms it means your developers are able to build scalable, available, and secure applications without the need to engage a clutch of internal teams with competing incentives. In the case of startups those teams don’t exist.
For these reasons, Serverless shines in greenfield projects, whether it's a startup or a new initiative in a larger organisation. Adoption has been significant across the spectrum, with enterprises adopting the offerings of larger providers like AWS, GCP and Microsoft, whilst startups are flocking to platforms like Vercel or Cloudflare.
Where Serverless fails is the sheer confusion in the space. Unfortunately many providers in have contributed to the confustion by labelling every managed serverless as "Serverless". You can’t call everything Serverless and expect to be able to differentiate on the word or expect people to have a clear understanding of what it is.
The overloading of the term Serverless has seen the emergence of small “s” serverless. It’s moved away from being a way to hype up your service, because it no longer offers marketing differentiation, to being a way to describe the form factor you can consume the service. The hype is gone. Developers are getting on with meeting user needs, and Serverless platforms empower them to do that.
Recommended by LinkedIn
The Overlap
As with all things in tech, there is always a grey area. The bit where the Venn diagrams overlap. At ServerlessConf in 2016 I had a conversation with Tim Wagner, the then GM of Lambda at AWS, and he talked about how his team were looking to support larger Lambda functions with longer durations, and his counterpart running ECS (EC2 Container Service as it was known then) was looking to support smaller more ephemeral event driven applications. These worlds have always been moving towards each other.
Today providers of Serverless platforms build on top of Kubernetes, and there are open source projects like OpenFaaS that enable this. There are also serverless container platforms like Fly.io or AWS's Fargate that blur the lines.
The two worlds have never lived far apart from each other, and there is a clear overlap between them. The question is when to use one approach over the other. Like all good technical questions, the answer is “it depends”.
If you’re looking to launch a new application, the answer should never be “let's build a Kubernetes cluster”. BUT if you already have a platform based on Kubernetes, with all your security, observability, CI/CD and management tooling configured, then “let’s use what we’ve already got” is a great answer.
In the same way, if you’re looking to reduce cost, and be more agile, deciding to refactor all your applications to use a Serverless approach will most likely blow the budget from any infrastructure savings, whilst introducing unnecessary risk. If you’ve hit a technical constraint on a particular application that won’t be solved by shoving it into a container and running it in Kubernetes, then that’s a great time to explore a Serverless approach to a partial or full refactor.
As these two approaches have matured, the technical differences between them have gotten closer. In the end it comes down to a difference in operational model and degree of control.
Sucking the Air out the Marketing Budget
These approaches have matured, and providers in this space have evolved their messaging into Platform Engineering and Developer Experience (DevEx) to provide points of difference. This isn’t the biggest driver taking us past this phase of caring whether it's one or the other. The biggest external driver of the next phase is the rise of AI, and LLMs in particular.
The release of ChatGPT in 2022 has fuelled an AI boom that has forced hard pivots from some of the biggest companies on the planet. In combination with high inflation, high interest rates and the end of the zero interest rate phenomenon (ZIRP), funding for projects that are not AI related has all but dried up.
One thing that appears to be inflation resistant is Cloud Native Computing Foundation (CNCF) membership, which has not increased since inception in 2018. Combined with a slow attrition of members, as companies like ARM drop their Platinum Membership for Gold Membership, and consolidation amongst providers in the space, CNCF revenue is down. The CNCF itself has downsized since 2022 to deal with declining revenues. It’s telling that the CNCF, who are custodians for Kubernetes, had two employees dedicated to Business Development in 2022, and have replaced them with a single person as “Head of Ecosystem”. It’s moving from a growth phase to maintenance mode.
In the Serverless space it’s mixed. Marketing budgets from cloud providers for Serverless branded events is on the decline, with ServerlessDays events having to downsize or pause as there are less providers to sponsor events, and budgets from existing providers is less than previous years. The flip side is that Serverless providers now have AI related services. Serverless database providers now offer Vector databases to support RAG workloads. Providers like Vercel and Cloudflare offering tighter AI provider integration with AI offerings. The key for these providers is that Serverless isn’t the point of differentiation, it’s the AI integration. Serverless is being pushed a level down the stack. Its now the form factor that many AI services are being consumed as.
The {{ monarch }} is Dead, Long Live the {{ monarch }}
Does this mean that Kubernetes or Serverless is dead? Not at all. Both are viable approaches that provide value to many organisations and developers. We’re in a Post Serverless, Post Kubernetes world because these approaches are well understood, mature, and no longer represent the next frontier of technology. They’re becoming boring, and boring tech is great. Boring tech is what you build successful companies on.
The communities that have grown up around these approaches are no longer fuelled by hype, and the marketing budgets of tech giants. I see the two communities growing closer, being less competitive and working together more. The same way I would hope my daughters would grow together.
Ant
On-time, scalable and secure cloud solutions.
3moGreat article. spot on.