马拉松vs极光和他们的目的

时间:2015-02-21 22:07:36

标签: mesos mesosphere marathon aurora

Marathon和Aurora都是基于Mesos构建的,据称可用于运行长期运行的服务。我的问题是:

  1. 他们有什么不同?我一直在努力寻找关于他们关键差异的任何好的解释
  2. 这些框架运行在Linux上运行的任何东西吗?对于Marathon,他们声明它可以运行任何可以在shell中执行的任何东西"但这有点模糊:)
  3. 谢谢!

4 个答案:

答案 0 :(得分:86)

免责声明:我是Apache Aurora的副总裁,并且在Twitter上担任Aurora团队的技术负责人约5年。我可能有偏见的观点是我自己的,并不一定代表Twitter或ASF。

  

这些框架运行在Linux上运行的任何东西吗?对于马拉松他们   声明它可以运行任何"在shell中可执行的任何东西"但   这有点模糊:)

基本上,是的。最终,这些系统是在集群中某处执行shell代码的复杂机制: - )

  

他们有什么不同?我一直在努力寻找任何好处   关于他们关键差异的解释

Aurora和Marathon确实提供了类似的功能集,两者都被归类为"服务调度程序"。换句话说,您向我们提供了有关如何运行应用程序服务器的说明,我们会尽力保持它们。

我会在广泛的笔触中提供一些差异。当谈到每个中提到的缺点时,我认为可以安全地说社区已经意识到并打算修复它们。

易于使用

Aurora不容易安装。在设置它时,您可能会觉得自己正在开拓创新。它暴露了一个thrift API,这意味着你需要一个thrift客户端以编程方式与它进行交互(类似REST的API即将到来,但目前是蒸发器),或者使用我们的命令行客户端。 Aurora拥有适用于configuration的DSL,这可能令人望而生畏,但允许您在使用系统时轻松共享模板和常用模式。

另一方面,马拉松可以帮助您运行“Hello World'尽快。在许多环境中执行此操作非常棒docs,并且开始时只需要很少的开销。它具有REST API,可以更轻松地适应自定义工具。它使用JSON作为configuration,这很容易入手,但更容易出现货物结果。

有针对性的用例

Aurora一直被设计用于处理大型工程组织。 Twitter上的集群拥有成千上万台机器和数百名使用它们的工程师。这对Twitter的业务至关重要。因此,我们非常重视对规模,稳定性和安全性的要求。我们确保只考虑我们认为在生产中大规模值得信赖的功能(例如,由于Docker本身和Mesos-Docker集成的已知问题,我们将Docker支持标记为beta)。我们还拥有抢占等功能,使我们的集群适用于将业务关键型服务与原型和实验混合在一起。

我无法声称支持或反对Marathon的可扩展性。在功能方面,Marathon已经快速构建了功能,但在实践中可以感受到前沿(Docker支持就是一个很好的例子)。这并不总是由于Marathon本身,而是层层叠叠。马拉松不提供先发制人。

<强>所有权

对某些人来说,项目的所有权和治理很重要。它认为在实践中它没有定义项目的开放性,但对于一些人/公司而言,合法的细则可能是一个交易破坏者。

  • Marathon由一家公司(Mesosphere)拥有
对某些人来说,这是有益的,对别人来说则不是。这意味着您可以支付支持和功能。这也意味着有待出售的东西,项目方向最终取决于Mesosphere的利益。

  • Aurora归Apache Software Foundation所有

这意味着它受社区驱动的ASF治理模型的制约。 Aurora没有付费客户,目前没有软件商店可以支付开发费用。

tl; dr 如果您只是想在Mesos上运行服务,我建议将Marathon作为您的第一个停靠点。你可以更容易地运行并围绕生态系统。如果您正在制定私有云策略&#39;对于一家公司,我建议认真考虑Aurora,因为它已被证明并专门为此设计。

答案 1 :(得分:24)

所以我一直在评估两者,这是我的总结。

极光

[+] also handles recurring jobs
[+] finer grained, extensive file-based configuration
[+] has namespaces so multiple environments can co-exist
[-] read-only UI, no official API
[~] file based configuration and cli based execution brings overhead (which can be justified with more extensive feature set)

马拉松

[+] very easy to setup and use
[+] UI that provides control and extensive API (even with features missing from UI at the moment)
[+] event bus to listen in on api calls
[-] handles only long-running jobs
[-] does not have separate deployment-run-cleanup steps, these if necessary need to be combined in a script of one-liner

尽管Aurora具有更好的功能,但我更喜欢Marathon,因为Aurora的复杂性/开销和缺乏UI(用于控制)和API

答案 2 :(得分:3)

我对Marathon有更多经验。

思想:

  • Marathon是一种经过相对测试的产品,用于AirBnB的生产。 Aurora是一个早期的Apache项目(所以YMMV)。
  • 两者都是开源和活跃的。随意提出拉动请求或文件问题!

技术:

  • Marathon不会安排批处理任务或cron作业
  • Marathon拥有友好的用户界面和更好的健康指标(0.8.x)

关于第二个问题,您可以运行任何命令或docker容器,Mesos将为您执行资源隔离。如果您有50%的CentOS节点和50%的Ubuntu节点并且您运行执行apt-get的任务,则该任务将有50%的失败可能性。 Mesos和Marathon没有意识到实际的机器。

答案 3 :(得分:2)

免责声明:我没有使用Aurora的实践经验,只有Marathon。

ad Q1:简而言之,Apache Aurora能够完成Marathon + Chronos可以提供的功能,即安排长期运行的服务和重复(批量)作业;另见Aurora user guide

ad Q2:是的,什么都有。目前基于cgroups和Docker但是嘿,你可以roll your own