云设计原则
一、为失败而设计
承担一切失败,基于目标选择手段。
考虑失败后的恢复。
善待那些把系统搞坏的应用。
二、不要把鸡蛋放在同一个篮子里
考虑多个运营商,供应商。
根据地域区分不同数据中心。
用zone容纳本地存在的隐患。
可移植性设计。
三、考虑效率
考虑可扩展性。
去掉不需要的组件或服务。
四、保持偏执
深度设计防御,通过构建每层或者每个组件之间的安全,确保零差错。
不信任任何人。
五、不要太偏执
不是所有的应用或者服务需要钻石级的解决方案。
为不同SLA,不同服务层和安全级别来分别设计不同架构。
六、管理数据
在分析和传送数据付出更多的努力。
为不同的数据,设计相应的存储和传输方式。
七、放手
自动化可以增加一致性、高可用以及减少响应的时间。
八、分离和征服
尽可能分区和并行的分层。
尽可能确保组件足够小并且可移植。
尽可能在层之间采用负载均衡。
九、保持弹性
确保随着资源增加,性能随之增长。
确保减少资源对系统没有负面影响。
十、保持动态
自动扩展、失效恢复、资源发现等。
适应环境变化,错误发生以及负载变化等。
十一、贴近原则
通过移动高度密切的组件和相似数据靠近以减少延迟。
十二、保持松散
松耦合
抽象并定义好的应用程序接口
分离关注度高的点
交付灵活
十三、注意开销
自动扩展、数据传输、虚拟软件许可证,保留实例等均会增加每月使用支出。
密切监测使用情况。