當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]“好的架構(gòu)圖充滿美感”,一個(gè)架構(gòu)好不好,從審美的角度就能看得出來(lái)。后來(lái)我看了很多系統(tǒng)的架構(gòu),發(fā)現(xiàn)這個(gè)言論基本成立。那么反觀淘寶前面的兩個(gè)版本的架構(gòu),你看哪個(gè)比較美?顯然第一個(gè)比較好看,后面那

“好的架構(gòu)圖充滿美感”,一個(gè)架構(gòu)好不好,從審美的角度就能看得出來(lái)。后來(lái)我看了很多系統(tǒng)的架構(gòu),發(fā)現(xiàn)這個(gè)言論基本成立。那么反觀淘寶前面的兩個(gè)版本的架構(gòu),你看哪個(gè)比較美?

顯然第一個(gè)比較好看,后面那個(gè)顯得頭重腳輕,這也注定了它不是一個(gè)穩(wěn)定的版本,只存活了不到半年的時(shí)間。2004年初,SQL Relay的問(wèn)題解決不了,數(shù)據(jù)庫(kù)必須要用Oracle,那從哪里動(dòng)刀?只有換開發(fā)語(yǔ)言了。換什么語(yǔ)言好呢?Java。Java是當(dāng)時(shí)最成熟的網(wǎng)站開發(fā)語(yǔ)言,它有比較良好的企業(yè)開發(fā)框架,被世界上主流的大規(guī)模網(wǎng)站普遍采用,另外有Java開發(fā)經(jīng)驗(yàn)的人才也比較多,后續(xù)維護(hù)成本會(huì)比較低。

到2004年上半年,淘寶網(wǎng)已經(jīng)運(yùn)行了一年的時(shí)間,這一年積累了大量的用戶,也快速的開發(fā)了很多功能,當(dāng)時(shí)這個(gè)網(wǎng)站已經(jīng)很龐大了,而且新的需求還在源源不斷的過(guò)來(lái)。把一個(gè)龐大的網(wǎng)站的開發(fā)語(yǔ)言換掉,無(wú)異于脫胎換骨,在換的過(guò)程中還不能拖慢業(yè)務(wù)的發(fā)展,這無(wú)異于邊換邊跑,對(duì)時(shí)間和技術(shù)能力的要求都非常高。做這樣的手術(shù),需要請(qǐng)第一流的專家來(lái)主刀?,F(xiàn)在再考一下讀者,如果你在這個(gè)創(chuàng)業(yè)團(tuán)隊(duì)里面,請(qǐng)什么樣的人來(lái)做這事?我們的答案是請(qǐng)Sun的人。沒(méi)錯(cuò),就是創(chuàng)造Java語(yǔ)言的那家公司,世界上沒(méi)有比他們更懂Java的了。除此之外,還有一個(gè)不為人知的原因,……(此處和諧掉200字,完整版見(jiàn)aliway)

這幫Sun的工程師的確很強(qiáng)大,在筆者2004年底來(lái)淘寶的時(shí)候,他們還在,有幸跟他們共事了幾個(gè)月?,F(xiàn)在擺在他們面前的問(wèn)題是用什么辦法把一個(gè)龐大的網(wǎng)站從PHP語(yǔ)言遷移到Java?而且要求在遷移的過(guò)程中,不停止服務(wù),原來(lái)系統(tǒng)的bugfix和功能改進(jìn)不受影響。親,你要是架構(gòu)師,你怎么做?有人的答案是寫一個(gè)翻譯器,如同把中文翻譯成英文一樣,自動(dòng)翻譯。我只能說(shuō)你這個(gè)想法太超前了,換個(gè)說(shuō)法就是“too simple, sometimes naive”。當(dāng)時(shí)沒(méi)有,現(xiàn)在也沒(méi)有人能做到。他們的大致方案是給業(yè)務(wù)分模塊,一個(gè)模塊一個(gè)模塊的替換。如用戶模塊,老的member.taobao.com繼續(xù)維護(hù),不添加新功能,新的功能先在新的模塊上開發(fā),跟老的共用一個(gè)數(shù)據(jù)庫(kù),開發(fā)完畢之后放到不同的應(yīng)用集群上,另開個(gè)域名member1.taobao.com,同時(shí)替換老的功能,替換一個(gè)把老的模塊上的功能關(guān)閉一個(gè),逐漸的把用戶引導(dǎo)到member1.taobao.com,等所有功能都替換完畢之后,關(guān)閉member.taobao.com。后來(lái)很長(zhǎng)時(shí)間里面都是在用member1這樣奇怪的域名,兩年后有另外一家互聯(lián)網(wǎng)公司開始做電子商務(wù)了,我們發(fā)現(xiàn)他們的域名也叫member1.xx.com、auction1.xx.com……

