Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hitchhiker's Guide to Serverless @ QCon London
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Steve Faulkner
March 21, 2017
0
48
Hitchhiker's Guide to Serverless @ QCon London
Steve Faulkner
March 21, 2017
Tweet
Share
More Decks by Steve Faulkner
See All by Steve Faulkner
Shipping TypeScript to npm
southpolesteve
2
390
Going Serverless with GraphQL
southpolesteve
1
80
Hitchhiker's Guide to Serverless - Node Interactive
southpolesteve
0
88
Full Stack Serverless @ DevOps Days Boston
southpolesteve
0
41
Full Stack Serverless Applications @ MidwestJS
southpolesteve
0
220
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Designing for Timeless Needs
cassininazir
0
130
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The Pragmatic Product Professional
lauravandoore
37
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
79
Fireside Chat
paigeccino
41
3.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Transcript
The Hitchhiker’s Guide to “Serverless” JavaScript
Steve Faulkner @southpolesteve
None
None
Director of Engineering
“Serverless”
None
“Serverless”
there are still servers…
servers platforms!
* as a Service
Database-aaS Caching-aaS Logging-aaS Metrics-aaS Servers-aaS
business logic?
Functions-aaS
myApp(request) #=> response
None
None
None
Lambda + API Gateway
Functions-aaS + Routing-aaS
$ per request
scales magically*
Lambda
write code zip upload function()
node java python C#
shim + rust/go/haskell
function(event,context,cb){ cb(null, ‘Hello World’) }
versioning aliases RAM + CPU logging non-http events
API Gateway
swagger or click a lot
cache/throttle authorization api keys logging/metrics custom domains ssl
None
10-20 million calls per day
< $$$
None
frontend
None
API Gateway S3 Lambda(SSR) html + js
Ember
Ember Riot
Ember Riot Preact
why preact?
components simple small
backend
graphiql.bustle.com
API Gateway Lambda JSON dynamoDB redis*
Ruby
Ruby JS (REST)
Ruby JS (REST) Purescript
None
Ruby JS (REST) Purescript JS (GraphQL)
why graphQL?
graphiQL
types
field resolution
dataloader
why serverless?
ops
#noops
#noops
benchmarks fallbacks load testing monitoring #lessops
scale scale scale scale scale scale scale scale scale scale
scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale scale
1 -> 1000 rps
1000 -> 0 rps
iteration
single function deployments
$$$$
events API
ec2 ~$2500/mo
lambda api gateway ~$400/mo
why not?
lock in
const express = require(‘express’) const fn = require(./lambda-fn/) const app
= express() app.get('/', (req, res) => { fn.handler(null, null, (err, result) => { res.json(result) }) }); app.listen(3000)
cold functions
const data = loadBigData() // Takes 15s module.exports.handler = function(e,ctx,cb){
processBigData(data, cb) }
long tasks
5 min max
s3(3GB) Lambda Kinesis Firehose Elasticsearch
testing
test in the cloud?
tools!
serverless framework node-lambda apex claudia.js
None
npm install -g shep
JavaScript Only no CF swagger webpack environments
shep new my-api shep generate endpoint shep deploy production
questions? Steve Faulkner @southpolesteve