全日本網(wǎng)站流量第一的日本雅虎而言,滿足每月650億次的網(wǎng)頁瀏覽量不是太大的問題,更大的困難是瞬間3倍爆量的考驗(yàn)。日本雅虎網(wǎng)絡(luò)營運(yùn)總部基礎(chǔ)建設(shè)技術(shù)分部部長伊藤拓矢說,曾觀察到日本發(fā)生地震后,在數(shù)十秒內(nèi),日本雅虎資料中心的網(wǎng)絡(luò)流量瞬間暴增為平時(shí)尖峰的3倍,如何事先打造出一套可以應(yīng)付這種瞬間爆量的基礎(chǔ)架構(gòu),正是伊藤拓矢的任務(wù)。
通過資料中心抽象化,提供內(nèi)部穩(wěn)定服務(wù)
因?yàn)槿毡狙呕⒊司W(wǎng)站服務(wù)外,也提供了不少天氣預(yù)報(bào)或防災(zāi)情報(bào)的行動(dòng)App,每當(dāng)遇到地震,許多民眾會(huì)透過這類App來查詢最新的地震、海嘯等資訊而導(dǎo)致網(wǎng)站流量暴增。而這些都是攸關(guān)人身安全的服務(wù),即使系統(tǒng)處于高負(fù)荷的狀態(tài)下,仍然要確保穩(wěn)定提供服務(wù),伊藤拓矢表示,關(guān)鍵作法就是必須將整座資料中心的資源抽象化。
日本雅虎起初自行開發(fā)了一套IaaS平臺(tái)來調(diào)度內(nèi)部服務(wù)所需的運(yùn)算資源,可提供超過1萬臺(tái)虛擬機(jī)器的規(guī)模。但因采用了自行開發(fā)的專屬API,很難結(jié)合開源軟體社群的資源。
因此,在2013年時(shí),日本雅虎決定改導(dǎo)入OpenStack來打造內(nèi)部IaaS平臺(tái)。過去一年來,日本雅虎OpenStack叢集的規(guī)模也成長了 1倍,部署用的實(shí)體機(jī)器從2,000臺(tái)增加到4,000臺(tái),可提供的虛擬機(jī)器數(shù)量也從2.5萬個(gè)增加到了5萬個(gè)。由于OpenStack軟體上的效能改進(jìn),單柜伺服器所能執(zhí)行的虛擬機(jī)器,也從400個(gè)提高到單柜2,000個(gè)。伊藤拓矢表示,目前1柜OpenStack叢集,抵得上過去6柜采裸機(jī)部署的機(jī)柜。
日本雅虎目前部署了超過20個(gè)OpenStack叢集,總儲(chǔ)存容量達(dá)20PB,可用性能達(dá)到99.996%。日本雅虎還建立了一個(gè)10人規(guī)模的 OpenStack維運(yùn)團(tuán)隊(duì),其中6名開發(fā)者和4名維運(yùn)人員。為了管理大量OpenStack叢集,甚至還自制了一套小型整合管理平臺(tái)。
伊藤拓矢表示,透過OpenStack建立了一個(gè)自助式的資料中心資源使用平臺(tái),來提供2千名雅虎員工使用,讓OpenStack團(tuán)隊(duì)專注于處理突發(fā)事件。開發(fā)者隨時(shí)都可以取得自行申請(qǐng)?zhí)摂M機(jī)器,最近甚至連非開發(fā)人員,如分析人員和營業(yè)人員都會(huì)用。
不需要透過工程師協(xié)助,這套系統(tǒng)平均每天會(huì)自動(dòng)建立500個(gè)新的虛擬機(jī)器,不過,其中半數(shù)虛擬機(jī)器用不滿一個(gè)月就會(huì)移除。
他說,這套日本雅虎5萬個(gè)虛擬機(jī)器的新IaaS平臺(tái),直接使用了龐大社群所開發(fā)的OpenStack來提供基礎(chǔ)功能,不用像過去得自 行開發(fā)介接各種虛擬化技術(shù)的特殊API。而Appliance層級(jí)的功能則與第三方廠商共同開發(fā),只有內(nèi)部特殊需求的專屬功能才由雅虎開發(fā)人員自制,如內(nèi)部簽核流程或是公司法的特殊需求。
伊藤拓矢表示,使用OpenStack的好處是,可以使用一套統(tǒng)一的API,來管理多種虛擬化平臺(tái),甚至能管理Container。更重要的是能將資料中心的硬體抽象化,使用者不再需要為了效能調(diào)校而費(fèi)心研究所用的硬體設(shè)備,而是可以專注于開發(fā)服務(wù)。
不過,他提醒,使用OpenStack建立虛擬機(jī)器要有用完即丟的概念。以日本雅虎為例,導(dǎo)入OpenStack時(shí)要克服的最大問題,反而是要求開發(fā)人員拋掉過去執(zhí)行程式的習(xí)慣,不是要想辦法調(diào)校出一個(gè)能夠永久使用的系統(tǒng)環(huán)境,而是要懂得善用替換成本很低的虛擬機(jī)器。 「每次建立新的虛擬機(jī)器就是一個(gè)全新的執(zhí)行環(huán)境,使用完畢后就刪除,需要的時(shí)候再重新建立。」他說。
這個(gè)用完即丟的思維也有助于降低成本。伊藤拓矢表示,以現(xiàn)在日本雅虎使用的運(yùn)算資源來說,用OpenStack自建私有云,比起使用公有云服務(wù)減少了97%的成本。但是服務(wù)取得越方便,也越容易造成浪費(fèi),因此,雅虎會(huì)透過OpenStack的帳務(wù)機(jī)制來計(jì)算使用者所使用虛擬機(jī)器的時(shí)數(shù),來教育使用者要具備成本意識(shí), 養(yǎng)成虛擬機(jī)器不用時(shí)就釋出的習(xí)慣。
叢集版本不用更新,直接砍掉重練
OpenStack更新頻繁,1年中改版2次的快節(jié)奏,讓不少采用的企業(yè)直呼吃不消,甚至干脆選擇不更新,而日本雅虎以資料中心生命周期管理版本,也同樣借鏡用完即丟的思維,來解決這個(gè)困擾許多企業(yè)的問題。
日本雅虎在資料中心內(nèi),同時(shí)部署了4種版本的OpenStack叢集,每一個(gè)版本各所提供的虛擬機(jī)器數(shù)量約各占總量的四分之一。當(dāng) OpenStack要推出新版時(shí),他們會(huì)有計(jì)畫地全部移除最舊版本叢集上的虛擬機(jī)器,再重新安裝最新版本,因此一個(gè)OpenStack版本在日本雅虎資料中心的壽命大約是兩年。
伊藤拓矢解釋,例如他們?cè)仍谫Y料中心部署了Havana、Icehouse、Kilo以及Juno等4種版本的叢集,等到Havana版叢集上的虛擬機(jī)器都關(guān)閉后,再將該叢集的軟體重新安裝為還未發(fā)表正式版的Liberty版本。
不僅不擔(dān)心OpenStack快速改版的步調(diào),伊藤拓矢甚至非??隙∣penStack的改版作法,「有新版本,才有新功能可用?!顾f。透過資料中心分區(qū)升級(jí)的策略,日本雅虎也能積極采用新版,甚至在正式版釋出前,從Beta 2版本就會(huì)開始導(dǎo)入,先用于維運(yùn)團(tuán)隊(duì)的內(nèi)部測(cè)試。例如,伊藤拓矢已經(jīng)開始試用今年10月才會(huì)正式發(fā)布的Liberty版本,他個(gè)人最推薦的新功能是共享檔案系統(tǒng)服務(wù)Manila,由于日本雅虎近期有類似儲(chǔ)存服務(wù)的計(jì)畫,這個(gè)套件則符合日本雅虎的需求。
日本雅虎采資料中心生命周期管理策略,采分區(qū)分版安裝的作法,來進(jìn)行OpenStack叢集的版本控管,資料中心伺服器分成4區(qū),各安裝不同版本的OpenStack,要導(dǎo)入新版時(shí),直接將最舊版本叢集內(nèi)所有伺服器整批直接改裝新版本。