クラウドサービス: PTaaS Trebuchet (Platform for Tool as a Service)

クラウドサービスを通じて開発ツールを提供するTaaS構築のためのプラットフォーム

ツールベンダにとってのPTaaSの必要性

ツールベンダがお持ちのツールをTaaSとして提供しようとお考えの場合、以下のような課題があります。

ツールの設計変更・改造コスト:
ツールのインターフェースとアーキテクチャをSaaS的に作り替えなければなりません。しかしそのような変更は必ずしも容易ではありません。

TaaS 固有の困難さ:
TaaSには通常のSaaSとは異なる以下のような問題があります:

  • データの保管よりは計算処理が中心で計算資源のスケジュールが難しくリクエストに対する応答時間が長い。
  • ユーザのコードを受け入れ実行する環境が必要となるため資源管理・セキュリティ面の堅牢さが必要。

このようなツール・ベンダ側の負担を軽減するため、既存の開発ツールをそのままTaaS化できる「Platform for TaaS(PTaaS)」がお役に立ちます。

PTaaS 2

 

分散ビルド型PTaaS

QTSが提供する「分散ビルド型PTaaS」では以下の3つの要素が協調して動作します。

分散ビルド・ミドルウェア:分散ビルド・ミドルウェアは記述されたビルド手順に従って、複数のホスト上で必要なツールを並行起動して実行結果を生成します。クラウド環境上でこれを遠隔で行うため、ユーザ認証、各ツールの作動経過や終了の効率的な通知、ユーザ側環境とクラウド環境でのファイル共有といった機能も提供しています。

仮想マシン管理部:仮想マシン管理部はツール提供者から提供されたツールをインストール済の仮想マシンの設定とディスクイメージを仮想マシン・イメージ・プールで管理し、分散ビルド・ミドルウェアに従って仮想マシンのインスタンスをInfrastructure as a Service(IaaS) が提供する仮想マシン環境として起動し、スケジューリングを行って計算機資源を割り当てます。

GUIピア:分散ビルド・ミドルウェアや起動したツールを制御するグラフィカル・ユーザ・インターフェース(GUI)を提供します。標準的なGUIピアとしてはIDEのプラグインを予定しています。また簡易GUIピアとしてWebブラウザ上で稼働するものも予定しています。

分散ビルド型PTaaSの利点

上記の分散ビルド型PTaaSに対して、従来、単純IaaS型PTaaSと呼ぶべきPTaaSがありました。単純IaaS型PTaaSはIaaSが提供する単一の仮想マシン環境へ、提供したい開発ツールとIDEをインストールし、それらを仮想デスクトップ経由でユーザへ提供する素朴なスタイルのTaaSプラットフォームです。

分散ビルド型PTaaSは単純IaaS型PTaaSに比べて以下の利点が期待できます。

堅牢性:分散ビルド型PTaaSではツール毎に最適な資源管理設定とセキュリティ設定が可能です。

短い応答時間:仮想マシン環境ではグラフィック描画機能は劣る傾向があります。また、クラウド環境ではネットワークの遅延が大きく、変動も大きくなる傾向があります。分散ビルド型PTaaSではタスクの粒度を大きくでき、その影響を受けにくくなっています。

相互運用性と柔軟な資源調達:ツール毎に仮想マシンの数を調整できるので、ビルド時に使うツールを組み合わせることや計算機資源を増減することが容易です。また異なるクラウド上にあるツール間の協調も容易です。

PTaaS 3

分散ビルド型PTaaS Trebuchetの構成

QTSが提供します分散ビルド型PTaaSプロトタイプ”Trebuchet”の構成について紹介します。前述のように分散ビルド型PTaaSは、A)分散ビルド・ミドルウェア、B)仮想マシン管理部、C)GUIピアからなります。

A) 分散ビルド・ミドルウェア

TrebuchetではXMPP上で動作する分散ビルド・ミドルウェアを開発して利用します。分散ビルド・ミドルウェは図に示すようにXMPPサーバを中心に、ユーザ側のメッセンジャー・クライアントであるIDEプラグイン(GUIピア)、仮想マシン・インスタンス上で各ツールを起動し制御するボット(自動応答するメッセンジャー・クライアント)の間の通信により分散ビルド・ミドルウェアを実現します。

PTaaS 4

分散ビルドのビルド手順を実行するためのエンジンにはAntを利用します。そしてこれを動かす仮想マシンを用意しプロジェクト・ボットと呼びます。プロジェクト・ボットはGUIピアに対するクラウド側のプロクシとして機能します。

B) 仮想マシン管理部

仮想マシン管理部はXMPPサーバに対するサーバ・コンポーネントで、ツール提供者から受け入れた仮想マシン・イメージを保管する仮想マシン・イメージ・プールの管理行うとともに、分散ビルド・ミドルウェアの制御下で必要なツールを動かす仮想マシンを起動・管理します。仮想マシンの操作についてはlibvirtを利用します。

C) GUI ピア

GUIピアはユーザ側の計算機上で動くEclipseのプラグインで、以下の機能を提供します。

ANT

ANTはJavaで記述されたビルド・ツールとしてJavaのビルドを中心に普及しています。Javaで書かれたプラグインを追加することで機能を追加できます。

libvirt

libvirtは仮想マシンを制御するライブラリです。Javaを始め多くの言語から利用でき、多くの仮想マシン環境をサポートするデファクト・スタンダードとなっています。

Eclipse

EclipseはJavaで記述されたオープンソースのIDE(統合開発環境)として普及しています。Javaで書かれたプラグインを追加することで機能を追加できます。

ファイル同期:Eclipseのプロジェクト情報を読み取り、バック・グラウンドでクラウド側とファイルを同期します。

ビルド制御:プロジェクト・ボットへビルドの開始と中断を指示するためのGUIを提供する。

ツールI/Oコンソール:各ツールに対応するバックエンドで動くツールの標準入出力コンソールを提供します

ダイアログ・サービス:各ツールのバックエンド・ボットと通信し、各ツールのダイアログやウィザード風GUIを実現します。