Let's set the record straight on the term "serverless" and what it’s not

Slides:

The problem

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.

image alt text

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

What "serverless" is

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:

image alt text

  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

image alt text

https://twitter.com/cblitz/status/735840985930948608

Examples

AWS Lambda

Of course there’s Lambda; the serverless offering which I cover exclusively on this channel.

image alt text

Azure Functions

A few months after Lambda was launched, Azure soon announced their own serverless offering.

image alt text

Google Cloud Functions

Google quickly followed suit with their own serverless offering after Microsoft announced Cloud Functions.

image alt text

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

image alt text

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:

image alt text

Don't you love these pricing pages that don't have any prices?

image alt text

"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.

image alt text

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.

image alt text

Great open-source framework from this startup.

Red flags

Examples

Fn by Oracle

image alt text

image alt text

It’s not serverless because:

Kubeless

It’s not serverless.

image alt text

As you can see, it comes with "installation steps".

image alt text

OpenWhisk

IBM Cloud Functions may be serverless but the OpenWhisk project is not.

image alt text

Fission

image alt text

3 signs it’s not serverless in one screenshot:

image alt text

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:

image alt text

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

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.

Stay up to date

* indicates required