天天看點

淘寶技術這十年(淘寶技術大學校長解密淘寶十年)

編輯推薦

√有熠熠生輝的技術變遷  

√有飽含智慧的産品演進

√有叱咤風雲的牛人生涯

 √有令人捧腹的圈内趣事

無論你是程式員、架構師、産品經理還是運維人員,甚至隻要你身處IT圈,這本書都有無窮無盡的 看點,讓你大呼過瘾之餘,深受啟發,進而陷入沉思,不由開始細數自己所在公司的技術發展曆程……

内容提要

任何網站的發展都不是一蹴而就的。它在發展過程中會遇到各種各樣的問題和業務帶來的壓力。正是這些問題和壓力推動着技術的進步和發展,而技術的發展反過來又會促進業務的更大提升。如今淘寶網的流量排名已是全球前15名、國内前3名,其系統伺服器也從一台發展到萬台以上。

本書從工程師的角度講述淘寶這個超大規模網際網路系統的成長曆程,及其所有主動和被動的技術變革的前因後果。書中有幕後故事、産品經驗、架構演進、技術啟蒙,也有大牛成長、業内八卦、失敗案例、勵志故事。全書文風流暢,有技術人員特有的幽默感;内容積極正面,有現場感,全部是作者親身經曆。

目錄

第0章 引言:光棍節的狂歡 / 1

淘寶網不就是一個網站嗎?是的,但淘寶網不是一個簡單的網站,它的規模排在全球前十幾名,頂尖的網站需要頂尖的技術作為支撐。在使用者享受淘寶的樂趣的背後,有哪些神秘的技術在支撐它呢?

第1章 個人網站 / 13

建立一個小小的網站需要什麼技術?在群敵環伺的狀況下怎麼走出網站的第一步?淘寶網獨特的文化和價值觀又是怎麼形成的?本章試圖給你一個解讀。

LAMP架構的網站 / 14

武俠和倒立文化的起源 / 20

第2章 個人網站的更新 / 23

小網站都想變大,變大總會遇到成長的煩惱,淘寶網的青春期有哪些煩心事?淘寶網的工程師用什麼思路來解決遇到的問題?在解決問題之餘,他們又用了哪些創新的手段來超越競争對手?

資料庫從mySQL到Oracle / 25

支付手段的創新——支付寶 / 28

交流方式的創新——淘寶旺旺 / 29

第3章 企業級Java網站 / 33

給一個網站更換開發語言,這種事情想想都恐怖,淘寶網在2004年就從PHP語言轉換成了Java語言,這是怎麼做到的?一個企業級的Java系統應該采用什麼樣的架構?歸納網站遇到的問題,主要是對性能、容量和成本的控制,這有哪些通用的解決方案?在技術實力得到提升之後,淘寶網的哪些業務有了突飛猛進的發展?哪些業務又會遇到技術的障礙?

脫胎換骨的更新——更換開發語言 / 34

堅若磐石——圍繞性能、容量和成本的進化 / 41

第4章 創造技術 / 33

用錢能解決的問題都不是問題,我們花錢可以購買更好的機器和更好的服務。但當你變成業内最強之後,你的問題就會獨特到沒有人碰到過,這就意味着你必須自己動手解決問題。幸運的是,淘寶網的發展很快,不幸的是,淘寶網遇到了前所未有的問題。于是,淘寶網被迫開始走向了技術創新的道路。而技術的創新和業務的創新到底又是誰推動了誰?

淘寶檔案系統——TFS / 53

淘寶KV緩存系統——Tair / 64

第5章 分布式電子商務作業系統 / 77

在飛速發展的背後,隐患已經埋下。在技術架構的制約下,團隊協作越來越艱難,代碼越來越臃腫,開發的效率越來越低,新業務的需求越來越多,老業務的壓力眼看就要超過系統的容量了。這時候,架構該做怎樣的調整?又一次的脫胎換骨,欲火重生。重生後,在分布式的電子商務作業系統下,我們才敢舉辦一次又一次的“雙十一”活動。

服務化 / 78

中間件 / 88

高性能服務架構HSF / 91

消息中間件Notify / 95

分布式資料通路層TDDL / 99

