> For the complete documentation index, see [llms.txt](https://karansingh.gitbook.io/ccpnotes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://karansingh.gitbook.io/ccpnotes/architecting-on-the-cloud/well-architected-framework/3-reliability.md).

# 3) Reliability

* Ability of a workload to **perform its intended function correctly and consistently when it’s expected to**, e.g. **recover from infrastructure or service disruptions**, **dynamically acquire computing resources to meet demand**, and **mitigate disruptions**, such as misconfigurations or transient network issues. Basically, your **application should run smoothly regardless of disruptions**.

## Design Principles:

* **Automatically recover from failure**: With more sophisticated automation, it’s possible to anticipate and remediate failures before they occur.<br>
* **Test recovery procedures**: Use automation to simulate different failures or to recreate scenarios that led to failures before.<br>
* **Scale horizontally to increase aggregate workload availability**: Distribute requests across multiple, smaller resources so that they don’t share a common point of failure.<br>
* **Stop guessing capacity**: Automate the addition or removal of resources to maintain the optimal level to satisfy demand without over or under-provisioning.<br>
* **Manage change in automation**: Changes to your infrastructure should be made using automation.