說(shuō)了開發(fā)模式,再說(shuō)說(shuō)用到的Java MVC框架,當(dāng)時(shí)的struts1.x是用的比較多的框架,但是用過(guò)webwork和struts2的同學(xué)可能知道,struts1.x在多人協(xié)作方面有很多致命的弱點(diǎn),由于沒(méi)有一個(gè)輕量框架作為基礎(chǔ),因此很難擴(kuò)展,這樣架構(gòu)師對(duì)于基礎(chǔ)功能和全局功能的控制就很難做到。而阿里巴巴的18個(gè)創(chuàng)始人之中,有個(gè)架構(gòu)師,在Jakarta Turbine的基礎(chǔ)上,做了很多擴(kuò)展,打造了一個(gè)阿里巴巴自己用的MVC框架WebX ( http://www.openwebx.org/docs/Webx3_Guide_Book.html ),這個(gè)框架易于擴(kuò)展,方便組件化開發(fā),它的頁(yè)面模板支持JSP和velocity等、持久層支持ibatis和hibernate等、控制層可以用EJB和Spring(Spring是后來(lái)才有的)。項(xiàng)目組選擇了這個(gè)強(qiáng)大的框架,這個(gè)框架如果當(dāng)時(shí)開源了,也許就沒(méi)有webwork和struts2什么事了。另外,當(dāng)時(shí)Sun在全世界大力推廣他們的EJB,雖然淘寶的架構(gòu)師認(rèn)為這個(gè)東東用不到,但他們還是極力堅(jiān)持。在經(jīng)歷了很多次的技術(shù)討論、爭(zhēng)論和爭(zhēng)吵之后,這個(gè)系統(tǒng)的架構(gòu)就變成了下圖的樣子:

[!--empirenews.page--]

Java應(yīng)用服務(wù)器是Weblogic,MVC框架是WebX、控制層用了EJB、持久層是ibatis,另外為了緩解數(shù)據(jù)庫(kù)的壓力,商品查詢和店鋪查詢放在搜索引擎上面。這個(gè)架構(gòu)圖是不是好看了一點(diǎn)了,親?

這幫Sun的工程師開發(fā)完淘寶的網(wǎng)站之后,又做了一個(gè)很牛的網(wǎng)站,叫“支付寶”。

其實(shí)在任何時(shí)候,開發(fā)語(yǔ)言本身都不是系統(tǒng)的瓶頸,業(yè)務(wù)帶來(lái)的壓力更多的是壓到了數(shù)據(jù)和存儲(chǔ)上。上面一篇也說(shuō)到,MySQL撐不住了之后換Oracle,Oracle的存儲(chǔ)一開始在本機(jī)上,后來(lái)在NAS上,NAS撐不住了用EMC的SAN存儲(chǔ),再然后Oracle的RAC撐不住了,數(shù)據(jù)的存儲(chǔ)方面就不得不考慮使用小型機(jī)了。在2004年的夏天,DBA七公、測(cè)試工程師郭芙和架構(gòu)師行癲,踏上了去北京測(cè)試小型機(jī)的道路。他們帶著小型機(jī)回來(lái)的時(shí)候,我們像歡迎領(lǐng)袖一樣的歡迎他們,因?yàn)槟莻€(gè)是我們最值錢的設(shè)備了,價(jià)格表上的數(shù)字嚇?biāo)廊?。小型機(jī)買回來(lái)之后我們爭(zhēng)相合影,然后Oracle就跑在了小型機(jī)上,存儲(chǔ)方面從EMC低端cx存儲(chǔ)到Sun oem hds高端存儲(chǔ),再到EMC dmx高端存儲(chǔ),一級(jí)一級(jí)的往上跳。

到現(xiàn)在為止,我們已經(jīng)用上了IBM的小型機(jī)、Oracle的數(shù)據(jù)庫(kù)、EMC的存儲(chǔ),這些東西都是很貴的,那些年可以說(shuō)是花錢如流水啊。有人說(shuō)過(guò)“錢能解決的問(wèn)題,就不是問(wèn)題”,但隨著淘寶網(wǎng)的發(fā)展,在不久以后,錢已經(jīng)解決不了我們的問(wèn)題了?;ㄥX買豪華的配置,也許能支持1億PV的網(wǎng)站,但淘寶網(wǎng)的發(fā)展實(shí)在是太快了,到了10億怎么辦?到了百億怎么辦?在N年以后,我們不得不創(chuàng)造技術(shù),解決這些只有世界頂尖的網(wǎng)站才會(huì)遇到的問(wèn)題。后來(lái)我們?cè)陂_源軟件的基礎(chǔ)上進(jìn)行自主研發(fā),一步一步的把IOE(IBM小型機(jī)、Oracle、EMC存儲(chǔ))這幾個(gè)“神器”都去掉了。這就如同在《西游記》里面,妖怪們拿到神仙的兵器會(huì)非常厲害,連猴子都能夠打敗,但最牛的神仙是不用這些神器的,他們揮一揮衣袖、翻一下手掌就威力無(wú)比。去IOE這一部分會(huì)在最后一個(gè)章節(jié)里面講,這里先埋個(gè)千里伏筆。

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