Fundamentals & Concepts
What is Chaos Engineering?
What are the primary goals or benefits of practicing Chaos Engineering?
What is Chaos Engineering, and why is it important for modern distributed systems?
What are the origins of Chaos Engineering, and how did tools like Chaos Monkey contribute?
What is Chaos Engineering, and how does regularly testing a system for failures help identify and fix weak points?
What is Chaos Engineering and how do you implement it?
Why is chaos engineering especially important for applications where high uptime is required?
What kinds of issues can be discovered after running regular chaos experiments?
Can you explain the concept of Netflix's Simian Army and its various "monkeys" like Chaos Monkey, Latency Monkey, and Chaos Kong, and what their purpose was?
What was Chaos Kong designed to test, and why is region-level failure simulation important?
What is antifragility, and how does the concept relate to (or differ from) the goals of chaos engineering?
What is Failure Injection Testing (FIT), and how did it evolve chaos engineering practices at Netflix?
Ethics & Responsibility
How do you ensure transparency when communicating about chaos engineering experiments?
What is your understanding of the ethical considerations involved in chaos engineering?
How would you balance the need for system resilience with the potential risks to customers?
What steps would you take to mitigate potential ethical issues during chaos engineering practices?
How would you address a situation where a chaos engineering experiment causes unintended harm?
Principles & Comparisons
What is the relationship between "fault injection" and "Chaos Engineering"?
Can you list and explain the core principles of Chaos Engineering?
Can you describe the scientific method as applied to a Chaos Engineering experiment and the key steps in the lifecycle of a chaos experiment?
How does Chaos Engineering differ from traditional testing methodologies like unit, integration, or performance testing?
Explain the key principles of Chaos Engineering and how they differ from traditional testing.
Why is it important to simulate real-world events in chaos experiments?
What are some of the Chaos Engineering approaches?
Why can't traditional testing fully account for real-world variables and uncover unknown-unknowns, making Chaos Engineering necessary?
How does chaos engineering differ from disaster recovery planning and testing?
What should be the primary goal or question when designing a chaos engineering program?
What is 'continuous verification' and how does it relate to continuous chaos experimentation?
Steady State & Hypothesis
What is a steady-state hypothesis in the context of Chaos Engineering, and why is it crucial?
How do you formulate a hypothesis for a chaos experiment?
What is a "steady state" in Chaos Engineering, why is defining it the first crucial step, and how would you define one?
What is the role of a hypothesis in a Chaos Engineering experiment?
Why do teams sometimes struggle to define a steady state, and what are the implications?
What does it mean to "disprove your hypothesis" in a chaos experiment, and what is the outcome if you succeed or fail to disprove it?
Why is assuming that the steady state can sustain not a good approach in chaos engineering?
Why is the steady-state hypothesis the most important step in Chaos Engineering?
Why is defining a 'steady state' crucial in Chaos Engineering?
What is the difference between a business-level steady-state metric and a system-level steady-state metric, and why might a business metric be preferable?
Fault Injection Types
Can you describe different categories of faults or failure injection types that can be introduced in a chaos experiment, with examples for each?
What is the difference between hardware-level, network-level, infrastructure-level, and application-level fault injection?
Can you explain what a failure injection framework is?
How do you prioritize which chaos experiments or failure scenarios to run first?
What is clock skew or 'time travel' fault injection, and why would you inject it into a system?
How would you use chaos experiments to inject resource exhaustion faults like CPU, memory, or disk saturation, and what would you expect to learn?
What is the difference between injecting a dependency failure and injecting a network latency fault, and when would you choose each?
How would you design a chaos experiment to test network latency resilience?
Explain how you would implement fault injection in a microservices architecture.
What is a network partition or split-brain scenario, and how would you design a chaos experiment to test a system's tolerance for it?
What are the trade-offs between randomized fault injection (like Chaos Monkey's random termination) and targeted, hypothesis-specific experiments?
How does chaos engineering help uncover cascading failures across a distributed system?
Game Days
What is a GameDay in Chaos Engineering and why is it important?
How do Game Days help identify weak points within a team or improve preparedness?
What are the prerequisites for your GameDay?
How can you start with Game Days before injecting failures into production?
What are the typical steps involved in running a Chaos Engineering GameDay?
How would you plan and facilitate a Chaos Engineering Game Day, and who typically participates?
Blast Radius & Safety
Why is it important to start small and gradually scale chaos experiments?
What is blast radius in Chaos Engineering, and what strategies would you use to minimize it during an experiment?
What strategies and safety measures would you employ to minimize the blast radius of a chaos experiment?
How do you define and implement "abort conditions" or a "big red button" for a chaos experiment?
How do you ensure a chaos experiment cleanly reverts the system to its original state after it completes?
What role can feature flags play in safely running and controlling chaos experiments?
What are some anti-patterns to avoid in Chaos Engineering?
How would you handle a chaos experiment that causes an unexpected critical system failure?
What are the risks of chaos engineering and how can they be mitigated?
In what sense are humans and teams part of the blast radius, and how do socio-technical factors matter in chaos engineering?
How do canary deployments and progressive rollouts relate to the practice of expanding blast radius in chaos experiments?
Production Vs Non Production
Why do chaos engineers start in non-production environments and then extend to production?
Can chaos testing be applied in a non-cloud environment?
Why is it often recommended to run chaos experiments in production, and what are the critical considerations when doing so?
When would it not be appropriate to run chaos experiments on a system?
What are the trade-offs and considerations of running chaos experiments in staging/pre-production environments versus production?
Tools & Platforms
What are some of the tools available to support Chaos Engineering at a conceptual level?
Beyond the Simian Army, what types of capabilities do modern chaos engineering tools like Gremlin, LitmusChaos, and AWS FIS generally provide at a conceptual level?
How would you conceptually implement a basic chaos experiment using Chaos Monkey?
What does 'failure-as-a-service' mean, and what does a tool like Gremlin provide at a conceptual level?
What are the trade-offs between using open-source chaos tools (like LitmusChaos or Chaos Mesh) versus commercial platforms?
Conceptually, how would you implement chaos engineering in a Kubernetes environment?
How would you approach chaos engineering for serverless or fully managed cloud services where you don't control the infrastructure?
Organizational Adoption & Culture
What are the essential prerequisites a system and organization should have in place before starting Chaos Engineering?
Who is the best set of people to start chaos engineering in a team, and whose responsibility is it?
Why is organizational buy-in and a collaborative culture important for Chaos Engineering?
How does chaos engineering fit within the broader discipline of Site Reliability Engineering?
How would you measure the success of a chaos engineering program?
How do you gain organizational buy-in and foster a blameless culture to effectively implement Chaos Engineering?
What is a Chaos Maturity Model, and how can an organization use it to advance its Chaos Engineering practice?
How do the findings from chaos experiments feed into continuous reliability improvements and SRE practices like error budgets?
Resilience Patterns & Recovery
How can chaos experiments validate graceful degradation and fallback behaviour in a service?
How would you design chaos experiments for stateful systems?
How would you test disaster recovery procedures using chaos engineering?
How does Chaos Engineering help validate the effectiveness of resilience patterns like circuit breakers, retries with backoff, and timeouts?
How would you use a chaos experiment to validate that a bulkhead pattern is isolating failures correctly?
Myths Automation & Security
What is the myth of the chaos engineer going around breaking things randomly?
What are common misconceptions about Chaos Engineering?
How should the results and learnings of a chaos experiment be documented and shared across the organization?
What is the importance of automating chaos experiments to run continuously?
What is the role of monitoring and observability in Chaos Engineering?
How can chaos experiments be used to verify that your monitoring and alerting actually detect failures when they occur?
How would you implement chaos engineering in a CI/CD pipeline?
Why don't you always need a sophisticated chaos platform like Chaos Monkey for effective chaos engineering?
Can you briefly explain the concept of Security Chaos Engineering?
Is it possible to simulate attacks on a system using chaos engineering, and can you give examples?