特許法第30条第2項適用 (1)開催日:平成29年7月20日、集会名:「SmartCloud DevaaS 2.0」記者発表会、 開催場所:NTT品川TWINS アネックスビル NGNラボ (2)公開日:平成29年8月28日、公開場所:DevaaS 2.0トライアル環境(エヌ・ティ・ティ・コムウェア株式会社内) (3)開催日:平成29年9月1日、集会名:「Enterprise Development Conference」、 開催場所:ホテル雅叙園東京2F (4)公開日:平成29年10月6日、公開場所:DevaaS 2.0トライアル環境(エヌ・ティ・ティ・コムウェア株式会社内) (5)展示日:平成29年11月28日及び11月29日、展示会名:「NTT COMWARE’S DAY 2017」、開催場所:品川シーズンテラス3F タワー棟 (6)公開日:平成29年12月6日、公開場所:DevaaS 2.0トライアル環境(エヌ・ティ・ティ・コムウェア株式会社内)
以下、本発明の一実施形態による情報処理システム及び情報処理方法について、図面を参照して説明する。
[第1の実施形態]
図1は、第1の実施形態による情報処理システム1の一例を示すブロック図である。
図1に示すように、情報処理システム1は、利用者端末装置10と、ポータルサーバ20と、共通サーバ30と、複数のテナント60のそれぞれが有する管理サーバ40と、試験サーバ50とを備えている。本実施形態において、情報処理システム1は、複数のテナント60それぞれに対応したソフトウェアの開発環境を構築可能なシステムである。
なお、テナント60は、コンピュータリソースの提供を受ける契約を示し、テナント60-1、テナント60-2、・・・は、それぞれ異なる契約を示している。また、本実施形態において、テナント60-1、テナント60-2、・・・は、情報処理システム1が備える任意のテナントを示す場合、又は特に区別しない場合には、テナント60として説明する。
また、本実施形態において、管理サーバ40-1、管理サーバ40-2、・・・は、情報処理システム1が備える任意の管理サーバを示す場合、又は特に区別しない場合には、管理サーバ40として説明する。同様に、試験サーバ51-1、試験サーバ52-1、・・・、及び試験サーバ51-2、試験サーバ52-2、・・・は、情報処理システム1が備える任意の試験サーバを示す場合、又は特に区別しない場合には、試験サーバ50として説明する。また、ネットワークNW2-1、ネットワークNW2-2、・・・は、情報処理システム1が備えるテナント60内のネットワークを示す場合、又は特に区別しない場合には、ネットワークNW2として説明する。
また、利用者端末装置10と、ポータルサーバ20と、共通サーバ30と、管理サーバ40とは、ネットワークNW1に接続されている。ここで、ネットワークNW1は、複数のテナント60に対応する複数の利用者(契約者)の利用者端末装置10が、接続可能なネットワークであり、例えば、WAN(Wide Area Network)、グローバルエリアネットワークなどである。
また、各テナント60において、管理サーバ40と、試験サーバ50とは、ネットワークNW2に接続されている。ここで、ネットワークNW2は、各テナント内のローカルなネットワークである。
利用者端末装置10は、例えば、PC(パーソナルコンピュータ)などのコンピュータ装置であり、各テナント60に対応する利用者が利用する端末装置である。利用者端末装置10は、ネットワークNW1を介して、ポータルサーバ20と接続し、テナント60へのソフトウェアの開発環境、及びテナント60の管理などの操作を行う。また、利用者端末装置10は、入力部11と、表示部12と、端末制御部13とを備えている。
入力部11は、例えば、キーボードやタッチパネル、マウスなどの入力装置であり、利用者からの要求であるソフトウェアの開発環境の要求情報などを入力情報として受け付ける。入力部11は、受け付けた入力情報を端末制御部13に出力する。
表示部12(出力部の一例)は、例えば、液晶ディスプレイ装置などであり、各種情報を表示する。表示部12は、例えば、ポータルサーバ20から提供される選択肢や、要求情報の選択肢及び入力を行う際の操作画面やメニュー画面などを表示する。
端末制御部13は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、利用者端末装置10を統括的に制御する。端末制御部13は、ソフトウェアの開発環境の構築や、テナントの管理を行う際に、入力部11が受け付けた入力情報を、ネットワークNW1を介して、ポータルサーバ20に送信する。また、端末制御部13は、ポータルサーバ20を介して、ポータルサーバ20から受信したメニュー画面及び操作画面などの表示データを受信して、当該メニュー画面及び当該操作画面などを表示部12に表示させる。
ポータルサーバ20は、情報処理システム1を利用するためのポータルサイトであり、各種メニュー画面及び操作画面などの表示データを、ネットワークNW1を介して、利用者端末装置10に送信して、各種メニュー画面及び操作画面を利用者端末装置10の表示部12に表示させる。また、ポータルサーバ20は、利用者端末装置10からネットワークNW1を介して受信した入力情報に基づいて、各種処理を実行する。
例えば、ポータルサーバ20は、利用者端末装置10を介して利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、インストール依頼を生成する。ポータルサーバ20は、開発環境用のソフトウェアを、利用者のテナント60に対応する試験サーバ50に、例えば、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してインストールさせるインストール依頼を生成する。ポータルサーバ20は、生成したインストール依頼を、利用者のテナント60に対応する管理サーバ40に送信する。なお、以下の説明において、開発環境用のソフトウェアを、開発用のツール又は単にツールと呼ぶことがある。
また、ポータルサーバ20は、例えば、試験サーバ50にインストールしているソフトウェアを制御する制御指示を、利用者端末装置10を介して利用者から受け付ける。ポータルサーバ20は、制御指示に基づく制御依頼を、利用者のテナント60に対応する管理サーバ40に送信する。
また、ポータルサーバ20は、ポータル記憶部21と、ポータル制御部22とを備えている。
ポータル記憶部21は、ポータルサーバ20が利用する各種情報を記憶する。ポータル記憶部21は、例えば、テナント情報記憶部211と、利用者情報記憶部212と、メニュー情報記憶部213と、仮想マシン情報記憶部214と、インストーラ情報記憶部215と、コンテナ情報記憶部216と、プレイブック情報記憶部217とを備えている。
テナント情報記憶部211は、情報処理システム1が登録(契約)しているテナントの情報を記憶する。テナント情報記憶部211は、例えば、図2に示すように、テナントを識別するテナントID(テナント識別情報)と、テナントに関連する各種情報とを対応付けて記憶する。
図2は、本実施形態におけるテナント情報記憶部211のデータ例を示す図である。
図2に示すように、テナント情報記憶部211は、「テナントID」と、「契約グループID」と、「プロジェクトID」と、「テナント名」とを対応付けて記憶する。ここで、「テナントID」は、テナント識別情報の一例であり、「契約グループID」は、例えば、テナントを契約した組織、所属などの識別情報であり、「プロジェクトID」は、例えば、当該テナントにより開発するソフトウェアのプロジェクトの識別情報である。
また、「契約グループID」、「プロジェクトID」、及び「テナント名」は、テナントに関連する各種情報の一例である。また、テナントに関連する各種情報には、これらの情報の他に、例えば、契約日(申込日)に関する日時情報や、テナントのボリューム容量(容量情報)、変更(更新)に関する日時情報などが含まれてもよい。
図2に示す例では、「テナントID」が“T0001”に対応するテナントは、「契約グループID」が“G0001”であり、「プロジェクトID」が“PJ001”であり、「テナント名」が“XXXX”であることを示している。
図1の説明に戻り、利用者情報記憶部212は、情報処理システム1を利用する利用者(ユーザ)の情報を記憶する。利用者情報記憶部212は、例えば、図3に示すように、利用者を識別するユーザID(利用者識別情報)と、利用者に関連する各種情報とを対応付けて記憶する。
図3は、本実施形態における利用者情報記憶部212のデータ例を示す図である。
図3に示すように、利用者情報記憶部212は、「ユーザID」と、「契約グループID」と、「ユーザ名」と、「ログイン情報」と、「テナントID」とを対応付けて記憶する。ここで、「ユーザID」は、利用者識別情報の一例であり、「契約グループID」、及び「テナントID」は、例えば、当該利用者に対応する「契約グループID」、及び「テナントID」を示している。また、「ユーザ名」は、利用者の名前を示しており、「ログイン情報」は、パスワードなどのポータルサーバ20にログインする際の認証情報などを示している。
また、「契約グループID」、「ユーザ名」、「ログイン情報」、及び「テナントID」は、利用者に関連する各種情報の一例である。また、利用者に関連する各種情報には、これらの情報の他に、例えば、登録日(申込日)、変更日(更新日)などの日時情報、利用権限情報などが含まれてもよい。
図3に示す例では、「ユーザID」が“U0001”に対応する利用者は、「契約グループID」が“G0001”であり、「ユーザ名」が“○○○○”であり、「ログイン情報」が“XXXXXX”であり、対応する「テナントID」が“T0001”であることを示している。
再び、図1の説明に戻り、メニュー情報記憶部213は、ポータルサーバ20が利用者端末装置10の表示部12に表示させる操作画面やメニュー画面の情報や、選択可能な入力情報などを記憶する。
仮想マシン情報記憶部214は、情報処理システム1に構築されている仮想マシンの情報を記憶する。仮想マシン情報記憶部214は、例えば、図4に示すように、仮想マシンを識別するマシンID(仮想マシン識別情報)と、仮想マシンに関連する各種情報とを対応付けて記憶する。
図4は、本実施形態における仮想マシン情報記憶部214のデータ例を示す図である。
図4に示すように、仮想マシン情報記憶部214は、「マシンID」と、「マシン種別」と、「マシン名」と、「IPアドレス」と、「テナントID」と、「サーバタイプ」と、「状態情報」とを対応付けて記憶する。ここで、「マシンID」は、仮想マシン識別情報の一例であり、「テナントID」は、例えば、当該仮想マシンに対応する「テナントID」を示している。
また、「マシン名」は、仮想マシンの名前を示しており、「マシン種別」は、例えば、“試験サーバ”、“管理サーバ”、などの情報処理システム1内における仮想マシンの種別を示している。また、「IPアドレス」は、仮想マシンに割り当てられているIP(Internet Protocol)アドレスを示し、「状態情報」は、例えば、“起動中”、“停止中”などの仮想マシンの起動状態を示している。また、「サーバタイプ」は、インストール可能なソフトウェア及びコンテナを判定するためのタイプコード(タイプ情報)を示している。
また、「マシン種別」、「マシン名」、「IPアドレス」、「テナントID」、「サーバタイプ」、及び「状態情報」は、仮想マシンに関連する各種情報の一例である。また、仮想マシンに関連する各種情報には、これらの情報の他に、例えば、登録日(申込日)、変更日(更新日)などの日時情報、上述したプロジェクトIDなどが含まれてもよい。
図4に示す例では、「マシンID」が“M001”に対応する仮想マシンは、「マシン種別」が“試験サーバ”であり、「マシン名」が“TEST”であり、「IPアドレス」が“XX.XXX.XXX.XX”であり、対応する「テナントID」が“T0001”であることを示している。また、「状態情報」は、仮想マシンが“起動中”であることを示し、「サーバタイプ」が“01”であることを示している。
再び、図1の説明に戻り、インストーラ情報記憶部215は、情報処理システム1においてベアインストール可能なツールのインストールに関する情報を記憶する。ここで、ツールとは、例えば、ソフトウェアの開発に必要な各種アプリケーションツール(ソフトウェア)などのことである。インストーラ情報記憶部215は、例えば、図5に示すように、ツールを識別するツールID(ソフトウェア識別情報)と、ツールのインストーラに関連する各種情報とを対応付けて記憶する。
図5は、本実施形態におけるインストーラ情報記憶部215のデータ例を示す図である。
図5に示すように、インストーラ情報記憶部215は、「ツールID」と、「インストーラ名」と、「バージョン情報」と、「サーバタイプ」と、「プレイブックID」とを対応付けて記憶する。ここで、「ツールID」は、ベアインストール可能なツールのソフトウェア識別情報の一例であり、「インストーラ名」は、例えば、当該ツールをインストールするためのインストーラの名称を示している。また、「バージョン情報」は、ツールのバージョンを示し、「プレイブックID」は、当該ツールをインストールするために使用するプレイブック(Playbook)を識別する識別情報を示している。また、「サーバタイプ」は、インストール可能な仮想マシンのタイプを示している。なお、プレイブックとは、ソフトウェアをインストールするための手順を規定した手順情報(手順ファイル)を示している。
また、「インストーラ名」、「バージョン情報」、「サーバタイプ」、及び「プレイブックID」は、ツールのインストーラに関連する各種情報の一例である。また、ツールのインストーラに関連する各種情報には、これらの情報の他に、例えば、作成日時、更新日時などの日時情報、アイコン名などが含まれてもよい。
図5に示す例では、「ツールID」が“INS0001”に対応するインストーラは、「インストーラ名」が“ABCD”であり、「バージョン情報」が“1.00”であることを示している。また、「サーバタイプ」が“01”であり、「プレイブックID」が“PB0001”であることを示している。
再び、図1の説明に戻り、コンテナ情報記憶部216は、情報処理システム1においてコンテナ型仮想技術(以下、単にコンテナと言う場合がある)を利用したツールのインストールに関する情報(コンテナ情報)を記憶する。なお、コンテナの詳細については、後述する。コンテナ情報記憶部216は、例えば、図6に示すように、コンテナを識別するコンテナID(コンテナ識別情報)と、コンテナに関連する各種情報とを対応付けて記憶する。
図6は、本実施形態におけるコンテナ情報記憶部216のデータ例を示す図である。
図6に示すように、コンテナ情報記憶部216は、「コンテナID」と、「イメージ名」と、「バージョン情報」と、「ポート情報」と、「サーバタイプ」と、「プレイブックID」とを対応付けて記憶する。ここで、「コンテナID」は、コンテナ識別情報の一例であり、「イメージ名」は、例えば、当該コンテナをインストールするためのコンテナイメージの名称を示している。また、「バージョン情報」は、コンテナイメージのバージョンを示し、「ポート情報」は、プロトコルの種別及び当該コンテナがデフォルトで使用するポート番号を示し、「プレイブックID」は、当該コンテナをインストールするために使用するプレイブックIDを示している。また、「サーバタイプ」は、コンテナをインストール可能な仮想マシンのタイプを示している。なお、「ポート情報」は、コンテナが対応するプロトコルの種別に応じて、複数の情報であってもよい。
また、「イメージ名」、「バージョン情報」、「ポート情報」、「サーバタイプ」、及び「プレイブックID」は、コンテナに関連する各種情報の一例である。また、コンテナに関連する各種情報には、これらの情報の他に、例えば、作成日時、更新日時などの日時情報、アイコン名などが含まれてもよい。
図6に示す例では、「コンテナID」が“CN0001”に対応する「イメージ名」が“XXXX”であり、「バージョン情報」が“1.00”であることを示している。また、「ポート情報」が“HTTP:80、SSH:22”あることを示している。また、「サーバタイプ」が“01”であり、「プレイブックID」が“PB0002”であることを示している。
再び、図1の説明に戻り、プレイブック情報記憶部217は、情報処理システム1において、インストールに使用するプレイブックに関する情報(プレイブック情報)を記憶する。プレイブック情報記憶部217は、例えば、図7に示すように、プレイブックを識別するプレイブックID(プレイブック識別情報)と、プレイブックに関連する各種情報とを対応付けて記憶する。
図7は、本実施形態におけるプレイブック情報記憶部217のデータ例を示す図である。
図7に示すように、プレイブック情報記憶部217は、「プレイブックID」と、「ファイル名」と、「格納場所」とを対応付けて記憶する。ここで、「プレイブックID」は、プレイブック識別情報の一例であり、「ファイル名」は、例えば、当該プレイブックファイルのファイル名を示している。また、「格納場所」は、プレイブックファイルが格納されている場所情報(例えば、リポジトリURL(Uniform Resource Locator)など)を示している。
また、「ファイル名」及び「格納場所」は、プレイブックに関連する各種情報の一例である。また、プレイブックに関連する各種情報には、これらの情報の他に、例えば、ブランチ名などが含まれてもよい。
図7に示す例では、「プレイブックID」が“PB0002”に対応する「ファイル名」が“EFGHI”であり、「格納場所」が“XXXX”であることを示している。
なお、インストーラ情報記憶部215、コンテナ情報記憶部216、及びプレイブック情報記憶部217は、後述する共通サーバ30が記憶する情報と同期している。インストーラ情報記憶部215、コンテナ情報記憶部216、及びプレイブック情報記憶部217が記憶する情報は、共通サーバ30が記憶する情報の更新に合わせて、情報処理システム1の運用管理者によって、定期的に更新されるものとする。
また、図1の説明に戻り、ポータル制御部22は、例えば、CPUなどを含むプロセッサであり、ポータルサーバ20を統括的に制御する。ポータル制御部22は、例えば、UI(User Interface)制御部221と、命令実行部222とを備えている。
UI制御部221(要求受付部の一例)は、ポータルサーバ20のユーザインタフェースを制御する。UI制御部221は、メニュー情報記憶部213が記憶する情報及び利用者端末装置10から取得した入力情報に基づいて、各種表示画面を生成し、ネットワークNW1を介して、各種表示画面を利用者端末装置10の表示部12に表示させる。また、UI制御部221は、ネットワークNW1を介して、利用者端末装置10から取得した入力情報に基づいて、各種処理を実行する。UI制御部221は、例えば、利用者のログイン処理、テナント60の管理処理、仮想マシンの作成、テナント60ごとの管理サーバ40及び試験サーバ50の管理処理(例えば、ソフトウェアのインストール処理やマシンの制御処理など)、等の利用者との間のインターフェースを制御し、各種要求を受け付ける。
例えば、UI制御部221は、図8~図11に示すような表示画面を、利用者端末装置10の表示部12に表示させる。
図8~図11は、本実施形態におけるポータルサーバ20により表示される表示画面の例を示す図である。
図8に示す表示画面G1は、試験サーバ50を管理するメニュー画面である。UI制御部221は、利用者端末装置10の入力部11を介して、例えば、試験サーバ50が選択された場合に、ネットワークNW1を介して、当該表示画面G1のデータを送信して、利用者端末装置10の表示部12に表示させる。表示画面G1において、UI制御部221は、仮想マシンの選択(選択ウインドウSW1参照)、“コンテナの追加”及び“ベアインストール”の選択(ボタンBT1を参照)などを受け付ける。
また、図9に示す表示画面G2は、試験サーバ50にベアインストールを行うメニュー画面である。UI制御部221は、利用者端末装置10の入力部11を介して、例えば、“ベアインストール”が選択された場合に、ネットワークNW1を介して、当該表示画面G2のデータを送信して、利用者端末装置10の表示部12に表示させる。
ここで、UI制御部221は、選択された試験サーバ50の「サーバタイプ」を仮想マシン情報記憶部214から取得し、取得した試験サーバ50の「サーバタイプ」に基づいて、当該試験サーバ50にインストール可能なツールをインストーラ情報記憶部215から抽出する。UI制御部221は、抽出したインストール可能なツールの情報を表示部12に表示させる。表示画面G2において、UI制御部221は、ベアインストールするツール名及びバージョンを受け付ける。
このように、UI制御部221は、利用者端末装置10の表示部12にメニュー画面(表示画面G2)を表示させて、テナント60に対応する利用者から、ソフトウェアの開発環境の要求情報(ツール名及びバージョン)を受け付ける。
また、UI制御部221は、利用者端末装置10の入力部11を介して、送信ボタンBT2が押下された場合に、後述する命令実行部222に、選択したツール名及びバージョンに対応するソフトウェアをベアインストールするインストール依頼を生成及び出力させる。
また、図10に示す表示画面G3は、試験サーバ50にコンテナの追加を行うメニュー画面である。UI制御部221は、利用者端末装置10の入力部11を介して、例えば、“コンテナの追加”が選択された場合に、ネットワークNW1を介して、当該表示画面G3のデータを送信して、利用者端末装置10の表示部12に表示させる。
ここで、UI制御部221は、選択された試験サーバ50の「サーバタイプ」を仮想マシン情報記憶部214から取得し、取得した試験サーバ50の「サーバタイプ」に基づいて、当該試験サーバ50にインストール可能なコンテナをコンテナ情報記憶部216から抽出する。UI制御部221は、抽出したインストール可能なコンテナの情報を表示部12に表示させる。なお、UI制御部221は、コンテナに対応する起動ポートの情報を、コンテナ情報記憶部216の「ポート情報」から取得して、設定可能なプロトコルの種別を表示させる。
表示画面G3において、UI制御部221は、追加(インストール)するコンテナのツール名、バージョン、及び起動ポートの情報を受け付ける。ここで、起動ポートの情報は、コンテナのソフトウェアが外部と接続するための外部ポート情報である。また、ツール名は、ソフトウェアの識別情報の一例である。
このように、UI制御部221は、ソフトウェアの開発環境の要求情報として、コンテナを利用してインストールするソフトウェアの識別情報と、当該ソフトウェアのバージョン情報と、当該ソフトウェアが外部と接続するための外部ポート情報とを受け付ける。
また、UI制御部221は、利用者端末装置10の入力部11を介して、送信ボタンBT2が押下された場合に、後述する命令実行部222に、選択したツール名及びバージョンに対応するソフトウェアを、起動ポートに対応する設定によりコンテナを利用してインストールするインストール依頼を生成及び出力させる。
また、図11に示す表示画面G4は、試験サーバ50のコンテナの制御を行うメニュー画面である。表示画面G3において、UI制御部221は、利用者端末装置10の入力部11を介して、例えば、制御ボタンBT3の“停止”、“再起動”などの制御の指示を受け付ける。UI制御部221は、後述する命令実行部222に、コンテナ制御の指示に対応したコンテナ制御依頼を生成及び出力させる。
また、UI制御部221は、利用者情報記憶部212が記憶する利用者情報に基づいて、利用者のログイン処理を実行する。
また、UI制御部221は、テナント情報記憶部211が記憶するテナント情報に基づいて、利用者に対応するテナント60の判定し、当該テナントに対応する仮想マシンを仮想マシン情報記憶部214から抽出する。UI制御部221は、抽出した仮想マシンを、テナントに対応する仮想マシンとして、利用者端末装置10の表示部12に表示させる。
命令実行部222(インストール依頼部)は、UI制御部221が受け付けた、利用者からの各種要求に応じて、各種命令(例えば、インストール依頼の出力、コンテナ制御依頼の出力など)を実行する。
命令実行部222は、例えば、UI制御部221によって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント60に対応する試験サーバ50に設定情報の示す設定でインストールさせるインストール依頼を生成する。命令実行部222は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報(手順指定情報)を含むインストール依頼を生成する。ここで、プレイブック情報には、上述したプレイブック情報記憶部217が記憶する「プレイブックID」、「ファイル名」、及び「格納場所」などが含まれる。
なお、インストール依頼には、プレイブック情報の他に、開発環境用のソフトウェアをインストールする試験サーバ50を指定する情報(例えば、「マシンID」、「IPアドレス」など)が含まれている。管理サーバ40は、インストール依頼に含まれる試験サーバ50を指定する情報に基づいて、対象の試験サーバ50を判定(決定)する。
例えば、ベアインストールを行う場合に、命令実行部222は、例えば、UI制御部221によって受け付けたツール名及びバージョンに対応する「ツールID」に基づいて、インストーラ情報記憶部215から、「プレイブックID」を取得する。命令実行部222は、取得した「プレイブックID」に対応するプレイブック情報をプレイブック情報記憶部217から取得し、当該プレイブック情報を含むインストール依頼を生成する。
また、例えば、コンテナを利用したインストールを行う場合に、命令実行部222は、例えば、UI制御部221によって受け付けたコンテナ名及びバージョンに対応する「コンテナID」に基づいて、コンテナ情報記憶部216から、「プレイブックID」を取得する。命令実行部222は、取得した「プレイブックID」に対応するプレイブック情報をプレイブック情報記憶部217から取得する。また、命令実行部222は、UI制御部221によって受け付けた起動ポートを外部ポート情報として、内部ポート情報(コンテナ情報記憶部216の「ポート情報」のポート番号)と対応付ける設定情報を生成する。命令実行部222は、当該プレイブック情報及び設定情報を含むインストール依頼を生成する。このように、命令実行部222は、要求情報に対応するソフトウェアを、当該ソフトウェアに予め設定された内部ポート情報と外部ポート情報とを対応付けて、コンテナを利用してインストールさせるインストール依頼を生成する。
命令実行部222は、上述のように生成したインストール依頼を、ネットワークNW1を介して、例えば、テナント60に対応する管理サーバ40に出力する。
また、例えば、コンテナの制御を行う場合に、命令実行部222は、UI制御部221によって受け付けた“停止”、“再起動”などの制御の指示に基づいて、コンテナ制御の指示に対応したコンテナ制御依頼を生成する。命令実行部222は、生成したコンテナ制御依頼を、ネットワークNW1を介して、例えば、テナント60に対応する管理サーバ40に出力する。
再び、図1の説明に戻り、共通サーバ30は、例えば、コモンレジストリサーバ(Common registry Server)であり、例えば、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを記憶する。共通サーバ30は、例えば、ネットワークNW1を介して、インストールのためのプレイブック及びソフトウェア(インストーラ、コンテナイメージなど)を供給する。共通サーバ30は、共通記憶部31を備え、共通記憶部31は、プレイブック記憶部311と、インストーラ記憶部312と、コンテナ記憶部313とを備えている。
なお、情報処理システム1において、ポータルサーバ20及び共通サーバ30は、当該システムを提供するシステム運用者100によって提供及び管理される。
プレイブック記憶部311は、各種ソフトウェア及びコンテナに対応したプレイブック(プレイブックファイル)を記憶する。なお、プレイブック記憶部311は、複数のプレイブックを記憶しており、各プレイブックは、システム運用者100によって予め検証されたものである。例えば、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されている。
インストーラ記憶部312は、各種ソフトウェアをインストールするためのインストーラを記憶する。なお、インストーラ記憶部312は、複数のインストーラを記憶しており、各インストーラは、システム運用者100によって予め検証されたものである。
コンテナ記憶部313は、各種コンテナをインストールするためのコンテナイメージを記憶する。なお、コンテナ記憶部313は、複数のコンテナイメージを記憶しており、各コンテナイメージは、システム運用者100によって予め検証されたものである。
管理サーバ40は、テナント60ごとに構築され、例えば、テナント60内の試験サーバ50を管理するCI/CDサーバ(Continuous Integration/Continuous Deliveryサーバ)である。管理サーバ40は、ネットワークNW1を介して、ポータルサーバ20及び共通サーバ30と接続されるとともに、ネットワークNW2を介して、テナント60内の試験サーバ50と接続されている。
管理サーバ40は、例えば、ポータルサーバ20によって生成されたインストール依頼に応じて、試験サーバ50に、コンテナ型仮想化を利用して開発環境用のソフトウェアをインストールさせる。管理サーバ40は、インストール依頼に含まれるプレイブック情報(手順指定情報)に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ50にインストールさせる。
また、管理サーバ40は、ポータルサーバ20が受け付けた制御指示に基づいて、試験サーバ50にインストールしているソフトウェアを制御する。例えば、管理サーバ40は、ポータルサーバ20によって生成されたコンテナ制御依頼に応じて、コンテナ制御を行う。
また、管理サーバ40は、管理制御部41を備えている。
管理制御部41は、例えば、CPUなどを含むプロセッサであり、管理サーバ40を統括的に制御する。管理制御部41は、例えば、実行管理部411と、実行処理部412と、管理処理部413とを備えている。
実行管理部411(手順取得部の一例)は、例えば、ジョブ管理などを行うツールである「Jenkins」により実現される機能部である。実行管理部411は、ポータルサーバ20から受信したインストール依頼に含まれるプレイブック情報に基づいて、該当するプレイブックを、共通サーバ30のプレイブック記憶部311から取得する。ここで、プレイブック情報には、「ファイル名」及び「格納場所」が含まれており、実行管理部411は、「ファイル名」及び「格納場所」により、該当プレイブックをプレイブック記憶部311から取得する。実行管理部411は、取得したプレイブックによるインストール処理を実行処理部412に実行させる。
また、実行管理部411は、コンテナを利用してソフトウェアをインストールする場合には、インストール依頼に含まれる設定情報の設定にて、取得したプレイブックによるインストール処理を実行処理部412に実行させる。
また、実行管理部411は、ポータルサーバ20から受信したコンテナ制御依頼に基づいて、コンテナの制御処理を管理処理部413に実行させる。
実行処理部412(構築処理部の一例)は、例えば、ジョブ実行を行うツールである「Ansible」により実現される機能部である。実行処理部412は、プレイブックに基づいて、各種処理を実行する。実行処理部412は、実行管理部411によって取得したプレイブックに基づいて、例えば、テナント60に対応する試験サーバ50に、少なくとも開発環境用のソフトウェアをインストールさせる。
なお、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されており、実行処理部412は、当該プレイブックに基づいて、バージョン及び組合せが検証済みの開発環境用のソフトウェアをインストールさせる。
また、コンテナを利用してソフトウェアをインストールする場合には、実行処理部412は、試験サーバ50に、設定情報の示す設定(例えば、ポートの設定)でインストールさせる。
管理処理部413は、例えば、コンテナの管理などの各種制御を実行する。管理処理部413は、例えば、コンテナを「Docker」(登録商標)などのコンテナ仮想化 ツールを利用して、コンテナの“停止”、“再起動”などの制御を実行する。
試験サーバ50は、仮想マシンにより構築され、テナント60の利用者によってソフトウェアを開発するためのテストサーバである。試験サーバ50は、利用者によって開発したソフトウェアにより各種システムが構築されるとともに、各種システムの検証にも利用される。試験サーバ50は、ソフトウェア及びシステムの開発環境用のソフトウェア(開発のツール)がインストールされる。
試験サーバ50へのツールのインストールには、上述したように、ベアインストールと、コンテナを利用したインストールとがあり、ここで、図12を参照して説明する。
図12は、本実施形態における試験サーバ50のツールのインストール例を示す図である。
図12(a)は、試験サーバ50にベアインストールによりツールをインストールした場合の一例を示している。ベアインストールは、通常のインストールに相当し、試験サーバ50のOS(オペレーティングシステム)上に直接ツールをインストールする。
また、図12(b)は、試験サーバ50にコンテナを利用してツールをインストールした場合の一例を示している。この場合には、試験サーバ50のOS上に、上述した「Docker」(登録商標)などのコンテナ管理ソフトをインストールした上で、仮想領域(コンテナ)を構築して、ツールをインストールする。図12(b)に示す例では、試験サーバ50には、“コンテナA”として“ツールA”がインストールされ、“コンテナB”として“ツールB”がインストールされている。
なお、コンテナを利用した場合のインストールでは、同一のツールを異なるコンテナとして複数インストールすることも可能である。例えば、図12(b)に示す例では、試験サーバ50には、“コンテナA”及び“コンテナC”として、“ツールA”が2つインストールされている。この場合、1台の試験サーバ50において、同一のツールを利用して、異なる開発環境による検証などの作業を行うことが可能である。
次に、図面を参照して、本実施形態による情報処理システム1の動作について説明する。
まず、図13を参照して、本実施形態における試験サーバ50へのベアインストール処理について説明する。
図13は、本実施形態における試験サーバ50へのベアインストール処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
図13に示すように、まず、利用者端末装置10が、試験サーバ画面(例えば、図8の表示画面G1)のベアインストールの指定を送信する(ステップS101)。利用者端末装置10の端末制御部13は、入力部11を介して、試験サーバ50の指定とともにベアインストールの選択を受け付けて、ポータルサーバ20に送信する。
次に、ポータルサーバ20は、ベアインストール画面を利用者端末装置10に送信する(ステップS102)。ポータルサーバ20のUI制御部は、指定された試験サーバ50のベアインストールの選択に対して、メニュー画面(例えば、図9の表示画面G2)のデータを、利用者端末装置10に送信する。
次に、利用者端末装置10は、ベアインストール画面を表示する(ステップS103)。すなわち、端末制御部13は、例えば、表示画面G2を表示部12に表示させる。
次に、利用者端末装置10は、ベアインストール要求をポータルサーバ20に送信する(ステップS104)。すなわち、端末制御部13は、表示画面G2において、利用者によって入力部11を介してインストールするツール名及びバージョンが指定され、送信ボタンBT2が押下された場合に、指定されたツール名及びバージョンのベアインストール要求を、ポータルサーバ20に送信する。
次に、ポータルサーバ20が、インストール依頼を生成する(ステップS105)。ポータルサーバ20のUI制御部221が受け付けたベアインストール要求に基づいて、命令実行部222が、指定されたツール名及びバージョンのツールをベアインストールするインストール依頼を生成する。なお、インストール依頼には、プレイブック情報が含まれる。また、ベアインストールのインストール依頼を生成する処理の詳細については、図14を参照して後述する。
次に、ポータルサーバ20は、生成したインストール依頼を、利用者に対応するテナント60の管理サーバ40に送信する(ステップS106)。
次に、管理サーバ40は、プレイブック要求を共通サーバ30に送信し(ステップS107)、対応するプレイブックを共通サーバ30から取得する(ステップS108)。すなわち、管理サーバ40の実行管理部411は、ポータルサーバ20から受信したインストール依頼に含まれるプレイブック情報に基づいて、該当するプレイブックを、共通サーバ30のプレイブック記憶部311から取得する。
次に、管理サーバ40は、プレイブックによる実行モジュールを、指定された試験サーバ50に送信する(ステップS109)。実行管理部411は、利用者から指定された試験サーバ50に対して、取得したプレイブックを実行処理部412に実行させる。実行処理部412は、プレイブックに従って、ベアインストールを実行するための実行モジュールを試験サーバ50に送信する。
次に、試験サーバ50は、プレイブックに従ってベアインストール処理を実行する(ステップS110)。すなわち、試験サーバ50は、管理サーバ40から受信した実行モジュールを実行することで、ベアインストール処理を実行する。なお、試験サーバ50は、ベアインストール処理の際に、管理サーバ40経由又は直接、共通サーバ30のインストーラ記憶部312からインストール資材をダウンロードする。
次に、試験サーバ50は、インストールの完了通知を管理サーバ40に送信し(ステップS111)、管理サーバ40は、インストールの完了通知をポータルサーバ20に送信する。
次に、ポータルサーバ20は、利用者端末装置10に完了通知を送信して(ステップS113)、利用者端末装置10の表示部12にインストールの完了を表示させる(ステップS114)。すなわち、UI制御部221は、利用者端末装置10にベアインストールの完了を表示する画面データを送信し、利用者端末装置10の表示部12に表示させる。
次に、図14を参照して、上述した図13のステップS105及びステップS106の処理の詳細について説明する。
図14は、本実施形態におけるベアインストールのインストール依頼を生成する処理の一例を示すフローチャートである。
図14に示すように、まず、命令実行部222は、インストールするツールの情報を取得する(ステップS201)。命令実行部222は、UI制御部221によって受け付けたツール名及びバージョンに対応する「ツールID」を、例えば、UI制御部221から取得する。
次に、命令実行部222は、ツールの情報からプレイブック情報を取得する(ステップS202)。命令実行部222は、取得した「ツールID」に基づいて、インストーラ情報記憶部215から、「ツールID」に対応する「プレイブックID」を取得する(図5参照)。そして、命令実行部222は、取得した「プレイブックID」に対応するプレイブック情報をプレイブック情報記憶部217から取得する。ここで、プレイブック情報は、例えば、「ファイル名」及び「格納場所」である(図7参照)。
次に、命令実行部222は、プレイブック情報を含むインストール依頼を生成する(ステップS203)。ここで、命令実行部222は、利用者によって指定された試験サーバ50に指定のツールをインストールするインストール依頼を生成する。
次に、命令実行部222は、インストール依頼を管理サーバ40に送信する(ステップS204)。すなわち、命令実行部222は、利用者に対応するテナント60の管理サーバ40に、インストール依頼を送信する。ステップS204の処理後に、命令実行部222は、インストール依頼を生成する処理を終了する。
次に、図15を参照して、本実施形態における試験サーバ50へのコンテナを利用したインストール処理について説明する。
図15は、本実施形態における試験サーバ50へのコンテナを利用したインストール処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
図15に示すように、まず、利用者端末装置10が、試験サーバ画面(例えば、図8の表示画面G1)のコンテナの追加の指定を送信する(ステップS301)。利用者端末装置10の端末制御部13は、入力部11を介して、試験サーバ50の指定とともにコンテナの追加を受け付けて、ポータルサーバ20に送信する。
次に、ポータルサーバ20は、コンテナの追加画面を利用者端末装置10に送信する(ステップS302)。ポータルサーバ20のUI制御部は、指定された試験サーバ50のコンテナの追加の選択に対して、メニュー画面(例えば、図10の表示画面G3)のデータを、利用者端末装置10に送信する。
次に、利用者端末装置10は、コンテナの追加画面を表示する(ステップS303)。すなわち、端末制御部13は、例えば、表示画面G3を表示部12に表示させる。
次に、利用者端末装置10は、コンテナのインストール要求をポータルサーバ20に送信する(ステップS304)。すなわち、端末制御部13は、表示画面G3において、利用者によって入力部11を介してインストールするコンテナ名及びバージョンと、起動ポートとが指定され、送信ボタンBT2が押下された場合に、指定されたコンテナ名及びバージョンを指定された起動ポート(外部ポート)でコンテナを利用してインストールするコンテナのインストール要求を、ポータルサーバ20に送信する。
次に、ポータルサーバ20が、インストール依頼を生成する(ステップS305)。ポータルサーバ20のUI制御部221が受け付けたコンテナのインストール要求に基づいて、命令実行部222が、指定されたツール名及びバージョンのツールを、指定された設定(外部ポート)でコンテナを利用してインストールするインストール依頼を生成する。なお、インストール依頼には、プレイブック情報及び設定情報(外部ポート情報)が含まれる。また、コンテナを利用したインストールのインストール依頼を生成する処理の詳細については、図16を参照して後述する。
次に、ポータルサーバ20は、生成したインストール依頼を、利用者に対応するテナント60の管理サーバ40に送信する(ステップS306)。
次に、管理サーバ40は、プレイブック要求を共通サーバ30に送信し(ステップS307)、対応するプレイブックを共通サーバ30から取得する(ステップS308)。
次に、管理サーバ40は、プレイブックによる実行モジュールを、指定された試験サーバ50に送信する(ステップS309)。実行管理部411は、利用者から指定された試験サーバ50に対して、設定情報の設定(外部ポート)により取得したプレイブックを、実行処理部412に実行させる。実行処理部412は、プレイブックに従って、設定情報の設定によりコンテナを利用したインストールを実行するための実行モジュールを試験サーバ50に送信する。
次に、試験サーバ50は、プレイブックに従ってコンテナ作成処理を実行する(ステップS310)。すなわち、試験サーバ50は、管理サーバ40から受信した実行モジュールを実行することで、コンテナを利用したインストール処理を実行する。なお、試験サーバ50は、コンテナを利用したインストール処理の際に、管理サーバ40経由又は直接、共通サーバ30のコンテナ記憶部313からコンテナイメージをダウンロードする。
続く、ステップS311からステップS314までの処理は、上述した図13に示すステップS111からステップS114までの処理と同様であるため、ここではその説明を省略する。なお、ステップS313及びステップS314の処理において、UI制御部221は、利用者端末装置10にコンテナ追加の完了を表示する画面データを送信し、利用者端末装置10の表示部12に表示させる。
次に、図16を参照して、上述した図15のステップS305及びステップS306の処理の詳細について説明する。
図16は、本実施形態におけるコンテナを利用したインストール依頼を生成する処理の一例を示すフローチャートである。
図16に示すように、まず、命令実行部222は、インストールするコンテナの情報を取得する(ステップS401)。命令実行部222は、UI制御部221によって受け付けたコンテナ名及びバージョンに対応する「コンテナID」を、例えば、UI制御部221から取得する。
次に、命令実行部222は、コンテナの情報からプレイブック情報を取得する(ステップS402)。命令実行部222は、取得した「コンテナID」に基づいて、コンテナ情報記憶部216から、「コンテナID」に対応する「プレイブックID」を取得する(図6参照)。そして、命令実行部222は、取得した「プレイブックID」に対応するプレイブック情報をプレイブック情報記憶部217から取得する。ここで、プレイブック情報は、例えば、「ファイル名」及び「格納場所」である(図7参照)。
次に、命令実行部222は、プレイブック情報と設定情報とを含むインストール依頼を生成する(ステップS403)。ここで、命令実行部222は、利用者によって指定された試験サーバ50に指定のコンテナを、設定情報の設定(外部ポート)でインストールするインストール依頼を生成する。
次に、命令実行部222は、インストール依頼を管理サーバ40に送信する(ステップS404)。すなわち、命令実行部222は、利用者に対応するテナント60の管理サーバ40に、インストール依頼を送信する。ステップS404の処理後に、命令実行部222は、インストール依頼を生成する処理を終了する。
次に、図17を参照して、本実施形態におけるコンテナの制御処理について説明する。
図17は、本実施形態におけるコンテナの制御処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
図17に示すように、まず、利用者端末装置10が、試験サーバ画面(例えば、図8の表示画面G1)の試験サーバの指定を送信する(ステップS501)。利用者端末装置10の端末制御部13は、入力部11を介して、試験サーバ50の指定を受け付けて、ポータルサーバ20に送信する。
次に、ポータルサーバ20は、コンテナ制御のメニュー画面を利用者端末装置10に送信する(ステップS502)。ポータルサーバ20のUI制御部は、指定された試験サーバ50の指定に対して、コンテナ制御のメニュー画面(例えば、図11の表示画面G4)のデータを、利用者端末装置10に送信する。
次に、利用者端末装置10は、コンテナ制御のメニュー画面を表示する(ステップS503)。すなわち、端末制御部13は、例えば、表示画面G4を表示部12に表示させる。
次に、利用者端末装置10は、コンテナの制御要求をポータルサーバ20に送信する(ステップS504)。すなわち、端末制御部13は、表示画面G4において、利用者によって入力部11を介して、制御ボタンBT3の“停止”、“再起動”などのコンテナの制御が押下された場合に、指定されたコンテナの制御を行うコンテナの制御要求を、ポータルサーバ20に送信する。
次に、ポータルサーバ20が、コンテナ制御依頼を生成する(ステップS505)。ポータルサーバ20のUI制御部221が受け付けたコンテナの制御要求に基づいて、命令実行部222が、コンテナ制御依頼を生成する。なお、コンテナ制御依頼には、コンテナIDなどのコンテナの指定情報が含まれる。
次に、ポータルサーバ20は、生成したコンテナ制御依頼を、利用者に対応するテナント60の管理サーバ40に送信する(ステップS506)。
次に、管理サーバ40は、コンテナ制御の命令を、指定された試験サーバ50に送信する(ステップS507)。ここで、実行管理部411は、コンテナ制御依頼を受け付けて、管理処理部413に、コンテナ制御依頼に対応するコンテナ制御の命令を、試験サーバ50に送信させる。
次に、試験サーバ50は、コンテナ制御の命令により、コンテナ制御処理を実行する(ステップS508)。
続く、ステップS509からステップS512までの処理は、上述した図13に示すステップS111からステップS114までの処理と同様であるため、ここではその説明を省略する。なお、ステップS509及びステップS510の処理において、UI制御部221は、利用者端末装置10にコンテナ制御の完了を表示する画面データを送信し、利用者端末装置10の表示部12に表示させる。
以上説明したように、本実施形態による情報処理システム1は、コンピュータリソースの提供を受ける契約を示す複数のテナント60それぞれに対応したソフトウェアの開発環境を構築可能な情報処理システム1であって、実行管理部411(手順取得部)と、実行処理部412(構築処理部)とを備える。実行管理部411は、テナント60に対応する利用者からの要求に応じたプレイブック(手順情報)を取得する。ここで、プレイブックは、例えば、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報である。実行処理部412は、実行管理部411によって取得したプレイブックに基づいて、テナント60に対応する試験サーバ50に、少なくとも開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理システム1は、プレイブックに基づいて、コンテナを利用して、開発環境用のソフトウェアをインストールするため、例えば、ソフトウェアに関する専門知識を持っていない利用者、或いは、スキルレベルが低い利用者であっても、容易にソフトウェアの開発環境を構築することができる。よって、本実施形態による情報処理システム1は、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
また、本実施形態による情報処理システム1は、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを記憶する共通サーバ30を備える。実行管理部411は、利用者からの要求に応じたプレイブックを共通サーバ30から取得し、実行処理部412は、プレイブックに基づいて、試験サーバ50に、共通サーバ30が記憶するソフトウェアをインストールさせる。
これにより、本実施形態による情報処理システム1は、共通サーバ30により、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを一括管理することができる。よって、本実施形態による情報処理システム1は、利用者による手順ミスをさらに低減することができる。
また、ソフトウェア資産を共通サーバ30で一括管理するため、本実施形態による情報処理システム1では、ツールに関連するトラブルの対策や更新を容易に行うことができる。
また、本実施形態では、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されている。実行処理部412は、プレイブックに基づいて、バージョン及び組合せが検証済みの開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理システム1は、検証済みの開発環境用のソフトウェアを提供できるため、ツールに関連するトラブルを低減する、又は未然に防ぐことができる。
また、本実施形態による情報処理システム1は、実行管理部411と、実行処理部412とを含み、テナント60ごとに構築された管理サーバ40を備える。
これにより、本実施形態による情報処理システム1は、インストール処理の負荷を分散することができる。また、例えば、管理サーバ40と試験サーバ50とをローカルなネットワーク(ネットワークNW2)に接続して、試験サーバ50を外部のネットワークから遮断することができるため、本実施形態による情報処理システム1は、開発環境のセキュリティを向上させることができる。
また、本実施形態による情報処理方法は、コンピュータリソースの提供を受ける契約を示す複数のテナント60それぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムの情報処理方法であって、手順取得ステップと、構築処理ステップとを含む。手順取得ステップにおいて、実行管理部411が、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定したプレイブックであって、テナント60に対応する利用者からの要求に応じたプレイブックを取得する。構築処理ステップにおいて、実行処理部412が、手順取得ステップによって取得したプレイブックに基づいて、テナント60に対応する試験サーバ50に、少なくとも開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム1と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
また、本実施形態による情報処理システム1は、UI制御部221(要求受付部)と、命令実行部222(インストール依頼部)と、実行処理部412とを備える。UI制御部221は、メニュー画面を表示させて、テナント60に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付ける。命令実行部222は、UI制御部221によって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント60に対応する試験サーバ50に設定情報の示す設定でインストールさせるインストール依頼を生成する。実行処理部412は、命令実行部222によって生成されたインストール依頼に応じて、試験サーバ50に、開発環境用のソフトウェアを設定情報の示す設定でインストールさせる。
これにより、本実施形態による情報処理システム1は、UI制御部221によってメニュー画面で受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、該開発環境用のソフトウェアを設定情報の示す設定で、試験サーバ50にインストールすることができる。そのため、本実施形態による情報処理システム1は、例えば、ソフトウェアに関する専門知識を持っていない利用者、或いは、スキルレベルが低い利用者であっても、容易にソフトウェアの開発環境を構築することができる。よって、本実施形態による情報処理システム1は、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
例えば、本実施形態による情報処理システム1は、メニュー画面(例えば、図9の表示画面G2、図10の表示画面G3など)を選択することで、自動で開発環境用のソフトウェア及び設定情報を行うことができ、ソフトウェアの開発環境の構築時間を大幅に短縮することができる。
また、本実施形態では、命令実行部222は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報(手順指定情報)を含むインストール依頼を生成する。実行処理部412は、インストール依頼に含まれるプレイブック情報に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ50にインストールさせる。
これにより、本実施形態による情報処理システム1は、利用者の要求に応じたプレイブックを用いて、開発環境用のソフトウェアをインストールできるため、利用者による手順ミスをさらに低減することができる。
また、本実施形態による情報処理システム1は、複数のプレイブックを記憶する共通サーバ30から、プレイブック情報に対応するプレイブックを取得する実行管理部411(手順取得部)を備える。実行処理部412は、実行管理部411によって取得したプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ50にインストールさせる。
これにより、本実施形態による情報処理システム1は、複数のプレイブックを記憶する共通サーバ30からプレイブックを取得するため、多様な開発環境の構築に対応することができる。また、共通サーバ30により、プレイブックを一括管理することができる。よって、本実施形態による情報処理システム1は、多様な開発環境の構築に対応させつつ、利用者による手順ミスをさらに低減することができる。
また、本実施形態では、UI制御部221は、ソフトウェアの開発環境の要求情報として、コンテナを利用してインストールするソフトウェアの識別情報(例えば、コンテナ名、コンテナIDなど)と、当該ソフトウェアのバージョン情報と、当該ソフトウェアが外部と接続するための外部ポート情報とを受け付ける。命令実行部222は、ソフトウェアの識別情報に対応するソフトウェアであって、バージョン情報の示すバージョンのソフトウェアを、当該ソフトウェアに予め設定された内部ポート情報と外部ポート情報とを対応付けて、コンテナを利用してインストールさせるインストール依頼を生成する。
これにより、本実施形態による情報処理システム1は、コンテナの外部ポートを指定したインストールを、専門知識を必要とせず容易に行うことができる。
また、本実施形態による情報処理システム1は、ポータルサーバ20を備える。ポータルサーバ20は、上述したUI制御部221と命令実行部222とを含み、複数のテナント60それぞれに対応したソフトウェアの開発環境を構築させる。
これにより、本実施形態による情報処理システム1は、ポータルサーバ20を用いることで、複数のテナント60に対応させることができるとともに、開発環境の要求情報に応じたソフトウェアのインストールを容易に行うことができる。よって、本実施形態による情報処理システム1は、開発環境の構築時間をさらに短縮することができる。
また、本実施形態による情報処理方法は、要求受付ステップと、インストール依頼ステップと、構築処理ステップとを含む。要求受付ステップにおいて、UI制御部221が、メニュー画面を表示させて、テナント60に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付ける。インストール依頼ステップにおいて、命令実行部222が、要求受付ステップによって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント60に対応する試験サーバ50に設定情報の示す設定でインストールさせるインストール依頼を生成する。構築処理ステップにおいて、実行処理部412が、インストール依頼ステップによって生成されたインストール依頼に応じて、試験サーバ50に、開発環境用のソフトウェアを設定情報の示す設定でインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム1と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
また、本実施形態による情報処理システム1は、ポータルサーバ20と、管理サーバ40とを備えている。ポータルサーバ20は、テナント60に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、少なくとも開発環境用のソフトウェアを、テナント60に対応する試験サーバ50に、コンテナを利用してインストールさせるインストール依頼を生成する。管理サーバ40は、テナント60ごとに構築され、ポータルサーバ20によって生成されたインストール依頼に応じて、試験サーバ50に、コンテナ型仮想化を利用して開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理システム1は、例えば、インストールに関わる計算リソースやジョブ管理を、テナント60ごとに構築された管理サーバ40に処理させることができる。よって、本実施形態による情報処理システム1は、管理サーバ40によって、処理を分散することができるため、複数のソフトウェアの開発環境を構築する際に、パフォーマンスが低下することを抑制することができる。
また、本実施形態では、ポータルサーバ20は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報(手順指定情報)を含むインストール依頼を生成する。管理サーバ40は、インストール依頼に含まれるプレイブック情報に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ50にインストールさせる。
これにより、本実施形態による情報処理システム1は、利用者の要求に応じたプレイブックを用いて、開発環境用のソフトウェアをインストールできるため、利用者による手順ミスを低減することができる。
また、本実施形態では、ポータルサーバ20と共通サーバ30とは、複数のテナント60に対して共通に構築されている。
これにより、本実施形態による情報処理システム1は、共通のポータルサーバ20及び共通サーバ30によって、各テナント60に対する開発環境の構築、及びプレイブックを一括管理することができる。
また、本実施形態では、ポータルサーバ20は、試験サーバ50にインストールしているソフトウェアを制御する制御指示を、利用者から受け付ける。管理サーバ40は、ポータルサーバ20が受け付けた制御指示に基づいて、試験サーバ50にインストールしているソフトウェアを制御する。
これにより、本実施形態による情報処理システム1は、複数のソフトウェアを制御(管理)する際に、パフォーマンスが低下することを抑制することができる。
また、本実施形態による情報処理方法は、第1のステップと、第2のステップとを含む。第1のステップにおいて、ポータルサーバ20が、テナント60に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、少なくとも開発環境用のソフトウェアを、テナント60に対応する試験サーバ50に、コンテナを利用してインストールさせるインストール依頼を生成する。第2のステップにおいて、テナント60ごとに構築された管理サーバ40が、第1のステップによって生成されたインストール依頼に応じて、試験サーバ50に、コンテナを利用して開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム1と同様の効果を奏し、複数のソフトウェアの開発環境を構築する際に、パフォーマンスが低下することを抑制することができる。
[第2の実施形態]
次に、図18を参照して、第2の実施形態による情報処理システム1aについて説明する。本実施形態による情報処理システム1aは、上述した第1の実施形態の情報処理システム1における管理サーバ40の機能をポータルサーバ20に含めた場合の変形例について説明する。
図18は、本実施形態による情報処理システム1aの一例を示すブロック図である。
図18に示すように、情報処理システム1aは、利用者端末装置10と、ポータルサーバ20aと、共通サーバ30と、複数のテナント60aのそれぞれが有する試験サーバ50を備えている。本実施形態において、情報処理システム1aは、複数のテナント60aそれぞれに対応したソフトウェアの開発環境を構築可能なシステムである。
この図において、図1に示す構成と同一の構成には、同一の符号を付与して、ここではその説明を省略する。
なお、テナント60aは、コンピュータリソースの提供を受ける契約を示し、テナント60a-1、テナント60a-2、・・・は、それぞれ異なる契約を示している。また、本実施形態において、テナント60a-1、テナント60a-2、・・・は、情報処理システム1aが備える任意のテナントを示す場合、又は特に区別しない場合には、テナント60aとして説明する。
また、情報処理システム1aにおいて、ポータルサーバ20a及び共通サーバ30は、当該システムを提供するシステム運用者100によって提供及び管理される。
ポータルサーバ20aは、情報処理システム1aを利用するためのポータルサイトであり、各種メニュー画面及び操作画面などの表示データを、ネットワークNW1を介して、利用者端末装置10に送信して、各種メニュー画面及び操作画面を利用者端末装置10の表示部12に表示させる。また、ポータルサーバ20aは、利用者端末装置10からネットワークNW1を介して受信した入力情報に基づいて、各種処理を実行する。
また、ポータルサーバ20aは、ポータル記憶部21と、ポータル制御部22aとを備えている。
ポータル制御部22aは、例えば、CPUなどを含むプロセッサであり、ポータルサーバ20aを統括的に制御する。ポータル制御部22aは、例えば、UI制御部221と、命令実行部222と、実行管理部411と、実行処理部412と、管理処理部413とを備えている。実行管理部411、実行処理部412、及び管理処理部413の機能は、第1の実施形態の管理サーバ40が備える実行管理部411、実行処理部412、及び管理処理部413と同様であるので、ここではその説明を省略する。
以上説明したように、本実施形態による情報処理システム1aでは、第1の実施形態における管理サーバ40の機能をポータルサーバ20aが備える。このような構成においても、本実施形態による情報処理システム1aは、第1の実施形態による情報処理システム1と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、情報処理システム1(1a)は、共通サーバ30を備える例を説明したが、共通サーバ30の共通記憶部31の一部、又は全部を、ポータルサーバ20(20a)又は管理サーバ40が備えるようにしてもよい。
また、上記の各実施形態において、情報処理システム1(1a)は、ポータルサーバ20(20a)のメニュー画面から、仮想マシンによりテナント60内の試験サーバ50及び管理サーバ40を、自動で構築できるようにしてもよい。この場合、OSのインストールやネットワークの構築などを、上述した開発環境の構築と同様の仕組み(プレイブックを取得してインストールする仕組み)を利用するようにしてもよい。これにより、情報処理システム1(1a)は、テナント60の仮想マシンの取得を含めた開発環境の構築を、手順ミスを低減し、且つ、構築時間を短縮して行うことができる。
また、ネットワークの構築を行う場合に、ポータルサーバ20(20a)が、サーバの別に応じて、グローバルIPアドレス(Floating IPアドレス)、又はローカルIPアドレス(Non Floating IPアドレス)を適切に割振って、ネットワークを、自動で構築するようにしてもよい。これにより、標準的な開発環境のネットワークの構築を自動で行うことができるため、情報処理システム1(1a)は、利便性を向上させることができる。
また、上記の第1の実施形態において、情報処理システム1は、共通サーバ30とは別に、共通記憶部31と同様の記憶部を管理サーバ40に備え、定期的又は更新時に、共通記憶部31内の情報を、共通サーバ30から管理サーバ40に配信して同期させるようにしてもよい。この場合、実行管理部411及び実行処理部412は、共通サーバ30の代わりに、管理サーバ40内の記憶部から、プレイブックと、ソフトウェア(インストーラ及びコンテナイメージ)とを取得する。
また、上記の第1の実施形態において、情報処理システム1は、試験サーバ50へのベアインストール及びコンテナを利用したインストールと同様の手法を用いて、管理サーバ40に対して、ベアインストール及びコンテナを利用したインストールを実行するようにしてもよい。
なお、上述した情報処理システム1(1a)が備える各構成は、内部に、コンピュータシステムを有している。そして、上述した情報処理システム1(1a)が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理システム1(1a)が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理システム1(1a)が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。