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