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