2013年雙十一這一天,淘寶交易額達(dá)350.19億,比2012年的191億增加了83%,共成交1.71億筆,產(chǎn)生1.67億包裹。很多人不禁想知道熱鬧的“雙十一”背后,隱藏著哪些復(fù)雜技術(shù)?
1.分布式互聯(lián)網(wǎng)應(yīng)用——高可用、高可靠、高可擴(kuò)展
你也許不知道,即便是你在平日里隨便一次訪問(wèn)淘寶,所涉及到的技術(shù)和系統(tǒng)規(guī)模都是無(wú)法想象的,凝聚著同樣難以想象的智慧與勞動(dòng)。比如你發(fā)現(xiàn)天冷了,想上淘寶給父母買幾件毛衣,你打開了www.taobao.com。這時(shí)你的瀏覽器首先將域名解析成實(shí)際ip地址,并從較快的一個(gè)入口登入,你的淘寶首頁(yè)會(huì)被淘寶LVS負(fù)載均衡系統(tǒng)分配給數(shù)千臺(tái)服務(wù)器集群中的某一臺(tái)完成。下一步瀏覽器讀取緩存Tair中的店鋪介紹、寶貝詳情等內(nèi)容,加載好后,這時(shí)你在搜索框中輸入“毛衣”二字并回車,后端的搜索服務(wù)器集群根據(jù)眾多復(fù)雜的條件列出搜索結(jié)果,然后你開始逐一瀏覽寶貝,無(wú)論你是否交易,你的這些訪問(wèn)行為被系統(tǒng)忠實(shí)地記錄下來(lái),淘寶TimeTunnel可以快速傳輸同步這些日志數(shù)據(jù),并交給一個(gè)叫云梯的、由數(shù)萬(wàn)臺(tái)服務(wù)器組成的數(shù)據(jù)挖掘系統(tǒng)進(jìn)行分析和報(bào)表生成。
淘寶九年交易額過(guò)萬(wàn)億,注冊(cè)用戶逾2億,賣家數(shù)量數(shù)百萬(wàn),商品數(shù)目更加多如繁星,如何在海量并發(fā)、海量數(shù)據(jù)讀寫、分散交易、銀行同步結(jié)算及業(yè)務(wù)高速發(fā)展等苛刻條件下,建設(shè)出幾億用戶可用、訪問(wèn)高峰持續(xù)可靠服務(wù)、適應(yīng)業(yè)務(wù)快速擴(kuò)展的IT支撐系統(tǒng),確實(shí)是一道不折不扣的世界難題。淘寶敢于連續(xù)幾年通過(guò)雙十一促銷活動(dòng)大秀實(shí)力,引世人側(cè)目,其IT技術(shù)不可謂不獨(dú)步全球,已成為其核心競(jìng)爭(zhēng)力。本文無(wú)意在此深入討論其IT架構(gòu),只是疏淺地從以下幾個(gè)維度對(duì)淘寶網(wǎng)分布式互聯(lián)網(wǎng)應(yīng)用管中窺豹: 高可用——采用分布式存儲(chǔ)與計(jì)算平臺(tái),應(yīng)用、數(shù)據(jù)庫(kù)進(jìn)行拆分解耦,各系統(tǒng)間采用異步通信Notify,并有效運(yùn)用緩存Tair,保證海量商品、海量并發(fā)、海量讀寫條件下流暢的用戶體驗(yàn);高可靠——完善的細(xì)粒度監(jiān)控與預(yù)警系統(tǒng),確?焖俣ㄎ慌c響應(yīng)系統(tǒng)問(wèn)題,提高系統(tǒng)的穩(wěn)定性,在有限硬件基礎(chǔ)設(shè)施失效的情況下依然可靠提供服務(wù);高可擴(kuò)展(彈性)——應(yīng)用無(wú)狀態(tài)框架(淘寶Session框架)與配置統(tǒng)一管理,實(shí)現(xiàn)集群彈性的伸縮和集群內(nèi)負(fù)載均衡,計(jì)算與存儲(chǔ)資源視業(yè)務(wù)情況可做靈活支撐;高競(jìng)爭(zhēng)力——軟硬件去IOE化,硬件采用開放的X86服務(wù)器平臺(tái),開放選型,優(yōu)選研發(fā)實(shí)力強(qiáng)、產(chǎn)品性能好以及交付服務(wù)快的供應(yīng)商,華為服務(wù)器走向前臺(tái)。
2.性能和成本的平衡
為了在軟硬件投入上保持性能與成本之間的平衡,經(jīng)過(guò)多年的籌劃,2012年5月7日,淘寶開始實(shí)行去IOE運(yùn)動(dòng) (I=IBM小型機(jī),O=Oracle數(shù)據(jù)庫(kù),E=EMC2,是數(shù)據(jù)庫(kù)的存儲(chǔ)設(shè)備),軟件完全自主研發(fā)或大量使用開源軟件定制,硬件則使用開放的X86服務(wù)器平臺(tái),并根據(jù)軟件的特點(diǎn)進(jìn)行采購(gòu),做一些定制化的東西。 “我們需要高性能,但成本需要控制在合理的范圍內(nèi),不能太過(guò)分。”淘寶核心系統(tǒng)數(shù)據(jù)庫(kù)組高級(jí)技術(shù)專家在接受媒體采訪時(shí)表示。伴隨著這場(chǎng)運(yùn)動(dòng)的深入展開,I、O、E相繼遭遇了滑鐵盧,而在淘寶的數(shù)據(jù)中心里,越來(lái)越多基于X86平臺(tái)、定制服務(wù)器身形開始顯現(xiàn),其中就有相當(dāng)大一部分的服務(wù)器出乎意料、又情理之中地來(lái)自于中國(guó)互聯(lián)網(wǎng)行業(yè)服務(wù)器最大Vendor-華為,“華為服務(wù)器在線故障率低,對(duì)于軟件架構(gòu)的可靠性起了強(qiáng)化作用。”專家說(shuō)道。
3.雙十一勝利,一整年的勝利
雙十一的活動(dòng),對(duì)于淘寶而言具有雙重意義:為促銷活動(dòng)采購(gòu)?fù)度氲男掠?jì)算資源可以在高峰過(guò)后分配到各個(gè)需要的地方;促銷產(chǎn)生的巨量用戶行為數(shù)據(jù)將對(duì)來(lái)年財(cái)務(wù)、營(yíng)銷、技術(shù)等戰(zhàn)略行決策提供有效的分析資源。
2013年雙十一,6分零7秒成交額超10億,38分零5秒超50億,8小時(shí)42分突破121億,再次超過(guò)去年美國(guó)最大的網(wǎng)上購(gòu)物節(jié)“網(wǎng)上星期一”的120.8億RMB。應(yīng)對(duì)如此高并發(fā)性的分析需求,淘寶目前的準(zhǔn)備主要在于提前做系統(tǒng)清理、硬件臨時(shí)擴(kuò)容、救急方案預(yù)備、數(shù)據(jù)分散化、以及人肉應(yīng)急待命這5各方面。通過(guò)對(duì)往年的情況、用戶消費(fèi)習(xí)慣、搜索習(xí)慣、瀏覽習(xí)慣等的分析,可以對(duì)今年的流量進(jìn)行合理預(yù)估,預(yù)估雙十一當(dāng)天的流量會(huì)出現(xiàn)多少倍的增長(zhǎng),進(jìn)行整體的性能分析,該加服務(wù)器的地方就得加到位,基于此,據(jù)內(nèi)部消息,阿里巴巴已累計(jì)部署了數(shù)萬(wàn)臺(tái)華為服務(wù)器。
當(dāng)訪問(wèn)爆發(fā)期過(guò)去之后,會(huì)有大量的計(jì)算資源剩余,尤其是在增加過(guò)服務(wù)器的環(huán)節(jié)上,那么在訪問(wèn)量集中爆發(fā)過(guò)去之后就需要將這些空余計(jì)算資源調(diào)配到會(huì)產(chǎn)生訪問(wèn)余震的環(huán)節(jié)上,直到整體訪問(wèn)量爆發(fā)過(guò)去之后,再將空余計(jì)算合理的分配到需要的地方。同時(shí),在促銷中會(huì)產(chǎn)生大量的用戶行為數(shù)據(jù),對(duì)這些數(shù)據(jù)的分析可以帶來(lái)意想不到的價(jià)值,從目前看來(lái)這些數(shù)據(jù)對(duì)于財(cái)務(wù)、營(yíng)銷、技術(shù)甚至于每種類型的業(yè)務(wù)都會(huì)有很大幫助,僅從技術(shù)來(lái)講,對(duì)目前的數(shù)據(jù)分析將可以看到當(dāng)初的準(zhǔn)備工作是否的當(dāng),服務(wù)器資源分配的是否合適,各個(gè)關(guān)鍵環(huán)節(jié)能夠承載多大的業(yè)務(wù)壓力,遇到應(yīng)急事件需要如何解決的寶貴經(jīng)驗(yàn)等等。
每年雙十一的成績(jī),是無(wú)數(shù)程序員、架構(gòu)師多少年付出極大艱辛的成果,一天成功的背后,更是半年前、一年前這些程序員默默無(wú)聞的努力,他們才是淘寶“雙十一”背后真正的主角,這場(chǎng)勝利的締造者。