Marathon 和 Aurora 都是基于 Mesos 构建的,据说是为运行长时间运行的服务而设计的。我的问题是:
- 他们有什么区别?我一直在努力寻找关于它们的主要差异的任何好的解释
- 这些框架是否运行在 Linux 上运行的任何东西?对于 Marathon,他们声明它可以运行任何“在 shell 中可执行”的东西,但这有点模糊 :)
谢谢!
Marathon 和 Aurora 都是基于 Mesos 构建的,据说是为运行长时间运行的服务而设计的。我的问题是:
谢谢!
免责声明:我是 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 不提供抢占。
所有权
对一些人来说,项目的所有权和治理很重要。感觉在实践中它并没有定义项目的开放性,但对于某些人/公司来说,法律细则可能会破坏交易。
对一些人来说,这是有益的,对另一些人则不是。这意味着您可以为支持和功能付费。也意味着有东西要卖,项目方向最终是由Mesosphere的利益决定的。
这意味着它受制于由社区驱动的 ASF 治理模型。Aurora 没有付费客户,目前也没有可以付费开发的软件商店。
tl;dr如果您刚刚开始在 Mesos 上运行服务,我建议您将 Marathon 作为您的第一个停靠港。您将更容易在生态系统中运行和探索。如果您正在为一家公司制定“私有云战略”,我建议您认真考虑 Aurora,因为它已被证明是专门为此设计的。
所以我一直在评估两者,这是我的总结。
极光
[+] 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
我对马拉松有更多的经验。
思想:
技术的:
关于你的第二个问题,你可以运行任何命令或 docker 容器,Mesos 会为你做资源隔离。如果你有 50% 的 CentOS 节点和 50% 的 Ubuntu 节点,并且你运行一个执行apt-get
的任务,那么该任务将有 50% 的失败几率。Mesos 和 Marathon 对实际机器一无所知。
免责声明:我没有亲身体验 Aurora,只有 Marathon。
ad Q1:简而言之,Apache Aurora 能够做 Marathon + Chronos 可以提供的事情,即安排长时间运行的服务和重复(批处理)作业;另请参阅Aurora 用户指南。
广告 Q2:是的,任何东西。目前基于 cgroups 和 Docker,但是嘿,你可以推出自己的.