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

Serverless Computing - Promises and Pitfalls - by Jonathan Schellack

Serverless Computing - Promises and Pitfalls - by Jonathan Schellack

An introduction to Serverless Cloud Computing, presented at SQL Saturday Baton Rouge 2019. This talk by Jonathan Schellack talks about "why serverless", as well as both the pros and the cons of this new way of architecting software systems.

Jonathan Schellack

August 17, 2019
Tweet

Other Decks in Programming

Transcript

  1. Serverless Computing:
    Promises & Pitfalls
    Jonathan Schellack @schellack / sal.us

    View Slide

  2. Why are we here?
    •Technology is the means,
    not the end
    •Business Problems > Buzzwords
    @schellack

    View Slide

  3. Defining a negative
    •Missing servers
    •Focus on what’s missing
    •Do only what you must
    •Disown everything else
    @schellack

    View Slide

  4. Constraints
    •Freedom
    •Limited resources
    •Finances
    •Time
    •Attention
    @schellack

    View Slide

  5. So what is serverless?!
    “Serverless is an event driven, utility based, stateless, code
    execution environment.”
    – Simon Wardley
    “Serverless architectures are application designs that incorporate
    third-party ‘Backend as a Service’ (BaaS) services, and/or that
    include custom code run in managed, ephemeral containers on a
    ‘Functions as a Service’ (FaaS) platform.”
    – Mike Roberts
    @schellack

    View Slide

  6. So what is serverless?!
    “Serverless is an event driven, utility based, stateless, code
    execution environment.”
    – Simon Wardley
    • Event-driven
    • Utility-based
    • Stateless
    • Code execution environment
    @schellack

    View Slide

  7. Event Driven
    • Publish/subscribe
    • CQRS
    • Backend-as-a-service
    • Rethink how we design applications
    @schellack

    View Slide

  8. Utility Based
    • Compute = commodity
    • Scale to zero
    • Performance (suddenly?) matters
    • IT + Finance
    @schellack

    View Slide

  9. Stateless
    • Global state was already bad, before serverless
    • Incompatible with serverless (mostly)
    @schellack

    View Slide

  10. Code execution environment
    • Code
    • Where are the functions?
    • Someone else’s environment
    @schellack

    View Slide

  11. Promises
    • Manage what matters
    • Autoscaling
    • Elastic
    • Scale to zero
    • Excellent fit for one-off compute tasks
    • Environment-enabled DRY
    @schellack

    View Slide

  12. Pitfalls
    • No state
    • Idempotency
    • Autoscaling (connections)
    • Difficult to cache
    • Difficult to coordinate between components
    • You have to plan and estimate
    @schellack

    View Slide

  13. Pitfalls
    • Security "
    • Public Internet
    • Common vulnerabilities (see top 10 guide)
    • Environment separation
    @schellack

    View Slide

  14. Pitfalls
    • Snowflakes ❅ ❆
    • Test automation
    • Deployment automation
    @schellack

    View Slide

  15. Pitfalls
    • Black Box
    • Traceability
    • End-to-end
    • Observability
    • Build systems that allow us to see (from outside) what is actually going on
    (inside) without shipping new code

    View Slide

  16. Let’s solve problems
    @schellack

    View Slide

  17. Let’s solve problems
    •Automation
    •Web apps
    •Analytics
    •Batch processing
    •Internet-of-things
    @schellack

    View Slide

  18. Session evaluations are ONLINE ONLY
    http://j.mp/SSBREVAL

    View Slide