Mesos真实世界的用例

use*_*582 9 mesos

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

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

小智 26

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

Mesos使用案例可以根据几个维度而变化:规模(10台服务器与10台),可用硬件(专用/静态或公共云/可扩展)和工作负载(主要是服务,批处理或两者).

你的清单是一个很好的开始.以下是一些要添加的其他用例/功能.

容器编排

随着像Docker这样的容器运行时变得越来越流行,许多潜在用户在创建容器映像后,正在寻找Mesos +调度程序来管理编排.Mesos已经相当成熟并且已经大规模地证明了,我认为它已经使它在一些新兴的解决方案上占了一席之地.

提高资源利用率

对于运行> 50台服务器的公司,采用Mesos的一个共同动机是提高资源利用率以降低资本支出.在公共云和私有云中都有很多这样的例子.在Ebay的情况下,他们一直在Mesos上运行Jenkins并且能够减少他们的VM占用空间.Mesosphere还发布了HubSpot(在AWS上运行)的案例研究,以及他们如何通过更有效地使用可用硬件来替换数百个较大的服务器.

抢占

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

与抢占相关的长期功能也将位于Mesos核心本身 - 它是一个与增加资源利用率和运行不同成熟度应用程序(开发,测试,产品)相关的杀手级功能.如果您有兴趣了解最新信息,可以使用几张Mesos门票,其中包括MESOS-155用于抢占,以及MESOS-1474用于反向优惠.

共同批处理和服务

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