IaaSの一例としてのLibra
アーキテクチャ
以下では、Libraのアーキテクチャを解説します。
全体のアーキテクチャ
Libraのアーキテクチャは、図2の通りです。上部から、ユーザーに対してサービスを提供するWebのフロントエンドGUI、サーバー群のリソースを割り振りする「Antlia(アントリア)」、仮想化技術を抽象化する「ALSA(アルサ)」と呼ぶ中間層です。
AntliaとALSAは、主にWebフロントエンドとAppLogicの間を仲介する役割を果たします。図の左上にある「Libra」は、エクシードが同名で提供しているホスティング・サービスのWebフロントエンドを指しています。
図2: Libraのアーキテクチャ |
Libraを利用するユーザーは、仮想サーバーのプロビジョニングやリソースの変更/削除などの操作を、Webフロントエンドから実行します(操作の詳細は、後述する「サーバーズ操作」の欄で説明します)。
操作のリクエストは、WebフロントエンドからSOAP(Simple Object Access Protocol)通信によってAntliaに伝えられます。Antliaは、受け付けたリクエストをSOAP通信によってALSAに伝えます。ALSAは、そのリクエストを"3tshellコマンド"と呼ぶAppLogic独自のシェル・コマンドに変更し、AppLogicコントローラに対して実行処理を行います。
ALSAは、AppLogic専用のドライバとして利用します。中間層をALSAとAntliaの2つに分けて設計しているのは、ALSAの部分を、AppLogic以外の仮想化技術向けのドライバに変更できるようにするためです。Libraのサービス内で、さまざまな種類の仮想化技術が利用できる設計になっています。
Antliaの機能
Antliaとは、日本語で「ポンプ座」と呼ぶ、星座の名に由来して名づけました。Antliaは、ALSAが管理する複数のグリッドを集約します。また、外部に対しては、サーバーズ(サーバー群)に対する操作を行うAPIを提供します。サーバー・リソース側での処理に時間がかかる機能は、非同期で行われます。
Antliaの主な機能
- マルチサービサー機能
- 複数のサービス提供者がAntliaを共有して利用できます。
- マルチグリッド機能
- 複数のALSA(サーバー・リソース)を利用できます。
- 利用ユニット数の記録機能
- Libraでは、リソースの利用単位をユニットと呼びます。Webシステムごとに、1日の利用ユニット数(開始値、終了値、最大値)を記録する機能を持ちます。このデータを元に、サービス提供者(Antliaの利用者)にリソースの使用料を請求できます。
- テンプレート情報の保持機能
- システム設計時に用いるAppLogicテンプレートの設定値(プロパティ)を保持します。
AntliaのAPI一覧
- グリッド一覧取得(同期): 利用可能なリソースの一覧を取得
- テンプレート一覧取得(同期): 利用可能なテンプレートの一覧を取得
- Webシステムの作成(非同期): 利用テンプレートとリソースを指定し、Webシステムを作成
- Webシステムの起動(非同期): 指定したWebシステムを起動
- Webシステムの再起動(非同期): 指定したWebシステムを再起動
- Webシステムの停止(非同期): 指定したWebシステムを停止
- Webシステムの削除(非同期): 指定したWebシステムを削除
- リソースの変更(非同期): 指定したWebシステムのリソースを変更
- Webシステムの情報取得(同期): 指定したWebシステムの情報を取得
- ジョブ・ステータスの取得(同期): 指定したジョブのステータスを取得
- サービス提供者情報の取得(同期): 指定したサービス提供者の情報を取得
ALSAの機能
ALSAとは、AppLogic SOAP APIの略であり、AppLogicに対する各種操作(プロビジョニング、リソース変更など)を行うAPIを提供します。Antliaから受け付けたリクエストをAppLogic の3tshellコマンドに変換して実行指示を行うほか、サーバー・リソースから取得した情報をAntliaに伝えます。
ALSAの主な機能
- ネットワーク・リソースの割り当て機能
- Webシステムに対して割り当てるIPアドレス情報を管理します。
- ハードウエア・リソースの管理機能
- AppLogicが使っているハードウエア・リソースの状況を計算し、Webシステムの作成やリソース変更の可否を確認します。
ALSAのAPI一覧
- リソース情報の取得(同期)
- Webシステム一覧の取得(同期)
- Webシステムの作成(非同期)
- Webシステムの起動(非同期)
- Webシステムの再起動(非同期)
- Webシステムの停止(非同期)
- Webシステムの削除(非同期)
- リソースの変更(非同期)
- Webシステム情報の取得(同期)
- リソースの確認(同期): Webシステム作成用とリソース変更用