得益于 Apache Mesos 项目,Twitter 已经转变了其关于如何启动新服务的思路。Apache Mesos 是一个开源技术,可以将多台服务器整合到一个共享的资源池中。它是一个为数据中心而生的操作系统。
Twitter 开源主管 Chris Aniszczyk 说:“你上次在 Twitter 上看到 ‘失败鲸’ 是什么时候?”
我和 Chris 交流了 Mesos 项目如何帮助他们减少原型设计的时间,并将更多精力集中在新服务如何消耗公司资源上。事实证明,这确实节省了成本并有助于减少停机时间。上次我和 Chris 交流时,我们了解了 Twitter 背后的开源技术。在这次采访中,了解更多关于 Mesos 项目的信息,为什么 Twitter 如此 heavily 使用它,以及如何参与到这个项目中。
为了获得身临其境的体验,请查看本月晚些时候举行的 MesosCon,届时将有来自社区专家的演讲,包括 Twitter 和 Google。该会议与 LinuxCon 同期举行,除了演讲和会议之外,还将有一个全天的黑客马拉松,让您亲手体验代码。

opensource.com
对于非技术人员,什么是 Apache Mesos 项目?
Mesos 最初诞生于伯克利 AMPLab 的一个研究项目,如今它为 Airbnb、eBay、Netflix 和 Twitter 等大型公司的基础设施提供支持(您可以在这篇 Wired 文章中了解更多信息)。此外,它是一个成熟的开源项目,由 Apache 基金会的一个社区开发(关注 @ApacheMesos)。Mesos 社区正准备在 8 月底举办其首届会议 MesosCon。
至于它的功能,从较高的层面来看,您可以将 Mesos 视为一个高可用且容错的操作系统内核,用于您的公共或私有云(在数据中心)。Mesos 将您的服务器组合成一个共享的资源池(大型计算机),智能地分配资源,任何应用程序都可以高效地使用这些资源,从而降低复杂性并提高效率。
就这么简单,您可以将 Mesos 想象成将数据中心中的多台计算机组合成一台大型计算机... 这样您就可以像为笔记本电脑编程一样为数据中心编程。
对于技术人员,Apache Mesos 如何帮助在共享服务器池上运行应用程序?
对于那些感兴趣的人,他们可以阅读最初的 Mesos 研究论文 [PDF],但首先举一个简单的例子,在典型的云中,有许多计算机运行各种工作负载,例如通过 Hadoop 或 Spark 进行大数据处理... 甚至运行您当前正在浏览的网站。
通常,这些工作负载倾向于在静态分区的计算机上运行,这些计算机仅在其各自的工作负载执行时才被利用,并且通常会导致资源空闲(其他应用程序可以使用这些资源)。Mesos 允许应用程序之间(使用 Mesos 框架)进行资源共享,从而提高吞吐量和利用率。如下例所示,当您的 Hadoop 作业完成处理后,其他应用程序可以利用空闲资源。
这在底层是如何实际工作的?本质上,Mesos 由 master 节点和 slave 节点组成,它们协助应用程序在集群中运行任务。为了实现高可用性,您通常有多个由 Apache Zookeeper 控制的 master 节点,Zookeeper 负责协调领导者选举。任务是 Mesos 中的执行单元,master 节点调度这些任务在 slave 节点的可用资源上运行。
Mesos slave 依赖于 Linux 容器,通过 cgroups 进行资源隔离(上图中的虚线),其中包括提供的资源类型,如 CPU 限制、RAM、磁盘空间、I/O 网络控制器等等。您甚至可以使用 Docker 容器作为您在 Mesos 之上运行和编排的包。此外,由于 Mesos 跟踪并强制执行资源约束,它可以根据任务完成的时间和集群的需求动态增加相应 slave 的大小。
从技术上讲,Mesos 使用两级调度模型,其中 Mesos 将调度任务委托给 Mesos 框架。Mesos 决定哪个框架获得多少资源,并向框架发出资源 offer。框架可以选择接受或拒绝 offer,并优化如何为其子任务提供资源。例如,像 Hadoop 这样的框架可以使用它来根据数据局部性接受 offer。
为了让您的生活更轻松,有越来越多的 Mesos 框架,例如 Marathon、Chronos 和 Aurora,您可以利用它们,这样您就不必编写自己的框架
Twitter 如何在其数据中心中使用 Apache Mesos?
截至今天,Twitter 拥有超过 2.7 亿活跃用户,每天产生超过 5 亿条推文,每秒高达 15 万条以上推文,以及每天超过 100TB+ 的压缩数据。
从架构上讲,Twitter 主要由服务组成,这些服务大多用开源项目 Finagle 编写,代表了平台的核心名词,例如用户服务、时间线服务等等。Mesos 允许这些服务扩展到数万台裸机,并利用跨数据中心的共享服务器池。
更重要的是,Mesos 改变了工程师在 Twitter 上启动服务的思维方式。工程师不再考虑静态机器,而是考虑他们的服务需要哪些资源(例如,CPU、内存和磁盘),并委托给 Apache Aurora 调度器,以便在 Mesos 上高效运行服务。结果是缩短了从原型设计到启动新服务的时间,从而更容易交付项目。最重要的是,由于需要的机器更少且停机时间更少,因此可以真正节省资本支出和运营支出。
你上次在 Twitter 上看到 ‘失败鲸’ 是什么时候?
请告诉我们关于 2014 年 8 月举行的 MesosCon。谁应该参加,他们可以期待什么?
MesosCon 是一个与 LinuxCon 同期举行的会议,将于 2014 年 8 月 21 日至 22 日举行。任何有兴趣了解 Mesos 生态系统或 Twitter 和 Google 等公司如何管理其计算基础设施的人都应该参加。
第一天将以 Ben Hindman (Twitter) 和 John Wilkes (Google) 的主题演讲开始,并专门用于研讨会和演讲,内容包括 workshops and talks
-
Mesos 框架:包括 Apache Aurora、Marathon、Spark 和 Netflix 开发的流处理框架。
-
关于 Mesos 的运维视角:包括关于运行弹性集群的挑战以及将 Docker 与 Mesos 结合使用的讨论。
-
来自在生产环境中使用 Mesos 的公司的演示:包括 eBay 和 Airbnb。
第二天将有一个 黑客马拉松,让与会者有机会根据他们或社区的需求学习或贡献项目。这真是一个独特的活动,您可以在其中了解更多关于 Mesos 内部原理的信息,并与生态系统中的其他人合作改进 Mesos。
人们如何了解更多关于 Apache Mesos 的信息、入门并加入社区?
要了解更多关于 Mesos 的信息,我强烈建议观看 Ben Hindmans 最近关于 Mesos 的演讲。
为了快速开始使用 Mesos,我喜欢向人们推荐 Elastic Mesos 服务,它可以帮助您在 EC2 上快速启动 Mesos 集群,并有助于缓解您在使用任何分布式系统时看到的典型设置难题。
要参与社区,我建议您查看 Mesos 社区站点,并启动 freenode 上的 #mesos IRC 频道、用户 邮件列表,当然还有在 @ApacheMesos 帐户上发推文。
评论已关闭。