ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
* 这篇原文文章转载自:http://www.aiweibang.com/yuedu/69570354.html. * 原文作者:小黑羊JoinWings 一直想写一篇介绍mesos的文章,文章可以不讲技术细节,但一定可以让一个外行一下子就明白什么是mesos.mesos能干什么. 很荣幸看到了,这样的一篇文章《煮饺子与mesos之间妙不可言的关系》,佩服的五体投地!此乃神人也!我觉得怎么样也不会比他写的更好了! 废话不多说!将原文奉上,原文网址是http://www.aiweibang.com/yuedu/69570354.html. 可惜不知道是因为什么,原文响应的速度非常慢.一字不改,原文转载!致敬小黑羊! # 煮饺子与mesos之间妙不可言的关系 你知道大型的饺子馆是怎么煮饺子的吗? ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB1.png) 是这样煮吗? ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB2.png) 那你要让顾客喝西北风了! 难道是很多个这种锅一起煮吗? ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB3.png) 呵呵,不是,你想赔死吗? 其实 他们用了一种神器 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB4.png) 为什么会酱紫? 我们来分析一下大型饺子馆面对的需求 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB5.png) ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB6.png) ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB7.png) 这种情况下 不像我们自己在家吃饺子 不可能把所有的饺子放在一个大锅里面煮 道理你懂的…… 但是,难道要每个订单一个锅来煮? 太浪费资源了吧 所以就有人发明了这种支持“虚拟化”锅 ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB8.png) 我们把煮水饺看成不同的任务 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB9.png) 水饺锅里面不同的格子执行不同的任务 格子并不绝对封闭,汤是互通的 这样 一锅就可以满足很多客人了 如果客人再多了怎么办? 多来几只饺子锅组成集群! ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB10.png) 好强大的煮饺子集群 不管有多少客人 不管有多复杂的煮饺子组合 都可以在集群里面完成了 好拉轰啊 所有的格子都被池化 大厨根据点菜需求 灵活分配不同的格子来完成任务 任何一个格子都可以用来煮任何一种水饺 有同学问 客人还想吃煎饺或者蒸饺怎么办? 不要紧,更奇葩的锅已经有人发明了 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB11.png) 不光可以煮,同时还可以煎和蒸 尼玛,黑科技真发达 “煮饺子集群”很牛逼 分配任务、具体操作的大厨更不简单 观摩一下他们是如何工作的吧 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB12.gif) 好了,煮饺子的事情讲完了 这跟MESOS有毛线关系? ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB13.png) Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。 小黑羊观点>> Mesos跟我们前面介绍的“煮饺子”体系有异曲同工之妙。 ↓ ↓ 数据中心有很多计算任务需要执行,比如Hadoop任务(饺子A)、MPI任务(饺子B)、Storm任务(饺子C)、Spark任务(饺子D)。 但是要想灵活的部署这些任务,达到呼之则来、挥之则去的效果,却没辣么简单。 人们都希望动态、灵活的利用数据中心的计算资源,更细粒度的分发任务,这就需要一套资源管理和调度框架来达到目的。 最早的时候,Google用自己开发的Borg来做这些事,可那是人家“私营饺子馆”专利,不可能随便拿来用的。 ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB14.png) 后来,就有活雷锋开发了Mesos来做和Borg一样的事儿,而且还开源了。 ↓ ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB15.png) 一张图看懂Mesos和煮饺子的关系 Mesos的角色分工与两层调度体系: * Mesos master相当于煮水饺的厨师长,当然有备份的副厨师长做替补(Standby master),他们之间的出勤制度由酒店老板负责监督(ZooKeeper)。 * Mesos slave驻留在每个饺子锅上(可认为是负责值守每个锅的厨工),负责具体任务分发。 * 具体的计算任务被按需分配在“锅集群”中执行,比如Hadoop、MPI、Spark等等,他们相当于不同的煮饺子需求。 * 每个“锅”提供一定的资源隔离能力,饺子锅用的是隔离网,Mesos方案目前比较流行采用Docker来进行隔离。 * 针对每种口味的饺子,都有点饺子、包饺子、煮饺子、上饺子的工作调度流程,被称为“Framework”,mesos为了可以适应各品种饺子的“FrameWork”流程 ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB16.png) 饺子菜单——Mesos可以配合调用的“FrameWork” MESOS的“煮饺子”任务调度过程: ① Slave 1(煮饺子师傅)向Master(厨师长)汇报其管理的饺子锅的空闲资源:4个CPU、4GB内存。 ② Master(厨师长)检查Framework1(猪肉韭菜)目前的订单需求。 ③ Framework1(猪肉韭菜)的当前订单需求是:煮两份饺子,分别是4两和3两,4两的需要用<2 CPUs, 1 GB RAM>的资源,3两的需要用<1 CPUs, 2 GB RAM>资源。 ④ 最后,Master(厨师长)向Slave(煮饺子师傅)下发任务,开工! ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB17.png) MESOS的工作流程 这个“煮饺子”的Mesos系统什么好处呢? ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB18.png) Mesos管理的是计算集群,调度的是任务,是当下最为流行的“数据中心操作系统”。它把集群资源池化,按需动态调配,提高资源使用效率和敏捷性,Mesos能让资源利用率提升5倍以上。 与容器技术结合,可以轻松部署海量计算资源和微服务,让上层业务的可伸缩性得到极大提高,Mesos可在数十秒内完成上万Docker容器部署。 模块化、插件式架构,轻松耦合多种Framework,这使得Mesos在其所支持的宽泛领域中,业务迅速增长。 专业人士认为,Mesos具备问鼎数据中心资源管理首选平台的能力。 ![](http://7xqnvr.com1.z0.glb.clouddn.com/%E7%85%AE%E9%A5%BA%E5%AD%90%E4%B8%8Emesos%E4%B9%8B%E9%97%B4%E5%A6%99%E4%B8%8D%E5%8F%AF%E8%A8%80%E7%9A%84%E5%85%B3%E7%B3%BB19.png) 目前Twitter、Airbnb、eBay、Netflix包括Apple家的Siri,都用了Mesos来“煮饺子”。 国内豆瓣是最早用Mesos的,去哪儿网、爱奇艺、小米、360也都在尝试Mesos。 爱奇艺煮饺子大师傅杨成伟语: “爱奇艺是国内互联网企业试用 Mesos 的先行者,最早将 Mesos 用于分布式转码服务,已经达到了800个节点。集群资源利用率已经高于40%,峰值时甚至超过了90%。” 而著名的创业公司Mesosphere是负责提供“煮饺子”解决方案的,跟他们类似的还有国内的初创公司数人科技。