10. Principles Of Chaos Engineering
- Build a Hypothesis around Steady State Behavior
- Vary Real-world Events
- Run Experiments in Production
- Automate Experiments to Run Continuously
- Minimize Blast Radius
http://principlesofchaos.org/
11. CHAOS IN PRACTICE
1. Start by defining ‘steady state’ as some measurable output of a system that indicates normal behavior.
2. Hypothesize that this steady state will continue in both the control group and the experimental group.
3. Introduce variables that reflect real world events like servers that crash, hard drives that malfunction, network
connections that are severed, etc.
4. Try to disprove the hypothesis by looking for a difference in steady state between the control group and the
experimental group.
Chaos Test은 분산 시스템의 불확실성을 구체적으로 해결하기
위해 시스템의 약점을 밝히기 위한 실험을 손쉽게 해주는 방법
론입니다. 이러한 실험은 네 단계로 진행됩니다.
http://principlesofchaos.org/
12. CHAOS IN PRACTICE
1. Start by defining ‘steady state’ as some measurable output
of a system that indicates normal behavior.
1. 시스템의 정상적인 상태를 정의하기
- 시스템의 측정가능한 값을 이용해 정상적인 동작을 정의한다.
ex1) CPU load, memory utilization, network I/O 등
http://principlesofchaos.org/
13. CHAOS IN PRACTICE
2. Hypothesize that this steady state will continue in both the
control group and the experimental group.
2. 어떠한 일이 있어도 시험 그룹과 통제 그룹 시스템의
정상적인 상태가 지속될 것이라고 가설을 세운다.
ex) 서버40대로 운영중인 서비스에서 10대가 동시에 고장이 났
다.
그래도 고객은 (주요)서비스가 이용이 가능하다. http://principlesofchaos.org/
14. CHAOS IN PRACTICE
3. Introduce variables that reflect real world events like
servers that crash, hard drives that malfunction, network
connections that are severed, etc.
3. 현실에서 일어나는 변수(문제)들을 반영해서 실험 그룹에 도입
한다.
- 디비 서버 고장
- DDoS 공격
http://principlesofchaos.org/
15. CHAOS IN PRACTICE
4. Try to disprove the hypothesis by looking for a difference
in steady state between the control group and the
experimental group.
4. 실험그룹과 통제그룹을 비교해서 가설을 검증한다.
- 시스템의 정상적인 상태를 방해하는 것이 어려워질수록
시스템의 신뢰성은 높아진다.
- 취약점이 발견되었을 경우에는 개선한다.
http://principlesofchaos.org/
16. CHAOS IN PRACTICE
1.시스템의 정상적인 상태를 정의하기
2.어떠한 일이 있어도 시험 그룹과 통제 그룹 시스템의
정상적인 상태가 지속될 것이라고 가설을 세운다.
3.현실에서 일어나는 변수(문제)들을 반영해서 실험 그룹에 도입
한다.
4.실험그룹과 통제그룹을 비교해서 가설을 검증한다.
http://principlesofchaos.org/
23. See Also
Awesome Chaos Engineering
https://github.com/dastergon/awesome-chaos-engineering
Editor's Notes
현재 시스템에서는 서비스 운영의 안정성에 대해 페일오버, 셀프힐링 등의 방법을 통하고 있으나 데이터 센터가 지진으로 인해 무너져버렸다 라던가 등의 현실세계의 문제점까지는 반영이 되어 있지 않다
복잡하게 결합되어 있는 시스템의 경우 일부 서비스의 트러블이 전체서비스의 문제가 될수도있다.
현실세계에 일어나는 트러블에 대한 대응도 생각하고 대응하는게 카오스 엔지니어링
현재 시스템에서는 서비스 운영의 안정성에 대해 페일오버, 셀프힐링 등의 방법을 통하고 있으나 데이터 센터가 지진으로 인해 무너져버렸다 라던가 등의 현실세계의 문제점까지는 반영이 되어 있지 않다
복잡하게 결합되어 있는 시스템의 경우 일부 서비스의 트러블이 전체서비스의 문제가 될수도있다.
현재 시스템에서는 서비스 운영의 안정성에 대해 페일오버, 셀프힐링 등의 방법을 통하고 있으나 데이터 센터가 지진으로 인해 무너져버렸다 라던가 등의 현실세계의 문제점까지는 반영이 되어 있지 않다
복잡하게 결합되어 있는 시스템의 경우 일부 서비스의 트러블이 전체서비스의 문제가 될수도있다.
현실세계에 일어나는 트러블에 대한 대응도 생각하고 대응하는게 카오스 엔지니어링
현재 시스템에서는 서비스 운영의 안정성에 대해 페일오버, 셀프힐링 등의 방법을 통하고 있으나 데이터 센터가 지진으로 인해 무너져버렸다 라던가 등의 현실세계의 문제점까지는 반영이 되어 있지 않다
복잡하게 결합되어 있는 시스템의 경우 일부 서비스의 트러블이 전체서비스의 문제가 될수도있다.