Mesos入門介紹

2016年會火的技術之一, Mesos。 花了一些時間, 將Mesos相關的知識整理了一下, 以做備忘。 水平有限, 如有疏漏或謬誤之處, 還望指出。 


Mesos是什麼

Mesos是一個集羣管理平臺。 可以理解爲是一種分佈式系統的kernel, 負責集羣資源的分配, 這裏的資源指的是CPU資源, 內存資源, 存儲資源, 網絡資源等。 在Mesos可以運行Spark, Storm, Hadoop, Marathon等多種Framework(框架)。 


Mesos的架構主要有Masters(主節點), Slaves(從節點), 和 及在Mesos上運行的Framework(框架)組成。 各個部分的分工如下:


Master: 負責處理Slave節點和Framework間的資源通訊, 根據指定的策略來決定分配多少資源給framework。 


Slave:  啓動本地進程, 同時向Master報告有哪些資源可用。 


Framework: 接收來自Master提供的Slave節點的資源(如CPU和內存), Framework由調度器(負責監控和管理Slave的狀態)和執行器(負責在服務器執行應用程序代碼)組成。 




Mesos的安裝部署


需要從官網下載源碼進行編譯安裝, 具體的操作請自行google。 或者參考Mesos的官方文檔http://mesos.apache.org/documentation/latest/getting-started/  或者國內對官方文檔的翻譯  https://mesos-cn.gitbooks.io/mesos-cn/content/primer/Mesos-of-Getting-Started.html  


Mesos的生態


Mesos本身只提供資源的分配, 並不涉及存儲, 任務調度等功能, 所以它要和其它軟件或者系統搭配使用才能構成完整的分佈式系統。 Mesos, Docker, Marathon/Chronos,  RabbitMQ,  HDFS/Ceph構成了一個完整的分佈式系統,  分別負責資源分配, 進程管理,任務調度,  進程間通信和文件系統的功能。 這裏可以和Linux做一個橫向的比較。 如圖1所示:




Docker:  一個開源的應用容器引擎, 它涉及基礎技術有Linux cgroup和namespace, 以及AUFS。 Docker可以理解爲更輕量級的虛擬機。 


Marathon:  針對服務型分佈式應用提供任務調度,比如企業網站等這類需要長時間運行的服務。


Chronos:  針對分佈式批處理應用提供任務調度,比如定期處理日誌或者定期調Hadoop等離線任務。


RabbitMQ:  一種消息隊列, 企業級的消息系統。 


HDFS:   即Hadoop分佈式文件系統, 提供高吞吐量的數據訪問, 適合大數據集的分佈式應用。 


Ceph:  一種分佈式文件系統, 開源存儲解決方案, 提供對象存儲。 


除了上述講到的分佈式系統最基本的五大組件外, 分佈式系統還涉及到其它的組件, 如負載均衡器, 服務發現器, 系統性能監控器, 系統告警監控器, 對應的軟件分別有HAproxy, Zookeeper, Ganglia, Zabbix等


HAproxy: 是一個輕量級的TCP/HTTP的代理, 提供負載均衡功能,支持數以萬計的併發。 


ZooKeeper: 分佈式系統涉及服務發現(分佈式系統有多個實例, 系統要知道實例是要通過哪個ip哪個端口去訪問, 才能對它進行調度,這個就是服務發現), 這個要配合ZooKeeper來做, 將要調度的實例的地址和端口寫到ZooKeeper。 


Ganglia:  是UC Berkeley發起的一個開源集羣監視項目,設計用於測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要是用來監控系統性能,如:cpu 、mem、硬盤利用率, I/O負載、網絡流量情況等


Zabbix:   一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案


Mesos的競爭者


常被人們當做Mesos的競爭者的有Kubernetes。 Kubernetes是google開源的集羣管理器, 它的前身是Borg。 


二者各自有優勢和劣勢。 


Mesos優勢:  起步較早, 有成熟的生態和企業應用。 


Mesos劣勢: 所有的調度器沒有對微服務進行抽象。 


Kubernetes優勢:對微服務有很好的支持, 其Pod, Service, NameSpace都是對微服務的很好的抽象。 


Kubernetes劣勢: 目前企業的應用實例比較少。 



Mesos的企業應用


Mesos現在被用在生產環境中已經有一段時間了。 


國外:


 國外企業有Apple, Twitter, Netflix, Verizon, Autodesk等, 其中Apple已經有75000個節點的實際應用。 


國內:


國內企業有去哪兒網, 數人科技。 其中去哪兒網的具體應用是將日誌分析全部託管到Mesos平臺,其詳細的應用實踐可以見參考文獻4. 其容器規模在600+。 


數人科技則是基於Mesos打造了Paas平臺。 



參考文檔: 

1·. 30張PPT搞定Docker與Mesos的分佈式計算應用   

http://mp.weixin.qq.com/s?__biz=MzAxMzM1NzY2NQ==&mid=203700507&idx=2&sn=4e8de312e592b1ab507b4c767de2f30a&scene=1&srcid=0124Q25XCJgDAFILYN3XWPOS#rd 

2. Autodesk基於Mesos和Kafka的通用事件系統架構

http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=207879892&idx=1&sn=459d8fca6df35866d9c137b89033f546&scene=1&srcid=0SLj4zeFnjlZR994NdRp#rd

3. 彈性集成Apache Mesos與Apache Kafka框架 

http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=208023528&idx=1&sn=c76c13beb7cd91960cf75354f8bbd5d0&scene=1&srcid=tKU0VjaO6OigWBizuuqB#rd

4. 經驗 | Mesos在Qunar的應用 

http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=208194475&idx=1&sn=150749d605dbcb603aad3a00567cab87&scene=1&srcid=09172BP6MF94GTpoq0xCbuyY#rd

5. 談談Apache Mesos和Mesosphere DCOS:歷史、架構、發展和應用  

 http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=208306944&idx=1&sn=56f98b961717d5181b635c1bfec5189c&scene=1&srcid=09281LkMeXDVT5IvdhgkN8qD#rd

6. 2016,Mesos和kubernetes  

http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=401361085&idx=1&sn=bce6fc50d24d9c1fddfc9c8d26c46807&scene=1&srcid=0112VKz4RkcnwdpEYtCy47yo#rd

7. 基於Mesos和Docker的分佈式計算平臺   

http://mp.weixin.qq.com/s?__biz=MzA3MDg4Nzc2NQ==&mid=206063775&idx=1&sn=053645cae0020041686f2182bb69ce59&scene=1&srcid=0124vH54w1BsnZ8DIelf0sgH#rd

8.Mesos官方英文文檔 

http://mesos.apache.org/documentation/latest/

9. Mesos的中文文檔

https://mesos-cn.gitbooks.io/mesos-cn/content/primer/Mesos-of-Getting-Started.html

http://mesos.mydoc.io/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章