Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Searching for the Server in Serverless

Searching for the Server in Serverless

Function as a Service (FaaS) products like AWS Lambda are more popular than ever. How do we measure and design for performance and learn more about how these services are built?

Presented at dotScale Paris 4/24/17.

Clay Smith

April 24, 2017
Tweet

More Decks by Clay Smith

Other Decks in Programming

Transcript

  1. λ HTTP Requests Client App Simple App Architecture with FaaS

    Functions + API Gateway Is this going to (not) work for me? Managed Infrastructure λ λ λ
  2. Cold Start vs Warm Start Event Trigger Handler Warm Function

    Invocation Time Create Initialize Handler Cold
  3. λ Running Commands const exec = require('child_process').exec; exports.handler = (trigger,

    cb) => { exec('whoami', (err, stdout) => { console.log(stdout); return cb(null); }); } [LOG TIME] sbxuser_1066
  4. Info from /proc 2x Intel(R) Xeon(R) CPU E5-2666 v3 @

    2.90GHz cat /proc/cpuinfo 3857664 kB cat /proc/meminfo ixgbevf (EC2 10Gbps Network Driver) cat /proc/modules c4.large EC2 Compute-Optimized Instance (?)
  5. c4.large instance λ λ λ λ λ λ λ λ

    λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λs on a VM 10 Gbps λ = 128 MB Function λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ λ
  6. Cold Start Discovery in Code var SO_SO_COLD = true; exports.handler

    = function(trigger, cb) { console.log('Cold? %s', SO_SO_COLD); SO_SO_COLD = false; return callback(cb) } https://github.com/smithclay/lambda-proc-info
  7. Design Your Own FAAS High availability (multi-AZ or region) Elastic

    VMs and Automagic Freezing Containers Really good scheduling algorithm
  8. FaaS: No Silver Bullet "I've got a quick, computationally-intensive task

    that I need to perform occasionally in response to a well-defined event that isn't that sensitive to latency." —The Ideal FaaS Developer // TO DO: measure && share