FaaS (Functions as a Service) - aka Serverless

Michael Bright, 19 January 2018,
FlossCon Grenoble

These slides online at https://mjbright.github.io/Talks/2018-Jan-FLOSSCon_Serverless

Serverless Computing

  • What is Serverless?

    Your experiences?
  • Review of Cloud Provider Offerings.

    +CNCF Serverless WG
  • Serverless Tools

  • Serverless Platforms

  • Serverless In Action - demos

What is Serverless

No more servers ?!

The path to Serverless

Serverless - The making of ...

Serverless - What is it? ...

At the peak of the Hype Cycle !!

  • Don't care about servers

    - Developers focus on apps
    - Servers are auto-scaled
    - No server provisioning
  • BaaS

    • Back-end as a Service - e.g. DB, messaging

    • Applications accessing other cloud services ...
  • Now FaaS + BaaS

    • Functions as a Service - your stateless logic

    • Functions accessing other cloud services ...
  • Pay as you go

    - Pay for real usage
    - No initial investment
    - Great for startups
  • Agile

    Short time to market
    Enables innovation
  • Also a company!


    Serverless.com provide deployment tools

The future of fast-food is Serverless

Serverless - Event Driven Architecture

Serverless - What is it? ... Use Cases


Serverless - What is it? ... Use Cases

Where it doesn't make sense to pay for always-on services

  • Periodic

    - quarterly analyses
    - monthly payroll
    - weekly news
    - daily summaries

    - Bank checks
       (with image recognition)
  • Domains

    - IoT
    - Banking
    - Glue-logic

  • Characteristics

    - latency tolerant
    - event-driven
    - short-lived
    - periodic

Serverless - Cloud Providers

Serverless - Cloud Provider Offerings


AWS Lambda


Introduced βeta in Nov 2014, stable version by end of 2015.
Leader in developer uptake, back-end services and eco-system.

Language choices: Node.js (JS), Python, Java 8, C#, VB/F#?
(CSAR project)
NEW: Go on AWS Lamba
Cost: Free tier: 1 mn req/mth, then $0.00001667/GBy-sec details
Strengths: Created the space, enormous ecosystem, Cloud9 IDE?
Weaknesses: A little slow, limited languages, lock-in


Azure Functions


Introduced in May 2016

Many language choices: JavaScript, C#, F#, Python, PHP, Bash, PowerShell ...
Cost: Free tier: 1 mn req/mth, then $0.000016/GBy-sec details
Strengths: Win dev ecosystem, VStudio tools, Azure Stack
Weaknesses: still young, lock-in


Google Cloud Functions


Alpha release in Feb 2016.

Language support: JavaScript only.
Cost: Free tier: 2mn req/mth, then $0.0000004/GBy-sec details
Strengths: Google dev ecosystem, backend services
Weaknesses: Very young, Js only, commitment? Cost, lock-in


IBM Cloud Functions


Experimental release in Feb 2016

Open Sourced as Apache OpenWhisk

Language support: Node.js, Swift or BYoC
Cost: Free tier: 2mn req/mth, then $0.0000004/GBy-sec details
Strengths: Open source community, RedHat/Adobe backing, Fast growth
Weaknesses: lock-in


But we need open Serverless for open Cloud

The CNCF has a created a Serverless WG

CNCF Serverless

CNCF Serverless WG to

  • Provide clarity on the topic:
    • * Define common terminology
    • * Define the scope of the space
    • * Identify common use cases and patterns
    • * Identify relation to PaaS and container orchestration

  • Identify potential next steps for the community:
    • * Identify areas for harmonization or interop work

  • Create a whitepaper on Serverless.

CNCF Serverless WG Resources

Serverless - Tools

Serverless - Open Source tooling ...

Serverless - Open Source Frameworks

Serverless - Open Source Frameworks

--> --> --> -->

Thanks !


Resources - 1

Resource Description URL
awesome-serverless Curated list of awesome services, solutions and resources for serverless / nobackend applications. [github] anaibol/awesome-serverless
awesome-Serverless(.com) Curated list of resources related to serverless architectures and the Serverless Framework [github] JustServerless/awesome-serverless
Serverless Tools for deploying to several Cloud Providers [github] serverless/serverless
Apex Tools for deploying to AWS Lambda [github] apex/apex

Resources - 2

Resource Description URL
Cloud Providers
AWS Lambda Amazon's Serverless Platform https://aws.amazon.com/fr/lambda/
Azure Functions Microsoft's Serverless Platform https://azure.microsoft.com/en-us/services/functions/
Google Cloud Functions Google's Serverless Platform https://cloud.google.com/functions/
IBM Cloud Functions IBM's Serverless Platform https://www.ibm.com/cloud-computing/bluemix/openwhisk

Resources - 3

Resource Description URL
Open Source Serverless Platforms
Kubeless Serverless platform from Bitnami url
Fission.io Serverless platform from Platform9 url
Apache OpenWhisk Serverless platform from IBM url
OpenFaaS Serverless platform from Alex Ellis, Docker Captain url
Serverless Python Frameworks
Apex Serverless framework supporting Python and other languages url
Chalice Serverless framework supporting Python / Flask url
Lambdify Serverless framework supporting Python url
Zappa Serverless framework supporting Python / WSGi url

Thanks !