Design principles for scalable and manageable applications on Azure
Applications in the cloud have to be able to respond to issues or faults such as unavailability, data or network loss, time-outs, or service transition. Some of these issues can be temporary and a basic retry may overcome them, while others will take more work. The first thing to do is to create your applications with resiliency and self-healing in mind.
The foundations of a self-healing system consist of:
- Automatic detection of the issue
- Taking action to respond to the issue detected
- Auditing all relevant information about the issue
Self-healing applications rely on designing your applications for resiliency, which means you need to plan for failure with minimal downtime and data loss.
Designing for resiliency
There are two main characteristics of resilient applications:
- They can recover gracefully from failures and experience minimal downtime
- They run in a healthy...