Serverless.

What is it? What is it good for?

Hi, I'm Tim

A Moment Of Semantic Cleansing

"There is no such thing as 'serverless'. It's just someone else's problem."

Another Moment Of Cyclical Reflection

now

*.html

*.asp

*.html

90s

00s

geo

cities

Truly Serverless?

Literally Server-less

  • webrtc.org (peer to peer video/audio)
  • bitcoin.org (peer to peer cash)
  • ipfs.io (peer to peer file sharing)
  • gun.js.org (peer to peer document database)
  • zeronet.io (peer to peer websites)

...these are not the serverlesses you are looking for.

So What Do We Mean By Serverless?

Marketed As Serverless

  • AWS Lambda              (Nov 2014)
  • Google Cloud Functions (Feb 2016)
  • Azure Functions           (Mar 2016)
  • Webtask.io                 (June 2016)

FaaS

  • Firebase.com (Sep, 2011; real-time db)
  • Auth0.com (Feb, 2013; authentication)
  • Parse (June 2011; real-time db, now defunct)
  • Fanout.io (2011; real-time proxy server)
  • PubNub (2010; real-time APIs)

BaaS

+

How did we get here?

What determines our trajectory?

Also, Why are we here?

Containers

Serverless

IaaS

PaaS

BaaS

FaaS

SaaS

Commodification

$

Devops/Developer ecosystem

Docker Swarm

2014

2015

2016

2017

FaaS + BaaS / Serverless

Container Movement

Lambda

AuthO

Google Cloud Functions

Azure Functions

Fanout.io

Firebase

webtask.io

Serverless.com

Claudia.js

apex

Kubernetes v1.0

PubNub

Amazon Container Service

Google Container Engine

iron.io

joyent manta

Container 2.0

hyper.sh

apache open whisk

galactic fog's gestalt

Mesosphere DC / OS

The Convergence Of FaaS/BaaS + Containers

zappa.io

AWS's SAM

pachyderm

language abstractions over FaaS/BaaS

So, serverless?

PROs

CONs

A HUGE Pro: The Decline of Ops in DevOps

90% dev

10% ops

An event-driven microservice architecture means...

*infinitely scalable, no reddit hugs of death

*goodbye OS patches, security or       otherwise

*no load balancers, goodbye nginx.conf and       haproxy.cfg 

*less ansible, less chef & puppet, less ssh,         less keypairs; in short: no servers, no ops

More PROs

For startups, pay-as-you-go is INSANELY cheap compared to 24/7 servers

*

GREENER computing

*

(existing solutions utilize only 10-15% percent of server resources per Forbes article)

FAST time to market

*

There Is Yet Pain To Be Discussed

AWS will be your master for some time (6+ mos at least)

*

State. You have to bring it with you.

*

Latency. Compile-based languages need to stay warm.

*

Immature. Tooling, integration testing, monitoring. 

*

Security. More surface area across more vendors. 

*

Serverless. So Now What?

Growing number of open source tools

Apex (written in Go, lamba only)

Claudia.js (js, lambda + api gateway)

Zappa.io (python, lambda + api gateway)

serverless.com (lambda, cloudwatch schedule (cron), file systems, api gateway)

no attempts to avoid AWS lock in

chalice (by AWS, python, lambda, api gateway)

built with abstractions in mind to avoid AWS lock in

The best-of-breed, javascript-based framework for end-to-end management of serverless architecture.

Long Term: Serverless aims to be an abstraction over AWS, Google Cloud Functions, and Azure Functions (and others).

Short Term: Serverless is an abstraction that compiles into  AWS's Cloud Formation template to deploy the code.

Disclaimer: AWS SAM

"The AWS Serverless Application Model (AWS SAM, previously known as Project Flourish) extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application."

Released Nov, 2016

Apps are comprised of services, which are comprised of functions, events, resources, and plugins.

serverless.com + phenomic + serverless-s3-client 

Thanks!

Made with Slides.com