3
本文作者:王强 | 2015-05-28 17:16 |
根据最新情报,今天上午开始出现官网和app故障的携程网没有碰到最严重的问题:用户资料丢失。虽然服务器出现了问题损失了数据,但所幸损失是可控的。
据目前得到的、未经最后证实的消息,不知是因为外部攻击还是系统bug抑或是工程师手滑,今天携程更新自己的应用时出现了源代码被删除的惨剧。源代码被删导致携程需要暂时停止主要的网络服务,紧急回滚到之前的程序版本。这项任务需要花费一定时间,但不会对用户资料数据造成影响。
网站程序更新和我们家里PC的软件升级有很大不同。较复杂的网站或网络服务通常有很多组件构成,每个组件就是一个子程序。开发网站时,不同的开发小组负责不同的组件。工程师写好自己负责的代码后并不是直接放到服务器上”安装、升级”的——这些程序一般不会有图形化的通用安装界面。通常的流程时各小组提交的代码发到一台审核用的服务器编译运行,测试无误才能更新到主服务器里。
程序代码不能直接被硬件识别运行,需要翻译为硬件内部的语言形式。翻译的过程叫做编译。代码编译完成后就从一大堆字母数字变成了可执行文件,从可执行文件里很难完美地倒推回原始的代码。
携程的问题是各个小组提交代码、编译成功后,代码本身却被删除了。这就像用胶片相机拍照洗出来后胶卷丢失了一样。源代码没有了,意味着编译出来的程序出现任何错误都很难通过分析代码来解决问题,而且程序的升级也会很麻烦。丢失源代码的程序对工程师来说就是废品,绝不能使用。
幸好携程的服务器还保留着上个程序版本的代码,新版废掉了只能拿旧版顶了。只是旧版代码要发布还要经过编译测试,这也是需要时间的——就像你昨天新拍的自拍的胶片丢了,你只好找上个月拍的那卷拿去冲洗才能给朋友看了。旧版发布的空当,新版又作废没法用,服务只好中断了。
更麻烦是据说现在携程旧版代码怎么也更新不到主服务器里,程序一发布就被自动删除,搞不好是黑客干的缺德事。好容易翻出来旧的胶卷拿去冲洗却怎么也洗不出来,这种心情放大一些应该就是携程现在的感受。这个问题解决起来恐怕还要费一番周折,携程的很多员工今天要加班熬夜了。
这次事件暴露出携程技术部门的很大问题:且不说起因是黑客攻击还是工程师手滑,主程序源代码这种重要的东西竟然没有离线备份简直匪夷所思——只在服务器里存一份,当然容易删掉了。要是在近线存储系统或者磁带机保留一份,那问题直接就不存在了。犯这种错误实在有些低级,携程需要加强对技术部门,尤其是数据安全的重视了。其他企业也该引以为戒,赶快审核下自己的数据管理体系,别再闹这种低级笑话了。源代码被删事小,哪天用户数据丢失可就真的欲哭无泪,叫天不应叫地不灵了。
【广告】据说携程网被“物理删除”是因为这个:http://www.knewbi.com/s/5566c2b3c3df6
雷峰网原创文章,未经授权禁止转载。详情见转载须知。