Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a...

72
Automating Chaos Experiments In Production Ali Basiri - Chaos Team @abasiri

Transcript of Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a...

Page 1: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Automating ChaosExperiments In Production

Ali Basiri - Chaos Team@abasiri

Page 2: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Netflix

Page 3: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

CDNControlPlane

Movie Bits Website, Apps,Signup, Login,

Browsing, SearchPlayback control,

Bookmarks, ...

Page 4: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Ali BasiriSoftware Engineer @ Netflix

● Chaos Engineer● Distributed Systems Engineer● Co-author of Principles of Chaos

Page 5: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 6: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 7: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 8: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 9: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Chaos Monkey

Page 10: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

ServiceAvailability

Page 11: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Anatomy of a Failure

Page 12: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 13: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Page 14: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Page 15: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Fallback

Page 16: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Fallback

Page 17: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Fallback

Page 18: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

MovieInfo

APICDN

Selection

Fallback

Page 19: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

FIT

Page 20: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Request LevelFailure Injection

Page 21: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Request LevelFailure Injection

MovieInfo

APICDN

Selection

Page 22: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 23: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 24: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 25: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

Is API resilient to failure of Personalization?

Page 26: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 27: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 28: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 29: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 30: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 31: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 32: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

Randomly select 10% of requests to participate in experiment

Page 33: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

Page 34: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

if (shouldFail == true)

Page 35: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

if (shouldFail == true)

Page 36: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 37: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 38: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Even MoreAvailabilityFIT

Page 39: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Chaos Engineering is the discipline of experimenting on a distributed

system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

ENGINEERINGCH∀OS

Page 40: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Stream Starts Per Second (SPS)

Page 41: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

● Build a Hypothesis around Steady State Behavior

● Vary Real-world Events● Run Experiments in Production● Automate Experiments to Run

Continuously

Principles Of Chaos Engineeringhttp://principlesofchaos.org

Page 42: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Stream Starts Per Second (SPS)

Page 43: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

ChAP

Page 44: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Goal:Chaos All The Things

Page 45: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

Page 46: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Page 47: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Page 48: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 49: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 50: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 51: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 52: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 53: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated
Page 54: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Page 55: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Select 1% of requests for controlSelect 1% of requests for experiment

Page 56: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Page 57: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

if(shouldRoute == true)

Page 58: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp1%

1%

98%

Page 59: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

if(shouldFail == true)

Page 60: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

APIGatewayPersona-lization

API Control

API Exp

Page 61: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Stream Starts Per Second (SPS)

Page 62: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Fallback Metrics

Page 63: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Fallback Metrics

Page 64: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Fallback Metrics

Page 65: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

CPU Utilization

Page 66: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Future Work on ChAP

Page 67: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Automated Canary Analysis

Page 68: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Detect divergence and stop early

Page 69: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Integrate with continuous delivery system

Page 70: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Clone multiple services to run an experiment

BA

B Con

B Exp

DC

C Con

C Exp

Page 71: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

http://principlesofchaos.orghttp://chaos.community

Page 72: Automating Chaos Experiments In ProductionChaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in ... Future Work on ChAP. Automated

Questions?