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

use*_*582 49 marathon mesos mesosphere aurora

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

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

谢谢!

Bil*_*ill 86

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

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

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

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

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

我会广泛地提出一些不同之处.当谈到每个中提到的缺点时,我认为可以说社区已经意识到并打算修复它们.

便于使用

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

另一方面,马拉松可以帮助您尽快运行"Hello World".它有很多文档可以在许多环境中执行此操作,并且开始的开销很小.它具有REST API,可以更轻松地适应自定义工具.它使用JSON进行配置,这很容易入手,但更容易出现货物结果.

有针对性的用例

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

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

所有权

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

  • Marathon由一家公司(Mesosphere)拥有

对某些人来说,这是有益的,对别人来说则不是.这意味着您可以支付支持和功能.这也意味着有待出售的东西,项目方向最终取决于Mesosphere的利益.

  • Aurora归Apache Software Foundation所有

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

tl; dr如果你只是在Mesos上运行服务,我建议马拉松作为你的第一个停靠点.你可以更容易地运行并围绕生态系统.如果您正在为公司制定"私有云战略",我建议认真考虑Aurora,因为它已被证明并专门为此而设计.


Ere*_*ven 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)
Run Code Online (Sandbox Code Playgroud)

马拉松

[+] 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
Run Code Online (Sandbox Code Playgroud)

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


Mic*_*las 2

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

Q1:简而言之,Apache Aurora 能够完成 Marathon + Chronos 可以提供的功能,即调度长期运行的服务和重复(批处理)作业;另请参阅Aurora 用户指南

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