The goal of reliability is to keep the impact of any failure to the smallest area possible. By preparing your system for the worst, you can implement a variety of mitigation strategies for the different components of your infrastructure and applications.
Before a failure occurs, you want to test your recovery procedures. It is essential to try to automate recovery as much as possible to reduce the possibility of human error.
The following are the standard design principles that help you to strengthen your system's reliability. You will find that all reliability design principles are closely related and complement each other.