谢瑶绘制的《京华时报》地图
5月27日、28日,支付宝、携程等平台用户先后出现无法正常使用服务的情况,尽管事故原因各有不同,但都为互联网公司的运营安全敲响了警钟,能力建设也重新回到人们的视线中。
连续两天发生两起事故
“确实有点让人意外,两起罕见的事故,连续两天都发生了,这应该是概率很低的情况。”一位互联网业内人士感慨道。此次事件是上周支付宝、携程等平台发生的一系列严重事故。
5月27日下午,支付宝大规模瘫痪,国内很多支付宝用户无法在PC端和移动端转账、支付,事件持续近两个小时。支付宝方面称,事件原因系因市政施工导致杭州萧山区某地光缆被挖出,进而影响支付宝某主要机房。
无独有偶,第二天携程又出现问题,从当天中午开始,携程官网及APP均无法正常使用,更为严重的是,问题持续了12个小时才修复,携程最终给出的解释是,由于员工失误,生产服务器上的执行代码被删除。
国内领先的CDN服务商的一位技术专家表示,像支付宝、携程这样的严重事件并不多见,连续两天发生就更是少见。该专家表示,互联网公司发生故障可以分为机器级和机房级两种。前者主要是系统架构不好导致的,遇到流量过大就会出现“宕机”;后者主要是外部攻击导致的,会导致机房瘫痪。故障主要遇到的是实力比较弱的互联网公司,像支付宝、携程这样的大公司不会遇到这样的问题,这类公司面临的威胁通常都是机房级的故障。”
机房级别的事故以前也时有发生,比如2013年7月,上海一处光缆被挖出,导致微信在多个地区长达7个小时无法正常使用;2014年10月,同样是由于上海一处机房发生故障,导致微信在全国范围内无法服务2小时。
灾备建设不容忽视
“虽然两起事故看似偶然,但也反映出互联网公司灾难恢复能力的漏洞,而漏洞的存在意味着事故迟早会发生”, 表示。企业对可能发生的系统故障的预防性准备,更准确的解释是“建立两个或多个功能相同的 IT 系统,当一个系统停止工作时,整个应用系统可以切换到另一个系统,使得系统功能继续正常运行。”
业内人士介绍,灾备系统按照抗灾难能力可分为数据灾备和应用灾备。数据灾备是指建立异地数据系统,对关键数据进行备份存储,当本地数据丢失时,可通过备份进行恢复;应用灾备则处于更高层次,即在异地建立相当于本地数据系统的完整备份应用系统,灾难发生后,异地应用系统迅速接管或承担本地应用系统的业务运行。业内人士表示,现在大部分互联网公司对于数据安全的重要性都有了清晰的认识,数据备份也比较完备,因此这方面出现问题的可能性较小,主要问题在于应用灾备。
据技术专家介绍,构建容灾企业主要有三种方式,一种是冷备份,也就是备份服务器并不正常运行,只在发生意外之后才启动,这种备份方式需要启动,对系统恢复来说,所需的时间会比较长;一种是热备份,备份站点虽然和主站点一样处于运行状态,但是只备份数据,不承担业务,只有当出现意外情况时,备份站点才会接管主站点的业务,这种备份方式也会有一定的时延;还有一种是异地双活容灾方式,也就是在遥远的地方建立两个机房,并且都处于工作状态,共同承担日常的运营工作,一旦其中一个出现故障,直观的讲,异地双活模式就好比安排两个人同时完成一项本来一个人就能完成的任务,当其中一个人无法工作的时候,另一个人就可以接手整个任务,两个人可以独立完成。 相比于其他方式,异地双活容灾可以几乎零延迟地响应突发情况,用户甚至感觉不到切换。
分析
事故背后的灾备漏洞
“两起事件的成因完全不同,支付宝事件可以说是天灾,而携程事件则是人祸。”有着多年灾备经验的某公司信息安全部总监刘小雄向记者分析,支付宝事件是偶然因素导致的,携程事件则完全是内部问题。但两起事件都折射出两家公司在灾备工作上的短板和漏洞。
支付宝机房建设或存在不足
支付宝事故的根本原因是机房光缆被挖,从这个角度看,有一定的“不可抗力”因素,但不能说支付宝本身没有问题。
技术专家认为,支付宝宣称其容灾方式是“异地双活”,但从实际处理来看,用户受影响的时间仍长达2个小时,如果真的是“异地双活”,应该不会出现2个小时的服务中断,因此可以推断,支付宝的容灾系统可能并未真正实现异地双活。不过,他也表示,支付宝与其他互联网公司不同,其业务是交易型的,实时数据交互量巨大,实现异地双活在技术上难度很大。“说实话,以阿里巴巴的实力,如果支付宝做不到,更别说其他互联网公司了。”
该技术专家还指出,从支付宝故障来看,机房建设上可能存在缺陷,按照建设规范,两个机房之间至少要有两条独立的链路,而且这两条链路要走不同的路线,因此当其中一条链路断线时,并不会影响两个机房之间的数据传输。
携程缺乏应急预案和演练
对于携程此次遭遇的事故,灾备专家认为,原因更多是携程自身的响应问题,如果处理得当,可以降低事故影响。
刘小雄认为,从携程事故细节来看,携程给出的解释似乎站不住脚,“简单的误操作很难造成这么大的影响,说是误删除了一些执行代码,但线上和源头同时被删除的可能性很低。”刘小雄判断,携程出现问题的真正原因应该是遭遇了网络攻击,或者是维护人员在应对攻击时出现重大失误,又或者纯粹是“无论如何,我认为网络攻击是其发生严重事件的主要原因。”
他表示,如果互联网公司能够及时、恰当地发现攻击,是可以抵御或减少损失的,但携程的问题说明,要么是互联网公司没有及时发现恶意攻击,要么是安全人员能力差,才导致了这样的后果。
蓝汛相关人士也认为,从携程的回应来看,其明显缺乏处理此类情况的预案,似乎也没有进行相应的演练,否则如果按照预案处理、每日演练,花12个小时才恢复正常也不是什么很正常的事情。“缺乏应急预案和演练的互联网公司恐怕不少。”
■后续采访
风险防范与灾备建设必须遵守规定
“出过事故的就认命,没出过事故的就看热闹。”刘小雄说,这是很多互联网企业对待重大事故的态度。出过事故的可能会改进原有的流程和设备,没出过事故的可能就看热闹。不过,支付宝、携程等事件发生后,大部分互联网企业应该都会有所触动,“不只是企业自己,未来国家可能也会对企业提出更高的安全要求。”
刘小雄表示,为了避免发生严重的安全事件,企业高度重视灾备、遵守相关制度非常重要。他介绍,在一些大型互联网公司,主要业务部门都要有灾备预案,必须接受灾备审核,另外,公司本身对灾备也有严格的规定。“比如我们内部的灾备分为三个步骤,第一是明确哪些业务需要灾备;第二是按照业务的实际情况,每半年或者一年做一次灾备演练;第三是真的出现紧急情况时,按照预案、演练做就行。”
他认为,一些企业存在误区,认为灾备会增加成本。其实,如果灾备没有做好,发生意外,造成的损失远远大于灾备的投入。(记者顾晓宇)