49

Marathon 和 Aurora 都是基于 Mesos 构建的,据说是为运行长时间运行的服务而设计的。我的问题是:

  1. 他们有什么区别?我一直在努力寻找关于它们的主要差异的任何好的解释
  2. 这些框架是否运行在 Linux 上运行的任何东西?对于 Marathon,他们声明它可以运行任何“在 shell 中可执行”的东西,但这有点模糊 :)

谢谢!

4

4 回答 4

86

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

这些框架是否运行在 Linux 上运行的任何东西?对于 Marathon,他们声明它可以运行任何“在 shell 中可执行”的东西,但这有点模糊 :)

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

他们有什么区别?我一直在努力寻找关于它们的主要差异的任何好的解释

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

我将提供一些粗略的差异。当谈到每个问题中提到的缺点时,我认为可以肯定地说社区已经意识到并打算修复它们。

使用方便

极光不容易安装。在设置它时,您可能会觉得您正在开拓创新。它公开了一个 thrift API,这意味着您将需要一个 thrift 客户端以编程方式与其交互(即将推出类似 REST 的 API,但目前是vaporware),或者使用我们的命令行客户端。Aurora 有一个用于配置的 DSL,这可能会让人望而生畏,但允许您在更多地使用系统时轻松共享模板和常用模式。

另一方面,Marathon 可以帮助您尽快运行“Hello World”。它有很好的文档可以在许多环境中执行此操作,并且几乎没有开销。它有一个 REST API,可以更轻松地适应自定义工具。它使用 JSON 进行配置,易于上手,但更容易出现货物崇拜。

有针对性的用例

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

我不能对 Marathon 的可扩展性提出任何主张或反对。在功能方面,Marathon 快速构建了功能,但这在实践中可能会让人感到最前沿(Docker 支持就是一个很好的例子)。这并不总是由于 Marathon 本身造成的,还包括堆栈。Marathon 不提供抢占。

所有权

对一些人来说,项目的所有权和治理很重要。感觉在实践中它并没有定义项目的开放性,但对于某些人/公司来说,法律细则可能会破坏交易。

  • Marathon 归一家公司所有(Mesosphere)

对一些人来说,这是有益的,对另一些人则不是。这意味着您可以为支持和功能付费。也意味着有东西要卖,项目方向最终是由Mesosphere的利益决定的。

  • Aurora 归 Apache 软件基金会所有

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

tl;dr如果您刚刚开始在 Mesos 上运行服务,我建议您将 Marathon 作为您的第一个停靠港。您将更容易在生态系统中运行和探索。如果您正在为一家公司制定“私有云战略”,我建议您认真考虑 Aurora,因为它已被证明是专门为此设计的。

于 2015-04-24T22:03:24.000 回答
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

于 2015-04-08T10:03:49.703 回答
3

我对马拉松有更多的经验。

思想:

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

技术的:

  • Marathon 不安排批处理任务或 cron 作业
  • Marathon 具有友好的 UI 和更好的健康指标(在 0.8.x 中)

关于你的第二个问题,你可以运行任何命令或 docker 容器,Mesos 会为你做资源隔离。如果你有 50% 的 CentOS 节点和 50% 的 Ubuntu 节点,并且你运行一个执行apt-get的任务,那么该任务将有 50% 的失败几率。Mesos 和 Marathon 对实际机器一无所知。

于 2015-03-13T20:47:33.303 回答
2

免责声明:我没有亲身体验 Aurora,只有 Marathon。

ad Q1:简而言之,Apache Aurora 能够做 Marathon + Chronos 可以提供的事情,即安排长时间运行的服务和重复(批处理)作业;另请参阅Aurora 用户指南

广告 Q2:是的,任何东西。目前基于 cgroups 和 Docker,但是嘿,你可以推出自己的.

于 2015-03-13T06:02:09.977 回答