7. Understand
Application
lifecycle
Christian Posta „Be as serverless as you can, but not more than that”
https://blog.christianposta.com/serverless/its-not-about-microservices-vs-serverless/ Vadym Kazulkin, @VKazulkin
8. Explore phase
• Quickly validate
hypotheses
• Rapidly experiment
• Run experiments as
cheaply as possible
Image: burst.shopify.com/photos/a-look-across-the-landscape-with-view-of-the-sea
Serverless is a perfect fit
Vadym Kazulkin, @VKazulkin
9. Exploit phase
• Built something that does
provide customer value
• Build it on scale
• Build a profitable product
around it
Image: Robert Scoble via Flickr
partly serverless and partly not
serverless architecture
Vadym Kazulkin, @VKazulkin
10. Application lifecycle
• How much of my stack should I own
to be able to deliver business value?
• Outsource SLA, regulatory
compliance, price, and roadmap to
my service provider?
Vadym Kazulkin, @VKazulkin
11. Existing
applications
• You can’t magically move
that all off to service
providers
• You can try to modernize
parts of them
Vadym Kazulkin, @VKazulkin
12. Strangler
Pattern
• Add a proxy (API
Gateway or Application
Loadbalancer), which
sits between the legacy
application and the user
• Add new services and
link it to the proxy
Marin Fowler „StrangerFigApplication”
https://martinfowler.com/bliki/StranglerFigApplication.html Vadym Kazulkin, @VKazulkin
13. FinDev Concept
Activity-based costing on a
digital operation-by-operation
basis
• Figure out features which deliver
business value comparing to their
cost
Aleksander Simovic & Mark Schwarz „FinDev and Serverless Microeconomics: Part 1”
https://aws.amazon.com/de/blogs/enterprise-strategy/findev-and-serverless-microeconomics-part-1/ Vadym Kazulkin, @VKazulkin
14. 1. Application lifecycle
2. Workloads
3. Platform limitations
4. Cost at scale
5. Operational constraints imposed by other dependencies
6. Organizational knowledge
Vadym Kazulkin, @VKazulkin
17. Understand your workloads
• Do we need to access specialized
hardware ?
• GPU access required?
• Another RAM/CPU ratio?
• Do we need constantly high
performance?
• Response time below 100 ms
(e.g. bidding or gaming platforms)
“A Berkeley View on Serverless Computing” https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.html Vadym Kazulkin, @VKazulkin
18. Understand your workloads
• Do we need high throughput ?
• Lambda‘s network bandwidth is limited
(an order of magnitude lower than a
single modern SSD) shared between all
functions packed on the same VM
• Do functions need to communicate with
each other?
• functions are not directly network
accessible, they must communicate via
an intermediary service
“A Berkeley View on Serverless Computing” https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.html
Vadym Kazulkin, @VKazulkin
19. 1. Application lifecycle
2. Workloads
3. Platform limitations
4. Cost at scale
5. Operational constraints imposed by other dependencies
6. Organizational knowledge
Vadym Kazulkin, @VKazulkin
21. Don‘t be scared
of cold starts
To avoid cold starts them
completely, you have to :
• Overpay
• Overprovision
Cold starts don’t really
matter if the you make
the call asynchronously
Vadym Kazulkin, @VKazulkin
22. Understand platform
limitations
• Cold start
• Lambda with and without VPC for
each runtime
• Invocation duration/timeouts
• Lambda 15min
• API Gateway integration 29sec
• Max Memory
• Lambda 3GB
Vadym Kazulkin, @VKazulkin
23. Understand platform
limitations
• Max concurrent invocations
• 1000-3000 parallel executions for
all Lambdas in each AWS account
• Scaling thresholds
• Dynamo DB provisioned and on-
demand capacities
Vadym Kazulkin, @VKazulkin
24. 1. Application lifecycle
2. Workloads
3. Platform limitations
4. Cost at scale
5. Operational constraints imposed by other dependencies
6. Organizational knowledge
Vadym Kazulkin, @VKazulkin
25. The reality is…
Lambda is often just a
small percentage
of your total cost
Vadym Kazulkin, @VKazulkin
28. Provisioned vs
On-Demand
• Use On-Demand for
spiky workloads
• Use Provisioned for
constantly high
workload
Vadym Kazulkin, @VKazulkin
29. Understand your cost at
scale
• Lambda
• API Gateway
• Dynamo DB capacity choices
• Remote API calls
• Logging costs
• Monitoring costs
Vadym Kazulkin, @VKazulkin
30. 1. Application lifecycle
2. Workloads
3. Platform limitations
4. Cost at scale
5. Operational constraints imposed by other dependencies
6. Organizational knowledge
Vadym Kazulkin, @VKazulkin
31. Understand the operational constraints
imposed by other dependencies
• Language runtime choice
• Can be forced by some dependencies to
other libraries
Yan Cui „Not so FaaS” https://blog.binaris.com/not-so-faas/ Vadym Kazulkin, @VKazulkin
32. 1. Application lifecycle
2. Workloads
3. Platform limitations
4. Cost at scale
5. Operational constraints imposed by other dependencies
6. Organizational knowledge
Vadym Kazulkin, @VKazulkin
34. Tom McLaughlin Talk:
What do we do when
the server goes away?
• Monitoring & Alerting
• Chaos Engineering & Game Days
• Infrastructure as Code & Testing
• Help understand constraints
of AWS services & choose the right
one
Tom McLaughlin „What do we do when the server goes away”
https://speakerdeck.com/tmclaugh/serverless-devops-what-do-we-do-when-the-server-goes-away
Vadym Kazulkin, @VKazulkin
35. Event Sources
• SQS and SNS are
charged for requests
• Kinesis charges for
shard hours & PUT
requests
Image: https://blog.binaris.com/lambda-pricing-pitfalls/ Vadym Kazulkin, @VKazulkin
36. Event Sources
• Cost for Kinesis grows
with slower rate
• Attractive at to
operate at scale
Image: https://blog.binaris.com/lambda-pricing-pitfalls/
Vadym Kazulkin, @VKazulkin
40. Berkeley View on
Serverless Computing
“A Berkeley View on Serverless Computing” https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.html Vadym Kazulkin, @VKazulkin
41. Berkeley View on
Serverless Computing
• Provide low latency and high IOPS
Serverless Ephemeral Storage
• Provide Serverless Durable Storage
• Improve Networking and Performance
• Improve Security
• Accommodate cost-performance
“A Berkeley View on Serverless Computing” https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.html Vadym Kazulkin, @VKazulkin
42. Predictions
• More available runtimes (e.g. GraalVM)
• Platform limitations will be weakened or
disappear
Image: Marco Verch via Flickr (Creative Commons 2.0)
https://www.flickr.com/photos/30478819@N08/26528539689/ Vadym Kazulkin, @VKazulkin
43. Picture from SRV409 session in AWS re:Invent 2018 https://www.youtube.com/watch?v=QdzV04T_kec Vadym Kazulkin, @VKazulkin
44. Picture from SRV409 session in AWS re:Invent 2018 https://www.youtube.com/watch?v=QdzV04T_kec Vadym Kazulkin, @VKazulkin
45. Predictions
• More available runtimes (e.g. GraalVM)
• Platform limitations will be weakened or
disappear
• New use cases of serverless (Big Data,
ML/AI)
• Access to specialized hardware
• Companies gaining advantages from the
FinDev approach
Image: Marco Verch via Flickr (Creative Commons 2.0)
https://www.flickr.com/photos/30478819@N08/26528539689/ Vadym Kazulkin, @VKazulkin