去年的時候, Marathon的項目進行了開源,它的設計宗旨就是讓用戶在同一組服務器之上,更智能地運行多種應用程序和服務——Hadoop、Storm,甚至一個標準的Web應用。Marathon出自於一家初創公司 Mesosphere之手,這家公司主要就是想構建一個數據中心操作系統,不過這個系統是運行在 Mesos集羣管理軟件之上,這也是 Twitter基礎設施的重要組成部分。該公司的聯合創始人是前Airbnb的工程師Florian
Leibert(也曾在Twitter工作過)和Tobias Knaup。
Marathon只不過佔據了Mesosphere的一小部分,但是Leibert表示它很重要且有着非常大的吸引力。就目前而言,雲計算和大數據的發展趨勢已經從鞏固階段跳轉到問題的解決階段,未來可能需要多個分佈式系統去處理那些特定的任務。
在闡述Marathon之前,我們應該瞭解一下它的發展歷程(點擊查看大圖):
網格計算將何去何從?
其實早在“雲計算”的概念氾濫之前,像“網格計算”和“集羣計算”這些專業術語與“請求式”聯繫的更緊密一些。思路也很簡單:很多組織機構(比如銀行和研究所)都有着大量的服務器,他們希望儘可能高效地利用這些機器,那麼通常也意味着這些服務器會形成一個資源池(當然也可以稱之爲“雲”),進而確保每一個應用程序或者任務都能得到它所需要的資源,而且還是按需分配。不再像以往的模式——爲每個應用程序配置一個小集羣,然後使用一個大集羣託管所有的東西,這也是Platform Computing( 在2012年3月被
IBM收購)幾年前對其私有云的定位。
然而,這一概念從未真正進入到主流企業之中,因爲這些企業在很大程度上會選擇虛擬服務器,而且傾向於考慮亞馬遜EC2模式的虛擬服務器來配置自家的私有云。不過隨着分佈式計算的發展,尤其是Hadoop等雲平臺的出現,大大改變了互聯網企業的IT環境,那些通用的“網格計算”或者“集羣計算”的理念再次得到了迴歸。
不可否認,其中有一部分原因在於,管理不同的IT環境已經變得十分的複雜:這裏運行的是分佈式的Web應用,那邊還有一個Hadoop集羣,甚至某個角落的服務器上還跑着Storm或者Spark,冷不防的你就有了3個集羣,而且每一個都需要維護。當然這些複雜性的問題不會出現在Google、Facebook或者Twitter的管理者面前,畢竟他們玩的就是 “效率和自動化”的遊戲。
Mesos的架構
這些互聯網“巨頭”都有自己的軟件來處理越來越多的工作負載:谷歌使用的是Borg(儘管該公司已經發表了一個尚未部署的Omega系統的研究論文);Twitter使用的就是Mesos;Facebook的系統稱之爲Corona(主要用於 Hadoop的工作負載設計,但該公司希望擴展到多種框架上)。
連線的Cade Metz撰寫了一篇博文,其中詳細介紹了Mesos、Borg和Omega,讀者可以 點擊閱讀。當然,如果和硬件關聯不上,那麼類似 Mesos這樣的軟件毫無價值,即使很多大公司都很喜歡這個系統。Airbnb是一個Mesos的忠實用戶,他們使用Mesos來管理完全運行在AWS上的工作負載。
爲什麼Marathon很重要?
Mesos僅僅是適用於集羣的管理,這意味着它可以隔離不同的任務負載。但是仍然需要額外的工具來幫助工程師查看不同系統上運行的工作負載。不然的話,如果某些工作負載消耗了所有資源,那麼重要的工作負載可能就難以及時地獲得資源。
Twitter也構建了一個工具叫Aurora(也在計劃進行開源)來處理這個問題,包括Airbnb也有一個名爲Chronos的工具。Mesosphere的創始人Leibert 和Knaup在Airbnb的時候就負責構建Chronos這一工具。Marathon是一個“元架構”,它可以讓Mesos和Chronos變得更好用,隨着Mesos一起運行,並且在運行工作負載的同時提供了更高的可用性,讓用戶可以添加資源以及自動的故障轉移。
不像Chronos在Mesos之上調度作業,Marathon讓Chronos在Mesos的內部進行運行,通過這種方式,Chronos也變成Marathon所管理的一項工作。Chronos的優勢在於處理和調度Hadoop作業和其他短期的任務,而Marathon則可以直接管理Chronos和那些長期運行的Web服務。Marathon甚至可以運行多個實例。
A cluster running three distinct applications
The same cluster, after one node died
從更廣的層面而言,像Marathon這樣的項目將來可能會在SDN(軟件定義的網絡)、存儲,甚至是數據中心有更大的作爲。Mesosphere公司也正試圖通過軟件管理的商用硬件來取代那些昂貴的硬件設施。(文/王鵬,審校/仲浩)
原文鏈接:New open source tech Marathon wants to make your data center run like Google’s