Mesos 真实世界用例

Mesos real world use-cases

我想弄清楚使用 Mesos 的原因是什么。你能想出其他的吗?

  1. 运行 您的所有服务都在同一集群中,而不是专用集群(您的终端应用程序 + DevOps,例如 Jenkins)
  2. 运行 同一集群中的不同成熟度应用程序(开发、测试、生产),或者这可行吗? Kubernetes 与 Labels
  3. 有类似的方法
  4. Mesos 通过简化部署、统一API、资源打包
  5. 简化了 Hadoop 等传统分布式应用程序的使用

至少想到了一个额外的用例:用于开发分布式应用程序的开发 SDK。如果你看看 Mesos Frameworks you will find a number of frameworks which have been developed on top of Mesos. Also interesting Apple's Siri framework powering Siri.

关于你的 1):你应该记住的另一个角度是在同一个集群中扩展你的应用程序。 IE。在网站的峰值负载下,轻松将资源转移到网络服务器,同时缩减 Hadoop 分析处理。

完全披露:我目前在 Twitter 工作,我参与了 Apache Mesos 和 Aurora。

Mesos 用例可能会根据几个维度而有所不同:规模(10 台服务器与数千台服务器)、可用硬件(dedicated/static 或 public cloud/scalable),以及工作负载(主要是服务、批处理或两者)。

您的列表是一个很好的开始。这里有一些要添加的额外用例/功能。

容器编排

随着容器 运行 时代 Docker 变得流行,很多潜在用户都在关注 Mesos + 一个调度程序,以便在创建容器映像后管理编排。 Mesos 已经相当成熟并且已经在规模上得到验证,我认为这使它比一些紧急解决方案更有优势。

资源利用率提高

对于 运行 拥有超过 50 台服务器的公司,采用 Mesos 的一个共同动机是提高资源利用率以减少资本支出。在 public 和私有云中都有许多这样的例子。就 Ebay 而言,他们已经 运行 在 Mesos 上安装了 Jenkins,并且能够减少他们的 VM 占用空间。 Mesosphere 还发布了 case study of HubSpot(AWS 上的 运行nning),以及他们如何通过更高效地使用可用硬件,用数十台大型服务器替换数百台小型服务器。

抢占

在 Twitter,我们通过一个调度程序 运行ning Mesos:Apache Aurora。我们可以提高利用率的方法之一与您的用例有关:运行在同一集群中使用不同的成熟度应用程序。 Aurora 具有环境概念,因此您可以 运行 生产、开发或测试应用程序。此外,Aurora 有一个内置的抢占功能,允许它优先于生产任务而不是非生产任务,当这些资源需要 运行 生产任务以及每个环境中的优先系统时,杀死非生产任务。

从长远来看,与抢占相关的功能也将位于 Mesos 核心本身——这是一个与提高资源利用率和 运行 不同成熟度应用程序(开发、测试、生产)相关的杀手级功能).如果您有兴趣保持最新状态,可以关注一些 Mesos 门票,包括用于抢占的 MESOS-155 和用于反向报价的 MESOS-1474。

托管批次和服务

运行 共享 Mesos 集群中的批处理和服务将是进一步提高利用率的关键,正如 js84 指出的那样。查看 Myriad 项目,这是一项将 Mesos 和 YARN 工作负载置于同一集群中的工作。目前我还不知道任何大型部署 运行 批处理和服务,但这肯定是社区前进的方向,因为多个框架在共享集群中 运行 变得更容易.