我试图弄清楚使用Mesos的原因是什么。你能想出其他的吗?
答案 0 :(得分:25)
完全披露:我目前在Twitter工作,我参与了Apache Mesos和Aurora。
Mesos使用案例可能因以下几个方面而异:规模(10台服务器与10台),可用硬件(专用/静态或公共云/可扩展)和工作负载(主要是服务,批处理或两者)
您的清单是一个很好的开始。以下是一些要添加的其他用例/功能。
容器编排
随着像Docker这样的容器运行时变得越来越流行,许多潜在用户在创建容器映像后,正在寻找Mesos +调度程序来管理编排。 Mesos已经非常成熟并且已经大规模地证明了,我认为它已经使它在一些新兴的解决方案上占了一席之地。
提高资源利用率
对于运行> 50台服务器的公司,采用Mesos的一个共同动机是提高资源利用率以降低资本支出。在公共云和私有云中都有很多这样的例子。在Ebay的情况下,他们一直在Mesos上运行Jenkins并且能够减少他们的VM占用空间。 Mesosphere还发布了case study of HubSpot(在AWS上运行),以及他们如何通过更有效地使用他们的可用硬件来替换数百个较大的服务器。
<强>抢占强>
在Twitter,我们通过一个调度程序Apache Aurora运行Mesos。我们提高利用率的方法之一与您的用例有关:在同一个集群中运行不同的成熟度应用程序。 Aurora具有环境概念,因此您可以运行生产,开发或测试的应用程序。此外,Aurora具有内置抢占功能,允许它优先于非生产任务进行生产,当需要这些资源来运行生产任务以及每个环境中的优先级系统时,杀死非生产任务。
长期以来,与抢占相关的功能也将位于Mesos核心本身 - 它是与增加资源利用率和运行不同成熟度应用程序(dev,test,prod)相关的杀手级功能。如果您对保持最新状态感兴趣,可以使用几张Mesos门票,包括MESOS-155用于抢占,以及MESOS-1474用于反向报价。
合并批次和服务
在js84指出的情况下,在共享的Mesos集群中运行批处理和服务将是进一步提高利用率的关键。查看Project Myriad,努力将Mesos和YARN工作负载集中在同一个集群中。目前,我还没有发现任何运行批处理和服务的大型部署,但它确实是社区的发展方向,因为多个框架在共享集群中运行变得更容易。
答案 1 :(得分:4)
至少会出现一个额外的用例:用于开发分布式应用程序的开发SDK。如果您查看Mesos Frameworks,您会发现许多框架都是在Mesos之上开发的。同样有趣Apple's Siri framework powering Siri。
关于你的1):你应该记住的另一个角度是在同一个集群中扩展你的应用程序。即在您的网站峰值负载下,轻松地将资源转移到Web服务器,同时缩小Hadoop分析处理。