We’ve seen a blurring of the definition of ‘serverless’ in the industry as more products are described with the term. As such, we have found “managed services that scale to zero” to be an increasingly useful definition of serverless.
We’ve recently observed the concept of functions decoupling from serverless. Dating back to the introduction of AWS Lambda in 2014, the terminology ‘serverless’ and ‘FaaS’ (Functions-as-a-Service) have been used more or less interchangably, with the key components being the ability to execute code without the need to provision, manage, or scale infrastructure as well as a consumption-based pricing model.
Google, Microsoft and Amazon have all made shifts towards positioning functions as a subset of serverless. Here are a few examples from each of the major public cloud providers’ conferences this year.
At Google Next, Oren Teich (Director of Product for Serverless) showed a slide entitled “Services is More Than a Set of Functions” and quipped that instead of ‘serverless’ a more accurate description would be ‘serviceful.’
His slide that listed the serverless components of the Google Cloud portfolio included not only Google Cloud Functions, but also adjacent services like App Engine and BigQuery.
App Engine (GAE) is an interesting inclusion in the serverless portfolio, in that it was Google’s first cloud offering dating back to 2008; GAE was originally positioned as a PaaS offering, but is now being explicitly marketed as serverless. BigQuery is a managed data warehouse that GA’d in 2011, and again there’s a shift in how Google positions the service; their managed storage engine with consumption-based billing is now being framed as serverless.
Google also announced Knative, an open source project that uses Kubernetes as an orchestration layer for serverless workloads. While using a separate scheduler a distinctive pattern from the clouds’ native serverless services, this allows for both portability of serverless workloads across infrastructure and also allows applications/functions to scale up and down to zero.
At Microsoft Connect, Partner Program Manager Scott Hanselman described Microsoft’s serverless portfolio as “a whole series of great managed services that are building blocks, so that ‘serverless’ is less of a buzzword and more of an empowerment.”
In this portfolio, Microsoft has blurred the definitions in both directions. Where ‘functions’ has historically meant a fully-managed infrastructure, Azure allows users to run functions in App Services, which may require pre-provisioned resources but offers more flexibility in runtime, execution time, or potentially price depending on the function’s use frequency.
They also introduced also introduced the open source project Virtual Kubelet at their conference Microsoft Connect. Virtual Kubelet is a tool that allows a Kubernetes cluster to back a node with something other than a VM or server, which means users can create Azure Container Image connectors to create clusters that can scale up and down.
Given that serverless is often synonymous with Lambda, it makes sense that both Google and Microsoft would look to craft a more expansive definition of the term.
What’s notable from re:Invent was Amazon’s announcement of AWS Timestream, a time-series database that according to CEO Andy Jassy is “serverless; you don’t have to worry about the capacity. We scale it up we scale it down for you.” This announcement indicates that even the market leader is moving to broaden the serverless terminology.
Feedback Thus Far
Since floating this definition after re:Invent the reaction has been largely positive, but we have had some pushback and requests for clarification. Here are some of the most common concerns and how they’ve impacted our thinking on the subject.
- “This definition is a bit reductive.” Agreed. Our goal was not to come up with a description that was all-encompassing, but rather to try to simplify the narrative around how cloud providers seem to be approaching the term.
- “Isn’t scaling to infinity just as important as scaling to zero?” The ability to scale out workloads is indeed an important aspect of serverless performance, but it’s also a key aspect of most cloud workloads. We think the most defining aspects of the serverless scale story are a) that the scaling process is managed automatically and b) there is no infrastructure cost unless a workload is running.
- “You’re the “developer-focused” people; aren’t the developer workflows what really matter here?” This pushback has merit. The streamlined development model is indeed a key aspect of the value of serverless, as it allows developers to focus on adding business value. In the end we decided to focus on the unit economics of the workloads rather than development model simply because the there are many nebulous ways to define “business value” while “scale to zero” is cleaner to articulate. (See the “this is reductive” section for further concerns.)
- “What about on-prem solutions like Knative?” At some level, an on-prem serverless deployment will never scale to zero because running a data center requires fixed infrastructure costs. However, it’s possible to interpret the ‘scale to zero’ concept more loosely. Many organizations operate with a cost allocation/bill back model, in which case one could foresee a business unit effectively scale their usage/billing to zero. You can argue this one either way.
- “What happens when a workload meets only a portion of your definition? There are most assuredly going to be edge cases. We don’t claim to be the arbiters of what is and is not serverless.
Why The Change?
While part of this terminology scope creep could reasonably be attributable to buzzword marketing, there are other possible explanations. One possible reason for this shift is the expansion of capabilities of serverless itself, as the category moves beyond simply functions. It’s also possible cloud providers are seeing customer usage stretch beyond strictly FaaS and are trying to help articulate and frame these new use cases.
Regardless of the rationale, more and more it seems like the cloud providers’ preferred definition of serverless is something that approximates “managed services that scale to zero.”
Disclaimer: Google, Microsoft, and Amazon are all RedMonk clients.