There’s a million different ways to build in the cloud. Ok, not a million, but there’s a lot. For the past few years, the serverless movement has been growing but what, exactly, is serverless?
Turns out, we can’t agree on what it is. Or at least we used to agree, but don’t now?
Corey & Vlad Are Right
Corey Quinn wrote a fantastic piece calling out Amazon Aurora Serverless v2 for not actually being serverless. He points out that even doing nothing, the service will run you about $43.20 USD each month.
That violates a key service tenant; don’t pay for idle resources.
Corey’s right.
Vlad Ionesco replied with an epic Twitter thread that basically sums as, labels don’t matter, the solution does.
Rant: can we please stop pretending that serverless in 2022 is the same thing as serverless in 2016?
We're intellectually masturbating about what "serverless" means and we're confusing people, all while we're like on serverless v3!
Of course v3 products don't fit in v1 boxes!— Vlad Ionescu (he/him) (@iamvlaaaaaaad) June 21, 2022
Vlad’s right.
The community has tried to define serverless for years. The closest I could come up with was this dictionary-esque entry from 2018 👇;
As the community has grown, the technologies matured, and the use cases expanded, the definition of serverless has gone from hazy too absent.
Serverless is a spectrum
The original vision for serverless was systems that are event-driven. As a request is processed, the system kicks into gear and then lies dormant—with no idle costs—waiting for the next event.
This grew out of AWS Lambda’s popularity as a compute platform. You pay for AWS Lambda based on the amount of compute you use for a specific amount of time measured in milliseconds.
If you’re not processing an event, you’re not paying. Linked with other services that match that pricing and operational model, it’s very possible to have a solution that’s directly aligned with the business value it delivers.
That’s a good thing.
Noted cloud bard Forrest Brazeal sums it up nicely in this mini-review;
“Serverless” compute services ranked from most serverless to least serverless, in my opinion:
1. AWS Lambda
2. Google Cloud Run
3. AWS Fargate
4. AKS virtual nodes— Forrest Brazeal (@forrestbrazeal) June 23, 2022
Operations Is a Critical Concern
But out of this push, teams finally realized that design choices directly impacted operational efforts. You can make smarter design choices and lower the effort required to keep the lights on.
This mirrored the growth of the observability movement (another term starting to dilute) as teams were trying to build more resilient systems and avoid being paged at 2 AM to fix outages.
What Corey has noticed and rightfully called out is that builders now need to see the label of serverless and then figure out just how serverless something is.
You can’t just assume a service fits your idea of serverless.
Read the Label
Frustrating? Yeah, a bit.
A good sign? 100%.
The spectrum of serverless offerings is a sign that the more builders are seeking these more efficient solutions. The applicable use cases are expanding. People are building better.
…just make sure you aren’t going to get hit with an unexpectedly large bill (which is a rant for another day).