本文做者:彭彦明,来源:http://www.dostor.com/article/121738083.htmlhtml
2012年,围绕Mesos开展商业活动的初创公司Mesosphere诞生,而Benjamin Hindman也以Mesosphere首席架构师的身份投身其中。 正是该公司提出了基于Mesos的DCOS(数据中心操做系统),但愿企业能像使用一台计算机同样使用整个数据中心。后端
一、认识DCOS,从Apache Mesos入手服务器
为了更好地理解DCOS,最好先了解一些Apache Mesos的背景知识。 Mesos适合做为数据中心哪一层的抽象?网络
IaaS层抽象的是机器, PaaS则更多考虑部署、管理应用/服务。在交互方面,PaaS多是和开发者直接交互,而Mesos则是以API的形式和软件程序交互。架构
换句话说,你能够基于Mesos之上构建一个PaaS系统(好比Marathon),同时你还能够在一个IaaS上(好比Openstack)运行Mesos。所以,当Mesos运行在一个组合系统之上,就能直接跨越底层组件去管理和计划上层工做负载。 不过Mesos如今还须要与其它分布式系统配合使用。目前已有很多分布式系统直接构建于Mesos之上,包括Apache Spark,Apache Aurora,Airbnb的Chronos以及Mesosphere的Marathon等。此外还有多个流行系统与Mesos相连并运行于其上,如Apache Hadoop,Apache Storm,Google的Kubernetes等。框架
Mesos亮点一:两级调度机制 Mesos以Framework的形式,提供了两级调度机制,将任务的调度和执行分离。面对各类类型的任务,在调度阶段,由Framework的 Scheduler(调度器)以资源邀约的形式向Mesos Master申请资源;在执行阶段,由Framework的Executor(执行器)执行任务。运维
(图片来自网络)分布式
如图所示,Mesos实现了“两级调度机制”,它能够管理多种类型的应用程序(图中只展现了Hadoop和MPI两种类型)。工具
深刻学习:Mesos“两级调度机制”Mesos Master协调所有的Mesos Slave,并肯定每一个节点的可用资源,聚合计算跨节点的全部可用资源的报告,而后向注册到Master的Framework(做为Master的客户端)发出资源邀约。 Framework根据应用程序的需求,选择接受或拒绝来自Master的资源邀约。一旦接受邀约,Master即协调Framework和Slave,调度参与节点上的任务,并在容器中执行,使得多种类型的任务可在同一个节点上同时运行。oop
Mesos亮点二:围绕Framework建设的生态系统 在Apache Mesos的术语中,使用Mesos API在集群中调度任务的Mesos应用程序称为Framework(框架)。 Mesos另外一个显著亮点就是围绕Framework建设的生态系统了。一旦将任务调度委托给Framework 应用程序,以及采用插件架构,就能直接打造Mesos问鼎数据中心资源管理的生态系统。由于每接入一种新的Framework ,Master无需为此编码,Slave模块能够复用,使得在Mesos所支持的宽泛领域中,业务迅速增加。而开发者就能够专一于他们的应用和Framework的选择。 下图为不断增加的Mesos Framework列表:
因此,Apache Mesos是________? 能够说,Apache Mesos是为构建和运行其余分布式系统提供服务的分布式系统。它将CPU 、内存、存储介质以及其它计算机资源从物理机或者虚拟机中抽象出来,构建支持容错和弹性的分布式系统,并提供高效的运行能力。Mesos使用与Linux 内核相同的系统构建原则,只是它们处在不一样的抽象层次上。Mesos内核运行在每台机器上,经过应用程序Framework ,提供跨整个数据中心和云环境进行资源管理和调度的API。
3 基于Mesos的DCOS实际上是Mesos衍生的生态系统之一
下图是基于Mesos衍生的生态圈。值得一提的是,像Twitter、Airbnb、苹果这样的大公司几乎都是本身搭建基于Mesos的基础设施。但开源的Mesos是一项很是尖端的技术,经过开源工具手工装配,并将Mesos用于生产环境是很是高难度的。这也是Mesosphere DCOS的价值所在。Mesosphere推出的DCOS,具有和Twitter、苹果公司同等的能力和自动化效果。
下面介绍三种基于Mesos衍生的生态系统: Mesosphere DCOS 从Mesosphere官网了解到,Mesosphere DCOS是以 Mesos为“核心”,与其周边服务及功能组件所组成的一个生态系统。它跨越数据中心或云环境中的全部主机,将全部主机的资源放入一个资源池,使全部主机的行为总体上像一个大计算机。 Mesosphere DCOS内部架构图
由图可见,Mesosphere DCOS除了内核Mesos,还有两个关键组件Marathon和Chronos。其中,Marathon(名分布式的init)是一个用于启动长时间运行应用程序和服务的框架,Chronos(又名分布式的cron)是一个在Mesos上运行和管理计划任务的框架。此外,Mesosphere DCOS还有Mesos-DNS这样的插件模块,它相似一个CLI,一个GUI又或者是提供你想运行的全部的包的仓库等工具。 Mesosphere DCOS 能够运行在任意的现代Linux环境,公有或私有云,虚拟机甚至是裸机环境,当前支持的平台有亚马逊AWS,谷歌GCE,微软Azure,Openstack等等。据Mesosphere官网显示,Mesosphere DCOS在其公有仓库上已提供了40多种服务组件,好比Hadoop,Spark,Cassandra, Jenkins, Kafka, MemSQL等等。 浙江移动与天玑联合研发的DCOS 下图为该DCOS内部架构示意
由图可见,“核心”Mesos负责集群中全部节点资源的动态调度与管理。其上还包括DCOS管控平台,容器应用框架等重要功能组件。该运营商表示,上述DCOS平台不只具有灵活弹性的伸缩能力,为系统提供高效的平行扩展来应对突发的业务高峰,并且Mesos与Docker的结合极大简化业务运维复杂度,实现自动化部署与应用程序升级,Mesos还可为资源管理提供高容错性,自动辨别服务器、机架或网络出现的故障等。
苹果公司基于Mesos重建的Siri后端服务 在MesosCon 2015上,苹果公司分享了在生产环境中使用Mesos的经验。原来苹果用了近一年时间从原有的基于VM的环境迁移到基于Mesos的环境。他们使用Apache Mesos重建了我的助理软件Siri的后端服务,并建立了一个名为J.A.R.V.I.S.并且相似PaaS的专有调度Framework,由此,开发者能够部署可伸缩和高可用的Siri服务。听说其Mesos集群规模保守估计有10,000个节点,支持Siri应用程序的后台系统包括约100种不一样类型的服务,应用程序的数据则存储在Hadoop分布式文件系统(HDFS)中。从基础设施的角度来看,使用Mesos 有助于使Siri具有可伸缩性和可用性,而且还改善了iOS 应用程序自身的延迟。
结束语
此刻,你是否已经对Mesos和DCOS有了新认识呢?其实近年来,随着云计算的快速普及,Docker为表明的容器技术如火如荼,企业用户愈来愈关注基于云计算的下一代IT架构变革,而软件定义数据中心(SDDC)的理念也逐渐被接收。Mesos技术正是在这样的大环境下应运而生,有了基于Mesos的数据中心操做系统,企业能够方便地对数据中心资源进行统一管理,这无疑是IT架构质的飞跃。相信不远的将来,以Mesos为表明的一系列SDDC技术将成为业内的新热点。