Designing highly available applications is an important goal of architects. However, Designing highly available applications based on cloud computing platforms is different from designing traditional platforms. When cloud computing brings many new design challenges to architects, it also brings many new design concepts and available services. How to make full use of the features of the cloud platform when designing applications is an important condition for cloud computing-based design. In this online lecture, we will take the Amazon AWS cloud platform as an example to discuss how to design a highly available application.
First, we will classify common AWS services based on whether AWS services are naturally highly available and fault-tolerant. For example, AWS designs the following services as highly available and Fault-Tolerant Services:
· Amazon S3
· Amazon dynamodb
· Amazon cloudfront
· Amazon route53
· Elastic Load Balancing
· Amazon SQS
· Amazon SNS
· Amazon ses
· Amazon SWF
· Etc.
However, the following services require users to improve application availability through appropriate architecture design:
· Amazon EC2
· Amazon EBS
· Amazon RDS
· Amazon VPC
For EC2 instances, the availability of a single instance is not particularly high. If an instance fails, the availability of applications and data supported by the instance will be affected, therefore, the architecture design is required to improve availability.
After selecting an appropriate service, we introduced five common architecture design principles in cloud computing, and conducted Architectural Design Analysis in turn based on AWS services. The five architecture design principles are as follows:
· Design Principle 1: Design with no failures
· Design Principle 2: multi-zone (AZ) Design
· Design Principle 3: Proactive expansion design
· Design Principle 4: self-repair Design
· Design Principle 5: Loosely Coupled Design
The purpose of this lecture is to give a brief introduction to the high-availability application design principles based on the AWS cloud platform to learn how to design high-availability applications based on cloud platforms such as AWS, it plays a leading role.
Here are the detailed lecture handouts: