遇見Marathon 打造大規模容器生產環境

2021-08-19 12:14:52 字數 3518 閱讀 7659

摘要:marathon 視為資料中心作業系統(簡稱dcos)中的一款「殺手級應用」。它屬於核心服務之一,被預裝在 dcos當中,而且目前已經被三星、yelp、verizon、迪士尼、autodesk 以及其它眾多知名廠商應用於生產環境當中。這些企業利用 marathon 立足於公有雲環境、內部資料中心乃至跨越多混合雲環境管理著成百上千節點之上的大量容器。marathon 支撐著一切基於容器應用程式的部署工作,從持續整合到物聯網再到託管雲服務可謂無所不包。

容器技術如今可謂如日中天,不少從業者甚至**認為容器的廣泛普及將給 it 行業帶來超越雲計算的深遠變革。相較於此前專門用於改進運營及開發效率的各類技術方案,容器技術能夠真正提供極為出色的資源利用率、易配置性、更高部署速度以及更加靈活的開發流程。

不過如同單一虛擬機器一樣,單一容器本身並不足以承擔如此重任。這意味著我們需要一套容器編排平台以部署並管理特定數量的容器系統。舉例來說,一款採用微服務架構的現代應用程式可能包含有數十甚至上百套容器系統,這些容器跨越數十個物理節點以及彼此依存的容器化服務。在將大量元件與一套持續整合與交付系統相整合後,我們還需要一套集群作為其執行載體,並在日常**測試工作當中每天啟動並移除數百萬的容器例項。

如果沒有理想的容器編排平台作為輔助,那麼實現這項目標絕對是一條漫長而艱難的道路。當然,隨著容器數量的不斷攀公升,整套體系對於可擴充套件能力與傳輸頻寬的要求也將隨之增長。而且與 it 結構中的其它事物一樣,容器當中也存在著許多值得關注的核心要素,我們需要利用它們完成技術方案由開發到生產的整個推進流程。

希望在生產環境下執行容器的企業使用者需要對大量炒作與誇張說辭進行分析,從而找到真正適合自己且值得信賴的容器業務流程平台。就目前而言,已經有一部分技術成果建立起龐大的開發者基礎並以 github 為平台進行傳播。另一些成果則已經開始執行在生產環境當中,並被一部分全球規模最大的企業與極具創新能力的初創廠商用於支援下一代應用程式。我們的開源 marathon 技術恰好屬於後一種分類。

遇見 marathon

我們將marathon視為資料中心作業系統(簡稱dcos)中的一款「殺手級應用」。它屬於核心服務之一,被預裝在 dcos 當中,而且目前已經被三星、yelp、verizon、迪士尼、autodesk 以及其它眾多知名廠商應用於生產環境當中。這些企業利用 marathon 立足於公有雲環境、內部資料中心乃至跨越多混合雲環境管理成百上千節點之上的大量容器。marathon 支撐著一切基於容器應用程式的部署工作,從持續整合到物聯網再到託管雲服務可謂無所不包。 各家企業利用 marathon 管理自身容器環境的具體方式也有所區別:

marathon 以雲為目標進行構建

最近推出的一系列強化也使得雲服務**商得以利用marathon交付自己的交鑰匙容器服務。舉例來說,我們目前正與微軟公司就其azure container service(簡稱acs)開展協作,其利用 marathon 交付生產就緒型容器編排方案。azure container service 在2023年9月發布的一篇官方博文當中提到:azure container service 的預設配置包含 「marathon、chronos 以及apache mesos,旨在確保這些應用能夠被擴充套件至數千甚至數萬容器系統級別。」 目前,微軟公司發布了 acs 的公共預覽版,這意味著任何 azure 使用者都能夠訪問該服務並將其與 mesos 及 marathon 一道納入自身業務流程。希望直接在 azure 例項或者其它雲平台之上部署 dcos 的企業客戶也已經能夠切實達成目標。

marathon 為 dcos 提供支援

