クラウドのOSを狙うMesos

https://www.youtube.com/watch?v=r7qN8QwGv2w

1 comment | 0 points | by WazanovaNews 約8時間前 edited


Jshiike 約10時間前 edited | ▲upvoteする | link

MesosConのキーノートスピーチを紹介します。

まずは、Apache MesosのProgram Chairを務めるTwitterのBenjamin Hindmanが、Mesosの目指す立ち位置について、

  • 現代において「他のコンピュータ」と形容すると、データセンターを指すケースが多い。
  • アプリを動かすコンピュータという見地からは、PC / タブレット / スマホ / サーバにOSがあるように、データセンターにもOSが必要。
  • Mesosは、データセンターのOSである。つまり、分散システムにおけるkernelの役割を担う。

そのエコシステムの広がりは、

  • Mesosとつながっているプロジェクト: Hadoop, Storm, Jenkins, Cassandra, elasticsearch
  • ユーザ企業: Twitter, Airbnb, OpenTable, eBay, Netflixなど

これまでの主要な取組みとしては、

1) コンテナ化

  • LXC (2010), cgroups (2012), network namespace (2013), Dockerサポート (2014)
  • 複数のコンテナの実行

2) コンテナのメトリックス

  • CPU / メモリ / ネットワークのモニタリング

3) authentification (認証) と authorization (認可)

4) 障害耐性と高可用性

  • mesos-slave recovery : mesos-slaveプロセス自体をサービスから外しても、管轄している複数のコンテナはそのまま実行させたままにできる。つまり、mesos-slaveが実行しているタスクをkillすることなく、mesos-slaveをアップグレードして、かつ復旧後、そのままスムーズに同期させることができる。Twitterではアップグレードに数週間かかっていたものが、数日で完了するようになった。

仕掛かり中の案件としては、

1) ステートフルなアプリ用のプリミティブ

  • HDFSやCassandraなどのフレームワークをMesos上で直接実行際の、障害対応などの機能向上。
  • Mesosユーザは、もろもろのステートレスな処理やアナリティクスを実行しつつ、ストレージにデータを保管している。つまり二つのクラスタを操作しなくてはいけない。これを一つのクラスタ、単一のインターフェースで扱えるようになる。

2) メンテナンス用のプリミティブ

  • 計画メンテナンスへの対応を前提とし、タスクのリスケジューリング機能など追加。

3) リソース割当とスケジューリング向上のためのプリミティブ

4) リソースの分離性アップ

  • ネットワーク帯域、ディスクブロックI/O

5) スケジューラ / executor APIの修正

  • 2009年の遺物: RESTでないHTTP。JSON RPC or REST で検討中。
  • バージョン 1.0 になるまでの最後のメジャーな修正。

6) Mesos CLI

続いて、John WilkesがGoolgeのクラスタ管理について講演しています。

2000台のマシンがあれば、毎日10台以上になんらかの障害がでる。それが通常の状態であり、問題ではない。ポイントは、マスターが落ちたときにOSアップグレード中だったらどうする?というようなコンビネーションが起きたときにどう対応するかというところ。

利用効率という意味では、需要を予測して念のため事前に割り当てるので、全体ではメモリの割当量は実際の利用を大きく上回っているが、遅延が問題となるタスク(ピンク色の箇所)に絞ると、かなり需要に近い割当ができている。ビデオ: 8分10秒時点

コンテナはかなり以前から利用している。Googleでは全てがコンテナで実行されていて、リソース/executionの分離性の向上、CPU効率のアップに貢献している。毎週、20億個のコンテナが起動されている。

Dockerクラスタ管理ツールKubernetesをオープンソースで提供。

  • 最初はGoogleクラウド用としてリリースしたが、Microsoftなど各社が参加Azureでのサポートも開始
  • Goで書かれている。
  • mesosphereがMesosでも動くようにしてくれた。
  • デモビデオ: 25分10秒時点
  • ラベルの採用で任意の指示ができる。例えば、「role: frontend」「stage: production」で、フロントの機能を一部のユーザにのみ露出できる。238個のパラメータが設定できる。リソースを過剰に割り当てないような制御も、ラベルを利用している。
  • レプリカ管理、ロードバランスとの連携など。

#mesos #twitter #google #docker #kubernetes


ワザノバTop200アクセスランキング


Back