theory and practice · chaos engineering is the discipline of experimenting on a system in order to...

62
Chaos Engineering Theory and Practice Sean “Thor” Swehla @kitschysynq

Upload: others

Post on 07-Sep-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

ChaosEngineering

Theory and PracticeSean “Thor” Swehla @kitschysynq

Page 2: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

WHAT IS

Page 3: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Principles of Chaos Engineeringhttps://principlesofchaos.org/

Page 4: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Principles of Chaos Engineeringhttps://principlesofchaos.org/

Page 5: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Principles of Chaos Engineeringhttps://principlesofchaos.org/

intentionally breaking

things

Page 6: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Principles of Chaos Engineeringhttps://principlesofchaos.org/

Page 7: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

DISCIPLINE/ˈdisəplən/noun

1. the practice of training people to obey rules or a code of behavior, using punishment to correct disobedience.

2. a branch of knowledge, typically one studied in higher education.

Page 8: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

EXPERIMENT/ikˈsperəmənt/verb

perform a scientific procedure, especially in a laboratory, to determine something.

Page 9: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

TURBULENT/ˈtərbyələnt/adjective

1. characterized by conflict, disorder, or confusion; not controlled or calm

2. moving unsteadily or violently

Page 10: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

PRODUCTION/prəˈdəkSH(ə)n/adjective

(esp. of software) put into operation for their intended uses by end users; relied on for organization or commercial daily operations

Page 11: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

CONFIDENCE/ˈkänfədəns/noun

the feeling or belief that one can rely on someone or something; firm trust

Page 12: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

a briefHISTORY

Page 13: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

GameDay(Amazon)

Page 14: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Monkey(Netflix)

Page 15: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Simian Army(Netflix)

Page 16: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Monkeyopen-sourced

Page 17: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Chaos Engineer Role

Page 18: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Gremlin Founded

Page 19: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

WHY ADOPT

Page 20: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent
Page 21: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

you probably can’tDescribe Your Systemcompletely

Page 22: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

networksserversapplicationsprocessespeople

Page 23: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

outage

Page 24: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

verification

Page 25: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

process

Page 26: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

on-call

Page 27: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

HOW TO

Page 28: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

theBASICS

Page 29: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Steady State

Page 30: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Hypothesis

Page 31: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Variables

Page 32: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Verify

Page 33: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

ADVANCEDS

Page 34: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Steady State

Page 35: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Blast Radius

Page 36: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Real-World

Page 37: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Production

Page 38: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Automate

Page 39: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

GRITTY DEETS

Page 40: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Network

Page 41: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Blackhole

Page 42: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Latency

Page 43: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Packet Loss

Page 44: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

DNS

Page 45: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Resources

Page 46: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

CPU

Page 47: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Disk

Page 48: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Memory

Page 49: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

I/O Throughput

Page 50: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

State of the System

Page 51: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Kill Processes

Page 52: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Shut down nodes

Page 53: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Travel Time

Page 54: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Application

Page 55: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Tools

Page 56: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent
Page 57: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent
Page 58: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent
Page 59: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent
Page 60: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

Other resources

● http://principlesofchaos.org

● Chaos Engineering slack - http://www.gremlin.com/slack

● Google SRE Book - https://landing.google.com/sre/books/

● O'Reilly Chaos Engineering book

Page 61: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent

~~FIN~~

Page 62: Theory and Practice · Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent