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!
Serverless. What is it? What is it good for?
By timh
Serverless. What is it? What is it good for?
A brief overview of the state of serverless technology at the onset of 2017.
- 1,050