写点什么

深入浅出 Mesos(一):为软件定义数据中心而生的操作系统

  • 2015-04-14
  • 本文字数:2047 字

    阅读完需:约 7 分钟

【编者按】Mesos 是 Apache 下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos 最初是由加州大学伯克利分校的 AMPLab 开发的,后在 Twitter 得到广泛使用。InfoQ 接下来将会策划系列文章来为读者剖析 Mesos。本文是整个系列的第一篇,简单介绍了 Mesos 的背景、历史以及架构。

注:本文翻译自 Cloud Architect Musings ,InfoQ 中文站在获得作者授权的基础上对文章进行了翻译。


我讨厌“软件定义数据中心(SDDC)”这个词,并不是因为我质疑这个概念,而是我发现很多公司都对这个词有误用,他们甚至直接把这个词拿来套用,并急于把自己定位为下一代数据中心的创新者。具体来说,我认为,在商用 x86 硬件上运行软件(应用)并不是什么 SDDC 解决方案,它也不具备虚拟化硬件到资源池的能力。真正的 SDDC 底层基础架构应该可以从运行于其上的应用程序中抽象出来,并根据应用程序不断变化的需求,动态且自动地分配、重新分配应用程序,然后运行于数据中心的不同组件之中。

这就是为什么我一直兴奋地要在后面介绍 Mesos,一个 Apache 开源项目。为什么我对 Mesos 如此兴奋?回想 x86 虚拟化之初对数据中心曾经的承诺:通过增加服务器利用率使其更高效,通过从物理基础架构抽象应用使其更敏捷。虽然收获颇丰,但是以虚拟机为单位,粒度仍不够精细,如果应用程序都过于庞大,那就难以充分实现这一承诺。如今,飞速发展的容器技术、分布式应用程序和微服务技术正悄然改变着我们对数据中心的运行和管理方式。

试想,可否整合数据中心中的所有资源,并将它们放在一个大的虚拟池里,代替单独的物理服务器;然后开放诸如 CPU、内存和 I/O 这些基本资源而不是虚拟机?同样,可否把应用程序拆分成小的、隔离的任务单位,从而根据数据中心应用的需求,从虚拟数据中心池中动态分配任务资源?就像操作系统将 PC 的处理器和 RAM 放入资源池,使其可以为不同的进程协调分配和释放资源。进一步讲,我们可以把 Mesos 作为操作系统内核,然后将数据中心看为 PC。这也是正是我想说的:Mesos 正在改变数据中心,它让真正的 SDDC 成为现实。

接下来我先介绍下 Mesos 的历史。Mesos 的起源于 Google 的数据中心资源管理系统 Borg。你可以从 WIRED 杂志的这篇文章中了解更多关于Borg 起源的信息及它对Mesos 影响。Twitter 从Google 的Borg 系统中得到启发,然后就开发一个类似的资源管理系统来帮助他们摆脱可怕的“失败之鲸”(译者注:见上图)。后来他们注意到加州大学伯克利分校AMPLab 正在开发的名为Mesos 的项目,这个项目的负责人是Ben Hindman,Ben 是加州大学伯克利分校的博士研究生。后来Ben Hindman 加入了Twitter,负责开发和部署Mesos。现在Mesos 管理着Twitter 超过30,0000 台服务器上的应用部署,“失败之鲸”已成往事。其他公司纷至沓来,也部署了Mesos,比如Airbnb(空中食宿网)、eBay(电子港湾)和Netflix。

Mesos 是如何让 Twitter 和 Airbnb 这样的公司,通过数据中心资源更高效的管理系统,扩展应用的呢?我们从一个相当简单但很优雅的两级调度架构开始说起。

上图修改自Apache Mesos 网站上的图片,如图所示,Mesos 实现了两级调度架构,它可以管理多种类型的应用程序。第一级调度是Master 的守护进程,管理Mesos 集群中所有节点上运行的Slave 守护进程。集群由物理服务器或虚拟服务器组成,用于运行应用程序的任务,比如Hadoop 和MPI 作业。第二级调度由被称作Framework 的“组件”组成。Framework 包括调度器(Scheduler)和执行器(Executor)进程,其中每个节点上都会运行执行器。Mesos 能和不同类型的Framework 通信,每种Framework 由相应的应用集群管理。上图中只展示了Hadoop 和MPI 两种类型,其它类型的应用程序也有相应的Framework。

