马拉松对极光和他们的目的
Marathon和Aurora都是build立在Mesos之上的,据说是devise用于运行长时间运行的服务。 我的问题是:
- 他们有什么不同? 我一直在努力寻找关于其主要区别的任何好的解释
- 这些框架是否运行在Linux上运行的任何东西? 对于Marathon,他们声明它可以运行任何“在shell中可执行”的东西,但这有点模糊:)
谢谢!
免责声明:我是Apache Aurora的副总裁,在Twitter上担任极光团队的技术主pipe约5年。 我可能偏见的观点是我自己的,并不一定代表Twitter或ASF的观点。
这些框架是否运行在Linux上运行的任何东西? 对于Marathon,他们声明它可以运行任何“在shell中可执行”的东西,但这有点模糊:)
基本上,是的。 最终,这些系统是在集群某处执行shell代码的复杂机器:-)
他们有什么不同? 我一直在努力寻找关于其主要区别的任何好的解释
Aurora和Marathon确实提供了类似的function集,都被归类为“服务调度程序”。 换句话说,您向我们提供了关于如何运行您的应用程序服务器的指示信息,并且我们尽我们所能来维护它们。
我会提供一些广泛的差异。 当谈到每个提到的缺点时,我认为可以肯定地说社区意识到并打算修复它们。
使用方便
Aurora不容易安装。 这可能会让你觉得自己在创业的时候就开始了。 它暴露了一个节俭的API,这意味着你将需要一个节俭的客户端以编程的方式与它交互(类似于REST的API即将到来,但是目前是虚拟化),或者使用我们的命令行客户端。 Aurora有一个可以令人生畏的DSL configuration ,但是可以让您在使用系统时更轻松地共享模板和常用模式。
另一方面,马拉松可以帮助您尽快运行“Hello World”。 在很多环境中,它有很好的文档来完成这个任务,并且没有太多的开销。 它有一个REST API,使其更容易适应定制工具。 它使用JSON进行configuration ,这很容易开始,但更容易发生货物故障。
目标用例
Aurora一直被devise为处理大型工程组织。 Twitter上的集群拥有数以万计的机器和数百名工程师使用它们。 这对Twitter的业务至关重要。 因此,我们非常重视对规模,稳定性和安全性的要求。 我们确保只宽容我们认为在生产中规模可信的特性(例如,由于Docker本身和Mesos-Docker集成的已知问题,我们将Docker支持标记为beta)。 我们还具有抢占等特性,使我们的集群适合将业务关键型服务与原型和实验混合在一起。
我无法对马拉松的可扩展性提出任何要求或反对。 在特性方面,Marathon已经快速构build了特性,但是在实践中可能会感觉出色(Docker支持就是一个很好的例子)。 这并不总是由于马拉松本身,而是层层叠叠。 马拉松不提供抢先。
所有权
对一些人来说,项目的所有权和治理是重要的。 它认为在实践中它并没有界定项目的开放性,但是对于一些人/公司来说,法律细则可能成为破坏交易的手段。
- 马拉松由一家公司(Mesosphere)拥有,
对一些人来说,这是有益的,对别人来说不是。 这意味着您可以支付支持和function。 这也意味着有一些东西要出售,项目的方向最终由Mesosphere的利益决定。
- Aurora由Apache Software Foundation拥有
这意味着它受到社区推动的ASF治理模式的影响。 Aurora没有付费客户,目前还没有一家软件商店可以支付开发费用。
tl; dr如果你只是在Mesos上运行服务,我会build议马拉松作为你的第一停靠港。 你会更容易跑到生态系统周围。 如果您正在为一家公司制定“私有云策略”,我build议您认真考虑Aurora,因为它已经被certificate是专门为此devise的。
所以我一直在评估这两个,这是我的总结。
极光
[+] 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
尽pipeAurora具有更好的function,但由于Aurora的复杂性/开销和缺乏UI(用于控制)和API,我更喜欢Marathon
我有更多的马拉松经验。
思想:
- Marathon是一种相对经过testing的产品,用于AirBnB的生产。 Aurora是一个早期的Apache项目(所以YMMV)。
- 两者都是开源的和活跃的。 随意提供拉请求或文件问题!
技术:
- 马拉松不安排批量任务或cron工作
- 马拉松有一个友好的用户界面和更好的健康指标(在0.8.x)
关于你的第二个问题,你可以运行任何命令或者docker容器,Mesos会为你做资源隔离。 如果你有50%的CentOS节点和50%的Ubuntu节点,并且运行一个执行apt-get
的任务,那么任务将有50%的失败几率。 Mesos和马拉松没有意识到实际的机器。
免责声明:我没有Aurora的实际操作经验,只有Marathon。
广告Q1:简而言之,Apache Aurora能够做Marathon + Chronos可以提供的function,即安排长时间运行的服务和定期(批量)作业; 另请参阅Aurora用户指南 。
广告Q2:是的,任何事情。 目前基于cgroup和Docker,但嘿,你可以推出自己的 。