互聯(lián)網(wǎng)技術(shù)發(fā)展之路(1) - 技術(shù)發(fā)展的驅(qū)動(dòng)力
互聯(lián)網(wǎng)行業(yè)是1個(gè)快速發(fā)展、快速變化的行業(yè),新的業(yè)務(wù)、新的機(jī)會(huì)層見(jiàn)疊出,新的技術(shù)如雨后春筍般冒出,NoSQL、大數(shù)據(jù)、云、Node.js、Docker等,無(wú)時(shí)不刻都在轟炸程序員們的腦袋,難怪中國(guó)的程序員都流傳1個(gè)說(shuō)法:過(guò)了30歲不能做技術(shù)工作了,由于技術(shù)發(fā)展太快了!
快節(jié)奏帶來(lái)機(jī)會(huì),但對(duì)技術(shù)人員來(lái)講,更多的是帶來(lái)挑戰(zhàn),乃至有時(shí)候是困惑。例如:
1)Docker很火哦,我們要不要用呢 ?
2)Node.js好牛逼啊,我們用上就更牛逼了......
3)大數(shù)據(jù)和云是業(yè)界發(fā)展趨勢(shì),我覺(jué)得我們也應(yīng)當(dāng)跟上技術(shù)發(fā)展的趨勢(shì)......
......
還有很多類似的問(wèn)題和想法,其實(shí)歸根結(jié)柢可以歸納為1個(gè)統(tǒng)1的問(wèn)題:是甚么推動(dòng)了1個(gè)互聯(lián)網(wǎng)企業(yè)的技術(shù)發(fā)展?
關(guān)于這個(gè)問(wèn)題的回答,基本上可以分為幾個(gè)典型的派別:
1)潮流派
潮流派的典型特點(diǎn)就是對(duì)新技術(shù)特別熱中,緊跟技術(shù)潮流,當(dāng)有新的技術(shù)出現(xiàn)時(shí),迫切的想將新的技術(shù)利用到自己的產(chǎn)品中。
例如:
NoSQL很火,我們要大范圍的切換為NoSQL;
大數(shù)據(jù)好牛逼呀,將我們的MySQL切換為Hadoop吧;
Node.js是的javascript統(tǒng)1前后端,這樣非常有助于我們工作的展開(kāi);
......等等
2)守舊派
守舊派的典型特點(diǎn)和潮流派正好相反,對(duì)新技術(shù)抱有很強(qiáng)的戒備心,穩(wěn)定壓倒1切,已掌握了某種技術(shù),就1直用這類技術(shù)打天下。就像那句俗語(yǔ)說(shuō)的,“如果你手里有1把錘子,那末所有的問(wèn)題都變成了釘子”,守舊派就是拿著1把錘子解決所有的問(wèn)題。
例如:
MySQL我們用了這么久了,很熟習(xí)了,業(yè)務(wù)也用MySQL、數(shù)據(jù)分析也用MySQL、報(bào)表也用MySQL吧;
Java語(yǔ)言我們都很熟,業(yè)務(wù)用java、工具用java,平臺(tái)也用java;
......等等
3)跟風(fēng)派
跟風(fēng)派與潮流派不同,這里的跟風(fēng)派不是指隨著技術(shù)潮流,而是指隨著競(jìng)爭(zhēng)對(duì)手的步子走。
簡(jiǎn)單來(lái)講,判斷技術(shù)的發(fā)展就看競(jìng)爭(zhēng)對(duì)手,競(jìng)爭(zhēng)對(duì)手用了我們就用,競(jìng)爭(zhēng)對(duì)手沒(méi)用我們就等等看。
例如:
這項(xiàng)技術(shù)騰訊用了么? 騰訊用了我們就用;
阿里用了Hadoop,他們都在用,肯定是好東西,我們也要盡快用起來(lái),以提高我們的競(jìng)爭(zhēng)力;
Google都用了Docker,我們也用吧;
......等等
相信不用多說(shuō),大家都能看出這幾個(gè)典型派別存在的問(wèn)題:
1)潮流派
首先,新技術(shù)既需要時(shí)間成熟,如果剛出來(lái)就趕快用,此時(shí)新技術(shù)還不怎樣成熟,實(shí)際利用極可能遇到各種“坑”;
其次,新技術(shù)需要學(xué)習(xí),需要花費(fèi)1定的時(shí)間去掌握,這個(gè)也是較大的本錢;如果等到掌握了結(jié)果技術(shù)又不適用,就是1種較大的人力浪費(fèi)了
2)守舊派
守舊派的主要問(wèn)題是不能享受新技術(shù)帶來(lái)的收益,由于新技術(shù)很多都是為了解決之前技術(shù)存在的固有缺點(diǎn)。就像汽車取代馬車1樣,不是量變而是質(zhì)變,帶來(lái)的收益不是線性變化的,而是爆發(fā)式變化的。
如果疏忽技術(shù)的發(fā)展,形象1點(diǎn)說(shuō)有了拖拉機(jī),你還恰恰要用牛車。
3)跟風(fēng)派
可能很多人都會(huì)認(rèn)為,跟風(fēng)派與“潮流派”和“守舊派”相比,是最有效的策略,既不會(huì)承當(dāng)“潮流派”的風(fēng)險(xiǎn),也不會(huì)遭受“守舊派”的損失,花費(fèi)的資源也少,簡(jiǎn)直就是1舉多得。
看起來(lái)很美好,但跟風(fēng)派最大的問(wèn)題在于如果沒(méi)有風(fēng)可跟的時(shí)候怎樣辦。1種情況就是如果你是領(lǐng)頭羊怎樣辦,其他人都準(zhǔn)備跟你的風(fēng)呢;
另外1種情況就是競(jìng)爭(zhēng)對(duì)手的這些信息其實(shí)不那末容易獲得,即便獲得到了1些信息,大部份也是不全面的,1不謹(jǐn)慎可能就變成邯鄲學(xué)步了。
即便有風(fēng)可跟,其實(shí)也還是存在問(wèn)題的。俗語(yǔ)說(shuō):橘生淮南則為橘,生于淮北則為枳,葉徒類似,其實(shí)味不同。適用于競(jìng)爭(zhēng)對(duì)手的技術(shù),其實(shí)不1定適用于自己,盲目模仿可能帶來(lái)相反的效果。
既然這幾個(gè)典型派別都存在問(wèn)題,那末互聯(lián)網(wǎng)技術(shù)發(fā)展的驅(qū)動(dòng)力究竟是甚么 ?
這個(gè)問(wèn)題之所以讓人困惑,我覺(jué)得關(guān)鍵的緣由還是在于不論是潮流派、守舊派,還是跟風(fēng)派,都是站在技術(shù)本身的角度來(lái)斟酌問(wèn)題的,正所謂“不識(shí)廬山真面,只緣身在此山中”。
因此,要想看到廬山真面目,只有跳出技術(shù)的角度,從1個(gè)更廣更高的角度來(lái)斟酌這個(gè)問(wèn)題,這個(gè)角度就是互聯(lián)網(wǎng)企業(yè)的發(fā)展。
互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)基本上可以大概分為兩類:1類是提供“產(chǎn)品”,1類是提供“服務(wù)”。
提供產(chǎn)品:360的殺毒軟件、蘋果的iphone、UC的閱讀器。。。。。。等都屬于這個(gè)范疇,這些產(chǎn)品本質(zhì)上和傳統(tǒng)的制造業(yè)產(chǎn)品類似,都是具有了某種“功能”,能夠完成某些任務(wù);
提供服務(wù):百度的搜索、淘寶的購(gòu)物、微博的資訊、騰訊的IM。。。。。。都屬于這個(gè)范疇,和“提供產(chǎn)品”的業(yè)務(wù)不同是,提供服務(wù)的業(yè)務(wù)更加符合互聯(lián)網(wǎng)的特點(diǎn)和本質(zhì):“互聯(lián)” +“ 網(wǎng)”。
“互聯(lián)”是指這些業(yè)務(wù)將本來(lái)分散的個(gè)體連結(jié)成了1個(gè)龐大的整體,可以將人連接,也能夠?qū)⑿畔⑦B接,也能夠?qū)?shù)據(jù)連接,連接在1起的群體的價(jià)值比群體中單個(gè)個(gè)體的價(jià)值之和要大很多;
“網(wǎng)”有兩種含義:1個(gè)是指通過(guò)數(shù)據(jù)網(wǎng)絡(luò)連接(與傳統(tǒng)的電話網(wǎng)絡(luò)等相比)、1個(gè)是指?jìng)€(gè)體互聯(lián)成“網(wǎng)狀”的結(jié)構(gòu)。
1個(gè)互聯(lián)網(wǎng)企業(yè)的發(fā)展,歸根結(jié)柢就是業(yè)務(wù)的發(fā)展,而影響1個(gè)互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)發(fā)展的主要有3個(gè)因素:市場(chǎng)、技術(shù)、管理。我稱之為業(yè)務(wù)發(fā)展鐵3角,任何1個(gè)因素的不足都將致使企業(yè)業(yè)務(wù)的發(fā)展停滯不前。
如上圖,在這個(gè)鐵3角中,業(yè)務(wù)是處于3角形的中心,絕不夸大的說(shuō),市場(chǎng)、技術(shù)、管理的動(dòng)作都是為了支持企業(yè)業(yè)務(wù)的發(fā)展。市場(chǎng)和管理對(duì)業(yè)務(wù)的影響不在本文的探討范疇以內(nèi),我們主要來(lái)探討1下“技術(shù)”和“業(yè)務(wù)”之間的關(guān)系和相互如何影響。
對(duì)“產(chǎn)品”類的業(yè)務(wù),答案其實(shí)很明顯:技術(shù)創(chuàng)新不斷推動(dòng)業(yè)務(wù)的發(fā)展。
這個(gè)道理和傳統(tǒng)的制造行業(yè)的產(chǎn)品創(chuàng)新是1樣的:產(chǎn)品上的技術(shù)創(chuàng)新 -> 帶來(lái)更強(qiáng)大的功能 -> 推動(dòng)產(chǎn)品的市場(chǎng)不斷擴(kuò)大 -> 市場(chǎng)擴(kuò)大競(jìng)爭(zhēng)更加劇烈 -> 反過(guò)來(lái)又對(duì)技術(shù)創(chuàng)新提出了更高的要求,如此循環(huán)往復(fù),技術(shù)創(chuàng)新不斷的推動(dòng)產(chǎn)品的提升、業(yè)務(wù)的擴(kuò)大。
對(duì)“產(chǎn)品”類業(yè)務(wù),為了尋求不斷的創(chuàng)新,即便“潮流派”或“跟風(fēng)派”存在風(fēng)險(xiǎn)或問(wèn)題,但為了能夠獲得領(lǐng)先,也必須不遺余力的去嘗試,否則等到技術(shù)沒(méi)有風(fēng)險(xiǎn)的時(shí)候再去用,自己可能已落后對(duì)手1大截了。而且不但要做“潮流派”,還要做“跟風(fēng)派”,更要做“領(lǐng)頭羊”,這樣才能在劇烈的競(jìng)爭(zhēng)市場(chǎng)環(huán)境下不斷的保持領(lǐng)先的優(yōu)勢(shì)。
例如:
1)蘋果開(kāi)發(fā)智能手機(jī),將諾基亞推下王座,自己成為全球手機(jī)行業(yè)的新王者,就是技術(shù)創(chuàng)新驅(qū)動(dòng)產(chǎn)品的典型例子;
2) 2G時(shí)期,UC閱讀器獨(dú)創(chuàng)的云端架構(gòu),很好的解決了上網(wǎng)慢的問(wèn)題;智能機(jī)時(shí)期,UC閱讀器又自主研發(fā)全新的U3內(nèi)核,統(tǒng)籌高速、安全、智能及可擴(kuò)大性,這些技術(shù)創(chuàng)新是UC閱讀器成了全球最大的第3方手機(jī)閱讀器最強(qiáng)有力的推動(dòng)力。
而對(duì)“服務(wù)”類的業(yè)務(wù),答案和產(chǎn)品類業(yè)務(wù)正好相反:業(yè)務(wù)發(fā)展推動(dòng)技術(shù)的發(fā)展。
為何會(huì)出現(xiàn)截然相反的差別呢?這還需要從“產(chǎn)品”和“服務(wù)”的本質(zhì)差別來(lái)看。用戶選擇1個(gè)產(chǎn)品的根本驅(qū)動(dòng)力是其“功能”,例如功能是不是強(qiáng)大,外觀是不是漂亮,用戶體驗(yàn)是不是良好;而用戶選擇1個(gè)服務(wù)的根本驅(qū)動(dòng)力不是功能,而是“范圍”。
例如:選擇UC閱讀器還是選擇QQ閱讀器,更多的人是根據(jù)個(gè)人喜好和體驗(yàn)來(lái)決定的;而選擇微信還是whatsapp,就不是根據(jù)它們之間的功能差異來(lái)選擇的,而是根據(jù)其范圍來(lái)選擇的。就像我更喜歡whatsapp的簡(jiǎn)潔,但我的的朋友和周邊的人都用微信,那我也不能不用微信。
當(dāng)“范圍”成為業(yè)務(wù)的決定因素后,服務(wù)模式的創(chuàng)新成了業(yè)務(wù)發(fā)展的核心驅(qū)動(dòng)力,而產(chǎn)品只是為了完成服務(wù)而提供給用戶。以淘寶為例:淘寶提供的“網(wǎng)絡(luò)購(gòu)物”是1種新的服務(wù),這類業(yè)務(wù)與傳統(tǒng)的到實(shí)體店購(gòu)物是完全不同的,而為了完成這類業(yè)務(wù),需要“淘寶網(wǎng)”、“支付寶”、“1淘”、“菜鳥物流”等多個(gè)產(chǎn)品。
比如說(shuō)假設(shè)我技術(shù)創(chuàng)新,開(kāi)發(fā)1個(gè)耗電量只有微信的1/10,用戶體驗(yàn)比微信好10倍的產(chǎn)品,你覺(jué)得現(xiàn)在的微信譽(yù)戶都會(huì)拋棄微信,而轉(zhuǎn)投我的這個(gè)產(chǎn)品么?我相信絕大部份人都不會(huì),由于微信不是1個(gè)互聯(lián)網(wǎng)產(chǎn)品,而是1個(gè)互聯(lián)網(wǎng)服務(wù),你1個(gè)人換到其它類微信類產(chǎn)品是沒(méi)成心義的。
因此,服務(wù)類的業(yè)務(wù)發(fā)展路徑是這樣的:提出1種創(chuàng)新的服務(wù)模式 -> 吸引了1批用戶 -> 業(yè)務(wù)開(kāi)始發(fā)展 -> 吸引了更多用戶 -> 服務(wù)模式不斷完善和創(chuàng)新 -> 吸引愈來(lái)愈多的用戶,如此循環(huán)往復(fù)。在這個(gè)發(fā)展路徑中,技術(shù)并沒(méi)有成為業(yè)務(wù)發(fā)展的驅(qū)動(dòng)力,反過(guò)來(lái)由于用戶范圍的不斷擴(kuò)大,業(yè)務(wù)的不斷創(chuàng)新和改進(jìn),對(duì)技術(shù)會(huì)提出愈來(lái)愈高的要求,因此是業(yè)務(wù)驅(qū)動(dòng)了技術(shù)發(fā)展。
對(duì)“服務(wù)”類業(yè)務(wù),業(yè)務(wù)成了技術(shù)發(fā)展的驅(qū)動(dòng)力。因此“潮流派”、“跟風(fēng)派”、“守舊派”都是不可取的,甚么時(shí)候采取甚么技術(shù)是由業(yè)務(wù)的范圍決定的。
對(duì)“產(chǎn)品”類業(yè)務(wù)來(lái)講,技術(shù)的發(fā)展和具體的產(chǎn)品有很強(qiáng)的關(guān)系,比如說(shuō)UC閱讀器的技術(shù)優(yōu)化和蘋果手機(jī)的技術(shù)優(yōu)化差別會(huì)非常大,因此難以構(gòu)成1套技術(shù)發(fā)展的模式;而對(duì)“服務(wù)”類業(yè)務(wù)來(lái)講,雖然業(yè)務(wù)千差萬(wàn)別,但“范圍”的發(fā)展對(duì)技術(shù)的影響和推動(dòng)效果是基本1致的,可以歸納出1套成熟的技術(shù)發(fā)展體系,本文就試圖在這個(gè)方向上分幾個(gè)主題進(jìn)行1番探索。
前面講了那末1大堆理論,聽(tīng)起來(lái)有點(diǎn)道理,但實(shí)踐是檢驗(yàn)真諦的唯1標(biāo)準(zhǔn),究竟事實(shí)是不是就是這樣呢?我們可以回顧1下幾個(gè)典型互聯(lián)網(wǎng)企業(yè)的技術(shù)發(fā)展歷程。這里挑選了兩個(gè)最典型的企業(yè):淘寶、騰訊。之所以挑選這兩個(gè),1個(gè)是由于大家耳熟能詳,另外1個(gè)也是由于資料好找。
【淘寶】
注:以下內(nèi)容主要摘自《淘寶技術(shù)發(fā)展》,原文鏈接:http://kb.cnblogs.com/page/132724/
淘寶技術(shù)發(fā)展主要經(jīng)歷了“個(gè)人網(wǎng)站”、“Oracle/支付寶/旺旺”、“Java時(shí)期1.0”、“Java時(shí)期2.0”、“Java時(shí)期3.0”、“散布式時(shí)期”。我們看看每一個(gè)階段的主要驅(qū)動(dòng)力是甚么。
1. 個(gè)人網(wǎng)站
2003年4月7日馬云提出成立淘寶,2003年5月10日淘寶就上線了,中間只有1個(gè)月,怎樣辦?淘寶的答案就是:買1個(gè)。
估計(jì)大部份人很難想象如今技術(shù)牛氣沖天的阿里最初的淘寶居然是買來(lái)的,我們看看當(dāng)初決策的根據(jù):
“當(dāng)時(shí)對(duì)全部項(xiàng)目組來(lái)講壓力最大的就是時(shí)間,怎樣在最短的時(shí)間內(nèi)把1個(gè)歷來(lái)就沒(méi)有的網(wǎng)站從零開(kāi)始建立起來(lái)?了解淘寶歷史的人知道淘寶是在 2003 年 5 月 10 日上線的,這之間只有1個(gè)月。要是你在這個(gè)團(tuán)隊(duì)里,你怎樣做?我們的答案就是:買1個(gè)來(lái)。”
大家看到?jīng)]有,這個(gè)時(shí)候沒(méi)有過(guò)量斟酌技術(shù)是不是牛逼、沒(méi)有過(guò)量斟酌性能是不是海量、沒(méi)有斟酌穩(wěn)定性如何,主要的斟酌就是:快!
由于此時(shí)業(yè)務(wù)要求快速上線,時(shí)間不等人,等你花幾個(gè)月乃至10幾個(gè)月弄出1個(gè)牛逼的系統(tǒng)出來(lái),可能市場(chǎng)機(jī)會(huì)就沒(méi)有了,黃花菜都涼了。
一樣,在斟酌如何買的時(shí)候,淘寶的決策根據(jù)主要也是”快“:
“買1個(gè)網(wǎng)站明顯比做1個(gè)網(wǎng)站要省事1些,但是他們的夢(mèng)想可不是做1個(gè)小網(wǎng)站而已,要做大,就不是隨意買個(gè)就行的,要有比較低的保護(hù)本錢,要能夠方便的擴(kuò)大和2次開(kāi)發(fā)。
那接下來(lái)就是第2個(gè)問(wèn)題:買1個(gè)甚么樣的網(wǎng)站?答案是:輕量1點(diǎn)的,簡(jiǎn)單1點(diǎn)的”
買1個(gè)系統(tǒng)是為了”快速可用“,而買1個(gè)輕量級(jí)的系統(tǒng)是為了”快速開(kāi)發(fā)“,由于系統(tǒng)上線后肯定有大量的需求需要做,這個(gè)時(shí)候能夠快速開(kāi)發(fā)就非常重要。
從這個(gè)實(shí)例我們可以看到:淘寶最開(kāi)始的時(shí)候業(yè)務(wù)要求就是”快“,因此反過(guò)來(lái)要求技術(shù)一樣要”快“,業(yè)務(wù)決定技術(shù)。
第1代的技術(shù)架構(gòu)以下圖:
2. Oracle/支付寶/旺旺
淘寶網(wǎng)推出后,由于正好碰到非典,網(wǎng)購(gòu)很火爆,加上采取了成功的市場(chǎng)運(yùn)作,流量和交易量迅速上漲,業(yè)務(wù)發(fā)展很快,在 2003 年底,MySQL 已撐不住了。
1般人或團(tuán)隊(duì)在這個(gè)時(shí)候,可能就開(kāi)始優(yōu)化系統(tǒng)、優(yōu)化架構(gòu)了、分拆業(yè)務(wù)了,由于這些是大家耳熟能詳也很拿手的動(dòng)作。那我們來(lái)看看淘寶這個(gè)時(shí)候怎樣采取的措施:
“技術(shù)的替換方案非常簡(jiǎn)單,就是換成 Oracle。換 Oracle 的緣由除它容量大、穩(wěn)定、安全、性能高以外,還有人材方面的緣由。”
可以看出這個(gè)時(shí)候淘寶的策略主要還是”買“,買更高配置的Oracle,這個(gè)是當(dāng)時(shí)情況下最快的方法。
除購(gòu)買Oracle,后來(lái)為了優(yōu)化,又買了更牛逼的存儲(chǔ):
“后來(lái)數(shù)據(jù)量變大了,本地存儲(chǔ)不行了。買了 NAS(Network Attached Storage:網(wǎng)絡(luò)附屬存儲(chǔ)),NetApp 的 NAS 存儲(chǔ)作為了數(shù)據(jù)庫(kù)的存儲(chǔ)裝備,加上 Oracle RAC(Real Application Clusters,實(shí)時(shí)利用集群)來(lái)實(shí)現(xiàn)負(fù)載均衡。”
我們思考1下,為何淘寶在這個(gè)時(shí)候繼續(xù)采取“買”的方式來(lái)快速解決問(wèn)題呢?我們可以從時(shí)間上看出端倪:此時(shí)離剛上線才半年不到,業(yè)務(wù)飛速發(fā)展,最快的方式支持業(yè)務(wù)的發(fā)展還是去買。如果說(shuō)第1階段買的是“方案”,這個(gè)階段買的就是“性能”。
換上Oracle和昂貴的存儲(chǔ)后,第2代架構(gòu)以下:
3. Java時(shí)期1.0 - 洗心革面
淘寶切換到Java的緣由很有趣,主要由于找了1個(gè)PHP的開(kāi)源連接池SQL Relay連接到Oracle,而這個(gè)代理常常死鎖,死鎖了就必須重啟,而數(shù)據(jù)庫(kù)又必須用Oracle,因而決定換個(gè)開(kāi)發(fā)語(yǔ)言。最后淘寶挑選了Java,而且當(dāng)時(shí)挑選Java,也是請(qǐng)Sun公司的人,這幫人很牛逼,先是將淘寶網(wǎng)站從PHP熱切換到了Java,后來(lái)又做了支付寶。
這次切換的最主要緣由是由于技術(shù)影響了業(yè)務(wù)的發(fā)展,你說(shuō)動(dòng)不動(dòng)就死鎖、然后就要重啟,這個(gè)是對(duì)用戶業(yè)務(wù)嚴(yán)重的影響。從業(yè)務(wù)的角度來(lái)看這是不能不解決的技術(shù)問(wèn)題。
但這次淘寶為何沒(méi)有去“買”,是有點(diǎn)疑惑的地方。我們看最初選擇SQL Relay的緣由:
“但對(duì) PHP 語(yǔ)言來(lái)講它是放在 Apache 上的,每個(gè)要求都會(huì)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生1個(gè)連接,它沒(méi)有連接池這類功能(Java 語(yǔ)言有 Servlet 容器,可以寄存連接池)。那如何是好呢?這幫人刺探到 eBay 在 PHP 下面用了1個(gè)連接池的工具,是 BEA 賣給他們的。我們知道 BEA 的東西都很貴,我們買不起,因而多隆在網(wǎng)上尋尋覓覓,找到1個(gè)開(kāi)源的連接池代理服務(wù) SQLRelay”
不清楚當(dāng)時(shí)到底有多貴,Oracle都可以買,連接池買不起 ?所以我個(gè)人感覺(jué)這次切換語(yǔ)言,更多的是為以后業(yè)務(wù)發(fā)展做鋪墊,畢竟當(dāng)時(shí)PHP語(yǔ)言遠(yuǎn)遠(yuǎn)沒(méi)有Java那末火,那末好招人。淘寶選擇Java語(yǔ)言的理由可以從側(cè)面驗(yàn)證這點(diǎn):
“Java 是當(dāng)時(shí)最成熟的網(wǎng)站開(kāi)發(fā)語(yǔ)言,它有比較良好的企業(yè)開(kāi)發(fā)框架,被世界上主流的大范圍網(wǎng)站普遍采取,另外有 Java 開(kāi)發(fā)經(jīng)驗(yàn)的人材也比較多,后續(xù)保護(hù)本錢會(huì)比較低。”
從PHP改成Java后,第3代技術(shù)架構(gòu)以下:
4. Java時(shí)期2.0 - 堅(jiān)若盤石
Java2.0時(shí)期,淘寶做了很多優(yōu)化工作:數(shù)據(jù)分庫(kù)、放棄 EJB、引入 Spring、加入緩存、加入 CDN、采取開(kāi)源的 JBoss。為何在這個(gè)時(shí)候要做這些動(dòng)作? 原文作者很好的概括了做這些動(dòng)作的緣由:
“這些雜7雜8的修改,我們對(duì)數(shù)據(jù)分庫(kù)、放棄 EJB、引入 Spring、加入緩存、加入 CDN、采取開(kāi)源的 JBoss,看起來(lái)沒(méi)有章法可循,其實(shí)都是圍繞著提高容量、提高性能、節(jié)儉本錢來(lái)做的”
我們思考1下,為何在前面的階段,淘寶斟酌的都是“快”,而現(xiàn)在開(kāi)始斟酌“容量、性能、本錢”了呢?而且為何這個(gè)時(shí)候不采取“買”的方式來(lái)解決容量、性能、本錢問(wèn)題呢?
簡(jiǎn)單來(lái)講,就是“買”也弄不定了,此時(shí)的業(yè)務(wù)發(fā)展情況是這樣的:
“隨著數(shù)據(jù)量的繼續(xù)增長(zhǎng),到了 2005 年,商品數(shù)有 1663 萬(wàn),PV 有 8931 萬(wàn),注冊(cè)會(huì)員有 1390 萬(wàn),這給數(shù)據(jù)和存儲(chǔ)帶來(lái)的壓力仍然山東大學(xué),數(shù)據(jù)量大,性能就慢。”
原本的方案存在的固有缺點(diǎn),隨著業(yè)務(wù)的繼續(xù)發(fā)展,已不是靠“買”能夠解決的了,此時(shí)必須從全部架構(gòu)上去進(jìn)行調(diào)劑和優(yōu)化。比如說(shuō)Oracle再牛逼,在做like類搜索的時(shí)候,也不可能做到純潔的搜索系統(tǒng)如Solr、Sphinx等的性能,由于這是機(jī)制決定的。
另外,隨著范圍的增大,純潔靠買的1個(gè)典型問(wèn)題開(kāi)始成為重要的斟酌因素,那就是本錢。當(dāng)買1臺(tái)兩臺(tái)Oracle的時(shí)候,可能對(duì)本錢其實(shí)不怎樣關(guān)心,但如果要買100臺(tái)Oracle,本錢就是1個(gè)關(guān)鍵因素了。這就是“量變帶來(lái)質(zhì)變”的1個(gè)典型案例。
Java 架構(gòu)經(jīng)過(guò)各種優(yōu)化,第4代技術(shù)架構(gòu)以下:
5. Java時(shí)期3.0 和散布式時(shí)期
Java時(shí)期3.0時(shí)期我個(gè)人認(rèn)為是淘寶技術(shù)奔騰的開(kāi)始,簡(jiǎn)單來(lái)講就是淘寶技術(shù)從商用轉(zhuǎn)為“自研”,典型的就是去IOE化。
散布式時(shí)期我認(rèn)為是淘寶技術(shù)的修煉成功,到了這個(gè)階段,自研技術(shù)已自成1派,除支持本身的海量業(yè)務(wù)外,也開(kāi)始影響全部互聯(lián)網(wǎng)的技術(shù)發(fā)展。
具體的緣由這里就不詳細(xì)分析,留給讀者依照前面的思路去分析。
【手機(jī)QQ】
注:以下內(nèi)容主要摘自《QQ1.4億在線背后的故事》
手機(jī)QQ的發(fā)展歷程依照用戶范圍可以粗略劃分為4個(gè)階段:10萬(wàn)級(jí)、百萬(wàn)級(jí)、千萬(wàn)級(jí)、億級(jí),不同的用戶范圍,IM后臺(tái)的架構(gòu)也不同,而且基本上都是用戶范圍先上去,然后產(chǎn)生各種問(wèn)題,倒逼技術(shù)架構(gòu)升級(jí)。
1. 10萬(wàn)級(jí) - IM1.X
最開(kāi)始的手機(jī)QQ后臺(tái)以下,可以說(shuō)是簡(jiǎn)單的不能再簡(jiǎn)單,普通得不能再普通的1個(gè)架構(gòu)了(是不是會(huì)感嘆原來(lái)神1樣的公司開(kāi)始也是
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)