Mesos Master 协调全部的 Slave,并确定每个节点的可用资源,
聚合计算跨节点的所有可用资源的报告,然后向注册到 Master 的 Framework(作为 Master 的客户端)发出资源邀约。Framework 可以根据应用程序的需求,选择接受或拒绝来自 master 的资源邀约。一旦接受邀约,Master 即协调 Framework 和 Slave,调度参与节点上任务,并在容器中执行,以使多种类型的任务,比如 Hadoop 和 Cassandra,可以在同一个节点上同时运行。

我将在接下来的文章中,详细介绍 Mesos 的体系结构和工作流。我认为,Mesos 使用的两级调度架构以及算法、隔离技术让在同一个节点上运行多种不同类型的应用成为了现实,这才是数据中心的未来。正如我之前所述,这是到目前为止我所见过的,履行 SDDC 承诺最好的现成技术。

我希望这篇介绍让你受用并吊起你了解 Mesos 的胃口。接下来,我将带你深入技术细节,教你一些上手方法,还会告诉你如何加入社区。

查看英文原文: APACHE MESOS: THE TRUE OS FOR THE SOFTWARE DEFINED DATA CENTER?


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。

2015-04-14 09:3055492

评论

发布
暂无评论
发现更多内容

ROS CDK | 云上资源自动化部署新模式

郭旭东

阿里云 ROS 基础设施即代码 IaC

网络态势感知是什么?

郑州埃文科技

批量把Excel数据自动录入系统

木头

自动录入 批量录入 自动填表

工作年限、成长路线、进阶技术。怎样才能成为架构师?

Linux服务器开发

Linux服务器开发 Linux后台开发 软件架构师 服务器架构师 C++架构师

管理者如何避免主观偏见

石云升

职场经验 管理经验 6月日更

唯品会:在 Flink 容器化与平台化上的建设实践

Apache Flink

flink

多云部署又添新「云」,EMQ X Cloud 正式支持腾讯云部署

EMQ映云科技

阿里云 IoT 华为云 云平台 #腾讯云

58集团 x StarRocks:全面升级数据分析能力,满足多场景业务分析需求

StarRocks

数据库 数据分析 OLAP 58同城 StarRocks

2021年,想要成为年薪百万的Java架构师需要掌握哪些技术?

Java架构师迁哥

机器数及特点

若尘

计算机组成原理 6月日更

Redis入门四:数据持久化

打工人!

redis redis持久化 6月日更

腾讯安全姬生利:《数据安全法》下,云上数据安全最佳实践

腾讯安全云鼎实验室

数据安全 云安全 数据安全法

网络为本,博睿数据NPMD用20%的投入实现80%的功能

博睿数据

博睿数据 数据链DNA NPMD

5分钟速读之Rust权威指南(二十七)Rc<T>

wzx

rust

基于jira的需求交付效率统计

好孩子

Jira

为什么大家都在用WebRTC?

anyRTC开发者

音视频 WebRTC 语音通话 视频通讯

1小时学会不打代码制作一个网页精美简历(1)

1_bit

大前端 低代码 iVX 低代码开发平台

银行业运维指标体系建设实战

云智慧AIOps社区

智能运维

北京多部门联合整治违规应用:过度收集用户信息该重罚

石头IT视角

前端 JavaScript 复制粘贴的奥义——Clipboard 对象概述

编程三昧

JavaScript 大前端

云开发是啥?看看它在编程导航项目的实践

程序员鱼皮

Java JavaScript 大前端 后端 云开发

RestTemplate打印日志的正确姿势

编号94530

spring 日志 log RestTemplate

☕【JVM技术探索】深入分析各种锁(锁膨胀)运作流程

洛神灬殇

JVM 锁升级 6月日更 锁分析

墨奇,以“一手之力” 证明你就是你

E科讯

JavaScript 数组操作必须熟练运用的 10 个方法

devpoint

JavaScript array reduce 6月日更

如何用视频云技术,搞一个爆红的 “反应视频” 项目?

阿里云CloudImagine

阿里云 RTC 英特尔 视频处理 视频制作

剪视频一点都不难,多款超实用剪辑软件全方位评测!

懒得勤快

短视频 视频剪辑 视频制作

Flink 和 Iceberg 如何解决数据入湖面临的挑战

Apache Flink

flink

小红书 x StarRocks:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力

StarRocks

数据库 数据分析 广告系统 小红书 StarRocks

网络攻防学习笔记 Day52

穿过生命散发芬芳

网络攻防 6月日更

【Linux】使用 systemd 管理 frp 服务

赖猫

Linux 后端

深入浅出Mesos(一):为软件定义数据中心而生的操作系统_语言 & 开发_韩陆_InfoQ精选文章