DCOS到底是啥?看完這篇你就懂了~
故事還得從最近很火的浙江移動說起。最近,該運營商憑借一條“DCOS發力雙11”的新聞成功火了一把,主要是講他們搭建了一套基于開源Mesos + Doker技術的DCOS(數據中心操作系統),而且很魄力地將一個服務于上千萬用戶的重要生產系統遷移其上,同時后端搭配天璣數據 PBData數據庫云平臺的強勁支撐,最終完美度過了今年 “雙11”秒殺的高峰壓力。一時間“DCOS”這個詞迅速引發業內圍觀。“它到底是何方神圣?”“為何功能如此強大?”如果你也對它感到好奇,就請毫不猶豫地往下看吧!
1 “嗨!DCOS,你從哪里來?”
在回答這個問題前,不妨先回顧一下國際先進互聯網公司數據中心資源管理系統的發展史。早在十多年前,Google就開始使用第一代集群管理Borg技術管理數據中心。隨后推ter從Google的Borg系統中得到啟發,開發了一個類似的資源管理系統幫助他們擺脫可怕的“失敗之鯨”。2009年加州大學伯克利分校AMPLab首先開發出Apache Mesos,這是一款開源集群管理軟件,其核心研發成員Benjamin Hindman隨后將其引入推ter,于是推ter、非死book、蘋果等大型IT企業開始陸續打造各自特色的基于Mesos的數據中心管理方案。
2012年,圍繞Mesos開展商業活動的初創公司Mesosphere誕生,而Benjamin Hindman也以Mesosphere首席架構師的身份投身其中。 正是該公司提出了基于Mesos的DCOS(數據中心操作系統),希望企業能像使用一臺計算機一樣使用整個數據中心。
2 認識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,調度參與節點上的任務,并在容器中執行,使得多種類型的任務可在同一個節點上同時運行。
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衍生的生態圈。值得一提的是,像推ter、Airbnb、蘋果這樣的大公司幾乎都是自己搭建基于Mesos的基礎設施。但開源的Mesos是一項非常尖端的技術,通過開源工具手工裝配,并將Mesos用于生產環境是非常高難度的。這也是Mesosphere DCOS的價值所在。Mesosphere推出的DCOS,具備和推ter、蘋果公司同等的能力和自動化效果。
下面介紹三種基于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技術將成為業內的新熱點。
【責任編輯:老門 TEL:(010)68476606】
來自: http://cloud.51cto.com/art/201603/506805.htm