Slide 1

Slide 1 text

@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