共计 1700 个字符,预计需要花费 5 分钟才能阅读完成。
【编者的话】文中内容来源于 stackoverflow 上的一个 问题,提问者想知道 Mesos 在实际的使用中都有哪些使用场景,来自 Twitter 的工程师从容器编排、资源利用率、优先级和资源抢占、以及服务运行等几个角度,对问题进行了回答。
我尝试探究用户使用 Mesos 的原因究竟有哪些,以下是暂时列出的几个要点,不知道还有没有其他的例子?
1) 让用户把所有的服务都运行在同一个集群中而不是运行在专用的集群中(比如通过终端应用的集群 +DevOps 的方式,例如像 Jekins)
2) 在同一个集群中运行不同类型的成熟的服务(dev,test,production)不知道这样是否可行?Kubernetes 中已经可以通过 lables 标签来提供类似的功能。
3) Mesos 通过提供简化部署、统一标准的 API、资源装箱等一系列的操作,简化了传统的分布式服务(比如像 Hadoop)的使用流程。
回答(Dave Lester):
我目前在 Twitter 工作,我同时参与到了 Apache Mesos 以及 Autora 项目的相关工作中,下面是我对 Mesos 使用场景的理解。
Mesos 的实际使用场景可能会受到以下几个因素的影响:集群规模(数十台服务器到成千上万台)、可使用的硬件(专用的 / 静态的,或者是云端的 / 可扩展的)、以及工作量(提供基本的服务或是批量处理的服务,或两种服务同时提供)
上面所列出的几点都很有道理,这里我再加上几种新的使用案例。
容器编排
随着容器环境(比如 Docker)变得越来越流行,许多潜在的用户正在寻找一种 Mesos+ 调度器的方案来管理镜像在创建之后的编排工作。Mesos 到目前为止已经相当成熟,已经被证明可以规模化地提供服务,我认为 Mesos 的解决方案比某些临时出现的方案要好很多。
提升资源利用率
对于使用超过 50 台服务器的公司而言,一个通常的使用 Mesos 的动机就是提升资源利用率,并且减少运维成本。目前已经有许多这样的公司,比如各种公有云 和私有云服务的提供商。在 Ebay 的案例中,它们曾经在 Mesos 上运行 Jekins 这样可以减少虚拟机的使用。Mesosphere 也发布了相关的文章 对于 HubSpot (运行在 AWS 上) 的案例研究, 文章中介绍了 HubSpot 是如何使用几十台大型的服务器来替代了几百台小型的服务器,使得硬件的利用率更高。
优先级和资源抢占
在 Twitter,我们通过一个调度器:Apache Aurora 来运行 Mesos 服务。在这个使用场景中,我们有一种方式可以提高资源的利用率:在同一个集群上运行不同的成熟的服务。Aurora 有一个环境变量的概 念,这可以让用户可以运行不同环境类型的服务,比如 production、development、或者是 test 环境。此外,Aurora 还有一种内建 的优先级抢占机制,这可以允许它来优先考虑 production 环境下的任务,当这些资源需要被 production 环境中的任务使用的时候,系统可以及 时结束非 production 的任务,在每一种环境中,都有类似的优先级系统。
长期的,功能性相关的资源抢占功能也将会存在于 Mesos 本身的内核中 — 这是一个杀手级的特性,这个功能可以增强资源利用率,并且在不同的环境下(dev、test、prod)运行不同的成熟的服务。如果你对相关的话题感兴 趣,可以参考 MESOS-155 以及 MESOS-1474。
同时运行批处理服务和普通服务
可以在一个共享的 Mesos 集群中同时运行批处理任务以及其他的普通服务,这将对资源利用率的提升起到关键作用。让我们回顾一下 Myriad 项 目,这个项目希望把 Mesos 以及 YARN 的工作任务放在同一个集群中。在这个时候,用户并不在意同时进行批量服务和普通服务的大规模的部署工作,在一个 共享的集群中运行多个框架也将变得更加简单,这也是社区发展的一个方向。
使用 Docker,7 个命令部署一个 Mesos 集群 http://www.linuxidc.com/Linux/2015-06/118589.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-06/118872.htm