不過著眼於 marathon,其最大的亮點可能正是其與 dcos 的結合。儘管容器編排已經成為一項愈發重要的能力,但其還僅僅是推動現代應用程式更加強大、更具可擴充套件能力且更為可靠道路上的乙個側面。有鑑於此,dcos也做出相應調整以簡化對高複雜性系統的安裝、規模伸縮與管理,具體包括分布式資料庫、大資料流水線以及持續整合平台等等——這一切都將同消費級 web 應用程式與微服務一道執行在一套共享式集群之上。

伴隨著每個新的dcos版本,我們都會在其中圍繞安全性、彈性、監控能力、管理能力以及其它要素新增新的能力。

marathon 在行動

正如之前所提到,marathon 幫助使用者克服了一系列以可靠及可擴充套件方式開發並運營容器化工作負載時所出現的嚴峻挑戰。對於初學者,marathon 能夠輕鬆利用自動化流程完成很多以往只能以手動形式解決的問題。富 web ui 允許使用者更便捷地啟動並監控任何 docker 映象,同時對正處於執行當中的應用程式進行配置更新。 不過 marathon 的適用範圍並不侷限於 docker。事實上,它能夠承載幾乎任何現有應用程式,例如基於 jvm 的應用、ruby 指令碼或者簡單的bsh shell 指令碼。這能夠切實幫助使用者完成從傳統架構到全面容器化工作負載的過渡。 在典型設定當中,devops 人員需要以指令碼化模式使用 rest api,從而將存在依賴性的多款應用乃至應用群組作為單一單元進行啟動。考慮到marathon 利用 apache mesos 在裝置集群當中啟動應用程式,因此其必須能夠以自動化方式實現各集群節點對接並將負載擴散至某應用程式的多個例項當中。marathon 能夠直接完成這兩項任務,同時利用 mesos-dns 實現服務發現、通過 marathon-lb 實現負載均衡。 marathon 的其它重要特性還包括:

特別值得強調的是,marathon 能夠輕鬆實現容器例項規模擴充套件。在去年8月召開的 mesoscon 大會上,dcos 客戶 verizon 在現場做出了演示,其中 marathon 在一分鐘之內成功啟動了5萬套 docker 容器系統。

正因為如此,當我們談及將 dcos 引入企業級生產環境並針對龐大規模docker 容器作為可擴充套件管理選項時,我們對其能力充滿信心。

marathon 的未來更值得期待

之前說了這麼多,介紹的主要是 marathon 技術團隊過去幾年內通過辛勤努力實現的平台可靠性與功能集改進。展望未來,marathon團隊已經制定出極具野心的發展路線圖——包括即將實現的資料庫等狀態化應用程式支援能力——旨在確保marathon專案能夠繼續成為企業將容器化戰略引入生產環境時的首選平台。

2023年3月18日-19日,由csdn重磅打造的資料庫核心技術與實戰應用峰會、網際網路應用架構實戰峰會將在上海舉行。這兩場峰會將邀請業內頂尖的架構師和技術專家,共同**高可用/高併發系統架構設計、新技術應用、移動應用架構、微服務、智慧型硬體架構、雲資料庫實戰、新一代資料庫平台、產品選型、效能調優、大資料應用實戰等領域的熱點話題與技術。

2月29日24點前仍處於最低六折優惠票價階段,單場峰會(含餐)門票只需799元,5人以上**或者購買兩場峰會通票更有特惠,限量**,預購從速。(票務詳情鏈結)。

大規模機器學習

如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應 該怎樣應對乙個有 100 萬條記錄的訓練集?以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。首先應該做的事是去檢查乙個這麼大...

大規模快速發展

infoq u0026 xd n u0026 xd n u0026 xd n humble 在演講中,我引用了 douglas hubbard為cto雜誌寫的一篇文章,douglas hubbard是優秀著作 how to measure anything 的作者。即使專案中有著非常不確定的開發成本...

大規模快速發展

infoq humble 在演講中,我引用了 douglas hubbard為cto雜誌寫的一篇文章,douglas hubbard是優秀著作 how to measure anything 的作者。即使專案中有著非常不確定的開發成本,我們也沒有發現這些成本對投資決策有著重要的參考價值 唯一重要的未...