クラウドに依存しない,オープンソース Hadoop-as-a-Service APIとして新たに登場したCloudbreakが,アプリケーション開発者と企業を対象としたベータ版の提供を開始した。Cloudbreakを開発したSequenceIQでは,無償で公開される同社のプロダクトについて,プロビジョニングを抽象化し,オンデマンドHadoopクラスタの管理と監視を容易にする,と主張している。
Cloudbreak APIでは,クラスタ全体を対象に,ネットワークや指定されたHadoopサービスの構成を行うによって,任意の数のHadoopノードをプロビジョニングすることができる。ワークロードの変化に対して,ノードの追加や削除をオンザフライで行うことが可能だ。Hadoopクラスタのスタック定義やコンポーネントレイアウトの管理は,さまざまなHadoopディストリビューションがサポートするblueprintのコンセプトを通じて行う。
SequenceIQによれば,Cloudbreakは次のような基準を満たすことを目標としている。
- Apache 2ライセンス下で100%オープンソース。
- 任意のサイズのHadoopクラスタのクイックローンチ機能を提供。
- クラウドプロバイダ非依存。
- 宣言的方法により,さまざまなHadoopサービスやコンフィギュレーションをサポート。
- 回復性と柔軟性に加えて,実行中クラスタのサイズ変更が可能。
- セキュリティ強化。
Cloubreakは,Dockerコンテナの提供する基盤をベースとして構築されている。ひとつのコントロールホスト上で複数の独立したLinuxシステム(コンテナ)を実行する,オペレーティングシステムレベルの仮想化メソッドであるLXC(Linux Container)の上に,ライトウェイトな仮想化を提供する高レベルのAPIを追加する,という構成だ。従来の仮想マシンとは違って,Dockerコンテナは個別のオペレーティングシステムを持たず,ベースとなるLXCの提供するカーネル機能に依存している。
Cloudbreakのクラウド非依存は,Dockerコンテナによって実現されている。すべてのHadoopサービスがDockerコンテナ内にインストールされて動作し,そのコンテナがさまざまなクラウドベンダ向けに提供される仕組みだ。SequenceIQによると,Dockerを採用したことによって他にも,再現性と検証性を備えた環境の実現,バージョニング,サンドボックス分離などのメリットがある。
Dockerコンテナ以外の部分でもCloudbreakは,オープンソースの技術を基盤として利用している。
- Apache Ambari: RESTfulなAPIに裏打ちされた,直感的で使いやすいHadoop管理用Web UIの提供によって,Hadoopの管理をシンプルにすることを目的としたプロジェクト。
- Serf: SequenceIQの提供するもうひとつのコンポーネントで,クラスタメンバーシップ,障害検出,分散化と耐障害性を備えた高可用性クラスタオーケストレーションなどを実現する。
SequenceIQでは,ユーザが管理しているクラウドホスティングプロバイダ上で,同社の提供するサーバからCloudbreakを使用してオンデマンドHadoopクラスタを起動するという利用方法を提供している。別の方法として,プライベートクラウドでホストしたCloudbreakにREST API経由でアクセスすることも可能だ。
Sqeuence IQによれば,Cloudbreakのコードベースは安定していて,デプロイ可能なレベルにあると考えられるが,現在はまだ開発中であるということだ。