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/


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