Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Stop calling everything serverless!


Published on

Since AWS launched Lambda in 2014, the term “serverless” has been used (and misused) to describe compute models, technologies, architectural patterns, operational constructs, and even rebranded cgi-bins. The term is now used so broadly that it’s turning into a buzzword with no discernible meaning.

In this talk, we’ll cut through all the marketing hype, and discuss why the underlying concept of “serverless”, and the superpowers that come with it, are much more important than the name itself.

Published in: Technology
  • Be the first to comment

Stop calling everything serverless!

  1. 1. Stop Calling Everything Serverless! Jeremy Daly CTO, @jeremy_daly
  2. 2. • CTO at • Consult with companies building in the cloud • 20+ year veteran of technology startups • Started working with AWS in 2009 • Blogger, open-source contributor, speaker • Publish the Off-by-none serverless newsletter • Host of the Serverless Chats podcast Jeremy Daly
  3. 3. serverless
  4. 4. “Marketing is just liquor and guessing. Dilbert
  5. 5. Serverless as a compute model…
  6. 6. “ Serverless computing is a cloud-computing execution model in which the cloud provider acts as the server, dynamically managing the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. It is a form of utility computing. execution model resources consumed utility computing
  7. 7. “Pay for Value” “ Serverless allows you to build and run applications and services without thinking about servers. It eliminates infrastructure management tasks such as server or cluster provisioning, patching, operating system maintenance, and capacity provisioning. You can build them for nearly any type of application or backend service, and everything required to run and scale your application with high availability is handled for you. eliminates infrastructure management high availability “Pay for Value” capacity provisioning
  8. 8. Serverless as an architectural pattern…
  9. 9. “ Serverless is a cloud systems architecture that involves no servers, virtual machines, or containers to provision or manage. Yes, these still exist underneath the running application but their presence is abstracted away from the developer or operator of the serverless application. This abstraction allows for greater effort and emphasis higher up the technical stack as well as the software value chain. greater effort and emphasis cloud systems architecture software value chain
  10. 10. “ Roughly speaking, it’s an event driven, utility based, stateless, code execution environment in which you write code and consume services. A boundary condition is “write code” i.e. any lower than this and it’s not serverless event driven stateless write code consume services Simon Wardley
  11. 11. Serverless as an operational construct…
  12. 12. Serverless as a spectrum…
  13. 13. “• Service-full + ephemeral compute • Tighter correspondence between resources used and resources billed • Smaller and more abstracted control plane Service-full abstracted control plane Ben Kehoe “Serverlessness” is driven by:“Serverlessness” “Serverless as a Ladder”
  14. 14. Erik Peterson “Serverlessness” of AWS products…
  15. 15. Serverless as a mindset…
  16. 16. “ Serverless is about understanding when *not* to create technology. Creating anything leads to technical debt. Serverless is about removing complexity by allowing the services that others provide to provide the complexity for you. when *not* to removing create technology technical debt Paul Johnston complexity “Serverless is a Doctrine”
  17. 17. “ The point is not functions, managed services, operations, cost, code, or technology. The point is focus — that is the why of serverless. The point is focus Ben Kehoe why of serverless
  18. 18. An architectural pattern that utilizes an ephemeral compute model that abstracts away infrastructure, allowing developers to focus primarily on business logic by (at most) writing code that consumes other services, using the amount of operational complexity of those services to determine the level of “serverlessness” by which developers can then understand how these services can be used to reduce the total cost of ownership and minimize technical debt by writing less code without caring about the underlying technology choices of the chosen cloud provider. Amalgamated definition of Serverless… …and probably something about Kubernetes
  19. 19. Serverless as just another buzzword… 😢
  20. 20. Circa 1997 👴
  21. 21. • Hundreds of data centers and edge locations with massive pools of resources • Specialization of use cases: elastic load balancers, auto-scaling, and automation • Managed services: databases, queues, etc. that handle maintenance, replication, and backups An Evolution to Cloud Computing…
  22. 22. • We still needed somewhere to run our code • Created containers to run multiple virtual machines on virtual machines • Created container orchestration systems • We’re a long way from a developer simply FTPing a Perl script up to their cgi-bin An Evolution to Cloud Computing…
  23. 23. Serverless as a modern day cgi-bin…
  24. 24. • Decomposed applications into smaller pieces • Ran horizontal copies to serve larger audiences • Scaled relational databases with things like sharding • Created “operations” teams to manage infrastructure • Created “DevOps” to bridge the disconnect Trading Simplicity for Scalability
  25. 25. You take something simple, elegant, and straightforward, and you create layers of complexity until the learning curve becomes so steep that the barrier to entry is too high for most to summit. The Common Pattern of Complexity
  26. 26. Serverless takes the last decade of cloud complexity and reduces it down to a developer simply uploading their code to a metaphorical cgi-bin.
  27. 27. • No servers to manage or containers to orchestrate. • No crystal balls required for capacity planning • No automation scripts to trigger auto-scaling • Just a developer, some code/config, and few limits to their imagination The Simplicity of Serverless…
  28. 28. Deploying applications is becoming easier…
  29. 29. Serverless as a methodology…
  30. 30. • Serverless is NOT an execution model or FaaS • Serverless is NOT managed services or SaaS • Serverless is NOT an operational construct • Serverless is NOT a spectrum • Serverless is NOT a technology The way I see it…
  31. 31. Serverless is a methodology for planning, building, and deploying software in a way that maximizes value by minimizing undifferentiated heavy lifting. It touches everything up and down the value chain, not only affecting how engineers approach development, but also influencing product strategy, design, budgeting, resource planning and much more.
  32. 32. “ The main reason for the success of low-level virtual machines was that in the early days of cloud computing users wanted to recreate the same computing environment in the cloud that they had on their local computers to simplify porting their workloads to the cloud. virtual machines same computing environment porting their workloads Cloud Programming Simplified: A Berkeley View on Serverless Computing - February 10, 2019 simplify
  33. 33. “Serverless computing will become the
 default computing paradigm of the Cloud Era, largely replacing serverful computing and thereby bringing closure to the Client-Server Era. default computing paradigm Cloud Programming Simplified: A Berkeley View on Serverless Computing - February 10, 2019
  34. 34. marketing
  35. 35. Blog: Newsletter: Podcast: Lambda API: GitHub: Twitter: @jeremy_daly Things I’m Working On…
  36. 36. THANK YOU! Jeremy Daly CTO, @jeremy_daly