Let’s set the record straight on the term “serverless” and what it’s not

Jeshan Babooa
LambdaTV
Published in
5 min readOct 22, 2017

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.

Source: CommitStrip Check out their other comics by the way. They are good.

What “serverless” is: a Serverless definition checklist

A serverless solution satisfies the following requirements:

  1. Does not a require a server
  2. Ability to execute arbitrary logic
  3. Ability to run large-scale applications
  4. 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:

  1. Functions are the unit of deployment and scaling
  2. No machines, VMs, or containers visible in the programming model
  3. Permanent storage lives elsewhere
  4. Scales per request. Users cannot over- or under-provision capacity
  5. Never pay for idle
  6. Implicitly fault tolerant
  7. BYOC: bring your own code
  8. 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

If you can’t sign up or if it’s for “select customers”, then what serverless code are you going to run?

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:

  1. Cloud logic layer: Lambda with API Gateway
  2. Responsive data sources: DynamoDB which are their NoSQL offering
  3. Orchestration and state management: Step-functions which allows for long-running serverless designed in a workflow.
  4. Application modelling framework: Framework like the Serverless Application Model (SAM)
  5. 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.
  6. Integrations library: sell APIs on the AWS marketplace.
  7. Security and access control: integration with IAM
  8. Reliability and performance: support for Dead-letter queues for events that weren’t processed even after retries.
  9. 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:

  1. Does not a require a server
  2. Ability to execute arbitrary logic
  3. Ability to run large-scale applications
  4. 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

--

--

Jeshan Babooa
LambdaTV

Serverless Guy. Loves AWS Lambda. Intellij fan(atic).