@gunnargrosch
Gunnar Grosch
September 26, 2020
Continuous verification for
serverless applications
AWS Community Day MENA
Slide 2
Slide 2 text
@gunnargrosch
COMMUNITY DAY
MENA
COMMUNITY DAY
MENA
Continuous verification for
serverless applications
Slide 3
Slide 3 text
@gunnargrosch
COMMUNITY DAY
MENA
“Testing to ensure that you can
meet your availability goals is the
only way you can have confidence
that you will meet those goals”
Reliability Pillar
AWS Well-Architected Framework
Slide 4
Slide 4 text
@gunnargrosch
COMMUNITY DAY
MENA
About me
Background in development,
operations, and management
Organizer of user groups and
conferences
AWS Serverless Hero
Father of three
Slide 5
Slide 5 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Slide 6
Slide 6 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Verification is proactive
experimentation for verifying
system behaviors
Slide 7
Slide 7 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Verification tells you why
it’s important to explore
a set of conditions
Slide 8
Slide 8 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Objectives Measures Conditions Verify
Slide 9
Slide 9 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Chaos engineering is not
about breaking things
Slide 10
Slide 10 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Objective: My purchase API should
respond in less than 400 ms
Measure: 400 ms threshold
Condition: 100-200 ms latency
injection to function
Verify: Pass or fail
Slide 11
Slide 11 text
@gunnargrosch
COMMUNITY DAY
MENA
Verification of applications
Objective: I want 10 items added in
cart per second
Measure: 10 items added threshold
Condition: Block 10 % of calls to
DynamoDB through denylist
Verify: Pass or fail
Slide 12
Slide 12 text
@gunnargrosch
COMMUNITY DAY
MENA
Demo
Slide 13
Slide 13 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Slide 14
Slide 14 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
“Chaos engineering should
be done regularly”
Reliability Pillar
AWS Well-Architected Framework
Slide 15
Slide 15 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
“Chaos engineering should
be done regularly, and be
part of your CI/CD cycle”
Reliability Pillar
AWS Well-Architected Framework
Slide 16
Slide 16 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Continuous Verification (CV)
Slide 17
Slide 17 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Slide 18
Slide 18 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Objective: My purchase API should
respond in less than 400 ms
Measure: 400 ms threshold
Condition: 100-200 ms latency
injection to function
Verify: Pass
Default deploy
Slide 19
Slide 19 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Objective: My purchase API should
respond in less than 400 ms
Measure: 400 ms threshold
Condition: 100-200 ms latency
injection to function
Verify: Fail
Canary deploy
Slide 20
Slide 20 text
@gunnargrosch
COMMUNITY DAY
MENA
Making verification continuous
Objective: My purchase API should
respond in less than 400 ms
Measure: 400 ms threshold
Condition: 100-200 ms latency
injection to function
Verify: Pass
Feature flag
Slide 21
Slide 21 text
@gunnargrosch
COMMUNITY DAY
MENA
Demo
Slide 22
Slide 22 text
@gunnargrosch
COMMUNITY DAY
MENA
Summary
Verification tells you why it’s important to explore a set of conditions
Testing is the only way you can have confidence that you will your goals
Chaos engineering is not about breaking things
Chaos engineering should be done regularly
It’s a lot of fun!
Slide 23
Slide 23 text
@gunnargrosch
COMMUNITY DAY
MENA
Do you want more?
Follow @serverlesschaos on Twitter
Serverless Chaos Demo app: https://demo.serverlesschaos.com
Failure-lambda: https://github.com/gunnargrosch/failure-lambda
Failure-cloudfunctions: https://github.com/gunnargrosch/failure-cloudfunctions
Failure-azurefunctions: https://github.com/gunnargrosch/failure-azurefunctions
Chaos-lambda: https://github.com/adhorn/aws-lambda-chaos-injection/
YouTube videos and repositories: https://grosch.se
Slide 24
Slide 24 text
@gunnargrosch
COMMUNITY DAY
MENA
Thank you!
Gunnar Grosch
@gunnargrosch