First, the design of the assumption of failure
1, assuming that any part of the problem may be, and then backward push design
2. Avoid single points of failure (one point of failure)
3, the goal: the application can continuously work, the service has been available
4, the typical practice, fully consider the multi-AZ az (availability Zone)
Two, loose coupling design
1. Reduce the coupling degree of functional modules from the architecture level
2. Fully consider the design of the interface of the service module, and the asynchronous mode
3, Target: Reduce the failure domain of single failure, improve the scalability and fault tolerance
4. Typical practice: Service-oriented module design, decoupling business module by Message Queuing
Third, elasticity
1, resources on demand, expansion and contraction on demand
2. Parallel expansion to improve system capacity and fault tolerance
3. Objective: To improve the carrying capacity of the business and the flexibility of the platform resources
4, typical practice: stateless design to achieve automatic balance expansion, cloud services on-demand alerts
Iv. Parallel
1, distributed architecture first parallel processing
2. Take full advantage of the parallel capabilities of the cloud service itself
3, Target: Improve the platform processing capacity, Shorten processing events
4, typical practice: the use of platform services to maximize the parallelism, adjust the software support parallel architecture
This article is from the "Thought decision height" blog, please be sure to keep this source http://chuck.blog.51cto.com/10232880/1715756
Web Architecture Solution Overview