本文内容同样来自InfoQ这篇文档。关于云计算遵循的原则,与我之前博文里描述的Heroku 12条设计原则类似,引用如下。
过去一些年来,云计算逐渐发展起来,有人开始为云计算的设计总结可复用的模式,目前形成了不同的流派。
所有流派基本都遵循六条原则:
1. 无状态,包括无状态的镜像和无状态的实例。云上的实例是虚拟化的,很容易被搞坏,所以把需要持久化的数据和实例分离,无论是故障迁移、应用扩展还是升级都很容易。
2. 松耦合,包括地缘、平台、时间、数据格式方面的解耦。
3. 弹性。层、服务和组件都应该是有弹性的。
4. 自动化。一方面可适应频繁的扩展,另一方面也是避免人工失误导致的问题。
5. 全面的监控/日志。线上做debug很困难,需要全面依赖详细的日志。
6. Design for failure。容忍错误,快速恢复,将failure当做普通事件处理。