充分利用云计算的优势特性,是云端应用在设计时应该考虑的事情。现在通过比较传统应用与云端应用来说明云端应用的一大特点 – Design for Fail。也就是在设计时充分考虑系统的容错能力
传统型用户依赖于硬件平台提供的HA和DR,这就是我们常看到的硬件设备HA,双活,load balance 等等。而云端应用型用户将自己处理HA和DR策略,看下面出自VMware云计算架构的示意图。
云端应用共同特点
- 分布式
- 无状态、软状态
- 失效切换在应用端
- 扩展性在应用端
传统型应用共同特点
- 客户端-服务器架构
- 难以横向扩展
- 失效切换在服务端
- 扩展性在服务端
传统型应用将需要如FT、VM级别的高可用性、自动病毒扫描等功能,而云端应用则不需要,当一台虚拟机出问题后,新的一台虚拟机将替代它。
微软 William Baker的出名文章 Pets vs. Cattle 的比喻可以充分说明这两种架构的特点。
比喻是这样说的:在传统服务模式下,你可以想象你的主机就是你的宠物,你给他们取名字,比如dusty、cern等等,他们被精心抚养长大。当他们生病了,你得修复他们。在云计算型应用服务模型中,虚拟机被看做是农场中的公牛,他们的名字通常都是编号,牛和牛长得也差不多,当他们生病了,你就杀掉他,用一头新牛代替。
真正的云架构,云端应用应该像对待农场中的公牛一样。不必在意虚机的保养,整个架构高可用性不会依赖云虚机的高可用。这样说明的对虚机的保养,维护在云计算平台应用中的地位逐渐削弱,越来越不那么重要了。