小數點分享:Marathon 視爲數據中心操做系統(簡稱DCOS)中的一款「殺手級應用」。它屬於核心服務之一,被預裝在 DCOS 當中,並且目前已經被三星、Yelp、Verizon、迪士尼、Autodesk 以及其它衆多知名廠商應用於生產環境當中。這些企業利用 Marathon 立足於公有云環境、內部數據中心乃至跨越多混合雲環境管理着成百上千節點之上的大量容器。Marathon 支撐着一切基於容器應用程序的部署工做,從持續集成到物聯網再到託管雲服務可謂無所不包。html
容器技術現在可謂如日中天,很多從業者甚至預測認爲容器的普遍普及將給 IT 行業帶來超越雲計算的深遠變革。相較於此前專門用於改進運營及開發效率的各種技術方案,容器技術可以真正提供極爲出色的資源利用率、易配置性、更高部署速度以及更加靈活的開發流程。shell
不過如同單一虛擬機同樣,單一容器自己並不足以承擔如此重任。這意味着咱們須要一套容器編排平臺以部署並管理特定數量的容器系統。舉例來講,一款採用微服務架構的現代應用程序可能包含有數十甚至上百套容器系統,這些容器跨越數十個物理節點以及彼此依存的容器化服務。在將大量組件與一套持續集成與交付系統相集成後,咱們還須要一套集羣做爲其運行載體,並在平常代碼測試工做當中天天啓動並移除數百萬的容器實例。數據庫
若是沒有理想的容器編排平臺做爲輔助,那麼實現這項目標絕對是一條漫長而艱難的道路。固然,隨着容器數量的不斷攀升,整套體系對於可擴展能力與傳輸帶寬的要求也將隨之增加。並且與 IT 結構中的其它事物同樣,容器當中也存在着許多值得關注的核心要素,咱們須要利用它們完成技術方案由開發到生產的整個推動流程。編程
但願在生產環境下運行容器的企業用戶須要對大量炒做與誇張說辭進行分析,從而找到真正適合本身且值得信賴的容器業務流程平臺。就目前而言,已經有一部分技術成果創建起龐大的開發者基礎並以 GitHub 爲平臺進行傳播。另外一些成果則已經開始運行在生產環境當中,並被一部分全球規模最大的企業與極具創新能力的初創廠商用於支持下一代應用程序。咱們的開源 Marathon 技術剛好屬於後一種分類。安全
咱們將Marathon視爲數據中心操做系統(簡稱DCOS)中的一款「殺手級應用」。它屬於核心服務之一,被預裝在 DCOS 當中,並且目前已經被三星、Yelp、Verizon、迪士尼、Autodesk 以及其它衆多知名廠商應用於生產環境當中。這些企業利用 Marathon 立足於公有云環境、內部數據中心乃至跨越多混合雲環境管理成百上千節點之上的大量容器。Marathon 支撐着一切基於容器應用程序的部署工做,從持續集成到物聯網再到託管雲服務可謂無所不包。網絡
各家企業利用 Marathon 管理自身容器環境的具體方式也有所區別:架構
三星公司利用 Marathon 支撐其 SAMI 聯網設備平臺的開發經驗。負載均衡
Autodesk 公司利用 Marathon 爲其持續增加的雲服務套件創建一套流事件平臺。分佈式
Yelp 公司以 Marathon 爲核心構建起了本身的一套完整生產性平臺即服務(簡稱PaaS)環境。在該平臺(簡稱爲PaaSTA)與另外一名爲Seagull 的基於 Marathon 項目之間,Yelp 公司得以天天啓動超過100萬套 Docker 容器。微服務
最近推出的一系列強化也使得雲服務供應商得以利用Marathon交付本身的交鑰匙容器服務。舉例來講,咱們目前正與微軟公司就其Azure Container Service(簡稱ACS)開展協做,其利用 Marathon 交付生產就緒型容器編排方案。Azure Container Service 在2015年9月發佈的一篇官方博文當中提到:Azure Container Service 的默認配置包含 「Marathon、Chronos 以及Apache Mesos,旨在確保這些應用可以被擴展至數千甚至數萬容器系統級別。」
目前,微軟公司發佈了 ACS 的公共預覽版,這意味着任何 Azure 用戶都可以訪問該服務並將其與 Mesos 及 Marathon 一道歸入自身業務流程。但願直接在 Azure 實例或者其它雲平臺之上部署 DCOS 的企業客戶也已經可以切實達成目標。
不過着眼於 Marathon,其最大的亮點可能正是其與 DCOS 的結合。儘管容器編排已經成爲一項愈發重要的能力,但其還僅僅是推進現代應用程序更增強大、更具可擴展能力且更爲可靠道路上的一個側面。有鑑於此,DCOS也作出相應調整以簡化對高複雜性系統的安裝、規模伸縮與管理,具體包括分佈式數據庫、大數據流水線以及持續集成平臺等等——這一切都將同消費級 Web 應用程序與微服務一道運行在一套共享式集羣之上。
伴隨着每一個新的DCOS版本,咱們都會在其中圍繞安全性、彈性、監控能力、管理能力以及其它要素添加新的能力。
正如以前所提到,Marathon 幫助用戶克服了一系列以可靠及可擴展方式開發並運營容器化工做負載時所出現的嚴峻挑戰。對於初學者,Marathon 可以輕鬆利用自動化流程完成不少以往只能以手動形式解決的問題。富 Web UI 容許用戶更便捷地啓動並監控任何 Docker 鏡像,同時對正處於運行當中的應用程序進行配置更新。
不過 Marathon 的適用範圍並不侷限於 Docker。事實上,它可以承載幾乎任何現有應用程序,例如基於 JVM 的應用、Ruby 腳本或者簡單的Bsh shell 腳本。這可以切實幫助用戶完成從傳統架構到全面容器化工做負載的過渡。(傳統應用多數可以經過運行在向外擴展平臺內商用硬件之上得到收益。)
在典型設置當中,DevOps 人員須要以腳本化模式使用 REST API,從而將存在依賴性的多款應用乃至應用羣組做爲單一單元進行啓動。考慮到Marathon 利用 Apache Mesos 在設備集羣當中啓動應用程序,所以其必須可以以自動化方式實現各集羣節點對接並將負載擴散至某應用程序的多個實例當中。Marathon 可以直接完成這兩項任務,同時利用 Mesos-DNS 實現服務發現、經過 Marathon-lb 實現負載均衡。
Marathon 的其它重要特性還包括:
支持零停機時間部署,包括滾動部署、藍綠部署與金絲雀部署模式。
基於 HTTP、TCP 以及命令之應用程序運行狀態檢查。
指標發送與收集集成(包括 Graphite、DataDog 以及StatsD)。
具有一套強大的事件總線,使得 DevOps 人員以編程化方式經過定製化模式實現應用程序變動響應。
具有用於應對網絡與節點故障的彈性,且同時適用於 Marathon 自己及其管理的應用程序。
包括用戶認證以及基於角色訪問控制在內的多種安全功能。
採用一套靈活的插件架構,使得插件可以被定製化集成至現有企業IT環境當中。
特別值得強調的是,Marathon 可以輕鬆實現容器實例規模擴展。在去年8月召開的 MesosCon 大會上,DCOS 客戶 Verizon 在現場作出了演示,其中 Marathon 在一分鐘以內成功啓動了5萬套 Docker 容器系統。
正由於如此,當咱們談及將 DCOS 引入企業級生產環境並針對龐大規模Docker 容器做爲可擴展管理選項時,咱們對其能力充滿信心。
以前說了這麼多,介紹的主要是 Marathon 技術團隊過去幾年內經過辛勤努力實現的平臺可靠性與功能集改進。展望將來,Marathon團隊已經制定出極具野心的發展路線圖——包括即將實現的數據庫等狀態化應用程序支持能力——旨在確保Marathon項目可以繼續成爲企業將容器化戰略引入生產環境時的首選平臺。
原文連接: MEET MARATHON: PRODUCTION-READY CONTAINER ORCHESTRATION AT SCALE