這篇文章算是今年年末的一個(gè)技術(shù)總結(jié)。談?wù)劶夹g(shù)圈一度的熱門話題「去 IOE」這件事。
何謂 IOE ?
所謂 IOE 是個(gè)簡(jiǎn)稱。是指以 IBM 、Oracle、EMC 為代表的小型機(jī)、集中式數(shù)據(jù)庫(kù)和高端存儲(chǔ)的技術(shù)架構(gòu)。其中 I 指 IBM p 系列小型機(jī),操作系統(tǒng)是 AIX,IBM 專有的 Unix 系統(tǒng);O 指 Oracle 數(shù)據(jù)庫(kù)(RDBMS);E 指 EMC 中高端 SAN 存儲(chǔ),曾經(jīng)一度是 IT 企業(yè)很喜歡采用的技術(shù)架構(gòu)。IOE 這個(gè)說法怎么來(lái)的? 據(jù)我所知應(yīng)是來(lái)自阿里技術(shù)團(tuán)隊(duì)內(nèi)部的稱謂,然后才在整個(gè)業(yè)界流傳開來(lái)。如果你去問國(guó)外技術(shù)專家什么是 IOE,對(duì)方肯定一頭霧水。當(dāng)然,隨著國(guó)內(nèi)案例逐漸被介紹到國(guó)外,或許某一天這個(gè)術(shù)語(yǔ)能輸出價(jià)值觀也說不定。
在小型機(jī)領(lǐng)域,只有 IBM 這一家,獨(dú)步武林;HP 當(dāng)初把寶押在安騰上,算是早早退出這個(gè)市場(chǎng);Sun 日薄西山,SPARC 機(jī)器…那就更不必說了。另外,需要說明的是,IBM 也生產(chǎn)存儲(chǔ)產(chǎn)品,但 IBM 的存儲(chǔ)產(chǎn)品早期其實(shí)挺山寨,競(jìng)爭(zhēng)不過 EMC ,而且有些用戶會(huì)忌諱把所有的東西困在一家公司身上,尾大不掉。 起碼在國(guó)內(nèi),EMC 的占有率應(yīng)該更高。中高端存儲(chǔ)這個(gè)領(lǐng)域,還有一家 HDS,不過曾經(jīng)一度在阿里也栽過跟頭。數(shù)據(jù)庫(kù)軟件方面,在當(dāng)初幾乎沒的選擇,只有 Oracle 這一家,IBM 的 DB2 實(shí)在是不行,雖然號(hào)稱市場(chǎng)占有率不錯(cuò)。國(guó)內(nèi)用 Oracle 數(shù)據(jù)庫(kù)支撐互聯(lián)網(wǎng)應(yīng)用的話,一般是采用 Data Guard 這個(gè)架構(gòu)方案。
為何要「去 IOE」?
說起「去 IOE」,跟阿里的王堅(jiān)博士有直接關(guān)系。我無(wú)從得知他當(dāng)時(shí)為什么要做出這個(gè)決定。但根據(jù)我的推斷,當(dāng)時(shí)淘寶、支付寶等公司每家技術(shù)體系各有特色,技術(shù)團(tuán)隊(duì)也各是一套,只有去「去 IOE」,才有可能將淘寶、支付寶等公司的網(wǎng)站核心體系架構(gòu)遷移到云上,體現(xiàn)阿里云的價(jià)值,某些管理者才有可能從集團(tuán)公司層面對(duì)整個(gè)技術(shù)團(tuán)隊(duì)有更好的控制力。否則,阿里云師出無(wú)名。注意,這個(gè)說法只是我個(gè)人臆測(cè),肯定不是事實(shí),只是邏輯上是說得通的。實(shí)際上,阿里云當(dāng)時(shí)自己的活兒做的很垃圾,也幸虧這個(gè)「去 IOE」運(yùn)動(dòng)進(jìn)行并不那么快。當(dāng)然這是后話了。
或許有人認(rèn)為「去 IOE」會(huì)節(jié)約企業(yè)成本,實(shí)際上,當(dāng)時(shí)的 Oracle 和 EMC 等軟件成本已經(jīng)足夠低,硬件上,硬件上的每年的成本也是可控的,如果考慮遷移后總體成本,新硬件成本、開發(fā)人員成本、運(yùn)維成本、時(shí)間成本等等,通通算下來(lái),未必能節(jié)約多少。這個(gè)不是我拍腦袋給出來(lái)的,而是跟不少技術(shù)人事后復(fù)盤,結(jié)論基本一致。
客觀的說,當(dāng)時(shí)「去 IOE」有一種公司政治的傾向,或者成為一個(gè)一窩蜂的運(yùn)動(dòng),這很令人討厭,或者說這事情出發(fā)點(diǎn)未必如何好,但令人意外的是,最后在阿里諸多優(yōu)秀技術(shù)人才的努力下,卻取得了一個(gè)令人驚訝的很好的結(jié)果,那么,就別管出發(fā)點(diǎn)如何了。
為何「去 IOE」是必要的?
從另外一個(gè)角度考慮,尤其從運(yùn)維 DBA 的角度去審視,「去 IOE」 實(shí)際上是必須要進(jìn)行的,或者說去「O」是必須的,因?yàn)楫?dāng)時(shí)存在的問題是,Oracle 數(shù)據(jù)庫(kù)對(duì)用戶 (DBA) 來(lái)說已經(jīng)不夠靈活,常用的 Data Guard 模式無(wú)法適應(yīng)互聯(lián)網(wǎng)公司快速增長(zhǎng),最基本的一點(diǎn),讀寫分離就做不到,只能向上擴(kuò)展(Scale Up),拼硬件能力,幾乎無(wú)法做到橫向擴(kuò)展。或許有人說,不是有 RAC 么? 但 Oracle RAC 是無(wú)法對(duì)付高并發(fā)下的 OLTP 應(yīng)用的 – 一直到現(xiàn)在很多人都認(rèn)識(shí)不到這一點(diǎn),RAC 跑跑數(shù)據(jù)倉(cāng)庫(kù)什么的倒是不錯(cuò)。
注:有人會(huì)說 Orale RDBMS 11g 的 Data Guard 可以讀寫分離呀,這個(gè)所謂的讀寫分離可靠性其實(shí)是不夠的,而且出現(xiàn)的時(shí)間也太晚了,此外,不夠靈活。還會(huì)有人爭(zhēng)論 Oracle RAC 怎么就不能應(yīng)付 OLTP 呢? 別爭(zhēng)論了,你非要說可以應(yīng)付,沒問題,但是在阿里體系的公司里,還真沒人敢這么玩兒,為什么? 是做不到? 還是他們掉進(jìn)坑過?
如果要?jiǎng)印窸」,那么 「I」 和「E」就必須要?jiǎng)?– 相信不會(huì)有人在小型機(jī)上跑 MySQL 的,而且,只換掉「O」也沒有意義,換湯不換藥不會(huì)有成效。
隨著中國(guó)電子商務(wù)的快速發(fā)展,整個(gè)阿里系其實(shí)已經(jīng)在面對(duì)全世界增長(zhǎng)最快最復(fù)雜的業(yè)務(wù)系統(tǒng)之一,這是機(jī)遇,也是挑戰(zhàn)。舊有的技術(shù)架構(gòu)已經(jīng)不足以支撐更大的夢(mèng)想。從這個(gè)意義上來(lái)說,去「IOE」是相當(dāng)必要的?;蛟S,這也是王堅(jiān)博士以及一些人的初衷。
為何「去 IOE」成功了?
阿里幾家子公司這么復(fù)雜的技術(shù)體系,「去 IOE」這事情堪比高速公路上給飛馳的汽車換輪胎,最后成功是相當(dāng)不容易的。
成功的因素有哪些呢?
1.功不可沒的當(dāng)然是一群出色的技術(shù)人才,很了不起。我想這是無(wú)需多說的,面對(duì)這么復(fù)雜的業(yè)務(wù)環(huán)境,這個(gè)任務(wù)如果沒有一批優(yōu)秀的工程師是絕對(duì)做不到的,沒有阿里 B2B 技術(shù)團(tuán)隊(duì)、淘寶團(tuán)隊(duì)、支付寶技術(shù)團(tuán)隊(duì)的先后投入以及合作實(shí)踐也是絕對(duì)做不到的。要強(qiáng)調(diào)一下的是,阿里在在分布式事務(wù)上的處理能力和解決方案,這應(yīng)該是獨(dú)門絕技。在業(yè)界各種會(huì)議上也經(jīng)常能看到這一群牛人出來(lái)分享,同行應(yīng)該能感受到。
2.開源軟件的快速成熟。舉個(gè)例子,這兩年 MySQL 體系的軟件進(jìn)步相當(dāng)驚人,各種經(jīng)驗(yàn)證的解決方案如雨后春筍般涌現(xiàn)出來(lái)。這得益于不少知名互聯(lián)網(wǎng)公司(比如 Facebook、淘寶)在使用 MySQL 的同時(shí)也將其技術(shù)改進(jìn)回饋給技術(shù)社區(qū),把技術(shù)方案分享給業(yè)界,業(yè)界在吸收這些技術(shù)的同時(shí)再次回饋給技術(shù)社區(qū),形成正向的反饋,極大地提升了開源軟件在商業(yè)領(lǐng)域的競(jìng)爭(zhēng)力。
3.硬件革命。硬件的進(jìn)步給技術(shù)體系的變遷做好了鋪墊。最主要的關(guān)鍵詞:「SSD」。如果沒有「SSD」的技術(shù)成熟以及在商業(yè)應(yīng)用上被普遍接受,「去 IOE」幾乎是不可能做到的。要知道物理機(jī)械硬盤存儲(chǔ)的性能數(shù)十年幾乎沒得到什么大的改進(jìn) – 當(dāng)然每年提升一點(diǎn)是有的。但 SSD 相比機(jī)械硬盤來(lái)說,則是質(zhì)的飛躍。我記憶深刻的是,每年做 I/O 容量規(guī)劃的時(shí)候都會(huì)發(fā)愁,因?yàn)榧词挂呀?jīng)使用上了很高端的 EMC 存儲(chǔ)設(shè)備,但實(shí)際上只要應(yīng)用層 I/O 沒有命中到存儲(chǔ)內(nèi)存,直接打到后面的磁盤上,幾乎沒什么抵抗能力。比如當(dāng)時(shí)一個(gè)硬盤極限能撐 100 多個(gè) I/O,100 塊硬盤也不過是萬(wàn)把個(gè) I/O 就不行了。 但這樣的 I/O 「打擊」對(duì) SSD 來(lái)說,則不是什么大問題。SSD 給解決「IOE」體系最大的瓶頸 – I/O 能力提供了硬件先決條件。
4.摩爾定律。這一點(diǎn)最初我不想提及,但不提及,就會(huì)有別人說,所以還是補(bǔ)充一下。提到摩爾定律,重點(diǎn)要說的 X86 芯片的計(jì)算能力不斷進(jìn)步,而 IBM 的 Power 芯片雖然也在不斷進(jìn)步,但正式商用的節(jié)奏明顯在控制。這就給 Intel 體系帶來(lái)了機(jī)會(huì)和空間。
國(guó)內(nèi)對(duì)「去 IOE」的反應(yīng)
在出現(xiàn)阿里這個(gè)成功案例之后,技術(shù)圈很是震動(dòng),曾經(jīng)一度討論熱烈,隨后則是國(guó)內(nèi)產(chǎn)業(yè)界對(duì)此出現(xiàn)了一些跟風(fēng)的傾向,不少公司則打著「國(guó)產(chǎn)」軟件的旗號(hào)出來(lái)蒙人,這是值得警惕的。去掉 Oracle 不意味著就要采用國(guó)產(chǎn)的垃圾數(shù)據(jù)庫(kù),因?yàn)?MySQL 以及衍生的各種分支數(shù)據(jù)庫(kù)才是最佳選擇。同樣,不用 IBM 的小型機(jī)也不意味著國(guó)產(chǎn)服務(wù)器就迎來(lái)新機(jī)會(huì),在用戶那里,適合的解決方案才是最重要的?!溉?IOE」不應(yīng)該成為一個(gè)噱頭。任何時(shí)候,「國(guó)產(chǎn)」都不應(yīng)該是一個(gè)互聯(lián)網(wǎng)企業(yè)選型所要優(yōu)先考慮的因素。在全球化的今天,我們應(yīng)該忘掉「國(guó)產(chǎn)」,才有可能早點(diǎn)做出來(lái)更牛的軟件來(lái)。
更好笑的,還搞出來(lái)一個(gè)什么「去 SOA」的組織,我覺得這是不太正常的,實(shí)際需求為前提,不能本末倒置,難道是為了「去」而「去」么?
2014 以后會(huì)有更多公司「去 IOE」
從目前的種種趨勢(shì)來(lái)看,在今后幾年,國(guó)內(nèi)一些互聯(lián)網(wǎng)公司以及 IT 企業(yè)會(huì)逐漸的「去 IOE」化。相比幾年前,現(xiàn)在的「去 IOE」的主要原因則是:舊的「三件套」已經(jīng)的確不適合互聯(lián)網(wǎng)應(yīng)用了。開源數(shù)據(jù)庫(kù)更為可靠成熟,SSD 可靠性也得到驗(yàn)證,技術(shù)人才甚至都不需要從頭開始進(jìn)行儲(chǔ)備 – 類似「沃趣科技」這樣的團(tuán)隊(duì)已經(jīng)能夠提供足夠好的技術(shù)支持服務(wù),新的技術(shù)體系毫無(wú)疑問會(huì)讓企業(yè)更有競(jìng)爭(zhēng)力,總體成本更低。
上文提到的「沃趣科技」是由一群前阿里的工程師組成的技術(shù)團(tuán)隊(duì),匯集了一群從數(shù)據(jù)庫(kù)到存儲(chǔ)到網(wǎng)絡(luò)架構(gòu)的專家,如果要找「去 IOE」技術(shù)顧問,似乎他們是獨(dú)一份(這里不是廣告)。相比之下,IBM、Oracle、EMC 等公司近些年來(lái),實(shí)際上對(duì)國(guó)內(nèi)那些快速發(fā)展的互聯(lián)網(wǎng)公司已經(jīng)提供不了有力的技術(shù)支持了,IBM 拿蘇寧電商練手更成為業(yè)內(nèi)笑柄?;蛟S這也是 IOE 們被拋棄的一個(gè)原因,也可能是一些創(chuàng)業(yè)團(tuán)隊(duì)的新機(jī)會(huì)。
一個(gè)時(shí)代過去了。
–EOF–
關(guān)于 IOPS 的數(shù)據(jù)補(bǔ)充:
機(jī)械硬盤現(xiàn)在最高號(hào)稱能跑到 400 IOPS,但應(yīng)該 200 左右(走 SAS 接口)也就是極限了; 單塊 SSD(走 PCIe 接口)的最高記錄是九百多萬(wàn),用不了多久突破千萬(wàn) IOPS 是沒問題的,相當(dāng)了不起, 即使百萬(wàn)量級(jí)也足夠嚇人了。(Refer)
原文鏈接: