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