https://www.youtube.com/watch?v=r7qN8QwGv2w
1 comment | 0 points | by WazanovaNews 約8時間前 edited
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) リソース割当とスケジューリング向上のためのプリミティブ
- GoogleのOmega論文を参考に、楽観的なリソース割当方式に変更。
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