12306 外包给阿里巴巴、IBM 等大企业做是否可行?

如果 12306 项目外包给阿里巴巴或 IBM 等大企业,会不会更好
关注者
11,165
被浏览
3,179,747

466 个回答

看到那么多讨论,其实12306真的没那么简单,好多人只看到了表面就开喷。

在平时,12306也就是个正常的电商网站。但一到黄金周、春运,12306就是一个全站所有商品都秒杀,所有SKU(库存量单位)都是动态库存的变态。

  媒体人喷12306,是他们不懂技术,没有能力和耐心来分析背后的难度。技术人员喷,则是因为大部分的技术人员在短时间思考时,容易陷入过于乐观的误区。

  至于12306一期工程3个亿(含硬件)贵不贵我不评价,我只提供一个数字供参考,百度一年的研发费用(不含硬件)是10亿,这个数字来自百度财报。网上能查到。3亿看起来好大一个数字,真用到超大型的电商系统、搜索引擎系统里面,其实也不算什么天文数字了。

  再解释一下,为什么秒杀压力大,以及为什么12306的动态库存很复杂。

  先说秒杀。

  2013年12月25日前后,天猫搞了一个圣诞季积分兑换活动,持续几天。25号上午10点12分,放出了15000个天猫魔盒,从成交记录上看,是19秒内全部抢完。

  实际上,我也参加秒杀了,我应该是5秒内答题完成并提交订单,结果告诉我排队的人太多,14秒以后重试。

  我想,14秒以后哪还有我的事情呀,于是重新答题秒杀,结果出现了服务器错误的页面。反复刷新几次,就告诉秒杀结束了。

  淘宝是什么技术水平呢,淘宝有至少4000技术人员,至少4万台服务器。以淘宝这样的技术水平,也不能做到秒杀时让每个用户都没有拥挤感,为什么呢?

  一是要尊重物理原理,一台服务器一秒钟能承受的计算量是有极限的,任你怎么优化,采用多高效的算法和编程语言,都突破不了某个极限。

  二是要考虑经济效益,十一黄金周的时候,北京主城区到八达岭长城的路堵得严严实实,但不能因为黄金周的高峰,就把这段路修成长安街那样10车道的高速公路。

  再说动态库存。

  淘宝秒杀天猫魔盒的时候,只有一个商品(行话叫做SKU),它的库存是15000个。有一个人秒杀到了,库存就减1,19秒卖完的,一秒要成功产生789个订单。想象一下,你在广场上卖火车票,一秒钟有8万人举着钱对你喊:卖给我!

  好了,讲了这半天淘宝,可以说12306了吧?

  我以北京西到深圳北的G71次高铁为例,它有17个站,3种座位。表面看起来,这不就是3个商品吗?G71商务座、G71一等座、G71二等座。大部分轻易喷12306的技术人员就是在这里栽第一个跟头的。

  实际上,G71有136*3 =408种商品(408个SKU),怎么算来的?请看:

  如果卖北京西始发的,有16种卖法(因为后面有16个站),北京西到:保定、石家庄、郑州、武汉、长沙、广州、虎门、深圳……都是一个个独立的商品,

  同理,石家庄上车的,有15种下车的可能,以此类推,单以上下车的站来计算,有136种票:16+15+14...+2+1=136。每种票都有3种座位,一共是408个商品。

  旅客A买了一张北京西(01号站)到保定东(02号站)的,那【北京西到保定东】这个商品的库存就要减一,同时,北京西到石家庄、郑州、武汉、长沙、广州、虎门、深圳等15个站台的商品库存也要减一,也就是说,出一张北京到保定东的票,实际上要减16个商品的库存!

  这还不是最复杂的,如果旅客B买了一张北京西(01号站)到深圳北(17号站)的票,除了【北京西到深圳北】这个商品的库存要减一,北京西到保定东、石家庄、郑州、武汉、长沙、广州、虎门等15个站台的商品库存也要减1,保定东到石家庄、郑州、武汉、长沙、广州、虎门、深圳北等15个站台的商品库存要减1……总计要减库存的商品数是16+15+14+...+1=120个。

  想象一下,8万人举着钱对你高喊:卖给我。你好不容易在钱堆里找到一只手,拿了他的钱,转身找120个同事,告诉他们减库存,而这120个同事也和你一样被8万人围着;也和你一样,每卖出一个商品要找几十个人减库存……这就是12306动态库存的变态之处。比你平时买东西的任何网站的库存机制都复杂几十上百倍。

除此之外还要排除在代售点、车站等卖出的票,退票回库、改签等计算。

  以上讨论只是把12306当成和淘宝一样没有历史包袱从零起步的交易系统,实际上,它不是,它后面的票池,还有电话售票、火车站售票、代售点售票等多个传统渠道要服务。除了客运服务,12306还有全国最大(很可能也是全球最大)的大宗物资货运系统。

  目前的12306技术上是还有问题,比如,抢票高峰,输入个身份证号和图片验证码都卡得要死(本人亲测),服务器端繁忙,你浏览器端卡什么呀。

  但人家在进步。技术已经不再是一票难求的主要问题。在铁路运力不可能神速增加的情况下,要做到春运更公平地买票,需要靠政策调整。

回到问题,做这个系统肯定需要很多人力来做,需要各种数据优化,解决方案等,阿里巴巴、IBM都有自己的项目要自己的大牛来做。这是体制内的项目,各种要求层出不穷,麻烦得很。不是阿里、IBM没有解决方案,是人家愿不愿意做。

一看题主就是被买票气的不行的,你是有多憎恨12306(开个玩笑)。那我就扯远点。

买票这个事给淘宝也没用,核心矛盾是票不够,而不是12306网站速度慢,如果票能满足所有人的需求,你就算刷了几个小时才买到了回家了票 也不会这样憎恨12306吧,作为屁民大部分还会感恩戴德吧。说白了还是供需矛盾,铁道部不可能为了春运这一个月,平常就上大量的空车在线路上跑,IT企业可以通过租用云服务器解决瞬时流量问题,但是铁道部不行,就算租用了大量的服务器,并且解决了

@王强

提到的cpu性能瓶颈,所有人都能很流畅的买票,但是你发现瞬间票就售完了,我相信题主不会赞扬12306这次买票流畅,不卡顿,而是会继续骂娘。

每年双11淘宝上都会有抢购比如2999的iphone,1999的ipad当然数量极少。一般都是开抢后几秒钟瞬间售光,也经常出现验证码刷不出来,小米的抢购大家也懂得,其实本质上跟12306抢不到票都一样。但是没抢到的大多就是呵呵一笑,最多骂两句就没了,有多少人就冲这恨上了淘宝、小米?那为啥这么多人没抢到票就愿12306呢?无非就是iphone,ipad,小米等不是必需品,抢不到了我可以等下次,甚至我用其他手机也行,但是每年春运的火车票对广大期盼回乡的游子来说决定了能否回家,能否见到自己的父母,妻子,儿女。

12306这个问题的再NB的IT企业也无法从根源上解决,你让铁路再发展个5年也没用(还是不可能为了春运平时上大量的空车)归根结底是个社会问题,解决问题的方法就是发展落后地区的经济,如果你在西安,郑州,武汉,长沙,成都,这些中东部省会城市拿的工资跟北京上海比差不了多少,我想大部分还人是愿意留在离父母,离家近的地方打工吧,少数有闯劲的去北上广就行了,到时候买票难还是问题吗?

很多问题的解决不是因为想到了解决问题的方法,而是问题本身消失了。经济发展平衡了,大家都在家门口打工,每年春运还用愁那一张回乡的票吗?