Session架構 / 107

開放平台 / 111

第6章 我在淘寶這八年 / 129

作為淘寶技術的親曆者,我不經意間見證了一段偉大的曆史,這段曆史,從高層看波瀾壯闊,從底層看妙趣橫生。我不是高層,這裡記錄的是發生在底層的一些事。

第7章 牛P列傳 / 167

前面講述了技術和業務是怎麼互相促進、共生發展的。與此類似,企業和個人也是這樣一個關系:一個水準很高的人,找不到合适的平台,就難以發揮自己的價值;一個蓬勃發展的企業,找不到合适的人才,其前景也會堪憂。幸運的是,在淘寶網蓬勃發展的過程中,出現了一大批業内頂尖的高手,他們推動了淘寶的發展,淘寶也讓他們實作了個人的價值。接下來讓我們一起看看那些人、那些事。

正明——集團核心系統進階研究員 / 168

正祥——淘寶進階研究員,OceanBase項目負責人 / 180

畢玄——集團核心系統資深技術專家 / 191

放翁——淘寶開放平台項目負責人 / 198

吳翰清——阿裡雲集團資訊安全中心進階安全專家 / 210

雲铮——資料平台與産品部資深技術專家 / 218

小馬——淘寶UED前端通用平台進階技術專家 / 225

淘寶傳奇工程師多隆的程式世界 / 236

精彩節摘

第0章

引言:光棍節的狂歡

淘寶網不就是一個網站嗎?是的,但淘寶網不是一個簡單的網站,它的規模排在全球前十幾名,頂尖的網站需要頂尖的技術作為支撐。在使用者享受淘寶的樂趣的背後,有哪些神秘的技術在支撐它呢?

“時間到,開搶!”坐在電腦前早已等待多時的小美一看時間已到2011年11月11日零時,便迫不及待地投身于淘寶商城一年一度的大型網購促銷活動——“淘寶雙11購物狂歡節”。小美打開早已收藏好的寶貝——某品牌的雪地靴,飛快的點選購買、付款,一回頭發現3000雙靴子已被搶購一空。

小美跳起來,大叫一聲“歐耶!”

小美不知道,就在11日零點過後的這一分鐘裡,全國有342萬人和她一起湧入淘寶商城。當然,她更不知道,此時此刻,在淘寶杭州的一間辦公室裡,燈火通明,這裡是“戰時指揮部”,淘寶技術部的一群工程師正緊盯着網站的流量和交易資料。白闆上是他們剛剛下的賭注,賭誰能最準确地猜中流量峰值和全天的交易總額。他們的手邊放着充足的食物和各類提神的飲料。

一陣急促的電話鈴聲響起,是前線部門詢問資料的,工程師大聲報着:“第1分鐘,進入淘寶商城的會員有342萬人”。過了一會兒,工程師主動拿起電話:“交易額超過1億元人民币了,現在是第8分鐘。”接下來,“第21分鐘,剛突破2億元”,“第32分鐘,3億元了”,“第1個小時,4.39億元”。這些資料随後出現在微網誌上,引起了一片驚呼。

“完蛋了!”突然有人大喝一聲,所有的眼睛都緊張地盯着他,隻見他撓撓頭,嘿嘿地笑道“我賭得少了,20億元輕松就能過了,我再加5億元。”他跑到白闆邊上把自己的賭注擦去,寫上25,接下來有人寫上28,有人寫上30,有人到微網誌上開下盤口,同僚們紛紛轉載下注。接下來的這24個小時,戰時指揮部的工程師們都不能休息,他們盯着網站的各種監控名額,适時調整機器,增減功能。頂住第一波高峰之後,這些人開始忙裡偷閑地給自己買東西,大家互相交流着哪家買的移動硬碟靠譜,哪家衣服适合自己的女朋友,不時有人哀嚎寶貝被人搶了、信用卡額度不夠了。同時,旁邊白闆上的賭注越下越大。

11月11日,這個棍子最多的日子被網民自我調侃地變成了一個節日——“光棍節”,而淘寶網又用瘋狂的折扣促銷給它賦予了另外一個意義——“購物狂歡節”。2011年11月11日這一天,淘寶商城與淘寶網交易額之和突破52億元人民币,這個數字是“購物天堂”香港一天零售總額8.5億元的6倍。

