圖片來源: 

iThome

對全日本網站流量第一的日本雅虎而言,滿足每月650億次的網頁瀏覽量不是太大的問題,更大的困難是瞬間3倍爆量的考驗。日本雅虎網路營運總部基礎建設技術分部部長伊藤拓矢說,曾觀察到日本發生地震後,在數十秒內,日本雅虎資料中心的網路流量瞬間暴增為平時尖峰的3倍,如何事先打造出一套可以應付這種瞬間爆量的基礎架構,正是伊藤拓矢的任務。

透過資料中心抽象化,提供內部穩定服務

因為日本雅虎除了網站服務外,也提供了不少天氣預報或防災情報的行動App,每當遇到地震,許多民眾會透過這類App來查詢最新的地震、海嘯等資訊而導致網站流量暴增。而這些都是攸關人身安全的服務,即使系統處於高負荷的狀態下,仍然要確保穩定提供服務,伊藤拓矢表示,關鍵作法就是必須將整座資料中心的資源抽象化。

日本雅虎起初自行開發了一套IaaS平臺來調度內部服務所需的運算資源,可提供超過1萬臺虛擬機器的規模。但因採用了自行開發的專屬API,很難結合開源軟體社群的資源。

因此,在2013年時,日本雅虎決定改導入OpenStack來打造內部IaaS平臺。過去一年來,日本雅虎OpenStack叢集的規模也成長了1倍,部署用的實體機器從2,000臺增加到4,000臺,可提供的虛擬機器數量也從2.5萬個增加到了5萬個。由於OpenStack軟體上的效能改進,單櫃伺服器所能執行的虛擬機器,也從400個提高到單櫃2,000個。伊藤拓矢表示,目前1櫃OpenStack叢集,抵得上過去6櫃採裸機部署的機櫃。

日本雅虎目前部署了超過20個OpenStack叢集,總儲存容量達20PB,可用性能達到99.996%。日本雅虎還建立了一個10人規模的OpenStack維運團隊,其中6名開發者和4名維運人員。為了管理大量OpenStack叢集,甚至還自製了一套小型整合管理平臺。

伊藤拓矢表示,透過OpenStack建立了一個自助式的資料中心資源使用平臺,來提供2千名雅虎員工使用,讓OpenStack團隊專注於處理突發事件。開發者隨時都可以取得自行申請虛擬機器,最近甚至連非開發人員,如分析人員和營業人員都會用。

不需要透過工程師協助,這套系統平均每天會自動建立500個新的虛擬機器,不過,其中半數虛擬機器用不滿一個月就會移除。

他說,這套日本雅虎5萬個虛擬機器的新IaaS平臺,直接使用了龐大社群所開發的OpenStack來提供基礎功能,不用像過去得自行開發介接各種虛擬化技術的特殊 API。而Appliance層級的功能則與第三方廠商共同開發,只有內部特殊需求的專屬功能才由雅虎開發人員自製,如內部簽核流程或是公司法的特殊需求。

伊藤拓矢表示,使用OpenStack的好處是,可以使用一套統一的API,來管理多種虛擬化平臺,甚至能管理Container。更重要的是能將資料中心的硬體抽象化,使用者不再需要為了效能調校而費心研究所用的硬體設備,而是可以專注於開發服務。

不過,他提醒,使用OpenStack建立虛擬機器要有用完即丟的概念。以日本雅虎為例,導入OpenStack時要克服的最大問題,反而是要求開發人員拋掉過去執行程式的習慣,不是要想辦法調校出一個能夠永久使用的系統環境,而是要懂得善用替換成本很低的虛擬機器。「每次建立新的虛擬機器就是一個全新的執行環境,使用完畢後就刪除,需要的時候再重新建立。」他說。

這個用完即丟的思維也有助於降低成本。伊藤拓矢表示,以現在日本雅虎使用的運算資源來說,用OpenStack自建私有雲,比起使用公有雲服務減少了97%的成本。但是服務取得越方便,也越容易造成浪費,因此,雅虎會透過OpenStack的帳務機制來計算使用者所使用虛擬機器的時數,來教育使用者要具備成本意識, 養成虛擬機器不用時就釋出的習慣。

叢集版本不用更新,直接砍掉重練

OpenStack更新頻繁,1年中改版2次的快節奏,讓不少採用的企業直呼吃不消,甚至乾脆選擇不更新,而日本雅虎以資料中心生命周期管理版本,也同樣借鏡用完即丟的思維,來解決這個困擾許多企業的問題。

日本雅虎在資料中心內,同時部署了4種版本的OpenStack叢集,每一個版本各所提供的虛擬機器數量約各占總量的四分之一。當OpenStack要推出新版時,他們會有計畫地全部移除最舊版本叢集上的虛擬機器,再重新安裝最新版本,因此一個OpenStack版本在日本雅虎資料中心的壽命大約是兩年。

伊藤拓矢解釋,例如他們原先在資料中心部署了Havana、Icehouse、Kilo以及Juno等4種版本的叢集,等到Havana版叢集上的虛擬機器都關閉後,再將該叢集的軟體重新安裝為還未發表正式版的Liberty版本。

不僅不擔心OpenStack快速改版的步調,伊藤拓矢甚至非常肯定OpenStack的改版作法,「有新版本,才有新功能可用。」他說。透過資料中心分區升級的策略,日本雅虎也能積極採用新版,甚至在正式版釋出前,從Beta 2版本就會開始導入,先用於維運團隊的內部測試。例如,伊藤拓矢已經開始試用今年10月才會正式發布的Liberty版本,他個人最推薦的新功能是共享檔案系統服務Manila,由於日本雅虎近期有類似儲存服務的計畫,這個套件則符合日本雅虎的需求。

日本雅虎採資料中心生命週期管理策略,採分區分版安裝的作法,來進行OpenStack叢集的版本控管,資料中心伺服器分成4區,各安裝不同版本的OpenStack,要導入新版時,直接將最舊版本叢集內所有伺服器整批直接改裝新版本。(圖片來源/日本雅虎)


Advertisement

更多 iThome相關內容