淘宝网的技术发展史(一)——个人网站时代
《天下網(wǎng)商·經(jīng)理人》十月刊開始將連載系列文章《淘寶網(wǎng)的技術(shù)發(fā)展史》,為讀者描述淘寶網(wǎng)在整個(gè)發(fā)展過程中,所有的主動和被動的技術(shù)變革的前因后果。
文/淘寶技術(shù)大學(xué)培訓(xùn)專家 子柳??
前言
11月11日,這個(gè)棍子最多的日子被網(wǎng)民自我調(diào)侃變成了一個(gè)節(jié)日——“光棍節(jié)”。而淘寶網(wǎng)又用瘋狂的折扣促銷給它賦予了另外一個(gè)意義——“購物狂歡節(jié)”。2011年11月11日這一天,淘寶商城(現(xiàn)天貓商城)與淘寶網(wǎng)交易額之和突破52億元,這個(gè)數(shù)字是“購物天堂”香港一天零售總額8.5億元的6倍。
網(wǎng)民感受到的是瘋搶的喜悅,而網(wǎng)站的技術(shù)人員感受到的卻是“壓力山大”。就如同你家辦酒席,宴請左鄰右舍,這個(gè)辦起來容易。倘若宴請十里八鄉(xiāng)所有的人,吃飯的人自然開心,但卻不是一般人家能夠辦得起來的。能辦得起來如此盛宴者,需要強(qiáng)大的財(cái)力物力、組織能力、技術(shù)實(shí)力,例如做這么多菜,你的炒鍋一定要是“分布式的”、“可復(fù)制的”、“可擴(kuò)展的”,洗菜切菜要有“工作流引擎”,上菜的路徑要用圖論計(jì)算出來,甚至連廚房的下水道都要重新設(shè)計(jì)。
淘寶能夠舉辦如此盛宴,網(wǎng)站的技術(shù)實(shí)力可見一斑。淘寶網(wǎng)擁有全國最大的hadoop分布式計(jì)算集群之一,日新增數(shù)據(jù)50TB,有40PB海量數(shù)據(jù)存儲。分布在全國各地80多個(gè)節(jié)點(diǎn)的CDN網(wǎng)絡(luò),支持的流量超過800Gbps。淘寶的搜索引擎能夠?qū)?shù)十億的商品數(shù)據(jù)進(jìn)行實(shí)時(shí)搜索,另外還擁有自主研發(fā)的文件存儲系統(tǒng)和緩存系統(tǒng),以及java中間件和消息中間件系統(tǒng),這一切組成了一個(gè)龐大的電子商務(wù)操作系統(tǒng)。
另外從商業(yè)數(shù)據(jù)上來看,Amazon的財(cái)報(bào)顯示其2011年完成了大約 480億美金的交易額。eBay2011年財(cái)報(bào)顯示其全年完成了大約600億美金的交易額(不包括其獨(dú)立的汽車交易平臺交易額)。不管從交易額、商品數(shù)量還是同比增速等指標(biāo)上看,淘寶網(wǎng)均遠(yuǎn)超于此,是目前全球最大的電子商務(wù)平臺。(筆者注:由于淘寶非上市公司,未公布2011年業(yè)績,以上內(nèi)容來自淘寶網(wǎng)技術(shù)副總裁行癲的微博)
為了有個(gè)更直觀的對比,我們說一個(gè)同行,它在2011年光棍節(jié)之前做促銷,流量上去之后,達(dá)到12Gbps,達(dá)到了極限,網(wǎng)站幾乎掛掉,用戶無法下訂單。而淘寶網(wǎng)光棍節(jié)當(dāng)天網(wǎng)絡(luò)的流量最高達(dá)到800多Gbps,帶給各家銀行和快遞公司的流量也讓他們壓力山大,如臨大敵。另外如果你在網(wǎng)上購買過火車票的話,更能體會到網(wǎng)站能支持多大的流量有多重要。但這不是一朝一夕做出來的,也不是有錢就能辦到的。
以上對比的這些網(wǎng)站,也許讀者很容易就猜到是哪一家,這里拿出來作對比,絕對沒有嘲笑人家的意思,采用通常的網(wǎng)站技術(shù)方案,能做到這種程度已經(jīng)算不錯(cuò)了。
任何網(wǎng)站的發(fā)展都不是一蹴而就的,處在什么樣的階段就采用什么樣的技術(shù)。在發(fā)展的過程中網(wǎng)站會遇到各種各樣的問題和業(yè)務(wù)帶來的壓力,正是這些推動著技術(shù)的進(jìn)步和發(fā)展,而技術(shù)的發(fā)展又會反過來促進(jìn)業(yè)務(wù)的更大提升。二者互為因果,相互促進(jìn)。如今淘寶網(wǎng)的流量已經(jīng)是全球排名第12、國內(nèi)排名第3。淘寶網(wǎng)的系統(tǒng)也從使用一臺服務(wù)器,到采用萬臺以上的服務(wù)器。
本文就為大家描述淘寶網(wǎng)在整個(gè)發(fā)展過程中,所有的主動和被動的技術(shù)變革的前因后果。淘寶網(wǎng)的出身,網(wǎng)上有非常多的傳說,下面我們就從它的出生開始講起。
出生:買一個(gè)來
2003年4月7日,馬云,在杭州成立了一個(gè)“神秘的組織”。他叫來十位員工,要他們簽了一份協(xié)議,這份協(xié)議要求他們立刻離開阿里巴巴,去做一個(gè)神秘的項(xiàng)目。這個(gè)項(xiàng)目要求絕對保密,老馬戲稱“連說夢話被老婆聽到都不行,誰要是透漏出去,我將追殺到天涯海角”。這份協(xié)議是英文版的,匆忙之間,大多數(shù)人根本來不及看懂,但出于對老馬的信任,都卷起鋪蓋離開了阿里巴巴。
他們?nèi)チ艘粋€(gè)神秘的據(jù)點(diǎn)——湖畔花園小區(qū)的一套未裝修的房子里,房子的主人是馬云。這伙人剛進(jìn)去的時(shí)候,馬云給他們布置了一個(gè)任務(wù),就是在最短的時(shí)間內(nèi)做出一個(gè)個(gè)人對個(gè)人(C2C)的商品交易網(wǎng)站。
先介紹一下這個(gè)創(chuàng)業(yè)團(tuán)隊(duì)的成員:三個(gè)開發(fā)工程師(花名虛竹、三豐、多隆)、一個(gè)UED(花名二當(dāng)家)、三個(gè)運(yùn)營(花名小寶、阿珂、破天)、一個(gè)經(jīng)理(花名財(cái)神),還有就是馬云和他的秘書。當(dāng)時(shí)對整個(gè)項(xiàng)目組來說壓力最大的就是時(shí)間,怎么在最短的時(shí)間內(nèi)把一個(gè)從來就沒有的網(wǎng)站從零開始建立起來?
了解淘寶歷史的人都知道淘寶是在2003年5月10日上線的,這之間只有一個(gè)月。要是你在這個(gè)團(tuán)隊(duì)里,你怎么做?我們的答案就是:買一個(gè)來。
買一個(gè)網(wǎng)站顯然比做一個(gè)網(wǎng)站要省事一些,但是他們的夢想可不是做一個(gè)小網(wǎng)站而已,要做大,就不是隨便買個(gè)就行的,要有比較低的維護(hù)成本,要能夠方便地?cái)U(kuò)展和二次開發(fā)。
那接下來就是第二個(gè)問題:買一個(gè)什么樣的網(wǎng)站?答案是:輕量一點(diǎn)的,簡單一點(diǎn)的。于是買了這樣一個(gè)架構(gòu)的網(wǎng)站:LAMP(linux+apache+mySQL+PHP)。這個(gè)直到現(xiàn)在還是一個(gè)很常用的網(wǎng)站架構(gòu)模型。這種架構(gòu)的優(yōu)點(diǎn)是:無需編譯,發(fā)布快速,PHP功能強(qiáng)大,能做從頁面渲染到數(shù)據(jù)訪問所有的事情,而且用到的技術(shù)都是開源的,免費(fèi)。
當(dāng)時(shí)我們是從一個(gè)美國人那里買來的一個(gè)網(wǎng)站系統(tǒng),這個(gè)系統(tǒng)的名字叫做PHP Auction,他們的官方網(wǎng)站是http://www.phpauction.net。這個(gè)名字很直白,一眼就能看出來這個(gè)系統(tǒng)是用什么語言做的、是干什么用的。PHP Auction有好幾個(gè)版本,我們買的是最高版的,功能比較多,而且最重要的是對方提供了源代碼。最高版比較貴,當(dāng)時(shí)花了我們2000美金。
要注意的是,買來之后這個(gè)網(wǎng)站系統(tǒng)是不能直接就用的,需要很多本地化的修改,例如頁面模板改得漂亮一點(diǎn),頁頭頁腳加上自己的站點(diǎn)簡介等,其中最有技術(shù)含量的是對數(shù)據(jù)庫進(jìn)行了一個(gè)修改。原來是從一個(gè)數(shù)據(jù)庫進(jìn)行所有的讀寫操作,拿過來之后多隆把它給拆分成一個(gè)主庫、兩個(gè)從庫,讀寫分離。這么做的好處有幾點(diǎn):存儲容量增加了,有了備份,使得安全性增加了,讀寫分離使得讀寫效率提升了。(見下圖)
其中pear DB是一個(gè)PHP模塊,負(fù)責(zé)數(shù)據(jù)訪問層。另外也用開源的論壇系統(tǒng)PHPBB( http://www.phpbbchina.com )搭建了一個(gè)小的論壇社區(qū),虛竹負(fù)責(zé)機(jī)器采購、配置、架設(shè)等,三豐和多隆負(fù)責(zé)編碼,他們把交易系統(tǒng)和論壇系統(tǒng)的用戶信息打通,給運(yùn)營人員開發(fā)出后臺管理(admin系統(tǒng))的功能,把交易類型從只有拍賣這一種增加為拍賣、一口價(jià)、求購商品、海報(bào)商品(意思是還沒推出的商品,先掛個(gè)海報(bào)出來)這四種。
PHP Auction只有拍賣的交易,Auction即拍賣的意思。行癲在微博中提到:今天eBay所有交易中拍賣交易仍然占了40%,而在中國,此種模式在淘寶幾乎從一開始就未能占據(jù)優(yōu)勢,如今在主流的交易中幾乎可以忽略不計(jì)。背后的原因一直令人費(fèi)解。我大致可以給出其中一種解釋:eBay基本在發(fā)達(dá)國家展開業(yè)務(wù),制造業(yè)外包后,電子商務(wù)的基本群體大多只能表現(xiàn)為零散的個(gè)體間交易。
在經(jīng)歷了另外一些有趣的事情之后,網(wǎng)站開始上線運(yùn)行了。
運(yùn)行:個(gè)人網(wǎng)站
在接下來的大半年時(shí)間里,這個(gè)網(wǎng)站迅速顯示出了它的生機(jī)。這里有必要提一下當(dāng)時(shí)的市場環(huán)境,非典(SARS)的肆虐使得大家都不敢出門,尤其是去商場之類人多的地方。
另外在神州大地上最早出現(xiàn)的C2C網(wǎng)站易趣也正忙得不亦樂乎。2002年3月,eBay以3000萬美元收購了易趣公司33%的股份,2003年6月以1.5億美元收購了易趣公司剩余的67%股份。
當(dāng)時(shí)淘寶網(wǎng)允許買賣雙方留下聯(lián)系方式,允許同城交易,整個(gè)操作過程簡單輕松。而eBay為了收取交易傭金,是禁止這么做的,這必然增加了交易過程中的難度。而且eBay為了全球統(tǒng)一,把易趣原來的系統(tǒng)替換成了美國eBay的系統(tǒng),用戶體驗(yàn)一下子全變了,操作起來非常麻煩,這等于是把積累的用戶拱手送給了淘寶。
為了不引起eBay的注意,淘寶網(wǎng)在2003年里一直聲稱自己是一個(gè)“個(gè)人網(wǎng)站”。由于這個(gè)創(chuàng)業(yè)團(tuán)隊(duì)強(qiáng)大的市場開拓和運(yùn)營能力,淘寶網(wǎng)發(fā)展非常迅猛,2003年底,最高每日31萬PV,從5月到年底成交額4000萬。這沒有引起eBay的注意,卻引起了阿里巴巴內(nèi)部很多員工的注意,他們覺得這個(gè)網(wǎng)站以后會成為阿里巴巴強(qiáng)勁的對手。甚至有人在內(nèi)網(wǎng)發(fā)帖,忠告管理層要警惕這個(gè)剛剛起步的網(wǎng)站,但管理層似乎無動于衷。
在市場和運(yùn)營的后方,淘寶網(wǎng)的技術(shù)團(tuán)隊(duì)也在快速做著系統(tǒng)的改進(jìn)和創(chuàng)新。這里插一個(gè)有趣的故事:eBay和易趣早期都有員工在論壇上響應(yīng)用戶的需求,eBay的論壇用粉紅色背景來區(qū)分員工的發(fā)言,易趣的員工在論壇上昵稱都選各種豆豆,例如黃豆豆、蠶豆豆等。淘寶在討論運(yùn)營策略的時(shí)候提到這個(gè)問題,要求所有的員工都去論壇上回答用戶的問題。最早回答問題的任務(wù)落在小寶頭上,那我們用什么名字好呢?
“淘淘”?“寶寶”?小寶都不滿意,太女性化了。討論了很久之后,小寶靈光乍現(xiàn),干脆取個(gè)名字叫“小寶”吧,小寶帶七個(gè)老婆來開店,迎接各位客官,很有故事性。于是很多武俠小說中的人物開始在論壇中行俠仗義,這些昵稱下面標(biāo)注著“淘寶店小二”,他們回答各種各樣的問題,快速響應(yīng)用戶的各種需求。如果是技術(shù)上能解決的,幾個(gè)人商量一下,馬上就開發(fā)、測試、發(fā)布上線。反過來對比一下,易趣被eBay收購之后,系統(tǒng)更換成了全球通用的版本,響應(yīng)用戶的一個(gè)需求需要層層審批,反應(yīng)速度自然慢了下來。
當(dāng)時(shí)淘寶第一個(gè)版本的系統(tǒng)里面已經(jīng)包含了商品發(fā)布、管理、搜索、商品詳情、出價(jià)購買、評價(jià)投訴、我的淘寶這些功能。(現(xiàn)在主流程中也是這些模塊。在2003年10月增加了一個(gè)功能節(jié)點(diǎn):“安全交易”,這個(gè)是支付寶的雛形。)
隨著用戶需求和流量的不斷增長,系統(tǒng)上面做了很多的日常改進(jìn),服務(wù)器由最初的一臺變成了三臺,一臺負(fù)責(zé)發(fā)送email、一臺負(fù)責(zé)運(yùn)行數(shù)據(jù)庫、一臺負(fù)責(zé)運(yùn)行web App。
過了一段時(shí)間之后,商品搜索的功能占用數(shù)據(jù)庫資源太大了,又從阿里巴巴中文站搬過來他們的搜索引擎iSearch,起初iSearch索引的文件放在硬盤上,隨著數(shù)據(jù)量的增長,又采購了NetApp服務(wù)器放置iSearch。
如此快節(jié)奏的工作,其實(shí)大家都累得不行,有人就提議大家隨時(shí)隨地地鍛煉身體。可是外面SARS橫行,在一個(gè)一百多方的房子里,怎么鍛煉呢?高挑美女阿珂提議大家練習(xí)提臀操,這個(gè)建議遭到男士的一致反對,后來虛竹就教大家練習(xí)倒立,這個(gè)大家都能接受。于是這個(gè)倒立的傳統(tǒng)一直延續(xù)至今,和花名文化、武俠文化一并傳承了下來。
隨著訪問量和數(shù)據(jù)量的飛速上漲,問題很快就出來了,第一個(gè)問題出現(xiàn)在數(shù)據(jù)庫上。mySQL當(dāng)時(shí)是第4版的,我們用的是默認(rèn)的存儲引擎myisam,這種類型讀數(shù)據(jù)的時(shí)候會把表鎖住,我們知道Oracle在寫數(shù)據(jù)的時(shí)候會有行鎖,讀數(shù)據(jù)的時(shí)候是沒有的,尤其是主庫往從庫上面寫數(shù)據(jù)的時(shí)候,會對主庫產(chǎn)生大量的讀操作,使得主庫性能急劇下降。這樣在高訪問量的時(shí)候,數(shù)據(jù)庫就撐不住了。另外當(dāng)年的mySQL不比如今的mySQL,在數(shù)據(jù)的容量和安全性方面也有很多先天的不足(和Oracle相比)。
淘寶網(wǎng)作為個(gè)人網(wǎng)站發(fā)展的時(shí)間其實(shí)并不長,很快地,隨著其知名度的飛升,它也從個(gè)人網(wǎng)站開始了轉(zhuǎn)型。已經(jīng)撐不住的mySQL,被替換成了Oracle,開啟了淘寶技術(shù)的另一個(gè)時(shí)代。
http://i.wshang.com/?p=17019
總結(jié)
以上是生活随笔為你收集整理的淘宝网的技术发展史(一)——个人网站时代的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win8消费者预览版下载地址 包含中文
- 下一篇: 淘宝网的技术发展史(二) ——Oracl