網民感受到的是瘋搶的喜悅,而網站的技術人員感受到的卻是“壓力山大”。就如同你家辦酒席,宴請左鄰右舍,這個辦起來容易,倘若宴請十裡八鄉所有的人,吃飯的人固然開心,但卻不是一般人家能夠辦得起來的。能辦得起來如此盛宴者,需要強大的财力和物力、組織能力、技術實力(例如做這麼多菜,你的炒鍋一定要是“分布式的”、“可複制的”、“可擴充的”,洗菜和切菜要有“工作流引擎”,跑堂的要計算一下最優路徑,甚至連廚房的下水道都要重新設計)。

淘寶能夠舉辦如此盛宴,網站的技術實力可見一斑。至2011年年底,淘寶網擁有全國最大的Hadoop分布式計算叢集之一(2000多個節點,CPU:24000 core,Memory:48000GB,Disk:24000塊),日新增資料50TB,有40PB海量資料存儲,分布在全國各地80多個節點的CDN網絡,支撐的流量超過800Gbps。淘寶的搜尋引擎能夠對數十億的商品資料進行實時搜尋,另外,還擁有自主研發的檔案存儲系統和緩存系統,以及Java中間件和消息中間件系統,這一切組成了一個龐大的電子商務作業系統。從商業資料上看,Amazon的财報顯示2011年完成了大約 480億美元的交易額,eBay的2011年财報顯示全年完成了大約600億美元的交易額(不包括其獨立的汽車交易平台)。無論從交易額、商品數量還是從同比增速等名額上看,淘寶網均遠超于此,是目前全球最大的電子商務平台。(由于淘寶是非上市公司,未公布2011年的業績,以上内容來自淘寶網技術副總裁@_行癫的微網誌)。

以上這些技術資料可能已經讓一些人産生了不适的感覺,為了讓更多的人讀懂這本書,我們用下面這段文字描述一下小美通路淘寶網的時候,從技術的角度來看,網站上發生了什麼樣的事情。

參考資料來自《你剛才在淘寶上買了一件東西》(來自阿裡員工卡特)

作者簡介

子柳:本名趙超,2004年加入淘寶網,取花名子柳。曆任開發工程師、項目經理、産品經理、測試經 理,2009年随着淘寶系統的大規模重構和人才的迅速擴張,創辦了“淘寶技術大學”,培養内外部工 程師衆多,人稱“校長”。2011年将教育訓練中的内容寫成文章發表,遂一發不可收拾,總結了淘寶十年 的技術之路,乃成本書。

媒體評論

相信這本書将掀起IT技術型企業的尋根熱潮,因為閱讀本書讓我們深深體會到“以史為鑒”在網際網路時 代的當下意義。創業公司的無暇顧及,大牌公司的千頭萬緒,都抵不過一次美妙的現身說法。這本書讓整個IT界一起陷入思考:我們的十年曾如何走過,我們的十年将如何走過,或是我們的十年正在走過?

子柳是個能人,在淘寶各個階段各個角落都曾留下各種姿态的身影。也正因為是曆次技術沿革及産品誕生的親曆者,他的記錄與解讀,可以讓讀者置身于那段波瀾壯闊的淘寶技術歲月;更能切中要害,精準 捕捉到最值得總結和回味的技術關鍵點及創新閃光點。子柳更是個趣人,知交滿淘寶,内幕豈能少?一樁樁塵封往事,在這樣一位稱職“耳目”的妙筆下再現昔日榮光,局外人方有幸品曆當年甘苦,共享經 驗啟迪。

前言

這是一本好玩的書,從前面兩章看,主要是講故事;從後面兩章看,主要是講人物;從中間幾章看,主要是講技術。我在寫作的過程中,把部分章節的内容放到了我的部落格上,有人看了說很勵志,有人看了說對技術有幫助,有人看了說對産品有幫助,有人看了說對創業有幫助,有人看了說其中的内容特别逗,現在我也不知道這是人文讀物還是技術書了。

