一、假定失效的设计(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传输加密,存储加密,访问控制和记录