Site Reliability Engineering, 2nd Edition
by Betsy Beyer, Chris Jones, Christof Leng, David Huska, Jennifer Petoff, Niall Richard Murphy
Chapter 17. Designing for Resilience
Resilience enhances reliability. Reliability is a system’s ability to consistently operate within designed norms, meeting both functional and nonfunctional requirements. Resilience, on the other hand, is a system’s ability to detect and diagnose active failure patterns automatically or with the help of trained people or AI agents. A resilient system uses predefined response plans to reduce the impact of failures, even for novel failures that were not anticipated during system design.
Resilience provides business continuity for the users who rely on your systems. A reliable system may consistently meet its SLO targets under normal conditions, but a resilient system maintains high levels of reliability in more adverse conditions. When a predefined response isn’t prepared, that alone might burn through your system’s error budgets. A lasting outage without a rebounding clean recovery can have an existential impact on business survivability. If you lose all of your users’ data and cannot restore it, this may put your entire business at risk.
Your challenge is to anticipate unusual circumstances that stress systems beyond their original design expectations, testing their robustness. A system’s availability, security, integrity, or performance characteristics might fail—independently or simultaneously, partially or fully, for benign or malicious reasons. The open-ended ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access