web-dev-qa-db-ja.com

マラソンvsオーロラとその目的

MarathonとAuroraはどちらもMesos上に構築されており、おそらく長期実行サービスを実行するように設計されています。私の質問は:

  1. 彼らの違いは何ですか?私は彼らの重要な違いに関する良い説明を見つけるのに苦労しました
  2. これらのフレームワークは、Linuxで実行されるものを実行しますか? Marathonの場合、「シェルで実行可能」なものなら何でも実行できると述べていますが、これはやや曖昧です:)

ありがとう!

49
user1340582

免責事項:私はApache AuroraのVPであり、TwitterでAuroraチームの技術リーダーを5年以上務めています。偏りがありそうな意見は私自身のものであり、必ずしもTwitterやASFの意見を表すものではありません。

これらのフレームワークは、Linuxで実行されるものを実行しますか? Marathonの場合、「シェルで実行可能」なものなら何でも実行できると述べていますが、これはちょっと曖昧です:)

基本的にははい。最終的に、これらのシステムはクラスターのどこかでシェルコードを実行するための洗練された機械です:-)

彼らの違いは何ですか?私は彼らの重要な違いに関する良い説明を見つけるのに苦労しました

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サポートをベータとラベル付けしています)。また、プリエンプションなどの機能を使用して、ビジネスに不可欠なサービスをプロトタイプや実験と混合するのに適したクラスターにします。

Marathonの拡張性について、またはそれに反対する主張はできません。機能の面では、Marathonは機能を迅速に構築していますが、実際にはEdgeの出血を感じることがあります(Dockerサポートが良い例です)。これは、常にマラソン自体に起因するものではなく、スタックの下位にもあります。マラソンはプリエンプションを提供しません。

所有権

一部の人にとって、プロジェクトの所有権とガバナンスは重要です。実際には、プロジェクトのオープン性を定義するものではないと感じていますが、一部の人々/会社にとっては、法的細字が契約を破る可能性があります。

  • マラソンは会社が所有しています(中間圏)

ある人にとってはこれは有益ですが、他の人にとってはそうではありません。つまり、サポートと機能に料金を支払うことができます。また、販売するものがあることを意味し、プロジェクトの方向性は最終的にMesosphereの利益によって決定されます。

  • AuroraはApache Software Foundationが所有しています

これは、コミュニティによって推進されるASFのガバナンスモデルの対象であることを意味します。 Auroraには有料の顧客がいません。また、現在、開発に支払うことができるソフトウェアショップはありません。

tl; drMesosでのサービスの実行に足を踏み入れたばかりなら、最初の寄港地としてマラソンをお勧めします。実行して、エコシステムを簡単に確認できるようになります。会社の「プライベートクラウド戦略」を形成している場合は、Auroraを真剣に検討することをお勧めします。

86
Bill

だから私は両方を評価してきましたが、これが私の要約です。

オーロラ

[+] 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はより優れた機能を備えていますが、Aurorasの複雑さ/オーバーヘッド、およびUI(制御用)とAPIの欠如により、Marathonを好んでいます。

24
Eren Güven

私はマラソンの経験がもっとあります。

イデオロギー:

  • Marathonは、AirBnBでの生産に使用される比較的テスト済みの製品です。 Auroraは初期のApacheプロジェクトです(つまりYMMV)。
  • どちらもオープンソースでアクティブです。プルリクエストやファイルの問題をお気軽に投稿してください!

テクニカル:

  • Marathonはバッチタスクまたはcronジョブをスケジュールしません
  • Marathonには使いやすいUIとより良いヘルスインジケータがあります(0.8.xで)

2番目の質問に関しては、任意のコマンドまたはドッカーコンテナーを実行できます。Mesosはリソースの分離を行います。 50%のCentOSノードと50%のUbuntuノードがあり、apt-getを実行するタスクを実行すると、タスクの失敗の可能性は50%になります。 MesosとMarathonは、実際のマシンを認識していません。

3
Abhay Agarwal

免責事項:私は、マラソンでのみ、オーロラの実践的な経験はありません。

広告Q1:簡単に言えば、Apache AuroraはMarathon + Chronosが提供できること、つまり、長時間実行されるサービスと定期的な(バッチ)ジョブの両方をスケジュールできます。 Auroraユーザーガイド も参照してください。

広告Q2:はい、何でも。現在、cgroupとDockerに基づいていますが、ちょっと、 独自のロール を使用できます。

2