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.
2. • CTO at AlertMe.news
• 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
9. “
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
10.
11. “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
14. “
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
15. “
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
19. “• 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”
22. “
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”
23. “
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
24. 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
29. • 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…
30. • 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…
33. • 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
34. 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
35. Serverless takes the last decade of
cloud complexity and reduces it down
to a developer simply uploading their
code to a metaphorical cgi-bin.
36. • 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…
39. • 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…
40. 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.
41.
42. “
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
43. “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