• Rohit Kelapure

Towards A New Serverless World

Updated: Mar 12

Lately I have been scratching my head when anyone says serverless. What is the fundamental definition of a Serverless workload ? What qualifies as serverless ? In order to first define what the term serverless means we will look at what probably it is not.


Should that be a Function ?

You are probably NOT a function IF

  1. You are sharing state between functions

  2. You are a long running process

  3. You have startup times in excess of 30 seconds

  4. Cross multiple domains

  5. Need Strong performance like latency or host specific guarantees

  6. You are Stateful like orchestrating transactions or relying on persistence

  7. You own your own data model


Definition of Serverless ?

Scale to Zero - Serverless workloads can be microservices or functions that scale to zero.


Serverless is a spectrum of workloads ranging from functions to microservices. So what does serverless look like in the wild ? What are the kinds of questions and criteria developers must think through as they define functions.


What makes a Function ?

  1. Where are the Seams and boundaries >

  2. What are the triggers ? - time, intrinsic, extrinsic, events, actions etc.,

  3. What are inputs and outputs

  4. What are its side-effects

  5. What contract or policy does it implement

  6. Is the function contained within the domain ?

What makes a cloud native microservice ?

  • 12 Factor/15 Factor Cloud Native Applications

  • Stateless horizontally scalable

  • Location and Host Agnostic

  • Externalized Configuration and Secrets


As you think through these considerations it is also important to consider the challenges in writing clean functions in a pure serverless architecture.

Challenges of Serverless Workloads

  • Startup Time

  • Coordination/signaling service

  • High-performance, affordable, transparently provisioned storage

  • Data Dependencies

  • Resource Requirements

  • Networking

  • Scheduling randomization and physical isolation

  • Fine Grained Security Contexts

  • Hardware Heterogeneity, Pricing, and Ease of Management


In this blog post we have barely scratched the surface of the term Serverless. We have neatly ignored the business and financial implications of serverless. Serverless is inherently a financial as well as a technical construct. We also need to understand serverless from a financial and business perspective. We will come back and offer an opinion on this in a follow up blog post.


 

©2019 - 2020 by Shaun Anderson