Plain to fail.
Embrace the Chaos.
Nice to meet you
Software Engineer @Colpatria Scotiabank
Making things happen!
Loves reading, programming and teaching.
@yurynino
@yurynino
@yurynino
yury.nino.roa
Agenda ● Why do we have fear of failure?
● What is chaos engineering?
● Principles of Chaos
● Phases of Chaos Engineering
● Chaos in Practice
● Who is using it?
● Review
Why do we have
fear to failure?
The reality is inherently
uncertain, and this
uncertainty exposes our
limitations.
This means that failure
should be a perpetual
consideration even in
the best planned and
controlled.
Benefits of failure
1. Is an opportunity to learn.
2. Encourages the creativity.
3. Keeps hungry and humble.
4. Helps to overcome the fear.
5. Becomes Resilient!
Try 1
Try 2
Finally
We need highly available and
durable systems.
We need
Resilient Systems
What is Chaos
Engineering?
Taken from https://medium.com/netflix-techblog
Netflix Architecture
Chaos Engineering: Definition!
It 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.
Taken from https://principlesofchaos.org/
Chaos Engineering: Definition!
It is deliberately inducing
stress or fault into software
and/or hardware as a way of
learning/verifying things
about systems.
Taken from https://www.gremlin.com/community
History of Chaos Engineering
2008
Chaos Engineering
began at Netflix
2018
2014
2010
History of Chaos Engineering
2008
Chaos Engineering
began at Netflix
2010
Chaos Monkey was
launched
2018
2014
History of Chaos Engineering
2008
Chaos Engineering
began at Netflix
2010
Chaos Monkey was
launched
2018
2014
Chaos Engineer Role
was created.
I learned more about chaos engineering from
Kolton Andrus than anyone else, he called it
failure injection testing
Kolton Andrus
Chaos Engineer
A vaccine research computer scientist.
History of Chaos Engineering
2008
Chaos Engineering
began at Netflix
2010
Chaos Monkey was
launched
2018
Book Chaos Engineering
was published.
2014
Role of Chaos
Engineer was created.
How to start with
Chaos Engineering?
https://www.oreilly.com/library/view/chaos-engineering/9781
491988459/
How to start ….
https://chaosengineering.slack.com
https://github.com/dastergon/awesome-chaos
-engineering
https://www.infoq.com/chaos-engineering
https://groups.google.com/forum/#!forum/ch
aos-community
https://www.linkedin.com/groups/7057761/
How to start ….
https://www.gremlin.com/chaos-monkey/
Because ….
Writing many unit and integration
tests are not enough.
● How does the application behave with
network latency?
● What if one of our services breaks down?
Remember the world is chaotic!
● Unpredictable events are bound to happen.
● Distributed systems contains moving parts.
● Many things can go wrong.
○ Hard disks can fail.
○ The network can go down.
○ Surge in customer traffic can overload.
February 28th, 2017 will be remembered
● Simple Storage Service (S3) went
down in US-EAST
● Outage lasted about 4 hrs.
● 100,000’s of websites across the US
impacted.
Why is it different of Testing?
Testing vs Chaos Engineering
Tests are assertions, whose outputs typically
are binary ..
while
Chaos Engineering is a practice for generating
new information.
I want to emphasize that both sizes of
the equation [unit, regression and chaos
side] are required to get you the level of
availability you want.
Chaos Engineer is about ...
● Simulating the failure of a datacenter.
● Injecting latency between services.
● Randomly causing exceptions.
● Changing time travel.
● Emulating I/O errors.
http://principlesofchaos.org/
Phases of Chaos Engineering
Taken from https://blog.codecentric.de/en/2018/07/chaos-engineering/
Example - Chaos Monkey for Spring Boot
codecentricTaken from https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
Example - Configuration
Taken from https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
Example - Configuration
Example - Configuration
Taken from https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
Example - Configuration
Designing Experiments
1. Pick a Hypothesis
2. Choose the Scope
3. Identify the Metrics to Monitor
4. Notify the Organization
5. Run the Experiment
6. Analyze the Results
7. utomate
Who is using
Chaos Engineering?
Conclusion
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip.
It means: To ACCEPT
the uncertainty of life and
move forward anyway!
Take action despite not
knowing how things will
turn out.
Chaos Engineering

