12306-by-aliyun

昨天下午,自称为阿里云程序员,同时参与了今年 12306 春运项目的知乎用户 首次披露 ,阿里自从去年年初就已经开始和铁路订票网站 12306 合作,到今年春运,12306 已经将 75% 的余票查询业务交由阿里云托管。

该程序员表示,2014 年初阿里和 12306 的技术团队开始讨论如何将余票查询系统放到云上,十一黄金周做了测试,并且"效果不错"。

今年春运期间,网友普遍反映 12306 的抢票和出票的效率比往年大大加快。加上预售期改为 60 天,给了大家足够的缓冲时间,以及一些新的规则制定,使得抢票的密度不如以前那样集中。种种措施多管齐下,让大家觉得今年的回家似乎不再如往年那样让人怨声载道,12306 的表现也得到了大家的肯定。

之前一直有人说,让淘宝和京东这些处理了双 11 购物狂潮的网站来运行 12306 就好了。此时此刻,这一玩笑终于得到验证。12306 的确是在举全国之力,并不排斥官方之外的民间力量,这也体现了商业和市场的强大威力。

该程序员还披露说,12306 的用户需求和双 11 期间的服务器需求是不一样的。而且他也破除了人们的迷思,他表示 12306 影响抢票效率和服务器运行的关键因素,并不是购票流程,而是余票查询的环节。其实这也是非常符合逻辑的,我们都是在刷票的过程当中发现刷不到,刷到票的人坐位都会被锁定,接下来的 45 分钟内他们可以随意选择时间付款。所以我们觉得票买不到,并不是票都被人买走了,而是票都被查询到了。

具体来说,让阿里云分担 12306 压力的做法步骤是:

1. 把余票查询模块和 12306 现有系统做分离,具备独立部署的能力;
2. 在云上独立部署一套余票查询系统。这样子 12306 和云上都有了一套余票查询系统,调度更为灵活;
3. 一些安全措施;
4. 根据运行情况,云上的余票查询与 12306 原来的余票查询可以互相补位,根据实时的负载情况,来调配不同的访问比例,充分利用云的弹性。

在完成了查询以后,用户信息和购票过程目前依然在 12306 自己的服务器上完成。对云和已有系统的对接,以及其中可能的安全隐患,阿里云也做了一些安全措施来配合防范。

2014 年 1 月,有一篇来自"前淘宝工程师"的文章为当时遭遇批评的 12306 辩护,通过自己了解的技术瓶颈证明 12306 已经做的足够好了。目前在网上能看到很多类似的,有服务器运维经验的人对 12306 的辩护和称赞。该程序员也引用了这篇文章,并且评论道:

做这个项目一晃有小半年了,感触很多。大家知道双 11 对阿里技术团队是一个不小的挑战,我参加了 4 年,其中有两年过的尤为艰苦。当时技术团队经常被业务方指责,就像现在大家对待 12306 的态度一样。但客观说,双 11 大促推动了阿里的技术成熟,春运也推动了 12306 采用更多面向未来的技术。

他最后又引述一段 12306 工程师回顾系统刚上线时说的话:

12306 是个互联网新人,又或者被称为"富二代",它长得很丑,也很傻很瓜,身体还很弱…所以第一次露脸它就演砸了,那天全中国互联网大佬和网民都盯着它看,基本上全中国的网友都涌入它的家。那天它宕机了,同样是那天骂声如潮……其实我们知道,他们骂的不是 12306,他们骂的是这个时代。

原文出处:http://cn.technode.com/post/2015-01-16/12306-by-aliyun/