Chaos engineering is the discipline of experimenting on a distributed system to build confidence in how it withstands turbulent conditions in production. It involves intentionally introducing failures or unpredictable conditions to test a system's resilience. Some key aspects of chaos engineering include starting with questions about possible failure cases, having tools and means to test ideas and measure outcomes, ensuring observability of experiments, learning from results, and conducting dedicated "game days" with teams. The overall goal is to amplify feedback and continually learn and improve a system's reliability through principled experimentation.