mesos marathon mysql_Mesos和Marathon简介
Mesos是apache的開源項(xiàng)目,是使用C++開發(fā)的資源管理框架。假設(shè)我們的數(shù)據(jù)中心有眾多的服務(wù)器,這些服務(wù)器要運(yùn)行業(yè)務(wù)程序,業(yè)務(wù)程序隨著業(yè)務(wù)規(guī)模的增加往往需要擴(kuò)容,在運(yùn)維層面會遇到的問題是,運(yùn)維無法準(zhǔn)確把握資源分配是否合理,擴(kuò)容是否需要購買和上架新的機(jī)器。這就造成了硬件資源往往是比實(shí)際需要的要寬裕的,但是由于資源利用率不高,安排不合理,無法真正利用硬件資源,造成了浪費(fèi),這種情況只會變得越來越糟,因?yàn)閼?yīng)用程序變得越來越多,越來越復(fù)雜,造成越來越無法掌控的局面。
急需一種資源管理軟件,能夠站在數(shù)據(jù)中心的角度,對硬件資源(這里的硬件資源是指服務(wù)器的CPU,內(nèi)存,硬盤)進(jìn)行統(tǒng)一的規(guī)劃、分配、管理。Mesos就是這樣的一個(gè)框架軟件。需要注意的是Mesos本身只是一種資源管理框架,講白了,mesos只能提供了如下幾種主要的能力:告訴你有當(dāng)前數(shù)據(jù)中心總共有多少CPU,內(nèi)存,硬盤
提供一系列的接口,提供應(yīng)用程序下發(fā)、執(zhí)行、資源配額設(shè)置
為了實(shí)現(xiàn)這種功能,我們首先需要在數(shù)據(jù)中心的服務(wù)器上,安裝并啟動mesos-slave,在某幾臺管理節(jié)點(diǎn)上安裝mesos-master。mesos-master提供了api,以及一個(gè)簡單的界面可以看到資源分配和分布情況。slave會上報(bào)資源到master匯總。slave的另一個(gè)功能是通過執(zhí)行器,執(zhí)行應(yīng)用程序,并使用linux自帶的資源隔離機(jī)制(cgroups等)為應(yīng)用程序提供運(yùn)行沙盒,這樣應(yīng)用程序?qū)τ布馁Y源占用可以精確的被控制,不會對同一臺機(jī)器上的其他進(jìn)程造成資源的爭用。
mesos的啟動需要zookeeper作為協(xié)調(diào)器,mesos會在zk的/mesos目錄下進(jìn)行配置管理和存儲。
然而,為什么說Mesos是個(gè)框架軟件呢?因?yàn)?#xff0c;Mesos并不做編排管理,編排(orchestration)的策略和邏輯需要另一個(gè)程序協(xié)助完成,mesos將編排的邏輯開放給其他程序來做,這個(gè)程序在mesos中叫Framework。
mesos之所以將編排的任務(wù)交出來,是因?yàn)榫幣诺男枨笫前l(fā)散的,無法收斂。比如:考慮到高可用,會部署同一個(gè)應(yīng)用程序的多個(gè)實(shí)例,這些實(shí)例需要跨虛擬機(jī),還是物理機(jī),甚至是機(jī)架、機(jī)房?這個(gè)編排是根據(jù)具體的需求定的,無法一概而論。
Marathon首頁的第一句話就是Marathon is a production-grade container orchestration platform...
因此,Marathon就是一個(gè)基于mesos的編排工具,它通過與mesos-master通信,調(diào)用接口,實(shí)現(xiàn)通用的編排策略。而Marathon自身又提供了接口,使得應(yīng)用程序的部署得以更簡單。
marathon是scala開發(fā)的,本身也依賴zookeeper,除了提供api接口外,還提供了一個(gè)十分易用的web界面,使得我們即使不調(diào)用api,也可以通過web界面實(shí)現(xiàn)應(yīng)用部署。
因此,對于mesos來說,marathon是一個(gè)framework,但并不是mesos的唯一選擇。甚至在運(yùn)行時(shí),mesos支持多個(gè)framework同時(shí)注冊和運(yùn)行。
早期版本的mesos需要用C++或java或python的library進(jìn)行,1.0以后,mesos實(shí)現(xiàn)了http接口,使得理論上可以使用任何語言開發(fā)framework。
RENDLER項(xiàng)目使用了包括go,heskell在內(nèi)語言實(shí)現(xiàn)了一個(gè)分布式爬蟲編排器。
不過mesos的http api還是有些復(fù)雜的,因?yàn)樵S多回調(diào)行為通過http模擬有些復(fù)雜,所以mesos基于http api封裝了不同語言的庫以便集成。比如go語言的https://github.com/mesos/mesos-go
總結(jié)
以上是生活随笔為你收集整理的mesos marathon mysql_Mesos和Marathon简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: svn java注释_svn 强制用户添
- 下一篇: C++学习之路 | PTA乙级—— 10