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

The State of Serverless

5ff4f1dbfd3888fba963ec7cc629e6f3?s=47 mthenw
June 14, 2017

The State of Serverless

The AWS Lambda release in 2014 pushed serverless into the mainstream. Other major cloud providers (Google, Microsoft, IBM) have caught up, and today there’s a vast offering of serverless services available. Not to mention the handful of feature rich, open source projects that enable running serverless applications on-premise. This talk will help you understand what serverless is, and how it improves software development and operations. It will provide an overview of the serverless ecosystem – from Function-as-a-Service providers to microservices orchestrators that allow building a complex state machine in the cloud. Without worrying about scalability, capacity planning, and security patches.

5ff4f1dbfd3888fba963ec7cc629e6f3?s=128

mthenw

June 14, 2017
Tweet

More Decks by mthenw

Other Decks in Technology

Transcript

  1. the state of serverless

  2. Maciej Winnicki Principal Software Engineer Serverless, Inc.

  3. @mthenw

  4. 1973

  5. None
  6. None
  7. None
  8. None
  9. None
  10. https://blog.prismalytics.io/serverless-frenzy-a29fefc1514f |

  11. “ The next day saw an unforgettable orgy of one-liners

    as everybody joined in the excitement of plumbing http://www.cs.dartmouth.edu/~doug/reader.pdf
  12. tail -f syslog | grep error | tee errors

  13. None
  14. unix philosophy

  15. “ Doug McIlroy, E. N. Pinson, B. A. Tague (8

    July 1978). "Unix Time-Sharing System: Foreword". pp. 1902–1903. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
  16. MAKE PROGRAMMERS MORE PRODUCTIVE

  17. https://medium.com/apex-serverless/introducing-apex-800824ffaa70

  18. what is serverless

  19. (re)evolution of the cloud

  20. focus on business logic less concerns about stack implementation https://medium.com/openwhisk/five-minute-intro-to-open-source-serverless-development-with-openwhisk-328b0ebfa160

    bare metal IaaS PaaS functions hardware abstraction OS abstraction runtime abstraction
  21. Function-as-a-Service

  22. Function-as-a-Service Backend-as-a-Service + https://martinfowler.com/articles/serverless.html

  23. no server/container/process management http://blog.rowanudell.com/the-serverless-compute-manifesto/ costs scale with usage / never

    pay for idle auto-scale / auto-provision
  24. global availability

  25. Function-as-a-Service is event-driven

  26. use cases

  27. back-end services / web apps / IoT https://www.youtube.com/watch?v=b1t78P_1FT4 data processing

    infrastructure automation and more…
  28. challenges

  29. functions are like microservices but smaller

  30. monitoring & logging debugging & diagnostics local development

  31. vendor lock-in

  32. latency / cold start

  33. providers

  34. None
  35. None
  36. None
  37. • Node.js • Java • Python • C# Runtimes

  38. • Amazon S3 • Amazon DynamoDB • Amazon Kinesis Streams

    • Amazon Simple Notification Service • Amazon Simple Email Service • Amazon Cognito • AWS CloudFormation • Amazon CloudWatch Logs • Amazon CloudWatch Events • AWS CodeCommit • Scheduled Events (powered by Amazon CloudWatch Events) • AWS Config • Amazon Echo • Amazon Lex Amazon • API Gateway Events http://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cloudformation
  39. Monitoring & Logging • Logs and metrics pushed to CloudWatch

    • Available metrics: • Invocations • Errors • Duration • Throttles
  40. Debugging & Diagnostics • X-Ray - distributed tracing system •

    Support for: • Java • Node.js
  41. X-Ray Demo

  42. Local Development • no official tools

  43. Local Development

  44. Local Development • API Gateway • Kinesis • DynamoDB •

    DynamoDB Streams • Elasticsearch • S3 • Firehose • Lambda • SNS • SQS • Redshift • ES (Elasticsearch Service) • SES • Route53 • CloudFormation • CloudWatch
  45. Ecosystem • Step Functions • workflows • coordinate functions

  46. None
  47. Summary: AWS is a leader in serverless.

  48. None
  49. Google Cloud Functions

  50. in beta

  51. Runtimes • Node.js

  52. Events • HTTP request • Cloud Pub/Sub • Cloud Storage

  53. Monitoring & Logging • Logs and metrics pushed to Stackdriver

    Logging • Errors captured by Stackdriver Error Reporting • Available metrics: • execution time • execution count • memory usage
  54. • Debugging via Stackdriver Debugger Debugging & Diagnostics

  55. Stackdriver Debugger Demo

  56. • Cloud Functions Local Emulator Local Development

  57. • Cloud Functions For Firebase • Events: • Realtime Database

    Triggers • Firebase Authentication Triggers • Google Analytics for Firebase Triggers Ecosystem
  58. Summary: GCP offers very basic serverless features.

  59. None
  60. Runtimes • Node.js • C# • F# • Python •

    PHP
  61. Events • HTTP request • Schedule • Azure Storage blob

    storage and queues • Azure Event Hubs events • Azure Service Bus queues and topics
  62. Monitoring & Logging • Logs and metrics pushed to Application

    Insights • Metrics available per server: • response time • requests • failed requests
  63. Debugging & Diagnostics • Debugging via local development (Visual Studio)

  64. Local Development • Azure Functions Core Tools

  65. Ecosystem • Logic Apps • business processes • workflows •

    integration with SaaS products
  66. Summary: Decent serverless offering. Logic Apps look promising.

  67. None
  68. Runtimes • Node.js • Swift • Python • Java •

    anything via Docker
  69. Events • HTTP request • Schedule (Alarms) • GitHub events

    • IBM Cloudant DB changes • IBM Message Hub events • IBM Push Notifications events • custom events via triggers
  70. Monitoring & Logging • Logs available via dashboard and CLI

    • Metrics: • number of invocations • number of failed invocations • completion time
  71. Debugging & Diagnostics • no official tools

  72. Local Development • no official tools

  73. Ecosystem

  74. Summary: Open-source FaaS project built with extensibility in mind.

  75. other projects

  76. Kubeless

  77. Fission

  78. Funktion

  79. FaaS

  80. None
  81. FaunaDB • database from the team that scaled Twitter •

    global replication/global consistency • supported data models: • relational • document • object-oriented • graph
  82. the company

  83. None
  84. A CLI tool that manages the lifecycle of you serverless

    application.
  85. Features • application lifecycle management • manage code & infrastructure

    • scaffolding & automation • multi-provider (AWS, GCloud, Azure, IBM OpenWhisk) • local development • extensibility • community
  86. Framework Demo

  87. None
  88. The most popular open-source tool for managing serverless application.

  89. None
  90. We are hiring! serverless.com/company/jobs

  91. Thanks! Follow me on Twitter! @mthenw