基本情報
概要
Apache Mesos(アパッチメソス)とは、クラスタリソースマネージャです。分散アプリケーション/分散フレームワークを複数のノード上で稼働させ、効率的なリソース分離/共有機能を提供します。
基本説明
複数の物理マシン/仮想マシンを1つのクラスタとして管理し、空いているマシンを探して、そこにリソースを割り当ててタスクを実行させます。分散システムにおけるkernelのような役割を担います。
リソースマネージャとしての機能は充実しており、効率的な動的リソース分配が可能です。汎用性も高く、クラスタの利用を効率化できます。
関連ツール「ZooKeeper」
「Zookeeper」は、クラスタにおけるジョブ実行調整を行います。
Mesosは、「複数あるマスタノードの中で、どのマスタノードをアクティブにしてクラスタに組み込むか」などの仕組みとして「Zookeeper」を利用します。
関連ツール「Marathon」
Mesosは、基本的に、「タスクを走らせる時点でリソースを割り当てて、完了したら解放する」という動きをします。
Webアプリのように常時起動させるようなアプリケーションを動かすためには別の仕組みが必要です。その機能を担当するのが「Marathon」です。
「Marathon」は、デーモンを実行させるサービスのような存在で、コンテナ起動/終了/設定管理機能を提供します。
関連ツール「Chronos」
「Chronos」は、cronのような存在で、Mesos上で動く各サービスの設定/開始/停止/エラー処理などの管理を行います。
主な特徴
クラスタ管理
Mesosは、複数ホストを1つの巨大マシンのように扱います。複数ホストのCPU/メモリ/ディスクを抽象化して、1つのリソースプールとして管理します。各ホストのリソース消費量に気を使う必要がなくなります。
以下のような環境に適しています。
・一度に大量リソースを必要とする処理(バッチ処理など)
・定期ジョブ実行
・スペックが異なるホストマシンが混在している環境
対障害性
Zookeeperにより、マスタノードを複数台のアクティブ/スタンバイ型のクラスタ構成にできます。
スケーラビリティ
10000ノード程度までスケールできます。
拡張性
「Scheduler」や「Executor」を自作して拡張できます。
タスク間アイソレーション
Linuxコンテナとタスク間の分離を行います。
リソーススケジューリング
CPU/メモリ/ディスク/ポートなどを対象としたマルチリソーススケジューリングが可能です。
開発言語(API)
開発言語して、C++/Java/Scala/Pythonなどを使用できます。アプリケーション開発用の「REST API」を使用します。
Web UI
WebUIでクラスタの状態を確認できます。
Docker on Mesos
Dockerコンテナをサポートしています。ホストOS上でマルチOS環境を実現でき、ホストのリソース消費量に応じて、効率的にDockerコンテナを配置します。
同様製品(概要情報)
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Kubernetes」など。
導入事例
Twitter、Airbnb、Apple(Siriのバックエンド)などでの採用実績があります。
ライセンス情報
Apache Mesosのライセンスは、「Apache License 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。