Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chaos Engineering @ JUG Bonn

Benjamin Wilms
September 04, 2018

Chaos Engineering @ JUG Bonn

Benjamin Wilms

September 04, 2018
Tweet

More Decks by Benjamin Wilms

Other Decks in Technology

Transcript

  1. Chaos Engineering Chaos Engineering Wie lerne ich möglichst schnell all

    meine Kollegen kennen? Wie lerne ich möglichst schnell all meine Kollegen kennen?
  2. About me About me Benjamin Wilms Benjamin Wilms codecentric codecentric

    @MrBWilms @MrBWilms github.com/MrBW github.com/MrBW
  3. On the way On the way to the most beautiful

    to the most beautiful place in the world place in the world
  4. this unpleasant feeling remains... this unpleasant feeling remains... how our

    baby behaves in production? how our baby behaves in production?
  5. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  6. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  7. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  8. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  9. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  10. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  11. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  12. The network is reliable. The network is reliable. Latency is

    zero. Latency is zero. Bandwidth is infinite. Bandwidth is infinite. The network is secure. The network is secure. Topology doesn't change. Topology doesn't change. There is one administrator. There is one administrator. Transport cost is zero. Transport cost is zero. The network is homogeneous. The network is homogeneous.
  13. Jepsen Jepsen Jepsen is an effort to improve the safety

    of distributed databases, queues, Jepsen is an effort to improve the safety of distributed databases, queues, consensus systems, etc. consensus systems, etc.
  14. Chaos Engineering is NOT... Chaos Engineering is NOT... ...breaking things

    just to break them! ...breaking things just to break them!
  15. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to run

    a Chaos Monkey! ...to run a Chaos Monkey!
  16. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to let

    the whole Simian Army out of the cage! ...to let the whole Simian Army out of the cage!
  17. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to use

    it in PRODUCTION! ...to use it in PRODUCTION!
  18. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to use

    it in PRODUCTION, first! ...to use it in PRODUCTION, first!
  19. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to replace

    other kinds of tests! ...to replace other kinds of tests!
  20. Chaos Engineering is NOT... Chaos Engineering is NOT... ...to do

    it alone and without any arrangement! ...to do it alone and without any arrangement!
  21. They blame Bob for the bad performance of Service A

    They blame Bob for the bad performance of Service A
  22. be social and communicative be social and communicative share your

    experiences and thoughts share your experiences and thoughts stop blaming each other stop blaming each other work together work together
  23. Chaos Engineering is the discipline of experimenting on a distributed

    system Chaos Engineering is the discipline of experimenting on a distributed system in order to build in order to build confidence confidence in the system’s capability in the system’s capability to withstand to withstand turbulent conditions in turbulent conditions in production production. .
  24. If you know your chaos experiment will fail... If you

    know your chaos experiment will fail... ...don't do it!!! ...don't do it!!!
  25. Basics Basics CPU burning - inspired by Tammy Butow CPU

    burning - inspired by Tammy Butow # burn.zsh while true; do openssl speed; done EOF # cpu_burning.zsh for i in {1..32} do nohup /bin/zsh burn.zsh & done
  26. Basics Basics Disk delay - inspired by Jochen Mader Disk

    delay - inspired by Jochen Mader device='/dev/ram0' #create a RAM disk modprobe brd rd_nr=1 rd_size=131027 readdelay=100 writedelay=100 size=$(blockdev --getsize $device) # Size in 512-bytes sectors mkfs.ext4 $device echo "0 $size delay $device 0 $readdelay $device 0 $writedelay" | dmsetup create delay
  27. Chaos Toolkit Chaos Toolkit felt in love with felt in

    love with Chaos Monkey for Spring Boot Chaos Monkey for Spring Boot
  28. Chaos Monkey for Spring Boot Chaos Monkey for Spring Boot

    how does it work how does it work <dependency> <groupid>de.codecentric</groupid> <artifactid>chaos-monkey-spring-boot</artifactid> <version>X.X.X</version> </dependency>
  29. Chaos Monkey for Spring Boot Chaos Monkey for Spring Boot

    Activate Spring Profile Activate Spring Profile chaos-monkey chaos-monkey
  30. Chaos Monkey for Spring Boot Chaos Monkey for Spring Boot

    Spring Boot Actuator Endpoint Spring Boot Actuator Endpoint Controll via REST Endpoint at runtime Controll via REST Endpoint at runtime
  31. Thanks for having me Thanks for having me Benjamin Wilms

    Benjamin Wilms @MrBWilms @MrBWilms [email protected] [email protected] Shopping demo (docker-compose file) Shopping demo (docker-compose file) Shopping Demo Docker Hub Shopping Demo Docker Hub