2015年9月19日土曜日

コンテナーの世界(8) ミニマルOS -RancherOS

=こんどこそ、Rancher Labs!= 
 シリコンバレーの北西にあるクパティーノ市のRancher Labsから、Docker専用のLinuxディストリビューションRancherOSが出た。話の本論に入る前にこの会社の生い立ちについて触れておこう。Racher Labsの入るオフィスビルはStevens CreekとN. Wolfeの角、何と筆者が以前いたオフィスと同じビルだ。奇遇な話である。同社のファウンダーは4名。核となるのはSheng Liang氏だ。氏は元Sun Microsystemsのリードデベロッパーで2008年に、当時名を馳せたCloud.comを立ち上げた。その時の事務所もクパティーノだった。当時、同社が開発したのはApache CloudStackのもとになったオープンソース製品である。しかし、ビジネスの方は、台頭し始めたOpenStackに押され気味となり、統合の道も模索したが結局、2011年にCitrixに買収された。そのCitrixもクラウド事業が上手く立ち上がらず、Apache Foundationにコードを寄贈、現在に至っている(詳細は当ブログのここ )。そして、Liang氏は、買収されたCitrix時代の3人の仲間と2014年にRacher Labsを立ち上げた。当初受け取ったシーズファンドは$10M(約12億円)、この6月にはさらにAシリーズとして$10Mを受け取った。

=ミニマルOSを目指すRancherOSの試み!=
さて同社が今年7月に発表したRancherOS βは、Dockerを効率よく稼働させるミニマルOSである。この小型OSの市場には既にCoreOSSnappy Ubuntu Core、さらにRed HatのProject AtomicからはRHELだけでなく、FedoraやCentOSなども出て、ひしめき合っている状態だ。これらに打ち勝つために、RancherOSは、ブートに特別な仕組みを持ち込んだ。通常、Linux機に電源を入れると、ブートローダーがカーネルを呼び込み、次にプロセスID(PID) 1で initプログラムが起動する。しかしRancherOSではここですぐにSystem Dockerが読み込まれ、その上で各種サービスを実行する。これらは初期ルートファイルのinitrd(initial ram disk)に相当し、そのサイズはたったの20MBだ。この仕組みによってRancherOSは5秒以内で起動ずる。CoreOSが100MB以上なので、RancherOSが如何に小さいかが解る。ユーザアプリはというと、System Dockerが持つUser Dockerサービスが作成するコンテナー上で稼働する。

