We use the term reliability for a system that should continue to work correctly (performing the correct function at the desired level of performance) even in the face of adversity (hardware or software faults and even human error). A reliable system has some of the following characteristics:
- The application performs the function that the user expected
- The ability to self-configure to withstand changing environmental conditions
- Its performance is good enough for the required use case, under the expected load and data volume
- The system should be usable and maintainable in the long term
- Has application robustness in the face of uncertain information
- Has resistance to security problems such as preventing unauthorized access
In the following sections, we will discuss how to build and test for reliability on the cloud,...