做12306比做淘寶難
為什么說(shuō)做12306比做淘寶難?如果把12306外包給IBM或者阿里巴巴來(lái)做,能否比現(xiàn)在做得好?
如果把12306外包給IBM或者阿里巴巴來(lái)做,能否比現(xiàn)在做得好?
如果是以前,我肯定會(huì)回答:是。因?yàn)槲覀兪冀K認(rèn)為,一個(gè)年投入超3億元的賣火車票網(wǎng)站,沒(méi)有什么理由做不好吧?其實(shí)不光是小編這樣認(rèn)為,包括眾多媒體,甚至專業(yè)人士都曾噴過(guò)12306,但近日一名前淘寶工程師通過(guò)科普的方式給了我們一記響亮的耳光:做12306網(wǎng)站難度遠(yuǎn)高于淘寶。
我曾在淘寶寫過(guò)一段時(shí)間代碼,2012年在一家百?gòu)?qiáng)民企做電商副總,當(dāng)時(shí)在極為艱苦的條件下帶隊(duì)開(kāi)發(fā)了一個(gè)B2C網(wǎng)站,走支付寶和銀聯(lián)支付通道,年?duì)I業(yè)額千萬(wàn)級(jí)。
在平時(shí),12306也就是個(gè)正常的電商網(wǎng)站。但一到黃金周,12306就是一個(gè)全站所有商品都秒殺,所有SKU(庫(kù)存量單位,物流管理術(shù)語(yǔ),編者注)都是動(dòng)態(tài)庫(kù)存的變態(tài)。
媒體人噴12306,是他們不懂技術(shù),沒(méi)有能力和耐心來(lái)分析背后的難度。技術(shù)人員噴,則是因?yàn)榇蟛糠值募夹g(shù)人員在短時(shí)間思考時(shí),容易陷入過(guò)于樂(lè)觀的誤區(qū)。
至于12306一期工程3個(gè)億(含硬件)貴不貴我不評(píng)價(jià),我只提供一個(gè)數(shù)字供參考,百度一年的研發(fā)費(fèi)用(不含硬件)是10億,這個(gè)數(shù)字來(lái)自百度財(cái)報(bào)。網(wǎng)上能查到。3億看起來(lái)好大一個(gè)數(shù)字,真用到超大型的電商系統(tǒng)、搜索引擎系統(tǒng)里面,其實(shí)也不算什么天文數(shù)字了。
再解釋一下,為什么秒殺壓力大,以及為什么12306的動(dòng)態(tài)庫(kù)存很復(fù)雜。
先說(shuō)秒殺。
2013年12月25日前后,天貓搞了一個(gè)圣誕季積分兌換活動(dòng),持續(xù)幾天。25號(hào)上午10點(diǎn)12分,放出了15000個(gè)天貓魔盒,從成交記錄上看,是19秒內(nèi)全部搶完。
實(shí)際上,我也參加秒殺了,我應(yīng)該是5秒內(nèi)答題完成并提交訂單,結(jié)果告訴我排隊(duì)的人太多,14秒以后重試。
我想,14秒以后哪還有我的事情呀,于是重新答題秒殺,結(jié)果出現(xiàn)了服務(wù)器錯(cuò)誤的頁(yè)面。反復(fù)刷新幾次,就告訴秒殺結(jié)束了。
淘寶是什么技術(shù)水平呢,淘寶有至少4000技術(shù)人員,至少4萬(wàn)臺(tái)服務(wù)器。以淘寶這樣的技術(shù)水平,也不能做到秒殺時(shí)讓每個(gè)用戶都沒(méi)有擁擠感,為什么呢?
一是要尊重物理原理。一臺(tái)服務(wù)器一秒鐘能承受的計(jì)算量是有極限的,任你怎么優(yōu)化,采用多高效的算法和編程語(yǔ)言,都突破不了某個(gè)極限。
二是要考慮經(jīng)濟(jì)效益。十一黃金周的時(shí)候,北京主城區(qū)到八達(dá)嶺長(zhǎng)城的路堵得嚴(yán)嚴(yán)實(shí)實(shí),但不能因?yàn)辄S金周的高峰,就把這段路修成長(zhǎng)安街那樣10車道的高速公路。
再說(shuō)動(dòng)態(tài)庫(kù)存。
淘寶秒殺天貓魔盒的時(shí)候,只有一個(gè)商品(行話叫做SKU),它的庫(kù)存是15000個(gè)。有一個(gè)人秒殺到了,庫(kù)存就減1,19秒賣完的,一秒要成功產(chǎn)生789個(gè)訂單。想象一下,你在廣場(chǎng)上賣火車票,一秒鐘有8萬(wàn)人舉著錢對(duì)你喊:賣給我!
好了,講了這半天淘寶,可以說(shuō)12306了吧?
我以北京西到深圳北的G71次高鐵為例,它有17個(gè)站,3種座位。表面看起來(lái),這不就是3個(gè)商品嗎?G71商務(wù)座、G71一等座、G71二等座。大部分輕易噴12306的技術(shù)人員就是在這里栽第一個(gè)跟頭的。
實(shí)際上,G71有136*3 =408種商品(408個(gè)SKU),怎么算來(lái)的?請(qǐng)看:
如果賣北京西始發(fā)的,有16種賣法(因?yàn)楹竺嬗?6個(gè)站),北京西到:保定、石家莊、鄭州、武漢、長(zhǎng)沙、廣州、虎門、深圳……都是一個(gè)個(gè)獨(dú)立的商品,
同理,石家莊上車的,有15種下車的可能,以此類推,單以上下車的站來(lái)計(jì)算,有136種票:16+15+14…+2+1=136。每種票都有3種座位,一共是408個(gè)商品。
旅客A買了一張北京西(01號(hào)站)到保定東(02號(hào)站)的,那【北京西到保定東】這個(gè)商品的庫(kù)存就要減一,同時(shí),北京西到石家莊、鄭州、武漢、長(zhǎng)沙、廣州、虎門、深圳等15個(gè)站臺(tái)的商品庫(kù)存也要減一,也就是說(shuō),出一張北京到保定東的票,實(shí)際上要減16個(gè)商品的庫(kù)存!
這還不是最復(fù)雜的,如果旅客B買了一張北京西(01號(hào)站)到深圳北(17號(hào)站)的票,除了【北京西到深圳北】這個(gè)商品的庫(kù)存要減一,北京西到保定東、石家莊、鄭州、武漢、長(zhǎng)沙、廣州、虎門等15個(gè)站臺(tái)的商品庫(kù)存也要減1,保定東到石家莊、鄭州、武漢、長(zhǎng)沙、廣州、虎門、深圳北等15個(gè)站臺(tái)的商品庫(kù)存要減1……總計(jì)要減庫(kù)存的商品數(shù)是16+15+14+…+1=120個(gè)。
想象一下,8萬(wàn)人舉著錢對(duì)你高喊:賣給我。你好不容易在錢堆里找到一只手,拿了他的錢,轉(zhuǎn)身找120個(gè)同事,告訴他們減庫(kù)存,而這120個(gè)同事也和你一樣被8萬(wàn)人圍著;也和你一樣,每賣出一個(gè)商品要找?guī)资畟€(gè)人減庫(kù)存……這就是12306動(dòng)態(tài)庫(kù)存的變態(tài)之處。比你平時(shí)買東西的任何網(wǎng)站的庫(kù)存機(jī)制都復(fù)雜幾十上百倍。
再說(shuō)一下?lián)屍辈寮?,防機(jī)器人搶票,也不是加個(gè)圖片驗(yàn)證碼那么簡(jiǎn)單。驗(yàn)證碼設(shè)置得復(fù)雜一點(diǎn)吧,人們要噴:這只是便宜大學(xué)生和辦公室白領(lǐng),農(nóng)民工連26個(gè)字母都認(rèn)不齊,怎么搞?搞動(dòng)畫驗(yàn)證碼吧,也有人噴:視力不好的人怎么辦?最后驗(yàn)證碼搞得太簡(jiǎn)單了,皆大歡喜了,其實(shí)最高興的是開(kāi)發(fā)搶票插件的公司。
以上討論只是把12306當(dāng)成和淘寶一樣沒(méi)有歷史包袱從零起步的交易系統(tǒng),實(shí)際上,它不是,它后面的票池,還有電話售票、火車站售票、代售點(diǎn)售票等多個(gè)傳統(tǒng)渠道要服務(wù)。除了客運(yùn)服務(wù),12306還有全國(guó)最大(很可能也是全球最大)的大宗物資貨運(yùn)系統(tǒng)。
架空政策(包括定價(jià)政策、警方打擊黃牛政策、身份驗(yàn)證政策)談技術(shù),是不可能解決春運(yùn)搶票困局的,要想讓春運(yùn)的時(shí)候每個(gè)人在12306搶票都毫無(wú)擁擠感(但不一定能搶到票,鐵路運(yùn)力擺在那),那就是逼著12306買一大堆服務(wù)器對(duì)付春運(yùn),春運(yùn)過(guò)去后,成為跟amazon一樣牛逼的云計(jì)算服務(wù)商。和逼北京修一條10車道的高速公路去八達(dá)嶺長(zhǎng)城一個(gè)道理。
目前的12306技術(shù)上是還有問(wèn)題,比如,搶票高峰,輸入個(gè)身份證號(hào)和圖片驗(yàn)證碼都卡得要死(本人親測(cè)),服務(wù)器端繁忙,你瀏覽器端卡什么呀?
但人家在進(jìn)步。相信2015年春運(yùn)的時(shí)候,技術(shù)已經(jīng)不再是一票難求的主要問(wèn)題。在鐵路運(yùn)力不可能神速增加的情況下,要做到春運(yùn)更公平地買票,需要靠政策調(diào)整。
以上就是學(xué)習(xí)啦網(wǎng)帶給大家不一樣的精彩。想要了解更多精彩的朋友可以持續(xù)關(guān)注學(xué)習(xí)啦網(wǎng),我們將會(huì)為你奉上最全最新鮮的內(nèi)容哦! 學(xué)習(xí)啦,因你而精彩。