Course Title: dgt_sre08 – Chaos Engineering
Overview:
Chaos Engineering is a fundamental discipline and practice for testing the resilience of systems in production environments. This course was designed by our Talent Guardians team, who developed “KubeInvaders.” Participants learn how to proactively identify weaknesses and improve system reliability through controlled experiments.
True to the academy’s approach, you will first study the principles of chaos engineering in depth; then every experiment is run in natural language. You state the hypothesis, the blast radius and the abort conditions to the machine, let it configure KubeInvaders and inject the faults, and then you check what it actually did against your plan and read the resulting metrics to decide whether the system held up.
Course Objectives:
- Understand the principles and benefits of chaos engineering.
- Learn methodologies for designing chaos experiments and for instructing a machine to execute them safely.
- Explore real-world case studies where chaos engineering has enhanced resilience.
- Gain practical experience with tools like KubeInvaders, designed to simulate chaotic scenarios in Kubernetes environments, by directing the machine that operates them and verifying its actions.
- Develop strategies for incorporating chaos engineering into your organization’s SRE practices.
Key Modules:
- Introduction to Chaos Engineering:
- History and evolution of the discipline.
-
Core principles and objectives.
-
Designing Chaos Experiments:
- Identifying key assumptions.
- Defining success criteria.
-
Planning safe and controlled experiments, and turning the plan into precise natural-language instructions with explicit limits.
-
Tools and Techniques:
- Overview of popular chaos engineering tools.
-
Deep dive into KubeInvaders: features, setup, and usage.
-
Real-World Applications:
- Industry case studies.
-
Lessons learned and best practices.
-
Implementing Chaos Engineering in SRE:
- Integrating chaos experiments into your development lifecycle.
-
Building a culture of resilience within teams.
-
Natural-language Lab: KubeInvaders in Action:
- Describing each experiment to the machine, then reviewing the setup and the fault injections it performs before and while they run.
- Analyzing the results, verifying them against the success criteria, and asking the machine to iterate on the experiments.
Target Audience:
- Site Reliability Engineers (SREs)
- DevOps professionals
- System architects
- Software developers interested in improving system resilience
Prerequisites:
- Basic understanding of SRE principles and practices.
- Familiarity with Kubernetes concepts is beneficial but not mandatory: it is what lets you judge whether the machine is breaking the right things.
The students can push their exercises to the Academy DevOps & SRE Git project. For this module, create a folder with your username as its name in the following subfolder: https://github.com/Garanti-Del-Talento/gdt_academy/tree/main/dgt_sre08__chaos_engineering
