一、假定失效的设计(Design for Failure)

1、假定任何环节都有可能出问题,然后倒推依次设计

2、避免单点故障(single point of failure)

3、目标:应用能够连续工作,服务一直可用

4、典型实践,充分考虑到多可用区AZ(availability zone

二、松耦合的设计(Decoupled)

1、从架构层面降低功能模块的耦合程度

2、充分考虑到服务模块接口的设计,以及异步模式

3、目标:缩小单个故障的失效域,提高扩展性和容错能力

4、典型实践:面向服务的模块设计,通过消息队列解耦业务模块

三、弹性(Elasticity)

1、资源按需获取,按需扩展和收缩

2、平行拓展提高系统容量和容错能力

3、目标:提高业务的承载能力和平台资源的灵活性

4、典型实践:无状态设计实现自动平衡扩展,云服务的按需提醒

四、并行(Parallel)

1、分布式架构首先并行处理

2、充分利用云服务本身的并行能力

3、目标:提高平台处理容量、缩短处理事件

4、典型实践:使用平台服务的最大化并行,调整软件支持并行架构

五、安全(Security)

1、保障关键数据在传输和存储时不被泄露

2、控制外部用户和内部人员对资源的访问

3、目标:保障业务安全

4、典型实践:HTTPs传输加密,存储加密,访问控制和记录