阿里“救火”程序猿講述淘寶技術(shù)進(jìn)化史
摘要: 馬云爸爸曾說(shuō)過(guò),正是因?yàn)樽约翰欢夹g(shù),所以阿里的技術(shù)才強(qiáng),“因?yàn)槲也欢?,我才?huì)好奇敬仰地看著他們說(shuō),他們?cè)趺凑f(shuō)就怎么做。” 據(jù)說(shuō)淘寶最早的版本,
馬云爸爸曾說(shuō)過(guò),正是因?yàn)樽约翰欢夹g(shù),所以阿里的技術(shù)才強(qiáng),“因?yàn)槲也欢也艜?huì)好奇敬仰地看著他們說(shuō),他們?cè)趺凑f(shuō)就怎么做。”
據(jù)說(shuō)淘寶最早的版本,就是阿里小二拿了馬爸爸的一張信用卡去加拿大買了一個(gè)開源的系統(tǒng),當(dāng)時(shí)的淘寶還只是個(gè)社區(qū)。
不過(guò),馬云說(shuō)的很輕巧,背后的程序猿卻著實(shí)不輕松。羅馬不是一日建成的,無(wú)論是每年挖空用戶心思、傷透技術(shù)腦筋的“雙11”大考,還是淘寶從PC向移動(dòng)端的轉(zhuǎn)型,對(duì)于程序猿們都是極大的考驗(yàn)。
阿里巴巴集團(tuán)無(wú)線技術(shù)資深總監(jiān)莊卓然(花名:南天)告訴鈦媒體,他自 2009 年加入阿里,在阿里的將近 8 年時(shí)間里,從一線工程師,到帶領(lǐng)整個(gè)技術(shù)團(tuán)隊(duì),再到做產(chǎn)品、做業(yè)務(wù),他成長(zhǎng)的每一個(gè)節(jié)點(diǎn)都與阿里技術(shù)的進(jìn)化史有著很大關(guān)聯(lián),拿他的話說(shuō)就是“臨危受命”。
南天幾天前做了一場(chǎng)有趣的分享,聊了聊八年“救火”史里那些有趣的幕后故事:
程序猿的阿里八年
阿里巴巴集團(tuán)無(wú)線技術(shù)資深總監(jiān)莊卓然(花名:南天)
南天最初是在淘寶負(fù)責(zé)技術(shù)架構(gòu),2011年,“三淘分拆”(淘寶分拆成一淘、淘寶和天貓),他被調(diào)到了天貓,負(fù)責(zé)帶領(lǐng)天貓的產(chǎn)品技術(shù)團(tuán)隊(duì)。
2013年是阿里一個(gè)重要節(jié)點(diǎn)——全面轉(zhuǎn)向無(wú)線。當(dāng)年,無(wú)線業(yè)務(wù)被寄予了很大期望,阿里從各個(gè)BU里抽調(diào)精兵強(qiáng)將組建成無(wú)線事業(yè)部,南天也是在那一年被調(diào)到無(wú)線事業(yè)部,開始負(fù)責(zé)手淘的技術(shù)。
去年,阿里合并了手淘和淘寶,之所以做這樣一個(gè)舉動(dòng),南天也道出了其中的緣由。13年向移動(dòng)化轉(zhuǎn)型的淘寶,其實(shí)是處于一個(gè)非常被動(dòng)的局面下,當(dāng)時(shí)很多的小的移動(dòng)電商規(guī)模已經(jīng)做到了百萬(wàn)量級(jí),當(dāng)時(shí)淘寶想的是先快速的把業(yè)務(wù)搬到移動(dòng)端上,至于移動(dòng)化的電商到底是什么,當(dāng)時(shí)并不明確。
后來(lái),隨著淘寶DAU的不斷攀升,移動(dòng)端的成交量已經(jīng)占到了60%至70%,所以單獨(dú)一批人來(lái)做PC的意義就不是很大了,所以阿里決定不再區(qū)分PC和無(wú)線,將二者合并。目前包括閑魚在內(nèi)的很多阿里系A(chǔ)PP,移動(dòng)基礎(chǔ)設(shè)施都是由南天的所在的團(tuán)隊(duì)提供的。
2016年,南天又兼起了優(yōu)酷團(tuán)隊(duì)的技術(shù)平臺(tái)負(fù)責(zé)人。在他看來(lái),淘寶和優(yōu)酷的業(yè)務(wù)類型是非常像的,本質(zhì)上都是通過(guò)做內(nèi)容的分發(fā),來(lái)撮合供需關(guān)系,只不過(guò)分發(fā)的內(nèi)容會(huì)有所不同。
淘寶的技術(shù)演化之路
淘寶技術(shù)演化之路,放到整個(gè)互聯(lián)網(wǎng)領(lǐng)域去看,是很具有代表性的。目前整個(gè)阿里底層的計(jì)算、存儲(chǔ)等基礎(chǔ)設(shè)施,都是從淘寶這個(gè)體系中慢慢演化出來(lái)的。
2003年,阿里開始做淘寶的第一個(gè)版本,南天聽說(shuō),當(dāng)時(shí)就是阿里小二拿了馬云的一張信用卡去加拿大買了一個(gè)開源的系統(tǒng),這時(shí)候的淘寶還只是一個(gè)社區(qū),就只有一個(gè)十幾個(gè)人的團(tuán)隊(duì)圍繞著這個(gè)開源系統(tǒng)做開發(fā)。
隨著業(yè)務(wù)規(guī)模的快速擴(kuò)大,出現(xiàn)了很多平臺(tái)都面臨過(guò)的問題,存儲(chǔ)、IO環(huán)節(jié)的難題。為了更好地去管理IO、存儲(chǔ)和網(wǎng)絡(luò),阿里做了一個(gè)大的底層的架構(gòu)的改造——把淘寶遷移到JAVA,在南天看來(lái),很多技術(shù)架構(gòu)上的調(diào)整都是圍繞著兩件事情:
第一,當(dāng)業(yè)務(wù)的規(guī)模大到不能通過(guò)簡(jiǎn)單的加機(jī)器的方式去做調(diào)整的時(shí)候,通常就需要去做架構(gòu)的改造。
第二,當(dāng)開發(fā)的規(guī)模大到所有人在一起開發(fā)一個(gè)東西時(shí),會(huì)互相影響的時(shí)候,也需要去做架構(gòu)的改造。
南天在2009年加入淘寶的時(shí)候,整個(gè)淘寶的系統(tǒng)服務(wù)器做了第一次深化。按照他的回憶,“800多人的技術(shù)團(tuán)隊(duì),分不同的研發(fā)小組,有做交易的、做會(huì)員的、做商品的,由于有很多相互疊加的功能,一旦哪一個(gè)應(yīng)用出現(xiàn)了問題,就會(huì)對(duì)所有的模塊產(chǎn)生影響。”
正是因此,當(dāng)時(shí)的淘寶進(jìn)行了SOA改造。SOA的核心,就是把所有業(yè)務(wù)做分層,進(jìn)行垂直的和水平的切分,也是到那一年,才有了淘寶的第一個(gè)雛形。
到了2014年,云時(shí)代開啟。在技術(shù)團(tuán)隊(duì)的工作中有一項(xiàng)重要任務(wù),即每年雙十一的零點(diǎn),都會(huì)為了支撐峰值去加大機(jī)器資源,來(lái)保證在零點(diǎn)能夠抗起一個(gè)比較高的交易量,比如,今年的交易速度就達(dá)到了17.5萬(wàn)每秒。
實(shí)際上,在零點(diǎn)之外的時(shí)間,尤其是下午的時(shí)候,并沒有很多的人流量,這就是造成大量機(jī)器被閑置,產(chǎn)生資源浪費(fèi)的情況。
為了解決這個(gè)問題,阿里開始采取混合云的部署方式,用自己電商集群里的所有資源去抗起交易量。天南舉例說(shuō),設(shè)定一個(gè)幾萬(wàn)每秒的基本成交量,剩下的通過(guò)云計(jì)算的方式彈性的去做資源的補(bǔ)充,這樣,峰值以外的時(shí)間,機(jī)器的資源還可以就可以拿去做其它的事。
從“黑色五分鐘”到1207億的背后
南天說(shuō),2011年到2013年到天貓的這三年,是“幸運(yùn)又悲催”的三年;同時(shí),每年的雙十一都是一次考驗(yàn),而每一次大的改造,都是技術(shù)能力上的一次提升。
2009年雙十一出現(xiàn)的那一年,還沒引起太多人注意,2010年就發(fā)生了很大的變化。這一年,整個(gè)淘系面臨的全線資源枯竭,雙十一當(dāng)天整個(gè)帶寬無(wú)法支持正常運(yùn)作,當(dāng)時(shí)技術(shù)團(tuán)隊(duì)都考慮是不是要關(guān)掉一些省份的訪問,或是把彩色圖片變成黑白圖片。最終還是采取了折衷的辦法,把大圖變成小圖,以支撐讓更多人能夠訪問。
2011年,可能是雙十一最混亂的一年,還出現(xiàn)了著名的“黑色5分鐘”。
每年雙十一,技術(shù)團(tuán)隊(duì)都會(huì)做一個(gè)系統(tǒng)的流量預(yù)估(系統(tǒng)要抗住每秒多少的成交的能力),比如過(guò)了11萬(wàn)筆/秒,系統(tǒng)如果抗不住,就要做一個(gè)自我保護(hù),讓超出11萬(wàn)筆/秒的那些用戶去排隊(duì)。南天說(shuō),雙十一的技術(shù)核心,就是對(duì)系統(tǒng)里每一個(gè)應(yīng)用的服務(wù)能力做一個(gè)精確的評(píng)估,要有一個(gè)很精確的保障機(jī)制。
2009年、2010年被消費(fèi)者廣為詬病的就是,商家都是把價(jià)格抬高后再打折,所以2011年雙十一想要解決的就是價(jià)格的確定性問題。
所以那年雙十一就變成,商家告訴平臺(tái)要打幾折,平臺(tái)根據(jù)原先的價(jià)格數(shù)據(jù)來(lái)通幫商家修改價(jià)格。但是,在零點(diǎn)剛開始售賣的時(shí)候,技術(shù)團(tuán)隊(duì)發(fā)現(xiàn),管理優(yōu)化定價(jià)的系統(tǒng)掛掉了。
“這也是我們雙11每年說(shuō)的,沒有經(jīng)過(guò)雙11考驗(yàn)的系統(tǒng)在我們眼中都是不穩(wěn)定的系統(tǒng),都會(huì)出問題,那是那個(gè)系統(tǒng)第一年的亮相,果然不出所料的掛掉了,任何一個(gè)你擔(dān)心,你沒有去驗(yàn)證的一個(gè)地方往往就會(huì)出問題。”南天笑著說(shuō)。
所以技術(shù)團(tuán)隊(duì)當(dāng)即做了一個(gè)決定,逐個(gè)把價(jià)格刷新到商品庫(kù)里去。但是,預(yù)案的那一行代碼又出現(xiàn)了問題上。
“你把一個(gè)數(shù)據(jù)讀進(jìn)來(lái)做修改,再更新回去,在更新的過(guò)程中,那行對(duì)應(yīng)的接口的就會(huì)由一個(gè)問題,沒有設(shè)置的值默認(rèn)為空。”
這就導(dǎo)致了,價(jià)格改對(duì)了,但是商品的顏色、尺碼卻不匹配了。
于是那一年的雙十一就出現(xiàn)了著名的“黑色五分鐘”,一方面價(jià)格一片糟,有的對(duì)有的錯(cuò);有的價(jià)格好不容易改對(duì),東西也賣出去了,結(jié)果商家這邊卻看不到賣出去的東西是幾碼、什么顏色。
但是有人就提出,打開商家修改后臺(tái)的系統(tǒng)。讓能夠商家能夠自行更改價(jià)格,但南天當(dāng)即反對(duì)。“因?yàn)榻鉀QA問題犯了一個(gè)B的錯(cuò)誤,現(xiàn)在我如果為了解決B的錯(cuò)誤,再把A的問題拿回來(lái),等于今年什么也沒做。”在南天的堅(jiān)持下,差不多在早晨七點(diǎn)左右的時(shí)間,終于恢復(fù)了所有的信息。
那一年還有很多有意思的關(guān)健詞出現(xiàn)——爆倉(cāng)、自燃,“2011年的時(shí)候很多商家打印出貨單,打印機(jī)就自燃起來(lái)了,好幾個(gè)商家發(fā)生這樣的事情。”
2012年,吸取教訓(xùn)的天貓,開始從每年5月31號(hào)就正式立項(xiàng),做雙十一的準(zhǔn)備,在每年的業(yè)務(wù)突破方向上設(shè)立產(chǎn)品,做針對(duì)性的系統(tǒng)架構(gòu)的升級(jí)、改造優(yōu)化。
“有一個(gè)直觀的數(shù)據(jù),比如說(shuō)2011年的時(shí)候,整個(gè)公司準(zhǔn)備雙11的預(yù)案,一共只有20個(gè),預(yù)案代表什么呢,當(dāng)出現(xiàn)A情況,要做什么事情,當(dāng)出現(xiàn)B情況我要做什么事情。但是到2012年的時(shí)候,整個(gè)公司800個(gè)預(yù)案,系統(tǒng)整個(gè)的精細(xì)度已經(jīng)做得非常深了。”
可是,2012年的雙十一又出了問題,阿里內(nèi)部稱之為“最長(zhǎng)的180分鐘”。這一年,商品的數(shù)據(jù)庫(kù)的網(wǎng)卡超出了上限,爆掉了。“那一年已經(jīng)代表了阿里在交易系統(tǒng)上穩(wěn)定性達(dá)到一定水準(zhǔn)了,但問題依然來(lái)了。那真是非常長(zhǎng)的180分鐘,180分鐘振蕩的過(guò)程中產(chǎn)生了一系列的問題。”
伴隨著問題的不斷顯現(xiàn),預(yù)案也逐年增多,2011年20個(gè),2012年800個(gè),2013年到了2300個(gè)。
“這其實(shí)是一個(gè)很恐怖的數(shù)字,因?yàn)樗皇且WC2300條的準(zhǔn)確性,是要保證2300條的排列組合,不是要測(cè)2300次,是要測(cè)2300個(gè)排列組合。”
為了應(yīng)對(duì)這個(gè)問題,技術(shù)團(tuán)隊(duì)想出了一個(gè)辦法,是不是能夠真正的去模擬一下消費(fèi)者在雙十一的那一刻?
于是,那一年技術(shù)團(tuán)隊(duì)花了很多的精力去做全鏈路壓測(cè),模擬所有用戶行為和訪問數(shù)據(jù),然后把這個(gè)數(shù)據(jù)打到系統(tǒng)上,去模擬雙十一那一刻。然后在里面看這個(gè)預(yù)案生不生效,能不能抗得住,這個(gè)系統(tǒng)掛了,那個(gè)系統(tǒng)有沒有問題,整個(gè)的鏈路就有辦法能夠還原和測(cè)試。
“全鏈路壓測(cè)做的事情,對(duì)阿里有著里程碑的意義的一面,意味著我們不再按照說(shuō)這個(gè)事情會(huì)不會(huì)出問題、那個(gè)事情會(huì)不會(huì)出問題,去一點(diǎn)點(diǎn)評(píng)估。而是我們直接模擬那一刻,去看到底哪里出問題,我們?cè)偃バ薷?,這樣的邏輯順了很多。”
在經(jīng)歷了幾年雙十一的南天看來(lái),雙十一對(duì)于阿里來(lái)說(shuō)就是解決兩件事:第一個(gè),系統(tǒng)的伸縮性有沒有上限,是不是能通過(guò)快速的加機(jī)器或者擴(kuò)容,去解決系統(tǒng)容量問題;第二個(gè),所有為系統(tǒng)可能會(huì)發(fā)生的情況做的準(zhǔn)備,是不是都能落實(shí)到確定性的層面上。
但對(duì)于接近上萬(wàn)人的團(tuán)隊(duì),要在每個(gè)點(diǎn)上都保證不出問題“是很難的”,所以全鏈路的壓測(cè)是一個(gè)標(biāo)志性事件,對(duì)于上述兩個(gè)問題有了解。
PC到移動(dòng)端,技術(shù)思路怎么變?
從PC時(shí)代一路走來(lái)的淘寶,曾面臨過(guò)各種的不適應(yīng)。三個(gè)要命的問題:第一個(gè)是網(wǎng)絡(luò)帶寬的問題;第二個(gè),在大規(guī)模的業(yè)務(wù)遷移中所涉及到的架構(gòu)上的改造,第三個(gè),架構(gòu)靈活性上不足。
當(dāng)時(shí),南天面臨的挑戰(zhàn)是,PC時(shí)代的阿里最核心的技術(shù)競(jìng)爭(zhēng)力體現(xiàn)在研發(fā)效率上;但移動(dòng)時(shí)代速度上的優(yōu)勢(shì)變的不奏效了,APP必須先要搞定“用戶安裝”。
南天和他的團(tuán)隊(duì)把客戶端版本——“手機(jī)淘寶”分為兩個(gè)時(shí)代:APP 1.0 和 APP 2.0。
APP1.0時(shí)期解決的是便捷性問題,“當(dāng)時(shí)的版本除了搜索下單,什么都沒有。PC時(shí)代一個(gè)生態(tài)屬性的電商平臺(tái),退化成了一個(gè)工具”,天南這樣說(shuō)。這讓阿里的很多業(yè)務(wù)都無(wú)法得到很好的體現(xiàn),這讓產(chǎn)品升級(jí)就變的勢(shì)在必行。
“跟PC時(shí)代不同,APP的孤島效應(yīng)非常明顯”,這是阿里的技術(shù)團(tuán)隊(duì)把所有功能都聚集在一個(gè)APP中的出發(fā)點(diǎn)。
電商相比社交還是低頻的,所以需要把所有跟生活消費(fèi)有關(guān)的東西,放到一個(gè)APP里去,讓它能夠產(chǎn)生更多的業(yè)務(wù)上的協(xié)同效應(yīng),通過(guò)更多的低頻的業(yè)務(wù)的組合去打造一個(gè)高頻的入口,這就有了手淘的2.0版本。
過(guò)去電商講究的是效率,這是淘寶早些年一直在追求的。但是平臺(tái)規(guī)模上升到超過(guò)4億月活躍用戶的時(shí)候,留存就變的更為重要。淘寶的思路變成了——從 save time 到 kill time,用內(nèi)容去拉動(dòng)銷售。
大批垂直電商平臺(tái)的出現(xiàn),也在不斷蠶食淘寶的領(lǐng)土,所以,淘寶也在嘗試去做大平臺(tái)上的“小而美”。比如,淘寶讓個(gè)人商家可以在自己私域空間來(lái)去運(yùn)營(yíng)自己粉絲,提供給他們不同的工具,來(lái)幫助商家建立起與粉絲的連接,最終拉動(dòng)銷售。
而做社區(qū)的邏輯是,在移動(dòng)場(chǎng)景下,用戶可以隨時(shí)在線,這意味著,可以通過(guò)增加一些人和人之間的弱連接,來(lái)使得場(chǎng)景中人和人之間的連接屬性增強(qiáng),最終的目的也是為了讓用戶kill time。
移動(dòng)場(chǎng)景帶來(lái)的另一個(gè)變化是,屏幕越來(lái)越小。在移動(dòng)場(chǎng)景下,屏幕變小,人工能夠運(yùn)營(yíng)的東西十分有限,而機(jī)器學(xué)習(xí)和人工智能就成了唯一出路。
人工智能在淘寶上有兩個(gè)典型的應(yīng)用場(chǎng)景。
第一個(gè)是搜索和推薦。
比如手淘上的“有好貨”,達(dá)人和買手挑選他們認(rèn)為好的東西,放到這個(gè)商品庫(kù)里,再根據(jù)用戶的興趣圖譜做推薦。這個(gè)模塊的入口圖,每個(gè)用戶看到的都不一樣,用戶看到的圖片都是“有好貨”里跟自己相關(guān)度最高的商品。
第二個(gè),就是“問大家”——很多用戶都用過(guò)這一功能。
提一個(gè)問題給買過(guò)這個(gè)商品的人,誰(shuí)能收到,誰(shuí)收不到,都是通過(guò)算法去完成,讓問題可以給到一個(gè)既樂意回答、又沒有被過(guò)度騷擾的買家。“問大家”還會(huì)通過(guò)機(jī)器學(xué)習(xí)的方式,把大致相同的問題進(jìn)行歸類,來(lái)降低提問量。
在南天看來(lái),只要是作分發(fā)的APP,都會(huì)經(jīng)歷內(nèi)容化、社區(qū)化和智能化這三種形態(tài)。而從PC到互聯(lián)網(wǎng),從圖文再到視頻,每一次用戶觸點(diǎn)技術(shù)發(fā)生變革的背后,本質(zhì)都在于信息組織和分發(fā)的方式發(fā)生了變化。在天南看來(lái),這個(gè)過(guò)程“和媒體變化的過(guò)程類似,從最早的文本到圖片到視頻,到今年火爆的直播,是很明顯的一個(gè)演變,也就是從一維到二維,未來(lái)一定會(huì)進(jìn)入到三維的時(shí)代。”
但未來(lái)的內(nèi)容形態(tài)到底是不是VR?需要一個(gè)很長(zhǎng)的時(shí)間周期驗(yàn)證,而阿里的技術(shù)團(tuán)隊(duì)正在嘗試通過(guò) Buy+ 產(chǎn)品去驗(yàn)證。
責(zé)任編輯:fl
(原標(biāo)題:鈦媒體)
查看心情排行你看到此篇文章的感受是:
版權(quán)聲明:
1.凡本網(wǎng)注明“來(lái)源:駐馬店網(wǎng)”的所有作品,均為本網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)書面授權(quán)不得轉(zhuǎn)載、摘編或利用其他方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:駐馬店網(wǎng)”。任何組織、平臺(tái)和個(gè)人,不得侵犯本網(wǎng)應(yīng)有權(quán)益,否則,一經(jīng)發(fā)現(xiàn),本網(wǎng)將授權(quán)常年法律顧問予以追究侵權(quán)者的法律責(zé)任。
駐馬店日?qǐng)?bào)報(bào)業(yè)集團(tuán)法律顧問單位:上海市匯業(yè)(武漢)律師事務(wù)所
首席法律顧問:馮程斌律師
2.凡本網(wǎng)注明“來(lái)源:XXX(非駐馬店網(wǎng))”的作品,均轉(zhuǎn)載自其他媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如其他個(gè)人、媒體、網(wǎng)站、團(tuán)體從本網(wǎng)下載使用,必須保留本網(wǎng)站注明的“稿件來(lái)源”,并自負(fù)相關(guān)法律責(zé)任,否則本網(wǎng)將追究其相關(guān)法律責(zé)任。
3.如果您發(fā)現(xiàn)本網(wǎng)站上有侵犯您的知識(shí)產(chǎn)權(quán)的作品,請(qǐng)與我們?nèi)〉寐?lián)系,我們會(huì)及時(shí)修改或刪除。