谁设计了铁路订票系统 ___12306的鸡肋之痛
指责12306的各种问题必须要站在这样一个情境中:在中国这样的国情下,一个春运时日点击量可达15亿次的火车票销售系统在全球并无成功的范例和经验
《瞭望东方周刊》记者刘武、特约撰稿张诗雨 | 北京报道
又一年春运,又一年买票难。
铁道部又一次陷入指责质疑的漩涡。看上去,其2012年重金打造的12306在线客票销售系统似乎并不给力,与刚推出时“总是在崩溃”相比,这个神奇的网站在2013年呈现出了一个新症状:大部分热门线路的车票在放票后数十秒至几分钟内便被哄抢一空。
2013年2月5日,厦门警方公布了一起利用猎豹浏览器抢票插件倒卖火车票的“黄牛案”。在更早些时候,曾有消息指铁道部曾因抢票插件加重12306系统负荷而约谈过推出猎豹浏览器的金山公司,也随即叫停了抢票插件。
但截至2月4日,春节返程仍然一票难求,许多热门线路的卧铺及坐票仍然在放票后未几便迅速归零。
一方面,电子商务的便捷取代排队买票确实是一种进步,另一方面,稍遇高峰便系统故障乃至瘫痪似乎成了痼疾。为方便火车票购买、解决节假日购票难、打击黄牛而生的12306似乎成了一块尴尬的鸡肋。
与此同时,新一代客票系统已被纳入铁路“十二五”科技发展规划重大专项,该系统确定将引入云计算技术,并实施“开分店”式多网运作为12306减压。从目前各种公开文件和研究人员论文中可看出,铁道部倾向于选择打造专属私有“席位云平台”。
疯狂插件
2012年1月,12306系统由于糟糕的购票体验正广受公众指摘。王津就此接受媒体电话采访时,自然地谈到了清华方案。王津是清华大学Web与软件技术研究中心电子商务研究室主任,该中心在海量事务高速处理领域有领先优势,只是清华方案早早即被否决。
采访的第二天,王津发现自己“上了头条新闻”。他随即注册了微博,置顶了一条关于“无锁队列双向服务模型”的长微博试图仔细说明自己的观点。
他声称该模型有防止抢票插件的独特优势,摆开架势准备和网友进行学术探讨。但是,直到2012年底几乎没人跟他学术探讨,微博下面的留言更多是奚落。
此时,抢票插件俨然已成官方“心腹大患”。
由于对12306的疑问,一些社会人士开始要求铁道部公开12306招标细节,但遭到拒绝。
早在2012年初,12306的承建方之一太极计算机股份有限公司被扒了出来。
2012年年末,爆料人周筱又通过微博公布了铁道部购买合同:两年内向太极计算机公司购买设备超2亿,加上之前的花费,12306网站实际投入已超过了5亿,远不止曾经披露的3亿。
《21世纪经济报道》的报道曾披露12306招投标中所涉及的各机构之间都有着“极为密切的关系”,其中涉及关联交易、自循环采购等,并称“铁道部信息技术中心通过太极股份这一中介,自己购买自己的产品”,“几次倒手,产品的价格就翻了数番”。
太极股份方面曾就招投标质疑事项回应称,铁道部选择太极是因为公司的实力,以及过往与政府部门、国企良好的合作基础,此外太极股份拥有“特别能够适应政府要求的项目进度控制能力和保密需求”。
之后,铁道部曾几次澄清称12306是按规范进行了公开的招标采购。但是,有人对铁道部的解释并不买账。北京市两高律师事务所律师董正伟就以“信息不公开”为由对铁道部提起诉讼。
董正伟对《瞭望东方周刊》表示:“我的诉求就是想请铁道部将新一代客票系统历次招标的信息充分公开。我想知道,参与建设的企业是不是合法去做了,有没有尽力去做,有没有不正当交易?”
根据公开的信息,有人质疑铁道部“肥水不流外人田”,仅将小范围业务外包给系统外公司。经常被引用的证据是,铁道部在客票系统招标之前就早早否决了“IBM成熟解决方案”和清华大学Web与软件技术研究中心掌握自主知识产权的分布式解决方案。
IBM方案是由于“价格实在太贵”遭淘汰,清华方案同样遭否决,一些人便产生疑问。
“外界不应该轻视12306系统的难度,这是涉及海量事务高速处理的一种非常特别的系统。它是定品、定量、定件三种电子商务系统中最难的定件系统,目前国内有真正实践经验的人很少,很多技术人员都不一定知道。”王津大方地为12306辩解道。
上海人云科技团队创始人吴朱华自称曾在IBM中国研究院从事云计算相关研究工作,他也认为:“目前没有任何商用系统可提供满足相应的功能和性能要求,买不到具有如此大处理能力的通用商用系统,也不值得买。”
他不认同一些人宣称“应该找IBM或者清华开发”的观点,他认为这是外行话。他反而认为客票系统只能由铁道部自己研发,“外面研发机构要弄懂这一堆复杂逻辑也得费时耗日,以后维护成本高,新增功能还得花费巨资购买。这样的系统绝不适合外包。”
难啃的骨头
在众多吐槽中,一些人呼吁“马云把阿里巴巴集团的精英借给12306几天”,或者将铁路客票系统交给阿里巴巴等电商来做,“倒贴钱他们都愿意”。也有IT公司高管公开称,如果铁道部认为有必要,可以提供一切技术资源。
一个有趣的坊间消息被多家媒体在报道中引用,丁香园CTO冯大辉透露,2012年5月铁道部邀请阿里巴巴等多家互联网公司技术骨干,作为顾问向12306项目提建议,其中部分已被采纳。冯大辉曾在阿里巴巴供职。
但是,阿里巴巴集团公关总监杨磊却否认有阿里团队技术支援铁道部的事情。他对《瞭望东方周刊》记者表示:“看到这个信息之后,我特意在阿里巴巴集团和下属子公司核实过,都说没有这件事。”
然而,铁道部机关报《人民铁道报》在2012年3月13日题为《攻坚克难迎龙年春运大考——中国铁道科学研究院客票总体组保春运纪实》的整版报道中,以近五百字篇幅介绍了阿里巴巴集团派出17名技术精英组成项目组,来到铁科院客票系统监控中心,与铁道部互联网售票团队共同战斗30多个日日夜夜。
《瞭望东方周刊》经向稿件作者核实,也确有此事。冯大辉则拒绝进一步透露详细信息。
上述报道中称:两支队伍强强联手,先后实施了内外网安全平台方案调整、排队机加密策略优化、数据库应用优化、用户登录动态控制、支付流程优化、页面压缩传输等优化方案。
杨磊对《瞭望东方周刊》表示:“这其实不取决于我们。”
2012年9月27日,京东高级技术副总裁李大学在微博宣布牵头成立12306开源项目组(12306NG项目组),将以他个人资源来推动该项目永久公益,成为能立在当下又影响久远的项目。
本刊记者从12306NG项目组官方网站上查看其历次项目经理会议纪要,以及其他一些资料可以发现,该项目组由于各种现实困难而进展较慢,前景并不乐观。
在一些关于12306NG的项目进度介绍里,也经常反馈出这样的信息:人员积极性较高,但经验和研发能力不太强;人员潜水比较多,参与的人经验也比较缺;目前很多人经验不足,但是时间充足。在项目组的公开讨论里,一些有经验的人对“一堆同学痛骂不已,还有一片‘专业人士’给予鄙视、藐视、蔑视、各种视”的行为给予劝诫。
王津告诉《瞭望东方周刊》,几年前铁道部曾经组织过包括清华大学、IBM等国内外研究机构开过研讨会。当听说客票系统需要保证在春运期间2亿多人次的全国大流动之后,从国外来参会的那些老专家也表示不可思议,目瞪口呆。
当初,他在接到铁道部新一代客票系统设计任务的时候,他意识到“这将是一个空前庞大的系统,设计难度之高非常罕见”。同时,考虑到这个系统社会影响巨大,他“倒抽一口冷气”。
问题出在哪里?
进入2013年,围绕铁路客票系统展开技术讨论的人逐渐多了起来。
许多技术人员认为12306的问题不只是带宽和硬件,更大问题在于网站系统架构、逻辑算法、库存同步、数据缓存机制、内外网数据交换等方面,还有人认为问题产生的根本原因是铁道部对“服务”的概念理解过于浅层。
另一种观点是认为,12306这种靠“抢”的业务模式也有致命问题,“让几千万甚至上亿的人在同时登录同时抢票的这种业务模式是变态中的变态”。
在购票高峰时段,人工或者机器人(抢票插件)持续不断地刷新,给12306网站额外带来超过10亿的PV,平均500次点击才能买到一张火车票。这加剧了12306系统瘫痪的风险。
而铁道部对这种情况预估不足,最初设计的日点击量最多10亿,后来达到14亿、15亿。铁道部相关部门负责人曾在接受新华社记者采访时表示,原来系统设计的最高能力是每天达到166万笔时系统性能可能下降,客户体验不佳。后来的实际情况显然远远超过了系统承受力。
王津对《瞭望东方周刊》表示,“一个刷票软件对系统可以产生相当于几百人甚至几千人的购票压力。”他表示,用清华的模型可以杜绝刷票软件,只是等待时间稍微长一些,“但这些等待时间都是有效时间。”
缺乏海量事务高速处理的能力则是部分技术人士所认为的12306的致命软肋。一位技术人士在帖子中写道“做过海量数据的都知道,百万以下什么都好办,到千万就有点小麻烦;到了亿级已经有一定困难了,十亿百亿级别就是一个相当复杂的综合系统。”
作为清华大学Web与软件技术研究中心电子商务研究室主任、高级架构师,王津形容数据达到海量的时候会发生“神奇的化学反应”,也就是会发生极端情况—— 网站运行效率呈指数级下降,最终导致崩溃。
很多人将铁路客票系统与民航票务系统以及淘宝等电商作对比。铁道部运输局相关负责人在答记者问的时候说,民航是“点对点”,票源简单明了,而铁路售票是动态的,上上下下要比民航复杂得多。
“目前国内大部分电商都只是定品系统,只有12306和股票系统属于定件系统,也是最难做的系统。”王津说。
“12306原是为高铁与动车订票服务的,而在主管部门行政要求下,要在(2012年)春运推广到全路所有车次,因此网站压力骤至,而留给相关技术人员的时间又太短。因此,相关部门的行政决定必须听取技术人员的意见。”一位铁路系统内部的研究人员曾在一篇论文中表示。
在研究12306本身的同时,不应忽略的事实是,导致购票体验糟糕最根本的原因还在于铁路运力不足。
铁路私有云构想
2011年11月2日,“铁路新一代客票系统总体技术方案”通过审查。新一代客票系统也已被纳入铁路“十二五”科技发展规划重大专项。新一代客票系统确定将引入云计算技术,构建支撑超大规模并发交易、海量数据存储、灵活扩展、安全可靠高效的综合信息系统。
引入“云计算”技术也得到了IT界技术人士的认同。然而,究竟是利用第三方商业机构提供的共有云服务,还是打造铁道部自己的私有云目前并无确定消息。但从铁路部门发布的文件以及内部研究人员的言论或论文中,可以看出铁道部倾向于选择打造私有云。
据悉,新一代客票系统将采用“两地三中心”的模式,在铁道部级建立第一生产中心和同城第二生产中心,两中心形成双活态势并互为应急,在异地建立灾备中心。在两个生产中心中构建“席位云平台”,采用集中式体系架构,全路席位及其相关核心交易集中处理。所有席位遵循始发局集中管理原则,减少数据同步量,提高运维效率。
广铁集团客运处副处长陈晓梅曾在接受媒体采访时表示,针对全国“一张网”带来春运网络瘫痪状况,铁路部门正在研究实施“开分店”式多网运作,为12306减压。
“分店”由谁来开呢?有铁路系统内部人士早前撰文中透露,“12306互联网售票系统要在铁路局网上开分店”。该文作者认为,这样做实质上与跟大网站合作类似,甚至更方便,避免了合作中可能的问题,后台票额数据分布可以做得更加灵活,只是支付系统可能需要下一番工夫做好。“这种方式的最大缺点是需要投入大量成本”。
有铁路系统研究人员认为,目前能提供高可靠性、高性能解决方案的云服务商大部分在国外,国内掌握云计算核心技术的人才匮乏。在用户负荷变化剧烈的情况下,一旦由于技术和管理原因而出现问题将是灾难性的,除非“12306搭建一个属于自己的私有云环境”。
此外,私有云平台可以建立相对完善的软件功能,最大化降低硬件成本,满足铁路客票业务分析的需求。“共有云对于中小型企业来说最为适合,它们对于成本比较敏感,性价比对它们尤为重要。”
而这正好契合新一代客票系统关于“云平台节点可动态扩充,在春运等售票高峰时可上线更多的席位处理节点提高整体处理能力,低谷时富余处理能力用于统计分析业务”的要求。