=ストレージ向けConvoy、ELKスタックも!=
Rancher Labsにとって今年の夏は忙しかった。6月中旬にβを発表すると、1か月後、すぐにDockerCon 2015だ。デモ、プレゼンの毎日だ。そして8月に入るとMesos対応、さらに8月12日、Docker 1.8が出た。この1.8では前回のリリースでは試験的なサポート(Experimental Support)となっていたストレージのコンシステンシーを保つVolume Pluginが正式リリースとなった。Rancher Labsだけでなく、このシリーズで既に触れたコンテナー向けSDSのPortworxClusterHQ(詳細はここなどがこれを組み込むべく猛烈に働いている。Rancher LabsがRancher Convoyを発表したのは8月19日。これを使えば、コンシステントなボリュームを作成し、例えばAmazonS3のバックアップをそれに採ったり、リストアが可能となる。季節が秋となり、9月17日には、Elasticの開発した検索エンジンElasticsearchとログ収集のLogstash、フィルタリングのKibanaを統合したログ管理システムをELK Stackとしてリリース。同社にとって、今年の秋は実りの多いことが予感される。

2015年9月15日火曜日

コンテナーの世界(7)-マネージメントツール 
                  -Panamax & StackEngine-

「コンテナーの世界」-第7回は、Docker向けマネージメントツールなどを開発している2つのプロジェクトを紹介しよう。

=DockerをLegoのように扱うたツール&ライブラリー:Panamax=
Panamaxは米3大キャリアの一角を占めるCenturyLinkが昨年夏に発表したプロジェクトだ。目的はテンプレートを用いて、より人間的なコンテナーの管理ツールを整備すること。キャッチフレーズは「Docker Management for Human」。実際のところ、複数のアプリを連携させるマルチコンテナー開発にはかなりの手がかかる。Panamaxではこの煩雑さを緩和するための自動化や直截的なドッラグ&ドロップによるプロビジョニングを目指している。このために用意されたDrupal, GitLab, Grafana on InfluxDB, MediaWiki, OpenStack, Rails, WordPressなどの公式アプリ群はPanamax Public Templatesとして登録され、ドラッグ&ドロップしながらデプロイする。これらテンプレートの拡充に向け、昨年は同社による賞金10万㌦(約1,200万円)のコンテストも行われた。下記のデモでは、「WordPress」をPanamax Templates & Docker Ripositoryから探すと、単独のWordPressだけでなく、幾つもの使用例にあったテンプレートが表示される。「WordPress with MySQL」を選べば、WordPressのバックエンドにMySQLがリンクされたコンテナーセットがワンクリックでプロビジョニングされる仕組みである。


過去を振り返ると、米キャリアは西海岸を核とするAT&Tと東のVerizonの2強、これからかなり離れて中西部のQwest Communicationsが3位だった。当時5位で中南部ルイジアナのCenturyLinkがQwestを買収したのは2010年、そして経営刷新を目指してクラウド事業に参入した。翌2011年にはクラウドサービスを展開していた大手計算センター SAVVISを買収してクラウド事業に参入。さらに2013年にはIaaSのTier 3、PaaSのAppFogを買収して体制を強化した。CenturyLinkの責任者は「PanamaxはDockerをより簡便に、Legoのように簡単に組み合わせて使用する。これによって、デベロッパーはラップトップから、Dockerだけでなくベアメタル上でも簡単に展開が出来る」と説明する。
=コンテナーAppマネージメント:StackEngine= 
StackEngineはテキサス州オースチンが本社。昨年、$1M(約1.2億円)のシーズファンドを受け、ステルスを抜け出てた。同社の狙いは、コンテナーの世界のアプリケーション管理ツールになること。つまり、Linuxの設定やサーバー管理ではChefPuppetが普及しているが、StackEngineはそのDocker版を目指している。StackEngineの適用の<ステップ1>は、コンフィグ管理だ。扱うコンテナーはオンプレミスでも、Public Cloudでも、Hybridでも構わない。これらリソースをプール管理し、開発やQA、本番などステージ毎に管理する。DevOpsのためには、関わる複数ユーザや役割がアサインできる。<ステップ2>はアプリのデプロイメントだ。これにはDocker RegistryやGitHub、Jenkinsなどを使ったデプロイ、テンプレートからのローンチも可能だ。この過程でDockerアプリは用意されたエディターでドラッグ&ドロップで組み合わせることが出来る。<ステップ3>は実行時のコンテナーオーケストレーション。オーケストレーションの実行はリソース状況からホストが決められ、さらにユーザが好めば、MesosKubernetesに代わる2次元オーケストレーションモデルも用意されている。

StackEngine Overview
=2社の違いとエコシステム!=
2つの似たようなサービスと製品を紹介した。
前者のPanamaxは、基本的にはCenturyLinkクラウドのサービス強化として始まった。勿論、他からのアクセスも可能なプロジェクトなので、多くの興味が集まっている。目的はテンプレートによるデプロイの簡素化だ。一方、StackEngineのカバーする範囲はかなり広い。各ステージ毎のコンテナー管理からデプロイや実行までだ。2つはダブっている部分もある。テンプレートによる簡易開発か、総合的なコンテナー管理か、が違いである。このような動きは、Dockerを中心としたコンテナー技術がまだまだ未熟であることの証左でもある。これまでシリーズで述べてきたストレージ関連のPortworxClusterHQ、ネットワーク関連のSocketPlane(Docker買収)やWeaveFlannel、セキュリティー/モニタリング関連のTwistLockSysdigなどは、Docker(もしくは標準化が進むコンテナー技術)を核としたエコシステムとなるのか、はたまた、一部ベンダーはDockerを脇に押しやり、自身がプラットフォームとして中心となることを狙っているのかもしれない。