其實技術書很容易寫成催眠的讀物,對于這本書,我一開始就沒有當作技術書來寫,最早是我寫給自己看的。在2011年年底的時候,我突然意識到在淘寶度過了七年的時光,七年說長不長,說短不短,回憶起來有些往事曆曆在目,有些卻已開始模糊。為了給自己留點回憶,我就開始記錄自己這幾年的故事,七年之間發生了很多有趣的事情,越寫越多,寫着寫着,我就希望能夠挖掘更多的内容了。當時我還擔任着“淘寶技術大學”的校長,這給我的寫作提供了得天獨厚的優勢,我可以聽不同的人講淘寶技術所有的事情。于是我就開始憑記憶去寫淘寶在過去幾年的技術進展,再去找當事人求證内容的細節。然後又由于有些當事人實在太有料了,我幹脆把跟他交談的内容也整理出來,當作《牛P列傳》來呈現給讀者(淘寶的技術人員以P級來定義,牛P就是很進階别的專家)。至此,本書包含了三種行文格式的内容:一個是筆者自己經曆的美好時光,一個是淘寶技術的發展曆程,一個是那些牛人的牛事。希望能夠通過這三個次元,讓讀者對淘寶的技術有一個概括的了解,進而通過淘寶對網際網路的技術有一個概覽。

書名取為《淘寶技術這十年》,口氣有點大了,但我很難用一個更确切的名字來概括本書的内容,淘寶在這十年裡的技術是很難用一本書來寫完的,對于筆者不太熟悉的領域(例如運維、雲計算、大資料),沒敢着墨太多,書中主要圍繞網站的業務和系統架構之間的關系展開論述。我希望能夠抛磚引玉,未來有更多的人來寫《淘寶運維這十年》《淘寶資料這十年》……

寫完本書之後,再回過頭來讀,我意識到自己經曆了一場偉大的變革,這個時代把電子商務推到了一個浪潮之巅,我是這個浪潮中的一滴水珠,我無意描述這場偉大的浪潮,隻希望通過一滴水珠映射出浪潮底下的故事。這不是淘寶官方的史書,我不具備這樣的高度和視野,這隻是一個小人物的所見所想。

這本書寫得很輕松,我大概花了3個月時間就寫完了,這主要得益于其中的事情都是筆者親身經曆的。同時,這種寫作狀态也直接導緻了本書的行文風格天馬行空,一邊講業務,一邊講技術,時不時地還做一些不太高明的點評。從2011年年底開始寫,到2012年年初,書中的主要内容都有了,接下來就是求證各種細節的過程,這比初稿要艱難很多,我訪談了書中提到的幾乎所有人,有時候還要請他們幫忙補充一些内容,由于人員衆多,這裡不一一列出,在此一并表示感謝——親,這是我們共同的作品。

這裡特别要提出感謝的是我的師父嶽旭強,他比我更早加入淘寶,行文的時間線是根據他給我講的故事來寫的。他現在是蘑菇街的CTO,屬于自己創業。他離開淘寶也是觸動我寫本書的原因之一,鐵打的營盤,流水的兵,雖然淘寶的人員流失率總體較低,但是每離開一個人就失去了一段故事,如果我現在不寫,未來也許很難呈現出過往的這一切了。老天選擇了我做技術,選擇了我能寫點文字,選擇了我經曆淘寶的發展,選擇了我做淘寶技術大學的校長,似乎也選擇了我要把這些故事交代給讀者。

其次要感謝對本書貢獻最大的一個人,書裡的故事是我在“淘寶技術大學”給學員上課時講的,但每個故事的第一個聽衆都不是技術人員,也不是淘寶員工,是我家裡的CEO,她經常被我當作學生,聽我講一個多小時的課,然後給我指出各種不足。同時,為了讓我安心寫作,她也赦免了我很多家務活,謝謝親。

最後要感謝本書的編輯張春雨先生,他花費了很大精力幫我修改書稿,在他的幫助下,本書從網文變得像一本書了。另外,雖然本書經曆了筆者和編輯的多次修改,但這如同開發軟體一樣,上線之後發現bug的機率還是很大的,如有錯漏之處,敬請讀者不吝賜教。