Let’s set the record straight on the term “serverless” and what it’s not
There are myths around the term spreading around. I wanted to make a video because this bothered me enough that I felt that I need to address it on this channel.
My job in this article is to help you understand what the term really means and what it’s not.
What “serverless” is: a Serverless definition checklist
A serverless solution satisfies the following requirements:
- Does not a require a server
- Ability to execute arbitrary logic
- Ability to run large-scale applications
- Pay only for when you use it
The serverless manifesto
Going a level deeper, let’s take a look at the serverless manifesto.
In the words of the man himself, Tim Wagner, because it’s from his team’s work that every serverless solution out there has based their work on:
- Functions are the unit of deployment and scaling
- No machines, VMs, or containers visible in the programming model
- Permanent storage lives elsewhere
- Scales per request. Users cannot over- or under-provision capacity
- Never pay for idle
- Implicitly fault tolerant
- BYOC: bring your own code
- Metrics and logging are a universal right
https://twitter.com/cblitz/status/735840985930948608
Examples
AWS Lambda
Of course there’s Lambda; the serverless offering which I cover exclusively on this channel.
Azure Functions
A few months after Lambda was launched, Azure soon announced their own serverless offering.
Google Cloud Functions
Google quickly followed suit with their own serverless offering after Microsoft announced Cloud Functions.
Grey area: What is sort-of “serverless”
2 services that existed before AWS started the revolution with Lambda which looks like serverless but not really are.
Iron Functions
WebTask
It is “serverless” but I have a few problems with it:
- Soft-limit of 1 request per second: it doesn’t scale
- The service is meant “for hobbyists”, not for something serious and large scale.
- They have unclear pricing. Their pricing page takes about everything except pricing.
- Nobody uses it
Don’t you love these pricing pages that don’t have any prices?
“Loss of service” is missing the point.
What “serverless” is definitely not
Too many people are jumping on the buzzword to attract attention. Some of these may be just FaaS.
It’s not an API
Some SaaS businesses out there are using the word serverless. Does the fact that you a webservice does it mean that you’re a serverless company now? I don’t think so.
Nope
It’s not a framework
It won’t run your code; it’s a toolkit. By the way, if you’re looking for a framework to write serverless applications, the serverless framework looks like a serious option.
Great open-source framework from this startup.
Red flags
- Deploy it “on-premises”. How can it be serverless if you need to have servers to use it?
- Presence of “installation steps”. The point of serverless is that you don’t have to install anything.
Examples
Fn by Oracle
It’s not serverless because:
- It depends on Docker
- It’s something that you need to deploy
Kubeless
It’s not serverless.
As you can see, it comes with “installation steps”.
OpenWhisk
IBM Cloud Functions may be serverless but the OpenWhisk project is not.
Fission
3 signs it’s not serverless in one screenshot:
While Lambda allows you to avoid worrying about provisioning, the solutions above are asking you to actually worry about provisioning.
Serverless enablers
There are some services which are not serverless but which are a great fit with AWS Lambda. These are what Tim Wagner says are “building blocks” for serverless applications:
https://youtu.be/AcGv3qUrRC4?t=30m16s
Watch as from minute 30.
Serverless enablers having the following capabilities:
- Cloud logic layer: Lambda with API Gateway
- Responsive data sources: DynamoDB which are their NoSQL offering
- Orchestration and state management: Step-functions which allows for long-running serverless designed in a workflow.
- Application modelling framework: Framework like the Serverless Application Model (SAM)
- Developer ecosystem: Innovation happening from AWS but also partners. For AWS: CodePipeline, CodeBuild and CloudFormation for CI/CD. Also X-Ray is now available to debug and get insights in your serverless functions.
- Integrations library: sell APIs on the AWS marketplace.
- Security and access control: integration with IAM
- Reliability and performance: support for Dead-letter queues for events that weren’t processed even after retries.
- Global scale: where you can run Lambda functions on AWS’s global CloudFront network.
Serverless definition checklist, revisited
Next time, you see somebody use the word “serverless”, ask yourself if it satisfies the following:
- Does not a require a server
- Ability to execute arbitrary logic
- Ability to run large-scale applications
- Pay only when you use it
Any service out there that doesn’t satisfy all of the above are not serverless.
Parting words
My videos will be about “real serverless”, i.e revolving around AWS Lambda. So if you want to read about some real serverless stuff, subscribe below.
Original article appeared here:
https://www.lambdatv.com/Let's-set-the-record-straight-on-the-term-serverless-and-what-it-s-not