數據中心operating system正當其時

摘要:目前分佈式應用越來越普遍,而這股熱潮似乎已涌入到數據中心管理領域。近日Apache Mesos聯合創始人Benjamin Hindman撰文分析當前分佈式應用的現狀、開發者/運營者面臨的困境及解決之道!

【編者按】 目前分佈式應用越來越普遍,而這股熱潮似乎也正在涌入到傳統的數據中心管理領域。然而卻不利於開發者/運營者,這是因爲這些應用不再僅限於在一臺服務器上工作,更多地會是在數據中心多個服務器之間進行工作。如此一來,加重了開發者/運營者的工作負擔。近日,Benjamin Hindman撰文,詳細分析了現在分佈式應用的現狀、開發者/運營者面臨的困境及解決之道!

譯文如下:


現在有很多新型應用層出不窮,這些應用不再僅限於在一臺服務器上工作,更多地會是在數據中心多個服務器之間進行工作。例如集羣計算系統Apache Hadoop和Apache Spark,消息處理系統Apache Kafka,鍵值存儲數據庫系統Apache Cassandra等。這些新型應用都屬於分佈式應用,同樣地爲數據中心編寫分佈式系統也日漸變得流行起來。但是,要開發者編寫分佈式系統是困難的,運營分佈式系統對運營人員來說也是是困難的。爲什麼呢?因爲開發者和運營者往往容易被一個錯誤的概念誤導了:機器。

一、發展瓶頸 機器是錯誤的抽象概念

對於創建和運行分佈式應用,機器概念的存在不啻是個絆腳石。爲開發者帶來了多餘的工作負擔,從而使開發者受限於機器類特性,例如IP地址和本地存儲。這使得移動和重設應用變得困難甚至無法進行,同時使得數據中心的維護工作變得痛苦和漫長。

機器概念會使運行者進行系統部署時,以最簡單和保守的單機單應用的方式進行。這不利於資源優化,因爲機器和應用彼此之間沒有做到精確匹配,數據中心變得非常靜態化和低延展性。

同時企業也不得不聘用大量人員爲這些單應用機器進行大量的人工操作,而人在這過程中會逐漸成爲新系統新應用的發展瓶頸。

數據中心operating system(以下簡稱OS)正當其時

首先想象下以數據中心的方式來在個人電腦上運行程序。每當我們啓動瀏覽器,我們不得不指定需要使用哪個CPU,需要尋址哪個內存模塊等等。得益於強大的操作系統,我們都不必爲這些而煩惱。

二、理想中的數據中心的操作系統應該是什麼樣的呢?

從運營者角度來說,數據中心OS可管控數據中心的所有機器並把它們聚集成一個巨型資源池來運行程序。所有應用都可在任意可用機器上運行。

從開發者角度來說,數據中心OS可作爲應用和機器之間的中間件來運行,提供公共操作庫來幫助和簡化分佈式應用的搭建。

它不需要直接替代用Linux或其它常用的主機OS,而應該是能夠提供一個構建於主機OS之上的軟件堆棧,用於進行資源管理和進程隔離。

數據中心Operating System API

該API將有助於分佈式應用進行資源的分配和銷燬,啓動、監控、和銷燬進程,等等。

基本操作示例

數據中心OS的兩個基本操作是服務探索和服務協調。不同於單主機只有相當少的應用需要知道在同一主機上運行了多少個應用,服務探索是分佈式應用的基本需求。換句話說,分佈式應用應具有高可用性和高容錯能力。

這兩個基本操作一方面簡化了部署工作,另一方面也增強了可移植性。它使得無需重寫代碼來變更底層實施方式。

部署應用的新方式

數據中心OS應提供一個軟件接口來替代人工接口來與開發者進行交互,進行應用的部署工作。開發者藉助數據中心OS(例如CLI或者GUI)來執行應用,程序執行則藉助數據中心OS API。

這樣的服務接口有助於分離運營者和用戶的關注點:運營者爲每個用戶分配了具體的可用資源,用戶可執行任意程序使用任意可用資源。由於大多數的分佈式應用具有複雜的調度需求(例如Apache Hadoop)和特殊的錯誤修復需求(例如數據庫),使用軟件代替人工干預是對數據中心OS來說是有決定性意義的。

“雲”不是一個OS 

——我們爲什麼需要新的OS呢?IaaS和PaaS不是已經能解決這些問題嗎?

IaaS目前還僅着重於機器層面的操作,被設計用於進行人工操作,提供的是虛擬機的操作。它可使一個機器變成多個機器,但是沒有提供能夠幫助開發者進行分佈式應用搭建的基本操作。

PaaS雖然脫離了機器層面,但是仍然着重的是人工操作。很多PaaS解決方案都含有很多間接服務和整合能幫助搭建分佈式應用,但是不能實現與其它PaaS方案的可移植操作。

分佈式系統的核心:Apache Mesos

Apache Mesos是由加州大學伯克利分校的AMPLab首先開發的一款開源羣集管理軟件,其提供了一個便捷的API用來創建和運行分佈式應用程序。目前已經有不少的分佈式系統直接構建於Mesos之上,包括:Apache Spark,Apache Aurora,Airbnb’sChronos以及Mesosphere’s Marathon。除此以外,還有多個流行系統與Mesos相連運行於其之上,例如:Apache Hadoop,Apache Storm,Google’s Kubernetes等。Twitter和Airbnb等企業已經開始把Mesos應用於數據中心的運營中。(推薦閱讀:Mesos漸入主流

然而Mesos還在發展中暫時不能算一個完全獨立的數據中心OS,現在還需要與其它分佈式系統配合使用。從模塊化的角度來說,以Mesos爲基礎的數據中心OS的構成是這樣的:核心(Mesos),分佈式初始化腳本(Marathon/Aurora),計劃任務工具(Chronos)等。


PS:數據中心對操作系統的需求正在不斷增加,但真正關於數據中心操作系統的開發仍然衆說紛紜。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章