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