The future will be

SERVERLESS

Munich, 9 Dec 2017

Luciano Mammino (@loige)

Luciano... who?

Let's connect

Twitter (@loige)

GitHub (lmammino)

Linkedin

https://loige.co

... just a Fullstack developer

Agenda

Chapter 1: from bare metal to Serverless

Chapter 2: Serverless, WTF?!

Chapter 3: Understanding Serverless

Chapter 4: A Serverless use case

Chapter 5: PROs n' CONs

Chapter 6: It's time to get started

Chapter 1

from bare metal  to Serverless

“You have to know the past to understand the present.”


Carl Sagan

1989-1991 — Sir Tim Berners-Lee invented the World Wide Web

1991-1995 — The bare metal age

1995 — The invention of web hosting

1999 — Salesforce introduces the concept of Software as a Service (SaaS)

Marc Benioff

2001 — VMWare releases ESXi, "server virtualization" becomes a thing

2002-2006 — AWS is born (IaaS), people talk about "Cloud computing"

2009 — Heroku and the invention of the "Platform as a Service" (PaaS)

 James Lindenbaum

Adam Wiggins

Orion Henry

2011 — Envolve/Firebase, real time database as a service (RTDaaS???)

James Tamplin and Andrew Lee

2012 — Parse.com and the first Backend as a Service (BaaS)

Tikhon Bernstam
Ilya Sukhar
James Yu
Kevin Lacker

2013 — Docker, "containers are better than virtual machines"

Solomon Hykes

2013-2015 Kubernetes / Swarm / Nomad / CoreOs (containers at scale)

2014 Launch of AWS Lambda (FaaS)

Chapter 2

Serverless, WTF*?!

*What's The Fun

"Serverless most often refers to serverless applications. Serverless applications are ones that don't require you to provision or manage any servers. You can focus on your core product and business logic instead of responsibilities like operating system (OS) access control, OS patching, provisioning, right-sizing, scaling, and availability. By building your application on a serverless platform, the platform manages these responsibilities for you."

 

— Amazon Web Services
loige.link/serverless-apps-lambda

 

The essence of the serverless trend is the absence of the server concept during software development.

 

— Auth0

loige.link/what-is-serverless

Chapter 3

Understanding Serverless

The 4 pillars of serverless

(TLDR; It's not only about servers)

No server management
You don't know how many and how they are configured

Flexible scaling

If you need more resources, they will be allocated for you

High availability
Redundancy and fault tolerance are built in

Never pay for idle
Unused resources cost $0

The serverless layers

(TLDR; It's not only "FaaS")

👉 Compute

👉 Data

👉 Messaging and Streaming

👉 User Management and Identity

👉 Monitoring and Deployment

👉 Edge

Stuff that we can build

📱  Mobile Backends

🔌  APIs & Microservices

📦  Data Processing pipelines

⚡️  Webhooks

🤖  Bots and integrations

⚙️  IoT Backends

💻  Single page web applications

execution model

Event → 𝑓

IF   ________________________________ 

THEN ________________________________
        

"IF this THEN that" model

A new CSV file is saved in the object storage

Process it and save it in the DB

HTTP request: GET /products

Retrieve products from DB and return a JSON

It's 2 AM

Scrape weather forecast for next days

Serverless and JavaScript

Frontend

🌏 Serverless Web hosting is static, but you can build SPAs
(React, Angular, Vue, etc.)

Backend

👌 Node.js is supported by every provider

⚡️ Fast startup (as opposed to Java)

📦 Use all the modules on NPM

🤓 Support other languages/dialects
(TypeScript, ClojureScript, ESNext...)

exports.myLambda = function (
    event,
    context,
    callback
) {

  // get input from event and context

  // use callback to return output or errors

}

Anatomy of a Node.js lambda on AWS

Chapter 4

A serverless use case

In order to consume DuoS data for invoicing

      As an engineer

  I Want to have a process that keeps data from
            the source FTP in sync

        And exposes it as a REST API

A serverless implementation (on AWS)

DuoS Data

3rd-party

FTP Storage

DuoS API
(API Gateway)

DuoS service

Invoice service

Sync
Lambda

Parse/Load
Lambda

API
Lambda

DuoS S3
Bucket

DuoS
DynamoDB Table

scheduled event
new object
API
Request

(Many) things I didn't have to worry about...

  • What kind of virtual machine do I need?

  • What operative system?

  • How to keep OS/System updated?

  • How much disk space do I need?

  • How do I handle/retry failures?

  • How do I collect and rotate logs?

  • What about metrics?

  • What machine do I need to run the database?

  • How do I backup the database?

  • How do I scale the database?

  • Which web server should I use and how to configure it?

  • Throttling? Managing API Keys? API caching?

Chapter 5

PROs n' CONs​

Focus on delivering business value / Fast time to market

Less "Tech-freedom™️" /

Tight vendor lock-in!

Optimal resource allocation

Not-magic™!

You still have to write configuration

Auto-scalability

Cold start problem

loige.link/cold-start

High Availability

Soft/Hard Limits

loige.link/lambda-limits​

Pay per usage

(don't pay for idle!)

Local development,
Testing, Debugging

Growing ecosystem

Older technologies
might not integrate well

Chapter 6

It's time to get started​

Who is already adopting Serverless

Pick one and start to have fun!

IBM

Cloud Functions

AWS

Lambda

Azure

Functions

Google

Cloud Functions

Auth0

Webtask

Iron.io
FaaS

Spotinst

Functions

Apache OpenWhisk

Fission

stdlib

service

Functions

Fn

Kubeless

Cloud based

Self-hosted / Open Source

F

effe

LeverOS

Why is this the right direction for the future?

2 main reasons

Opportunity to deliver value to customer quickly

Pay only for the used resources

Should I migrate all my apps to serverless?

Approach this with care...

Thanks!

Questions?

Now or later to @loige :)

If your company wants to get started with serverless on AWS, be sure to check out serverlesslab.com

Credits

Cover photo by Tobias Zils on Unsplash
High Res Emojis by emojiisland.com

The future will be Serverless

By Luciano Mammino

The future will be Serverless

Software development is on the verge of a new revolution that will change the rules of the Cloud Computing game... again! The new wind of change is called "Serverless" and you should definitely get ready for it! In this talk I will illustrate why I believe Serverless will be a game changer in the industry, how did we get to have Serverless and how to get started with it to build real products.

  • 7,158