HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

深入浅出 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:3055330

评论

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

一看就懂的var、let、const三者区别

蛙人

JavaScript

使用Travis CI为工程搭建一个持续集成服务。

梁龙先森

大前端 持续集成 2月春节不断更

3. 无转折不编程,滚雪球学 Python

梦想橡皮擦

Python python从入门到精通 2月春节不断更 python入门

我用 Python 分析了一波热卖年货,原来大家都在买这些东西?

JackTian

Python 数据分析 数据可视化 2月春节不断更 年货

京东App Swift 混编及组件化落地

京东科技开发者

swift 开发者

Redis Sentinel 源码:Redis的高可用模型分析

华为云开发者联盟

数据库 redis 高可用 框架 redis sentinel

记录一次BAT一线互联网公司前端JavaScript面试

我是哪吒

JavaScript 学习 面试 大前端 2月春节不断更

如何极速极速搭建个人博客?Copy攻城狮用的这一招很优秀!

华为云开发者联盟

JavaScript typescript GitHub React #Serverless

同时拿到BATJMD的Offer是怎样的一种体验?

冰河

面试 面经 offer 一起进大厂 BATJMD

Python进阶丨如何创建你的第一个Python元类?

华为云开发者联盟

Python 编程 python元类 对象 装饰器

MyChat,一个私有的“微信“

米凤君

Java 微信 Netty IM JavaFx

大学寒假这样过,过完惊艳所有人,不只是你的宿友,还有千千万万个程序员同行们!!!

沉默王二

程序员

第十一周 学习总结

简简单单

第6周作业

Geek_mewu4t

ARTS打卡 第30周

引花眠

微服务 ARTS 打卡计划

华为 Python网络自动化

艺博东

Python 网络

ZEGO即构自建MSDN有序网络,为实时音视频传输极致顺畅!

ZEGO即构

即拼商城模式开发

luluhulian

图文详解:如何给女朋友解释什么是微服务?

浅羽技术

Java zookeeper 分布式 微服务 框架

编程范式( Programming paradigm )简介

引花眠

编程范式

从架构设计理念到集群部署,全面认识KubeEdge

华为云开发者联盟

架构 容器 云原生 集群 kubeedge

笔记本电脑电池显示4%可用(已接通电源),经过清灰又莫名奇妙的可以续航啦,很奇怪!

孙叫兽

电脑故障 电池

大作业一:

未来已来

第十一周 安全稳定知识课后作业

简简单单

华云大咖说 | 大型分布式监控系统建设经验

华云数据

嘿,同学,你要的Java内存模型(JMM)来了

Simon郎

Java 大数据 JVM

对接量化钱包区块链开发

v16629866266

程序员防猝死指南

小白debug

程序员 职业 内存 打工人 Go 语言

数字化人才有哪些特性?

boshi

数字化转型 七日更

第4周左右

林亚超

研发效能,productivity 还是 performance

李小腾

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