云计算的异地容灾

惊闻今天上午阿里云北京节点出现故障,然后看了一眼微博,同行相轻的故事果然又如期的发生。看微博的吐槽:

但是云计算是否有帮助用户完成异地容灾管理的责任这个需要探讨清除。不妨找一找阿里云的服务协议,看看其中是否有关于这部分描述的部分,我在表达的观点中经常说的一个点就是用户协议,这个在微博上之前也有大量的同行关注过这一点。阿里云服务协议中明确指出了:

7、 系统中断或故障

系统可能因下列状况无法正常运作,使您无法使用各项互联网服务时,阿里云不承担损害赔偿责任,该状况包括但不限于:

7.1 阿里云在系统停机维护期间。

7.2 电信设备出现故障不能进行数据传输的。

7.3 因台风、地震、海啸、洪水、停电、战争、恐怖袭击等不可抗力之因素,造成阿里云系统障碍不能执行业务的。

7.4 由于黑客攻击、电信部门技术调整或故障、网站升级、银行方面的问题等原因而造成的服务中断或者延迟。

看看别人的责任归纳的很清楚,今天上午的原因阿里云的客服在微博是这么回复的:

完全可以把责任加到7.2中去,但是注册的时候大家同意了服务协议呀,所以厂商是可以划清责任的。

云计算厂商是否有义务帮用户做异地容灾?

从当前看,如果云计算厂商有这个责任心想为用户提供异地容灾服务,其实也是心有余而力不足。异地容灾从业务逻辑上是需要用户自己完成的,因为每一个人的具体业务逻辑是完全不可预料的,比方说我在阿里云买了一个主机提供rabbitmq服务,我的终端设备配置的是解析到该节点的一个域名,假如就是单点吧,a.com ->A到11.11.11.11 这个IP地址。一旦这个IP挂了,就算厂商能帮你把IP飘到另外的机房去,但是你本地所在的机器的数据也不可能在很短的时间内切换。

这个从逻辑上就是一个悖论,不能说我买了一个机器你就应该给我做容灾处理。厂商的责任在于保障你启动的机器不宕机、数据不丢但是不能承诺帮你切换呀。

用户怎么自己做容灾处理

如果你又想省钱,又想异地容灾,选择一个意识形态上在上层的服务模式吧,比如PaaS。要么就自己架构好,在选择开启资源的时候尽量不要把机器都放到同一个region中,然后都做一个高可用的设计,比如域名同时指向多个IP,然后故障的时候自己去掉不能服务的节点IP就行。

厂商是肯定不希望出现故障的,因为谁也不想受到用户的辱骂和抱怨,希望阿里继续加油做更稳当的服务。