DCOS and Mesos

本文做者:彭彥明,來源:http://www.dostor.com/article/121738083.htmlhtml

2012年,圍繞Mesos開展商業活動的初創公司Mesosphere誕生,而Benjamin Hindman也以Mesosphere首席架構師的身份投身其中。 正是該公司提出了基於Mesos的DCOS(數據中心操做系統),但願企業能像使用一臺計算機同樣使用整個數據中心。後端

  一、認識DCOS,從Apache Mesos入手服務器

  爲了更好地理解DCOS,最好先了解一些Apache Mesos的背景知識。 Mesos適合做爲數據中心哪一層的抽象?網絡

  

  IaaS層抽象的是機器, PaaS則更多考慮部署、管理應用/服務。在交互方面,PaaS多是和開發者直接交互,而Mesos則是以API的形式和軟件程序交互。架構

  換句話說,你能夠基於Mesos之上構建一個PaaS系統(好比Marathon),同時你還能夠在一個IaaS上(好比Openstack)運行Mesos。所以,當Mesos運行在一個組合系統之上,就能直接跨越底層組件去管理和計劃上層工做負載。 不過Mesos如今還須要與其它分佈式系統配合使用。目前已有很多分佈式系統直接構建於Mesos之上,包括Apache Spark,Apache Aurora,Airbnb的Chronos以及Mesosphere的Marathon等。此外還有多個流行系統與Mesos相連並運行於其上,如Apache Hadoop,Apache Storm,Google的Kubernetes等。框架

  

  Mesos亮點一:兩級調度機制 Mesos以Framework的形式,提供了兩級調度機制,將任務的調度和執行分離。面對各類類型的任務,在調度階段,由Framework的 Scheduler(調度器)以資源邀約的形式向Mesos Master申請資源;在執行階段,由Framework的Executor(執行器)執行任務。運維

  

  (圖片來自網絡)分佈式

  如圖所示,Mesos實現了「兩級調度機制」,它能夠管理多種類型的應用程序(圖中只展現了Hadoop和MPI兩種類型)。工具

  深刻學習:Mesos「兩級調度機制」Mesos Master協調所有的Mesos Slave,並肯定每一個節點的可用資源,聚合計算跨節點的全部可用資源的報告,而後向註冊到Master的Framework(做爲Master的客戶端)發出資源邀約。 Framework根據應用程序的需求,選擇接受或拒絕來自Master的資源邀約。一旦接受邀約,Master即協調Framework和Slave,調度參與節點上的任務,並在容器中執行,使得多種類型的任務可在同一個節點上同時運行。oop

  Mesos亮點二:圍繞Framework建設的生態系統 在Apache Mesos的術語中,使用Mesos API在集羣中調度任務的Mesos應用程序稱爲Framework(框架)。 Mesos另外一個顯著亮點就是圍繞Framework建設的生態系統了。一旦將任務調度委託給Framework 應用程序,以及採用插件架構,就能直接打造Mesos問鼎數據中心資源管理的生態系統。由於每接入一種新的Framework ,Master無需爲此編碼,Slave模塊能夠複用,使得在Mesos所支持的寬泛領域中,業務迅速增加。而開發者就能夠專一於他們的應用和Framework的選擇。 下圖爲不斷增加的Mesos Framework列表:

  

  因此,Apache Mesos是________? 能夠說,Apache Mesos是爲構建和運行其餘分佈式系統提供服務的分佈式系統。它將CPU 、內存、存儲介質以及其它計算機資源從物理機或者虛擬機中抽象出來,構建支持容錯和彈性的分佈式系統,並提供高效的運行能力。Mesos使用與Linux 內核相同的系統構建原則,只是它們處在不一樣的抽象層次上。Mesos內核運行在每臺機器上,經過應用程序Framework ,提供跨整個數據中心和雲環境進行資源管理和調度的API。

  3 基於Mesos的DCOS實際上是Mesos衍生的生態系統之一

  下圖是基於Mesos衍生的生態圈。值得一提的是,像Twitter、Airbnb、蘋果這樣的大公司幾乎都是本身搭建基於Mesos的基礎設施。但開源的Mesos是一項很是尖端的技術,經過開源工具手工裝配,並將Mesos用於生產環境是很是高難度的。這也是Mesosphere DCOS的價值所在。Mesosphere推出的DCOS,具有和Twitter、蘋果公司同等的能力和自動化效果。

  

  下面介紹三種基於Mesos衍生的生態系統: Mesosphere DCOS 從Mesosphere官網瞭解到,Mesosphere DCOS是以 Mesos爲「核心」,與其周邊服務及功能組件所組成的一個生態系統。它跨越數據中心或雲環境中的全部主機,將全部主機的資源放入一個資源池,使全部主機的行爲總體上像一個大計算機。 Mesosphere DCOS內部架構圖

  

  由圖可見,Mesosphere DCOS除了內核Mesos,還有兩個關鍵組件Marathon和Chronos。其中,Marathon(名分佈式的init)是一個用於啓動長時間運行應用程序和服務的框架,Chronos(又名分佈式的cron)是一個在Mesos上運行和管理計劃任務的框架。此外,Mesosphere DCOS還有Mesos-DNS這樣的插件模塊,它相似一個CLI,一個GUI又或者是提供你想運行的全部的包的倉庫等工具。 Mesosphere DCOS 能夠運行在任意的現代Linux環境,公有或私有云,虛擬機甚至是裸機環境,當前支持的平臺有亞馬遜AWS,谷歌GCE,微軟Azure,Openstack等等。據Mesosphere官網顯示,Mesosphere DCOS在其公有倉庫上已提供了40多種服務組件,好比Hadoop,Spark,Cassandra, Jenkins, Kafka, MemSQL等等。 浙江移動與天璣聯合研發的DCOS 下圖爲該DCOS內部架構示意

  

  由圖可見,「核心」Mesos負責集羣中全部節點資源的動態調度與管理。其上還包括DCOS管控平臺,容器應用框架等重要功能組件。該運營商表示,上述DCOS平臺不只具有靈活彈性的伸縮能力,爲系統提供高效的平行擴展來應對突發的業務高峯,並且Mesos與Docker的結合極大簡化業務運維複雜度,實現自動化部署與應用程序升級,Mesos還可爲資源管理提供高容錯性,自動辨別服務器、機架或網絡出現的故障等。

  蘋果公司基於Mesos重建的Siri後端服務 在MesosCon 2015上,蘋果公司分享了在生產環境中使用Mesos的經驗。原來蘋果用了近一年時間從原有的基於VM的環境遷移到基於Mesos的環境。他們使用Apache Mesos重建了我的助理軟件Siri的後端服務,並建立了一個名爲J.A.R.V.I.S.並且相似PaaS的專有調度Framework,由此,開發者能夠部署可伸縮和高可用的Siri服務。聽說其Mesos集羣規模保守估計有10,000個節點,支持Siri應用程序的後臺系統包括約100種不一樣類型的服務,應用程序的數據則存儲在Hadoop分佈式文件系統(HDFS)中。從基礎設施的角度來看,使用Mesos 有助於使Siri具有可伸縮性和可用性,而且還改善了iOS 應用程序自身的延遲。

  結束語

  此刻,你是否已經對Mesos和DCOS有了新認識呢?其實近年來,隨着雲計算的快速普及,Docker爲表明的容器技術如火如荼,企業用戶愈來愈關注基於雲計算的下一代IT架構變革,而軟件定義數據中心(SDDC)的理念也逐漸被接收。Mesos技術正是在這樣的大環境下應運而生,有了基於Mesos的數據中心操做系統,企業能夠方便地對數據中心資源進行統一管理,這無疑是IT架構質的飛躍。相信不遠的將來,以Mesos爲表明的一系列SDDC技術將成爲業內的新熱點。

相關文章
相關標籤/搜索