Are you ready to improve the resilience of your Cloud systems? Join Russ Miles and dive into Chaos Engineering to build confidence in your systems behaviour and identify weaknesses before they happen!
Chaos Engineering is a relatively new term for a practice that has been successfully applied by some of the largest and most complex production systems for some time. If you’re working with large-scale, complex systems (see: Microservices and distributed systems in general) then you will likely benefit from building confidence in your systems using the Chaos Engineering approach.
Chaos Engineering is an empirical discipline for defining experiments where the weaknesses of a complex, or even chaotic, system can be explored, discovered and eventually rectified. Most frequently practiced in Production, Chaos Engineering helps you learn about your system so that it can be continuously improved in the face of current and future conditions.
Learn how to:
- Establish an architecture and design that is ready for Chaos Engineering.
- Design, Build and Execute careful and controlled Chaos Engineering experiments to learn about weaknesses in your complex production systems.
- Apply different levels of experiments to learn about different weaknesses.
- Explore real-world examples to see the concepts of Chaos Engineering in action
Day 1 - Designing and Applying Your First Chaos Experiments
- What is Chaos Engineering and Why do I need it?
- Building Confidence in Complicated and Complex Systems
- Understanding and working with the Emergent and Novel with Cynefin, Chaos and Microservices
- Working with Experiments and Chaos in Practice
- Why do Chaos in Production?
- Establishing Prerequisites to Chaos Engineering
- Architecting and Designing for Chaos
- Building a Hypothesis for a Chaos Engineering experiment
- Chaos and Testing
- Failure Injection Testing in Context
- Minimising the Impact of Experiments - Understanding your Experiment’s Blast Radius, Scope & Opt-Out
- Idempotency and Responsibility with Chaos Engineering Experiments
- Chaos and Logging
- Designing and Implementing Steady State monitoring for your System
- Defining a Chaos Engineering Experiment
- Defining Steady State Probes
- Defining Experimental Methods
- Defining Continuous State Probes
- Defining Close State Probes
- Working with Other People’s Systems
- Running an Experiment Manually.
- Establish a real system that can be subjected to Chaos Experiments
- Automating your first Experiment using the Chaos Toolkit
Day 2 - Platform-Level Chaos Experiments
- How to focus on the Platform to build Chaos Engineering Experiments
- Brainstorming Platform-level Chaos Engineering Experiments
- Establishing Platform Steady State Probes
- Building Platform Experimental Methods and Continuous State Probes
- Establishing Platform Close State Probes
- Running Platform Experiments Manually and through Automation
Day 3 - Application-Level & Multi-level Chaos Experiments
- How to focus on the Application behaviour to build Chaos Engineering Experiments
- Brainstorming Application-level Chaos Engineering Experiments
- Establishing Application Steady State Probes
- Building Application-specific Experimental Methods and Continuous State Probes
- Establishing Application Close State Probes
- Running Application Experiments Manually and through Automation
- Building Custom Experimental Steps
- Defining Cross-Level Hypotheses and Experiments
- Building and Executing Cross-Level Chaos Engineering Experiments
- How to establish a Chaos Engineering Practice
- Progressing towards greater Chaos Maturity
If you're a developer or architect who is planning to build any complex system, especially one based on microservices, and you want a scientific and mature approach to building confidence in those systems in the face of chaotic conditions then this course is ideal for you.