说说12306铁道部的购票网站。

在很不合适的时间,年初春运前,铁道部12306系统上线。一下暴露众多问题,特别是性能,典型容量不足、过载处理不当。可气的是居然新闻误导说是因为网络带宽不够,记者逮着电信一通开火。系统上线前似乎没有经过真正意义的压力测试,包括长时间大压力测试以及过载保护测试,要么系统上得仓促,要么软件开发团队经验或技术力量不足。

最近12306又被喷了,好像是过载处理的排队策略有问题,以及公布漏洞中,排队不是fair queue,再次证明开发团队经验或技术力量不足,以及上生产环境前的模拟测试不够认真。

然而有人说应该找IBM的什么或者清华大学的什么开发,对此我不认同,我认为这是外行话。

系统某个分布式并行处理模块当然可能采用别人提供的技术,但整个系统不会,没有一个现成的商用售票系统可以直接拿来使用,没有任何商用系统可提供满足相应的功能和性能要求。

先说性能。欧洲一个国家的人口没有我们一个省多,春运的峰值没有任何商用系统可以达到。商用系统是面向通用性,做到这样高的性能,除了卖你还有谁需要,没有商业需求,通用商用系统不会针对单个需求做大量的改造,不值得。有哪个商用系统能够提供春运这种突发高峰期,还有很多代理用机器不断访问,这需要很大容量的web sessions才能支撑。淘宝在11.11的疯狂采购中经过了流量考验(第一年好像是网银支付扛不住),请注意淘宝的系统是自己开发,经过多年优化,不再使用他人提供的商用系统。我不否认存在大处理能力系统,但这些不是通用商用系统,换句话,你买不到,而且从功能上看也不值得买。

再说功能。铁道售票系统和铁路现有票务系统互通,包括窗口票务,电话售票系统,还需要和车次联动,包括班次调度,例如新开动车线路,春节加开临客等。请别人开发,先不说这属铁道部内部核心业务,外行人要搞懂这堆逻辑费时耗日,以后呢?维护成本高,新增功能费巨贵(你只能向他买),例如新增实时列车动态关联,前几天坐广深,晚点,但自动售票机上还是按原来时刻出票,即本可赶上的晚点班次不再售票。有很多大大小小的功能需要完善。这样的系统绝不适合外包。

从现实意义看,12306只能由铁道部自己研发,当然开发团队素质问题,可以通过收购和聘请牛人来解决,但是如此高性能和关联复杂的系统,很少开发者有足够的经验。希望他们一开始能把架构设计好,能在框架下解决问题。随着时间推移,相信12306会慢慢改善。剩下的问题是:How long?

9月29日补记:

连SQL都看到,这种低级错误貌似实习学生水平,毫无安全意识。大系统的代码即便没有review,至少要测试,难不成开发测试一脚踢。12306的开发者水平不敢恭维,但是我仍认为12306应由铁道部自行开发。

月光博客据网友爆料,中国铁路网上订票系统存在注入漏洞,网站内的数据(实名用户名、身份证号码等)有可能会被黑客攻击。

说说铁道部12306_ibm