Chaos Engineering

  • 1.
  • 2.
    Nice to meetyou Software Engineer @Colpatria Scotiabank Making things happen! Loves reading, programming and teaching. @yurynino @yurynino @yurynino yury.nino.roa
  • 3.
    Agenda ● Whydo we have fear of failure? ● What is chaos engineering? ● Principles of Chaos ● Phases of Chaos Engineering ● Chaos in Practice ● Who is using it? ● Review
  • 4.
    Why do wehave fear to failure?
  • 5.
    The reality isinherently uncertain, and this uncertainty exposes our limitations.
  • 6.
    This means thatfailure should be a perpetual consideration even in the best planned and controlled.
  • 7.
    Benefits of failure 1.Is an opportunity to learn. 2. Encourages the creativity. 3. Keeps hungry and humble. 4. Helps to overcome the fear. 5. Becomes Resilient! Try 1 Try 2 Finally
  • 8.
    We need highlyavailable and durable systems. We need Resilient Systems
  • 9.
  • 10.
  • 11.
    Chaos Engineering: Definition! Itis the discipline of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production. Taken from https://principlesofchaos.org/
  • 12.
    Chaos Engineering: Definition! Itis deliberately inducing stress or fault into software and/or hardware as a way of learning/verifying things about systems. Taken from https://www.gremlin.com/community
  • 13.
    History of ChaosEngineering 2008 Chaos Engineering began at Netflix 2018 2014 2010
  • 14.
    History of ChaosEngineering 2008 Chaos Engineering began at Netflix 2010 Chaos Monkey was launched 2018 2014
  • 15.
    History of ChaosEngineering 2008 Chaos Engineering began at Netflix 2010 Chaos Monkey was launched 2018 2014 Chaos Engineer Role was created. I learned more about chaos engineering from Kolton Andrus than anyone else, he called it failure injection testing Kolton Andrus
  • 16.
    Chaos Engineer A vaccineresearch computer scientist.
  • 17.
    History of ChaosEngineering 2008 Chaos Engineering began at Netflix 2010 Chaos Monkey was launched 2018 Book Chaos Engineering was published. 2014 Role of Chaos Engineer was created.
  • 18.
    How to startwith Chaos Engineering? https://www.oreilly.com/library/view/chaos-engineering/9781 491988459/
  • 19.
    How to start…. https://chaosengineering.slack.com https://github.com/dastergon/awesome-chaos -engineering https://www.infoq.com/chaos-engineering https://groups.google.com/forum/#!forum/ch aos-community https://www.linkedin.com/groups/7057761/
  • 20.
    How to start…. https://www.gremlin.com/chaos-monkey/
  • 22.
    Because …. Writing manyunit and integration tests are not enough. ● How does the application behave with network latency? ● What if one of our services breaks down?
  • 23.
    Remember the worldis chaotic! ● Unpredictable events are bound to happen. ● Distributed systems contains moving parts. ● Many things can go wrong. ○ Hard disks can fail. ○ The network can go down. ○ Surge in customer traffic can overload.
  • 24.
    February 28th, 2017will be remembered ● Simple Storage Service (S3) went down in US-EAST ● Outage lasted about 4 hrs. ● 100,000’s of websites across the US impacted.
  • 25.
    Why is itdifferent of Testing?
  • 26.
    Testing vs ChaosEngineering Tests are assertions, whose outputs typically are binary .. while Chaos Engineering is a practice for generating new information.
  • 27.
    I want toemphasize that both sizes of the equation [unit, regression and chaos side] are required to get you the level of availability you want.
  • 28.
    Chaos Engineer isabout ... ● Simulating the failure of a datacenter. ● Injecting latency between services. ● Randomly causing exceptions. ● Changing time travel. ● Emulating I/O errors. http://principlesofchaos.org/
  • 29.
    Phases of ChaosEngineering Taken from https://blog.codecentric.de/en/2018/07/chaos-engineering/
  • 31.
    Example - ChaosMonkey for Spring Boot codecentricTaken from https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
  • 32.
    Example - Configuration Takenfrom https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
  • 33.
  • 34.
    Example - Configuration Takenfrom https://codecentric.github.io/chaos-monkey-spring-boot/2.0.0/
  • 35.
  • 37.
    Designing Experiments 1. Picka Hypothesis 2. Choose the Scope 3. Identify the Metrics to Monitor 4. Notify the Organization 5. Run the Experiment 6. Analyze the Results 7. utomate
  • 38.
    Who is using ChaosEngineering?
  • 39.
    Conclusion Lorem ipsum dolorsit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
  • 40.
    It means: ToACCEPT the uncertainty of life and move forward anyway! Take action despite not knowing how things will turn out.