(57)【要約】【課題】ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮する。【解決手段】情報処理システムは、コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムであって、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得部と、手順取得部によって取得した手順情報に基づいて、テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理部とを備える。【選択図】図１
2019128617.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムであって、
共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得部と、
前記手順取得部によって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理部と
を備えることを特徴とする情報処理システム。
【請求項２】
前記ソフトウェアの開発環境を構築するためのソフトウェア及び前記手順情報を記憶する共通サーバを備え、
前記手順取得部は、前記利用者からの要求に応じた前記手順情報を前記共通サーバから取得し、
前記構築処理部は、前記手順情報に基づいて、前記試験サーバに、前記共通サーバが記憶する前記ソフトウェアをインストールさせる
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記手順情報には、予め検証された前記ソフトウェアのバージョン及び組合せにより前記開発環境用のソフトウェアをインストールする手順が規定されており、
前記構築処理部は、前記手順情報に基づいて、前記バージョン及び前記組合せが検証済みの前記開発環境用のソフトウェアをインストールさせる
ことを特徴とする請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記手順取得部と、前記構築処理部とを含み、前記テナントごとに構築された管理サーバを備える
ことを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理システム。
【請求項５】
コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムの情報処理方法であって、
手順取得部が、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得ステップと、
構築処理部が、前記手順取得ステップによって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムが有するコンピュータに、
共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得ステップと、
前記手順取得ステップによって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ユーザの要求に応じてコンピュータリソースを提供する仮想環境を構築する技術が知られている（例えば、特許文献１を参照）。特許文献１に記載の技術では、ユーザの性能要求に応じて、例えば、ベアメタルサーバ、コンテナ型仮想サーバ、仮想マシンのなかからサーバ種別を選択して、ユーザごとの仮想環境を構築する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１６／１６７０８６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、ソフトウェアの開発環境を構築するためには、上述のように構築された試験サーバに、例えば、開発用のツール等を手動でインストールため、専門的な知識が必要であった。そのため、従来技術では、ソフトウェアの開発環境の構築に、時間が掛かったり、構築の手順ミスが生じて、開発環境を上手く構築できなかったりすることがあった。
【０００５】
本発明は、上記問題を解決すべくなされたもので、その目的は、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる情報処理システム、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様は、コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムであって、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得部と、前記手順取得部によって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理部とを備えることを特徴とする情報処理システムである。
【０００７】
また、本発明の一態様は、上記の情報処理システムにおいて、前記ソフトウェアの開発環境を構築するためのソフトウェア及び前記手順情報を記憶する共通サーバを備え、前記手順取得部は、前記利用者からの要求に応じた前記手順情報を前記共通サーバから取得し、前記構築処理部は、前記手順情報に基づいて、前記試験サーバに、前記共通サーバが記憶する前記ソフトウェアをインストールさせることを特徴とする。
【０００８】
また、本発明の一態様は、上記の情報処理システムにおいて、前記手順情報には、予め検証された前記ソフトウェアのバージョン及び組合せにより前記開発環境用のソフトウェアをインストールする手順が規定されており、前記構築処理部は、前記手順情報に基づいて、前記バージョン及び前記組合せが検証済みの前記開発環境用のソフトウェアをインストールさせることを特徴とする。
【０００９】
また、本発明の一態様は、上記の情報処理システムにおいて、前記手順取得部と、前記構築処理部とを含み、前記テナントごとに構築された管理サーバを備えることを特徴とする。
【００１０】
また、本発明の一態様は、コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムの情報処理方法であって、手順取得部が、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得ステップと、構築処理部が、前記手順取得ステップによって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理ステップとを含むことを特徴とする情報処理方法である。
【００１１】
また、本発明の一態様は、コンピュータリソースの提供を受ける契約を示す複数のテナントそれぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムが有するコンピュータに、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報であって、前記テナントに対応する利用者からの要求に応じた手順情報を取得する手順取得ステップと、前記手順取得ステップによって取得した前記手順情報に基づいて、前記テナントに対応する試験サーバに、少なくとも開発環境用のソフトウェアをインストールさせる構築処理ステップとを実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態による情報処理システムの一例を示すブロック図である。
【図２】第１の実施形態におけるテナント情報記憶部のデータ例を示す図である。
【図３】第１の実施形態における利用者情報記憶部のデータ例を示す図である。
【図４】第１の実施形態における仮想マシン情報記憶部のデータ例を示す図である。
【図５】第１の実施形態におけるインストーラ情報記憶部のデータ例を示す図である。
【図６】第１の実施形態におけるコンテナ情報記憶部のデータ例を示す図である。
【図７】第１の実施形態におけるプレイブック情報記憶部のデータ例を示す図である。
【図８】第１の実施形態におけるポータルサーバにより表示される表示画面の第１の例を示す図である。
【図９】第１の実施形態におけるポータルサーバにより表示される表示画面の第２の例を示す図である。
【図１０】第１の実施形態におけるポータルサーバにより表示される表示画面の第３の例を示す図である。
【図１１】第１の実施形態におけるポータルサーバにより表示される表示画面の第４の例を示す図である。
【図１２】第１の実施形態における試験サーバのツールのインストール例を示す図である。
【図１３】第１の実施形態における試験サーバへのベアインストール処理の一例を示す図である。
【図１４】第１の実施形態におけるベアインストールのインストール依頼を生成する処理の一例を示すフローチャートである。
【図１５】第１の実施形態における試験サーバへのコンテナを利用したインストール処理の一例を示す図である。
【図１６】第１の実施形態におけるコンテナを利用したインストール依頼を生成する処理の一例を示すフローチャートである。
【図１７】第１の実施形態におけるコンテナの制御処理の一例を示す図である。
【図１８】第２の実施形態による情報処理システムの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態による情報処理システム及び情報処理方法について、図面を参照して説明する。
【００１５】
［第１の実施形態］
図１は、第１の実施形態による情報処理システム１の一例を示すブロック図である。
図１に示すように、情報処理システム１は、利用者端末装置１０と、ポータルサーバ２０と、共通サーバ３０と、複数のテナント６０のそれぞれが有する管理サーバ４０と、試験サーバ５０とを備えている。本実施形態において、情報処理システム１は、複数のテナント６０それぞれに対応したソフトウェアの開発環境を構築可能なシステムである。
【００１６】
なお、テナント６０は、コンピュータリソースの提供を受ける契約を示し、テナント６０−１、テナント６０−２、・・・は、それぞれ異なる契約を示している。また、本実施形態において、テナント６０−１、テナント６０−２、・・・は、情報処理システム１が備える任意のテナントを示す場合、又は特に区別しない場合には、テナント６０として説明する。
【００１７】
また、本実施形態において、管理サーバ４０−１、管理サーバ４０−２、・・・は、情報処理システム１が備える任意の管理サーバを示す場合、又は特に区別しない場合には、管理サーバ４０として説明する。同様に、試験サーバ５１−１、試験サーバ５２−１、・・・、及び試験サーバ５１−２、試験サーバ５２−２、・・・は、情報処理システム１が備える任意の試験サーバを示す場合、又は特に区別しない場合には、試験サーバ５０として説明する。また、ネットワークＮＷ２−１、ネットワークＮＷ２−２、・・・は、情報処理システム１が備えるテナント６０内のネットワークを示す場合、又は特に区別しない場合には、ネットワークＮＷ２として説明する。
【００１８】
また、利用者端末装置１０と、ポータルサーバ２０と、共通サーバ３０と、管理サーバ４０とは、ネットワークＮＷ１に接続されている。ここで、ネットワークＮＷ１は、複数のテナント６０に対応する複数の利用者（契約者）の利用者端末装置１０が、接続可能なネットワークであり、例えば、ＷＡＮ（Wide Area Network）、グローバルエリアネットワークなどである。
【００１９】
また、各テナント６０において、管理サーバ４０と、試験サーバ５０とは、ネットワークＮＷ２に接続されている。ここで、ネットワークＮＷ２は、各テナント内のローカルなネットワークである。
【００２０】
利用者端末装置１０は、例えば、ＰＣ（パーソナルコンピュータ）などのコンピュータ装置であり、各テナント６０に対応する利用者が利用する端末装置である。利用者端末装置１０は、ネットワークＮＷ１を介して、ポータルサーバ２０と接続し、テナント６０へのソフトウェアの開発環境、及びテナント６０の管理などの操作を行う。また、利用者端末装置１０は、入力部１１と、表示部１２と、端末制御部１３とを備えている。
【００２１】
入力部１１は、例えば、キーボードやタッチパネル、マウスなどの入力装置であり、利用者からの要求であるソフトウェアの開発環境の要求情報などを入力情報として受け付ける。入力部１１は、受け付けた入力情報を端末制御部１３に出力する。
表示部１２（出力部の一例）は、例えば、液晶ディスプレイ装置などであり、各種情報を表示する。表示部１２は、例えば、ポータルサーバ２０から提供される選択肢や、要求情報の選択肢及び入力を行う際の操作画面やメニュー画面などを表示する。
【００２２】
端末制御部１３は、例えば、ＣＰＵ（Central Processing Unit）などを含むプロセッサであり、利用者端末装置１０を統括的に制御する。端末制御部１３は、ソフトウェアの開発環境の構築や、テナントの管理を行う際に、入力部１１が受け付けた入力情報を、ネットワークＮＷ１を介して、ポータルサーバ２０に送信する。また、端末制御部１３は、ポータルサーバ２０を介して、ポータルサーバ２０から受信したメニュー画面及び操作画面などの表示データを受信して、当該メニュー画面及び当該操作画面などを表示部１２に表示させる。
【００２３】
ポータルサーバ２０は、情報処理システム１を利用するためのポータルサイトであり、各種メニュー画面及び操作画面などの表示データを、ネットワークＮＷ１を介して、利用者端末装置１０に送信して、各種メニュー画面及び操作画面を利用者端末装置１０の表示部１２に表示させる。また、ポータルサーバ２０は、利用者端末装置１０からネットワークＮＷ１を介して受信した入力情報に基づいて、各種処理を実行する。
【００２４】
例えば、ポータルサーバ２０は、利用者端末装置１０を介して利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、インストール依頼を生成する。ポータルサーバ２０は、開発環境用のソフトウェアを、利用者のテナント６０に対応する試験サーバ５０に、例えば、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してインストールさせるインストール依頼を生成する。ポータルサーバ２０は、生成したインストール依頼を、利用者のテナント６０に対応する管理サーバ４０に送信する。なお、以下の説明において、開発環境用のソフトウェアを、開発用のツール又は単にツールと呼ぶことがある。
【００２５】
また、ポータルサーバ２０は、例えば、試験サーバ５０にインストールしているソフトウェアを制御する制御指示を、利用者端末装置１０を介して利用者から受け付ける。ポータルサーバ２０は、制御指示に基づく制御依頼を、利用者のテナント６０に対応する管理サーバ４０に送信する。
また、ポータルサーバ２０は、ポータル記憶部２１と、ポータル制御部２２とを備えている。
【００２６】
ポータル記憶部２１は、ポータルサーバ２０が利用する各種情報を記憶する。ポータル記憶部２１は、例えば、テナント情報記憶部２１１と、利用者情報記憶部２１２と、メニュー情報記憶部２１３と、仮想マシン情報記憶部２１４と、インストーラ情報記憶部２１５と、コンテナ情報記憶部２１６と、プレイブック情報記憶部２１７とを備えている。
【００２７】
テナント情報記憶部２１１は、情報処理システム１が登録（契約）しているテナントの情報を記憶する。テナント情報記憶部２１１は、例えば、図２に示すように、テナントを識別するテナントＩＤ（テナント識別情報）と、テナントに関連する各種情報とを対応付けて記憶する。
【００２８】
図２は、本実施形態におけるテナント情報記憶部２１１のデータ例を示す図である。
図２に示すように、テナント情報記憶部２１１は、「テナントＩＤ」と、「契約グループＩＤ」と、「プロジェクトＩＤ」と、「テナント名」とを対応付けて記憶する。ここで、「テナントＩＤ」は、テナント識別情報の一例であり、「契約グループＩＤ」は、例えば、テナントを契約した組織、所属などの識別情報であり、「プロジェクトＩＤ」は、例えば、当該テナントにより開発するソフトウェアのプロジェクトの識別情報である。
【００２９】
また、「契約グループＩＤ」、「プロジェクトＩＤ」、及び「テナント名」は、テナントに関連する各種情報の一例である。また、テナントに関連する各種情報には、これらの情報の他に、例えば、契約日（申込日）に関する日時情報や、テナントのボリューム容量（容量情報）、変更（更新）に関する日時情報などが含まれてもよい。
図２に示す例では、「テナントＩＤ」が“Ｔ０００１”に対応するテナントは、「契約グループＩＤ」が“Ｇ０００１”であり、「プロジェクトＩＤ」が“ＰＪ００１”であり、「テナント名」が“ＸＸＸＸ”であることを示している。
【００３０】
図１の説明に戻り、利用者情報記憶部２１２は、情報処理システム１を利用する利用者（ユーザ）の情報を記憶する。利用者情報記憶部２１２は、例えば、図３に示すように、利用者を識別するユーザＩＤ（利用者識別情報）と、利用者に関連する各種情報とを対応付けて記憶する。
【００３１】
図３は、本実施形態における利用者情報記憶部２１２のデータ例を示す図である。
図３に示すように、利用者情報記憶部２１２は、「ユーザＩＤ」と、「契約グループＩＤ」と、「ユーザ名」と、「ログイン情報」と、「テナントＩＤ」とを対応付けて記憶する。ここで、「ユーザＩＤ」は、利用者識別情報の一例であり、「契約グループＩＤ」、及び「テナントＩＤ」は、例えば、当該利用者に対応する「契約グループＩＤ」、及び「テナントＩＤ」を示している。また、「ユーザ名」は、利用者の名前を示しており、「ログイン情報」は、パスワードなどのポータルサーバ２０にログインする際の認証情報などを示している。
【００３２】
また、「契約グループＩＤ」、「ユーザ名」、「ログイン情報」、及び「テナントＩＤ」は、利用者に関連する各種情報の一例である。また、利用者に関連する各種情報には、これらの情報の他に、例えば、登録日（申込日）、変更日（更新日）などの日時情報、利用権限情報などが含まれてもよい。
図３に示す例では、「ユーザＩＤ」が“Ｕ０００１”に対応する利用者は、「契約グループＩＤ」が“Ｇ０００１”であり、「ユーザ名」が“○○○○”であり、「ログイン情報」が“ＸＸＸＸＸＸ”であり、対応する「テナントＩＤ」が“Ｔ０００１”であることを示している。
【００３３】
再び、図１の説明に戻り、メニュー情報記憶部２１３は、ポータルサーバ２０が利用者端末装置１０の表示部１２に表示させる操作画面やメニュー画面の情報や、選択可能な入力情報などを記憶する。
【００３４】
仮想マシン情報記憶部２１４は、情報処理システム１に構築されている仮想マシンの情報を記憶する。仮想マシン情報記憶部２１４は、例えば、図４に示すように、仮想マシンを識別するマシンＩＤ（仮想マシン識別情報）と、仮想マシンに関連する各種情報とを対応付けて記憶する。
【００３５】
図４は、本実施形態における仮想マシン情報記憶部２１４のデータ例を示す図である。
図４に示すように、仮想マシン情報記憶部２１４は、「マシンＩＤ」と、「マシン種別」と、「マシン名」と、「ＩＰアドレス」と、「テナントＩＤ」と、「サーバタイプ」と、「状態情報」とを対応付けて記憶する。ここで、「マシンＩＤ」は、仮想マシン識別情報の一例であり、「テナントＩＤ」は、例えば、当該仮想マシンに対応する「テナントＩＤ」を示している。
【００３６】
また、「マシン名」は、仮想マシンの名前を示しており、「マシン種別」は、例えば、“試験サーバ”、“管理サーバ”、などの情報処理システム１内における仮想マシンの種別を示している。また、「ＩＰアドレス」は、仮想マシンに割り当てられているＩＰ（Internet Protocol）アドレスを示し、「状態情報」は、例えば、“起動中”、“停止中”などの仮想マシンの起動状態を示している。また、「サーバタイプ」は、インストール可能なソフトウェア及びコンテナを判定するためのタイプコード（タイプ情報）を示している。
【００３７】
また、「マシン種別」、「マシン名」、「ＩＰアドレス」、「テナントＩＤ」、「サーバタイプ」、及び「状態情報」は、仮想マシンに関連する各種情報の一例である。また、仮想マシンに関連する各種情報には、これらの情報の他に、例えば、登録日（申込日）、変更日（更新日）などの日時情報、上述したプロジェクトＩＤなどが含まれてもよい。
図４に示す例では、「マシンＩＤ」が“Ｍ００１”に対応する仮想マシンは、「マシン種別」が“試験サーバ”であり、「マシン名」が“ＴＥＳＴ”であり、「ＩＰアドレス」が“ＸＸ．ＸＸＸ．ＸＸＸ．ＸＸ”であり、対応する「テナントＩＤ」が“Ｔ０００１”であることを示している。また、「状態情報」は、仮想マシンが“起動中”であることを示し、「サーバタイプ」が“０１”であることを示している。
【００３８】
再び、図１の説明に戻り、インストーラ情報記憶部２１５は、情報処理システム１においてベアインストール可能なツールのインストールに関する情報を記憶する。ここで、ツールとは、例えば、ソフトウェアの開発に必要な各種アプリケーションツール（ソフトウェア）などのことである。インストーラ情報記憶部２１５は、例えば、図５に示すように、ツールを識別するツールＩＤ（ソフトウェア識別情報）と、ツールのインストーラに関連する各種情報とを対応付けて記憶する。
【００３９】
図５は、本実施形態におけるインストーラ情報記憶部２１５のデータ例を示す図である。
図５に示すように、インストーラ情報記憶部２１５は、「ツールＩＤ」と、「インストーラ名」と、「バージョン情報」と、「サーバタイプ」と、「プレイブックＩＤ」とを対応付けて記憶する。ここで、「ツールＩＤ」は、ベアインストール可能なツールのソフトウェア識別情報の一例であり、「インストーラ名」は、例えば、当該ツールをインストールするためのインストーラの名称を示している。また、「バージョン情報」は、ツールのバージョンを示し、「プレイブックＩＤ」は、当該ツールをインストールするために使用するプレイブック（Playbook）を識別する識別情報を示している。また、「サーバタイプ」は、インストール可能な仮想マシンのタイプを示している。なお、プレイブックとは、ソフトウェアをインストールするための手順を規定した手順情報（手順ファイル）を示している。
【００４０】
また、「インストーラ名」、「バージョン情報」、「サーバタイプ」、及び「プレイブックＩＤ」は、ツールのインストーラに関連する各種情報の一例である。また、ツールのインストーラに関連する各種情報には、これらの情報の他に、例えば、作成日時、更新日時などの日時情報、アイコン名などが含まれてもよい。
図５に示す例では、「ツールＩＤ」が“ＩＮＳ０００１”に対応するインストーラは、「インストーラ名」が“ＡＢＣＤ”であり、「バージョン情報」が“１．００”であることを示している。また、「サーバタイプ」が“０１”であり、「プレイブックＩＤ」が“ＰＢ０００１”であることを示している。
【００４１】
再び、図１の説明に戻り、コンテナ情報記憶部２１６は、情報処理システム１においてコンテナ型仮想技術（以下、単にコンテナと言う場合がある）を利用したツールのインストールに関する情報（コンテナ情報）を記憶する。なお、コンテナの詳細については、後述する。コンテナ情報記憶部２１６は、例えば、図６に示すように、コンテナを識別するコンテナＩＤ（コンテナ識別情報）と、コンテナに関連する各種情報とを対応付けて記憶する。
【００４２】
図６は、本実施形態におけるコンテナ情報記憶部２１６のデータ例を示す図である。
図６に示すように、コンテナ情報記憶部２１６は、「コンテナＩＤ」と、「イメージ名」と、「バージョン情報」と、「ポート情報」と、「サーバタイプ」と、「プレイブックＩＤ」とを対応付けて記憶する。ここで、「コンテナＩＤ」は、コンテナ識別情報の一例であり、「イメージ名」は、例えば、当該コンテナをインストールするためのコンテナイメージの名称を示している。また、「バージョン情報」は、コンテナイメージのバージョンを示し、「ポート情報」は、プロトコルの種別及び当該コンテナがデフォルトで使用するポート番号を示し、「プレイブックＩＤ」は、当該コンテナをインストールするために使用するプレイブックＩＤを示している。また、「サーバタイプ」は、コンテナをインストール可能な仮想マシンのタイプを示している。なお、「ポート情報」は、コンテナが対応するプロトコルの種別に応じて、複数の情報であってもよい。
【００４３】
また、「イメージ名」、「バージョン情報」、「ポート情報」、「サーバタイプ」、及び「プレイブックＩＤ」は、コンテナに関連する各種情報の一例である。また、コンテナに関連する各種情報には、これらの情報の他に、例えば、作成日時、更新日時などの日時情報、アイコン名などが含まれてもよい。
図６に示す例では、「コンテナＩＤ」が“ＣＮ０００１”に対応する「イメージ名」が“ＸＸＸＸ”であり、「バージョン情報」が“１．００”であることを示している。また、「ポート情報」が“ＨＴＴＰ：８０、ＳＳＨ：２２”あることを示している。また、「サーバタイプ」が“０１”であり、「プレイブックＩＤ」が“ＰＢ０００２”であることを示している。
【００４４】
再び、図１の説明に戻り、プレイブック情報記憶部２１７は、情報処理システム１において、インストールに使用するプレイブックに関する情報（プレイブック情報）を記憶する。プレイブック情報記憶部２１７は、例えば、図７に示すように、プレイブックを識別するプレイブックＩＤ（プレイブック識別情報）と、プレイブックに関連する各種情報とを対応付けて記憶する。
【００４５】
図７は、本実施形態におけるプレイブック情報記憶部２１７のデータ例を示す図である。
図７に示すように、プレイブック情報記憶部２１７は、「プレイブックＩＤ」と、「ファイル名」と、「格納場所」とを対応付けて記憶する。ここで、「プレイブックＩＤ」は、プレイブック識別情報の一例であり、「ファイル名」は、例えば、当該プレイブックファイルのファイル名を示している。また、「格納場所」は、プレイブックファイルが格納されている場所情報（例えば、リポジトリＵＲＬ（Uniform Resource Locator）など）を示している。
【００４６】
また、「ファイル名」及び「格納場所」は、プレイブックに関連する各種情報の一例である。また、プレイブックに関連する各種情報には、これらの情報の他に、例えば、ブランチ名などが含まれてもよい。
図７に示す例では、「プレイブックＩＤ」が“ＰＢ０００２”に対応する「ファイル名」が“ＥＦＧＨＩ”であり、「格納場所」が“ＸＸＸＸ”であることを示している。
【００４７】
なお、インストーラ情報記憶部２１５、コンテナ情報記憶部２１６、及びプレイブック情報記憶部２１７は、後述する共通サーバ３０が記憶する情報と同期している。インストーラ情報記憶部２１５、コンテナ情報記憶部２１６、及びプレイブック情報記憶部２１７が記憶する情報は、共通サーバ３０が記憶する情報の更新に合わせて、情報処理システム１の運用管理者によって、定期的に更新されるものとする。
【００４８】
また、図１の説明に戻り、ポータル制御部２２は、例えば、ＣＰＵなどを含むプロセッサであり、ポータルサーバ２０を統括的に制御する。ポータル制御部２２は、例えば、ＵＩ（User Interface）制御部２２１と、命令実行部２２２とを備えている。
【００４９】
ＵＩ制御部２２１（要求受付部の一例）は、ポータルサーバ２０のユーザインタフェースを制御する。ＵＩ制御部２２１は、メニュー情報記憶部２１３が記憶する情報及び利用者端末装置１０から取得した入力情報に基づいて、各種表示画面を生成し、ネットワークＮＷ１を介して、各種表示画面を利用者端末装置１０の表示部１２に表示させる。また、ＵＩ制御部２２１は、ネットワークＮＷ１を介して、利用者端末装置１０から取得した入力情報に基づいて、各種処理を実行する。ＵＩ制御部２２１は、例えば、利用者のログイン処理、テナント６０の管理処理、仮想マシンの作成、テナント６０ごとの管理サーバ４０及び試験サーバ５０の管理処理（例えば、ソフトウェアのインストール処理やマシンの制御処理など）、等の利用者との間のインターフェースを制御し、各種要求を受け付ける。
【００５０】
例えば、ＵＩ制御部２２１は、図８〜図１１に示すような表示画面を、利用者端末装置１０の表示部１２に表示させる。
図８〜図１１は、本実施形態におけるポータルサーバ２０により表示される表示画面の例を示す図である。
【００５１】
図８に示す表示画面Ｇ１は、試験サーバ５０を管理するメニュー画面である。ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、例えば、試験サーバ５０が選択された場合に、ネットワークＮＷ１を介して、当該表示画面Ｇ１のデータを送信して、利用者端末装置１０の表示部１２に表示させる。表示画面Ｇ１において、ＵＩ制御部２２１は、仮想マシンの選択（選択ウインドウＳＷ１参照）、“コンテナの追加”及び“ベアインストール”の選択（ボタンＢＴ１を参照）などを受け付ける。
【００５２】
また、図９に示す表示画面Ｇ２は、試験サーバ５０にベアインストールを行うメニュー画面である。ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、例えば、“ベアインストール”が選択された場合に、ネットワークＮＷ１を介して、当該表示画面Ｇ２のデータを送信して、利用者端末装置１０の表示部１２に表示させる。
【００５３】
ここで、ＵＩ制御部２２１は、選択された試験サーバ５０の「サーバタイプ」を仮想マシン情報記憶部２１４から取得し、取得した試験サーバ５０の「サーバタイプ」に基づいて、当該試験サーバ５０にインストール可能なツールをインストーラ情報記憶部２１５から抽出する。ＵＩ制御部２２１は、抽出したインストール可能なツールの情報を表示部１２に表示させる。表示画面Ｇ２において、ＵＩ制御部２２１は、ベアインストールするツール名及びバージョンを受け付ける。
【００５４】
このように、ＵＩ制御部２２１は、利用者端末装置１０の表示部１２にメニュー画面（表示画面Ｇ２）を表示させて、テナント６０に対応する利用者から、ソフトウェアの開発環境の要求情報（ツール名及びバージョン）を受け付ける。
また、ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、送信ボタンＢＴ２が押下された場合に、後述する命令実行部２２２に、選択したツール名及びバージョンに対応するソフトウェアをベアインストールするインストール依頼を生成及び出力させる。
【００５５】
また、図１０に示す表示画面Ｇ３は、試験サーバ５０にコンテナの追加を行うメニュー画面である。ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、例えば、“コンテナの追加”が選択された場合に、ネットワークＮＷ１を介して、当該表示画面Ｇ３のデータを送信して、利用者端末装置１０の表示部１２に表示させる。
【００５６】
ここで、ＵＩ制御部２２１は、選択された試験サーバ５０の「サーバタイプ」を仮想マシン情報記憶部２１４から取得し、取得した試験サーバ５０の「サーバタイプ」に基づいて、当該試験サーバ５０にインストール可能なコンテナをコンテナ情報記憶部２１６から抽出する。ＵＩ制御部２２１は、抽出したインストール可能なコンテナの情報を表示部１２に表示させる。なお、ＵＩ制御部２２１は、コンテナに対応する起動ポートの情報を、コンテナ情報記憶部２１６の「ポート情報」から取得して、設定可能なプロトコルの種別を表示させる。
【００５７】
表示画面Ｇ３において、ＵＩ制御部２２１は、追加（インストール）するコンテナのツール名、バージョン、及び起動ポートの情報を受け付ける。ここで、起動ポートの情報は、コンテナのソフトウェアが外部と接続するための外部ポート情報である。また、ツール名は、ソフトウェアの識別情報の一例である。
【００５８】
このように、ＵＩ制御部２２１は、ソフトウェアの開発環境の要求情報として、コンテナを利用してインストールするソフトウェアの識別情報と、当該ソフトウェアのバージョン情報と、当該ソフトウェアが外部と接続するための外部ポート情報とを受け付ける。
また、ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、送信ボタンＢＴ２が押下された場合に、後述する命令実行部２２２に、選択したツール名及びバージョンに対応するソフトウェアを、起動ポートに対応する設定によりコンテナを利用してインストールするインストール依頼を生成及び出力させる。
【００５９】
また、図１１に示す表示画面Ｇ４は、試験サーバ５０のコンテナの制御を行うメニュー画面である。表示画面Ｇ３において、ＵＩ制御部２２１は、利用者端末装置１０の入力部１１を介して、例えば、制御ボタンＢＴ３の“停止”、“再起動”などの制御の指示を受け付ける。ＵＩ制御部２２１は、後述する命令実行部２２２に、コンテナ制御の指示に対応したコンテナ制御依頼を生成及び出力させる。
【００６０】
また、ＵＩ制御部２２１は、利用者情報記憶部２１２が記憶する利用者情報に基づいて、利用者のログイン処理を実行する。
また、ＵＩ制御部２２１は、テナント情報記憶部２１１が記憶するテナント情報に基づいて、利用者に対応するテナント６０の判定し、当該テナントに対応する仮想マシンを仮想マシン情報記憶部２１４から抽出する。ＵＩ制御部２２１は、抽出した仮想マシンを、テナントに対応する仮想マシンとして、利用者端末装置１０の表示部１２に表示させる。
【００６１】
命令実行部２２２（インストール依頼部）は、ＵＩ制御部２２１が受け付けた、利用者からの各種要求に応じて、各種命令（例えば、インストール依頼の出力、コンテナ制御依頼の出力など）を実行する。
命令実行部２２２は、例えば、ＵＩ制御部２２１によって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント６０に対応する試験サーバ５０に設定情報の示す設定でインストールさせるインストール依頼を生成する。命令実行部２２２は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報（手順指定情報）を含むインストール依頼を生成する。ここで、プレイブック情報には、上述したプレイブック情報記憶部２１７が記憶する「プレイブックＩＤ」、「ファイル名」、及び「格納場所」などが含まれる。
【００６２】
なお、インストール依頼には、プレイブック情報の他に、開発環境用のソフトウェアをインストールする試験サーバ５０を指定する情報（例えば、「マシンＩＤ」、「ＩＰアドレス」など）が含まれている。管理サーバ４０は、インストール依頼に含まれる試験サーバ５０を指定する情報に基づいて、対象の試験サーバ５０を判定（決定）する。
【００６３】
例えば、ベアインストールを行う場合に、命令実行部２２２は、例えば、ＵＩ制御部２２１によって受け付けたツール名及びバージョンに対応する「ツールＩＤ」に基づいて、インストーラ情報記憶部２１５から、「プレイブックＩＤ」を取得する。命令実行部２２２は、取得した「プレイブックＩＤ」に対応するプレイブック情報をプレイブック情報記憶部２１７から取得し、当該プレイブック情報を含むインストール依頼を生成する。
【００６４】
また、例えば、コンテナを利用したインストールを行う場合に、命令実行部２２２は、例えば、ＵＩ制御部２２１によって受け付けたコンテナ名及びバージョンに対応する「コンテナＩＤ」に基づいて、コンテナ情報記憶部２１６から、「プレイブックＩＤ」を取得する。命令実行部２２２は、取得した「プレイブックＩＤ」に対応するプレイブック情報をプレイブック情報記憶部２１７から取得する。また、命令実行部２２２は、ＵＩ制御部２２１によって受け付けた起動ポートを外部ポート情報として、内部ポート情報（コンテナ情報記憶部２１６の「ポート情報」のポート番号）と対応付ける設定情報を生成する。命令実行部２２２は、当該プレイブック情報及び設定情報を含むインストール依頼を生成する。このように、命令実行部２２２は、要求情報に対応するソフトウェアを、当該ソフトウェアに予め設定された内部ポート情報と外部ポート情報とを対応付けて、コンテナを利用してインストールさせるインストール依頼を生成する。
【００６５】
命令実行部２２２は、上述のように生成したインストール依頼を、ネットワークＮＷ１を介して、例えば、テナント６０に対応する管理サーバ４０に出力する。
また、例えば、コンテナの制御を行う場合に、命令実行部２２２は、ＵＩ制御部２２１によって受け付けた“停止”、“再起動”などの制御の指示に基づいて、コンテナ制御の指示に対応したコンテナ制御依頼を生成する。命令実行部２２２は、生成したコンテナ制御依頼を、ネットワークＮＷ１を介して、例えば、テナント６０に対応する管理サーバ４０に出力する。
【００６６】
再び、図１の説明に戻り、共通サーバ３０は、例えば、コモンレジストリサーバ（Common registry Server）であり、例えば、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを記憶する。共通サーバ３０は、例えば、ネットワークＮＷ１を介して、インストールのためのプレイブック及びソフトウェア（インストーラ、コンテナイメージなど）を供給する。共通サーバ３０は、共通記憶部３１を備え、共通記憶部３１は、プレイブック記憶部３１１と、インストーラ記憶部３１２と、コンテナ記憶部３１３とを備えている。
なお、情報処理システム１において、ポータルサーバ２０及び共通サーバ３０は、当該システムを提供するシステム運用者１００によって提供及び管理される。
【００６７】
プレイブック記憶部３１１は、各種ソフトウェア及びコンテナに対応したプレイブック（プレイブックファイル）を記憶する。なお、プレイブック記憶部３１１は、複数のプレイブックを記憶しており、各プレイブックは、システム運用者１００によって予め検証されたものである。例えば、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されている。
【００６８】
インストーラ記憶部３１２は、各種ソフトウェアをインストールするためのインストーラを記憶する。なお、インストーラ記憶部３１２は、複数のインストーラを記憶しており、各インストーラは、システム運用者１００によって予め検証されたものである。
コンテナ記憶部３１３は、各種コンテナをインストールするためのコンテナイメージを記憶する。なお、コンテナ記憶部３１３は、複数のコンテナイメージを記憶しており、各コンテナイメージは、システム運用者１００によって予め検証されたものである。
【００６９】
管理サーバ４０は、テナント６０ごとに構築され、例えば、テナント６０内の試験サーバ５０を管理するＣＩ／ＣＤサーバ（Continuous Integration／Continuous Deliveryサーバ）である。管理サーバ４０は、ネットワークＮＷ１を介して、ポータルサーバ２０及び共通サーバ３０と接続されるとともに、ネットワークＮＷ２を介して、テナント６０内の試験サーバ５０と接続されている。
管理サーバ４０は、例えば、ポータルサーバ２０によって生成されたインストール依頼に応じて、試験サーバ５０に、コンテナ型仮想化を利用して開発環境用のソフトウェアをインストールさせる。管理サーバ４０は、インストール依頼に含まれるプレイブック情報（手順指定情報）に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ５０にインストールさせる。
【００７０】
また、管理サーバ４０は、ポータルサーバ２０が受け付けた制御指示に基づいて、試験サーバ５０にインストールしているソフトウェアを制御する。例えば、管理サーバ４０は、ポータルサーバ２０によって生成されたコンテナ制御依頼に応じて、コンテナ制御を行う。
また、管理サーバ４０は、管理制御部４１を備えている。
【００７１】
管理制御部４１は、例えば、ＣＰＵなどを含むプロセッサであり、管理サーバ４０を統括的に制御する。管理制御部４１は、例えば、実行管理部４１１と、実行処理部４１２と、管理処理部４１３とを備えている。
【００７２】
実行管理部４１１（手順取得部の一例）は、例えば、ジョブ管理などを行うツールである「Jenkins」により実現される機能部である。実行管理部４１１は、ポータルサーバ２０から受信したインストール依頼に含まれるプレイブック情報に基づいて、該当するプレイブックを、共通サーバ３０のプレイブック記憶部３１１から取得する。ここで、プレイブック情報には、「ファイル名」及び「格納場所」が含まれており、実行管理部４１１は、「ファイル名」及び「格納場所」により、該当プレイブックをプレイブック記憶部３１１から取得する。実行管理部４１１は、取得したプレイブックによるインストール処理を実行処理部４１２に実行させる。
【００７３】
また、実行管理部４１１は、コンテナを利用してソフトウェアをインストールする場合には、インストール依頼に含まれる設定情報の設定にて、取得したプレイブックによるインストール処理を実行処理部４１２に実行させる。
また、実行管理部４１１は、ポータルサーバ２０から受信したコンテナ制御依頼に基づいて、コンテナの制御処理を管理処理部４１３に実行させる。
【００７４】
実行処理部４１２（構築処理部の一例）は、例えば、ジョブ実行を行うツールである「Ansible」により実現される機能部である。実行処理部４１２は、プレイブックに基づいて、各種処理を実行する。実行処理部４１２は、実行管理部４１１によって取得したプレイブックに基づいて、例えば、テナント６０に対応する試験サーバ５０に、少なくとも開発環境用のソフトウェアをインストールさせる。
【００７５】
なお、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されており、実行処理部４１２は、当該プレイブックに基づいて、バージョン及び組合せが検証済みの開発環境用のソフトウェアをインストールさせる。
また、コンテナを利用してソフトウェアをインストールする場合には、実行処理部４１２は、試験サーバ５０に、設定情報の示す設定（例えば、ポートの設定）でインストールさせる。
【００７６】
管理処理部４１３は、例えば、コンテナの管理などの各種制御を実行する。管理処理部４１３は、例えば、コンテナを「Docker」（登録商標）などのコンテナ仮想化 ツールを利用して、コンテナの“停止”、“再起動”などの制御を実行する。
【００７７】
試験サーバ５０は、仮想マシンにより構築され、テナント６０の利用者によってソフトウェアを開発するためのテストサーバである。試験サーバ５０は、利用者によって開発したソフトウェアにより各種システムが構築されるとともに、各種システムの検証にも利用される。試験サーバ５０は、ソフトウェア及びシステムの開発環境用のソフトウェア（開発のツール）がインストールされる。
試験サーバ５０へのツールのインストールには、上述したように、ベアインストールと、コンテナを利用したインストールとがあり、ここで、図１２を参照して説明する。
【００７８】
図１２は、本実施形態における試験サーバ５０のツールのインストール例を示す図である。
図１２（ａ）は、試験サーバ５０にベアインストールによりツールをインストールした場合の一例を示している。ベアインストールは、通常のインストールに相当し、試験サーバ５０のＯＳ（オペレーティングシステム）上に直接ツールをインストールする。
【００７９】
また、図１２（ｂ）は、試験サーバ５０にコンテナを利用してツールをインストールした場合の一例を示している。この場合には、試験サーバ５０のＯＳ上に、上述した「Docker」（登録商標）などのコンテナ管理ソフトをインストールした上で、仮想領域（コンテナ）を構築して、ツールをインストールする。図１２（ｂ）に示す例では、試験サーバ５０には、“コンテナＡ”として“ツールＡ”がインストールされ、“コンテナＢ”として“ツールＢ”がインストールされている。
【００８０】
なお、コンテナを利用した場合のインストールでは、同一のツールを異なるコンテナとして複数インストールすることも可能である。例えば、図１２（ｂ）に示す例では、試験サーバ５０には、“コンテナＡ”及び“コンテナＣ”として、“ツールＡ”が２つインストールされている。この場合、１台の試験サーバ５０において、同一のツールを利用して、異なる開発環境による検証などの作業を行うことが可能である。
【００８１】
次に、図面を参照して、本実施形態による情報処理システム１の動作について説明する。
まず、図１３を参照して、本実施形態における試験サーバ５０へのベアインストール処理について説明する。
【００８２】
図１３は、本実施形態における試験サーバ５０へのベアインストール処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
図１３に示すように、まず、利用者端末装置１０が、試験サーバ画面（例えば、図８の表示画面Ｇ１）のベアインストールの指定を送信する（ステップＳ１０１）。利用者端末装置１０の端末制御部１３は、入力部１１を介して、試験サーバ５０の指定とともにベアインストールの選択を受け付けて、ポータルサーバ２０に送信する。
【００８３】
次に、ポータルサーバ２０は、ベアインストール画面を利用者端末装置１０に送信する（ステップＳ１０２）。ポータルサーバ２０のＵＩ制御部は、指定された試験サーバ５０のベアインストールの選択に対して、メニュー画面（例えば、図９の表示画面Ｇ２）のデータを、利用者端末装置１０に送信する。
【００８４】
次に、利用者端末装置１０は、ベアインストール画面を表示する（ステップＳ１０３）。すなわち、端末制御部１３は、例えば、表示画面Ｇ２を表示部１２に表示させる。
【００８５】
次に、利用者端末装置１０は、ベアインストール要求をポータルサーバ２０に送信する（ステップＳ１０４）。すなわち、端末制御部１３は、表示画面Ｇ２において、利用者によって入力部１１を介してインストールするツール名及びバージョンが指定され、送信ボタンＢＴ２が押下された場合に、指定されたツール名及びバージョンのベアインストール要求を、ポータルサーバ２０に送信する。
【００８６】
次に、ポータルサーバ２０が、インストール依頼を生成する（ステップＳ１０５）。ポータルサーバ２０のＵＩ制御部２２１が受け付けたベアインストール要求に基づいて、命令実行部２２２が、指定されたツール名及びバージョンのツールをベアインストールするインストール依頼を生成する。なお、インストール依頼には、プレイブック情報が含まれる。また、ベアインストールのインストール依頼を生成する処理の詳細については、図１４を参照して後述する。
【００８７】
次に、ポータルサーバ２０は、生成したインストール依頼を、利用者に対応するテナント６０の管理サーバ４０に送信する（ステップＳ１０６）。
【００８８】
次に、管理サーバ４０は、プレイブック要求を共通サーバ３０に送信し（ステップＳ１０７）、対応するプレイブックを共通サーバ３０から取得する（ステップＳ１０８）。すなわち、管理サーバ４０の実行管理部４１１は、ポータルサーバ２０から受信したインストール依頼に含まれるプレイブック情報に基づいて、該当するプレイブックを、共通サーバ３０のプレイブック記憶部３１１から取得する。
【００８９】
次に、管理サーバ４０は、プレイブックによる実行モジュールを、指定された試験サーバ５０に送信する（ステップＳ１０９）。実行管理部４１１は、利用者から指定された試験サーバ５０に対して、取得したプレイブックを実行処理部４１２に実行させる。実行処理部４１２は、プレイブックに従って、ベアインストールを実行するための実行モジュールを試験サーバ５０に送信する。
【００９０】
次に、試験サーバ５０は、プレイブックに従ってベアインストール処理を実行する（ステップＳ１１０）。すなわち、試験サーバ５０は、管理サーバ４０から受信した実行モジュールを実行することで、ベアインストール処理を実行する。なお、試験サーバ５０は、ベアインストール処理の際に、管理サーバ４０経由又は直接、共通サーバ３０のインストーラ記憶部３１２からインストール資材をダウンロードする。
【００９１】
次に、試験サーバ５０は、インストールの完了通知を管理サーバ４０に送信し（ステップＳ１１１）、管理サーバ４０は、インストールの完了通知をポータルサーバ２０に送信する。
【００９２】
次に、ポータルサーバ２０は、利用者端末装置１０に完了通知を送信して（ステップＳ１１３）、利用者端末装置１０の表示部１２にインストールの完了を表示させる（ステップＳ１１４）。すなわち、ＵＩ制御部２２１は、利用者端末装置１０にベアインストールの完了を表示する画面データを送信し、利用者端末装置１０の表示部１２に表示させる。
【００９３】
次に、図１４を参照して、上述した図１３のステップＳ１０５及びステップＳ１０６の処理の詳細について説明する。
図１４は、本実施形態におけるベアインストールのインストール依頼を生成する処理の一例を示すフローチャートである。
【００９４】
図１４に示すように、まず、命令実行部２２２は、インストールするツールの情報を取得する（ステップＳ２０１）。命令実行部２２２は、ＵＩ制御部２２１によって受け付けたツール名及びバージョンに対応する「ツールＩＤ」を、例えば、ＵＩ制御部２２１から取得する。
【００９５】
次に、命令実行部２２２は、ツールの情報からプレイブック情報を取得する（ステップＳ２０２）。命令実行部２２２は、取得した「ツールＩＤ」に基づいて、インストーラ情報記憶部２１５から、「ツールＩＤ」に対応する「プレイブックＩＤ」を取得する（図５参照）。そして、命令実行部２２２は、取得した「プレイブックＩＤ」に対応するプレイブック情報をプレイブック情報記憶部２１７から取得する。ここで、プレイブック情報は、例えば、「ファイル名」及び「格納場所」である（図７参照）。
【００９６】
次に、命令実行部２２２は、プレイブック情報を含むインストール依頼を生成する（ステップＳ２０３）。ここで、命令実行部２２２は、利用者によって指定された試験サーバ５０に指定のツールをインストールするインストール依頼を生成する。
【００９７】
次に、命令実行部２２２は、インストール依頼を管理サーバ４０に送信する（ステップＳ２０４）。すなわち、命令実行部２２２は、利用者に対応するテナント６０の管理サーバ４０に、インストール依頼を送信する。ステップＳ２０４の処理後に、命令実行部２２２は、インストール依頼を生成する処理を終了する。
【００９８】
次に、図１５を参照して、本実施形態における試験サーバ５０へのコンテナを利用したインストール処理について説明する。
図１５は、本実施形態における試験サーバ５０へのコンテナを利用したインストール処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
【００９９】
図１５に示すように、まず、利用者端末装置１０が、試験サーバ画面（例えば、図８の表示画面Ｇ１）のコンテナの追加の指定を送信する（ステップＳ３０１）。利用者端末装置１０の端末制御部１３は、入力部１１を介して、試験サーバ５０の指定とともにコンテナの追加を受け付けて、ポータルサーバ２０に送信する。
【０１００】
次に、ポータルサーバ２０は、コンテナの追加画面を利用者端末装置１０に送信する（ステップＳ３０２）。ポータルサーバ２０のＵＩ制御部は、指定された試験サーバ５０のコンテナの追加の選択に対して、メニュー画面（例えば、図１０の表示画面Ｇ３）のデータを、利用者端末装置１０に送信する。
【０１０１】
次に、利用者端末装置１０は、コンテナの追加画面を表示する（ステップＳ３０３）。すなわち、端末制御部１３は、例えば、表示画面Ｇ３を表示部１２に表示させる。
【０１０２】
次に、利用者端末装置１０は、コンテナのインストール要求をポータルサーバ２０に送信する（ステップＳ３０４）。すなわち、端末制御部１３は、表示画面Ｇ３において、利用者によって入力部１１を介してインストールするコンテナ名及びバージョンと、起動ポートとが指定され、送信ボタンＢＴ２が押下された場合に、指定されたコンテナ名及びバージョンを指定された起動ポート（外部ポート）でコンテナを利用してインストールするコンテナのインストール要求を、ポータルサーバ２０に送信する。
【０１０３】
次に、ポータルサーバ２０が、インストール依頼を生成する（ステップＳ３０５）。ポータルサーバ２０のＵＩ制御部２２１が受け付けたコンテナのインストール要求に基づいて、命令実行部２２２が、指定されたツール名及びバージョンのツールを、指定された設定（外部ポート）でコンテナを利用してインストールするインストール依頼を生成する。なお、インストール依頼には、プレイブック情報及び設定情報（外部ポート情報）が含まれる。また、コンテナを利用したインストールのインストール依頼を生成する処理の詳細については、図１６を参照して後述する。
【０１０４】
次に、ポータルサーバ２０は、生成したインストール依頼を、利用者に対応するテナント６０の管理サーバ４０に送信する（ステップＳ３０６）。
【０１０５】
次に、管理サーバ４０は、プレイブック要求を共通サーバ３０に送信し（ステップＳ３０７）、対応するプレイブックを共通サーバ３０から取得する（ステップＳ３０８）。
【０１０６】
次に、管理サーバ４０は、プレイブックによる実行モジュールを、指定された試験サーバ５０に送信する（ステップＳ３０９）。実行管理部４１１は、利用者から指定された試験サーバ５０に対して、設定情報の設定（外部ポート）により取得したプレイブックを、実行処理部４１２に実行させる。実行処理部４１２は、プレイブックに従って、設定情報の設定によりコンテナを利用したインストールを実行するための実行モジュールを試験サーバ５０に送信する。
【０１０７】
次に、試験サーバ５０は、プレイブックに従ってコンテナ作成処理を実行する（ステップＳ３１０）。すなわち、試験サーバ５０は、管理サーバ４０から受信した実行モジュールを実行することで、コンテナを利用したインストール処理を実行する。なお、試験サーバ５０は、コンテナを利用したインストール処理の際に、管理サーバ４０経由又は直接、共通サーバ３０のコンテナ記憶部３１３からコンテナイメージをダウンロードする。
【０１０８】
続く、ステップＳ３１１からステップＳ３１４までの処理は、上述した図１３に示すステップＳ１１１からステップＳ１１４までの処理と同様であるため、ここではその説明を省略する。なお、ステップＳ３１３及びステップＳ３１４の処理において、ＵＩ制御部２２１は、利用者端末装置１０にコンテナ追加の完了を表示する画面データを送信し、利用者端末装置１０の表示部１２に表示させる。
【０１０９】
次に、図１６を参照して、上述した図１５のステップＳ３０５及びステップＳ３０６の処理の詳細について説明する。
図１６は、本実施形態におけるコンテナを利用したインストール依頼を生成する処理の一例を示すフローチャートである。
【０１１０】
図１６に示すように、まず、命令実行部２２２は、インストールするコンテナの情報を取得する（ステップＳ４０１）。命令実行部２２２は、ＵＩ制御部２２１によって受け付けたコンテナ名及びバージョンに対応する「コンテナＩＤ」を、例えば、ＵＩ制御部２２１から取得する。
【０１１１】
次に、命令実行部２２２は、コンテナの情報からプレイブック情報を取得する（ステップＳ４０２）。命令実行部２２２は、取得した「コンテナＩＤ」に基づいて、コンテナ情報記憶部２１６から、「コンテナＩＤ」に対応する「プレイブックＩＤ」を取得する（図６参照）。そして、命令実行部２２２は、取得した「プレイブックＩＤ」に対応するプレイブック情報をプレイブック情報記憶部２１７から取得する。ここで、プレイブック情報は、例えば、「ファイル名」及び「格納場所」である（図７参照）。
【０１１２】
次に、命令実行部２２２は、プレイブック情報と設定情報とを含むインストール依頼を生成する（ステップＳ４０３）。ここで、命令実行部２２２は、利用者によって指定された試験サーバ５０に指定のコンテナを、設定情報の設定（外部ポート）でインストールするインストール依頼を生成する。
【０１１３】
次に、命令実行部２２２は、インストール依頼を管理サーバ４０に送信する（ステップＳ４０４）。すなわち、命令実行部２２２は、利用者に対応するテナント６０の管理サーバ４０に、インストール依頼を送信する。ステップＳ４０４の処理後に、命令実行部２２２は、インストール依頼を生成する処理を終了する。
【０１１４】
次に、図１７を参照して、本実施形態におけるコンテナの制御処理について説明する。
図１７は、本実施形態におけるコンテナの制御処理の一例を示す図である。この図において、利用者によるログイン処理が予め完了しているものとする。
【０１１５】
図１７に示すように、まず、利用者端末装置１０が、試験サーバ画面（例えば、図８の表示画面Ｇ１）の試験サーバの指定を送信する（ステップＳ５０１）。利用者端末装置１０の端末制御部１３は、入力部１１を介して、試験サーバ５０の指定を受け付けて、ポータルサーバ２０に送信する。
【０１１６】
次に、ポータルサーバ２０は、コンテナ制御のメニュー画面を利用者端末装置１０に送信する（ステップＳ５０２）。ポータルサーバ２０のＵＩ制御部は、指定された試験サーバ５０の指定に対して、コンテナ制御のメニュー画面（例えば、図１１の表示画面Ｇ４）のデータを、利用者端末装置１０に送信する。
【０１１７】
次に、利用者端末装置１０は、コンテナ制御のメニュー画面を表示する（ステップＳ５０３）。すなわち、端末制御部１３は、例えば、表示画面Ｇ４を表示部１２に表示させる。
【０１１８】
次に、利用者端末装置１０は、コンテナの制御要求をポータルサーバ２０に送信する（ステップＳ５０４）。すなわち、端末制御部１３は、表示画面Ｇ４において、利用者によって入力部１１を介して、制御ボタンＢＴ３の“停止”、“再起動”などのコンテナの制御が押下された場合に、指定されたコンテナの制御を行うコンテナの制御要求を、ポータルサーバ２０に送信する。
【０１１９】
次に、ポータルサーバ２０が、コンテナ制御依頼を生成する（ステップＳ５０５）。ポータルサーバ２０のＵＩ制御部２２１が受け付けたコンテナの制御要求に基づいて、命令実行部２２２が、コンテナ制御依頼を生成する。なお、コンテナ制御依頼には、コンテナＩＤなどのコンテナの指定情報が含まれる。
【０１２０】
次に、ポータルサーバ２０は、生成したコンテナ制御依頼を、利用者に対応するテナント６０の管理サーバ４０に送信する（ステップＳ５０６）。
次に、管理サーバ４０は、コンテナ制御の命令を、指定された試験サーバ５０に送信する（ステップＳ５０７）。ここで、実行管理部４１１は、コンテナ制御依頼を受け付けて、管理処理部４１３に、コンテナ制御依頼に対応するコンテナ制御の命令を、試験サーバ５０に送信させる。
【０１２１】
次に、試験サーバ５０は、コンテナ制御の命令により、コンテナ制御処理を実行する（ステップＳ５０８）。
【０１２２】
続く、ステップＳ５０９からステップＳ５１２までの処理は、上述した図１３に示すステップＳ１１１からステップＳ１１４までの処理と同様であるため、ここではその説明を省略する。なお、ステップＳ５０９及びステップＳ５１０の処理において、ＵＩ制御部２２１は、利用者端末装置１０にコンテナ制御の完了を表示する画面データを送信し、利用者端末装置１０の表示部１２に表示させる。
【０１２３】
以上説明したように、本実施形態による情報処理システム１は、コンピュータリソースの提供を受ける契約を示す複数のテナント６０それぞれに対応したソフトウェアの開発環境を構築可能な情報処理システム１であって、実行管理部４１１（手順取得部）と、実行処理部４１２（構築処理部）とを備える。実行管理部４１１は、テナント６０に対応する利用者からの要求に応じたプレイブック（手順情報）を取得する。ここで、プレイブックは、例えば、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定した手順情報である。実行処理部４１２は、実行管理部４１１によって取得したプレイブックに基づいて、テナント６０に対応する試験サーバ５０に、少なくとも開発環境用のソフトウェアをインストールさせる。
【０１２４】
これにより、本実施形態による情報処理システム１は、プレイブックに基づいて、コンテナを利用して、開発環境用のソフトウェアをインストールするため、例えば、ソフトウェアに関する専門知識を持っていない利用者、或いは、スキルレベルが低い利用者であっても、容易にソフトウェアの開発環境を構築することができる。よって、本実施形態による情報処理システム１は、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【０１２５】
また、本実施形態による情報処理システム１は、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを記憶する共通サーバ３０を備える。実行管理部４１１は、利用者からの要求に応じたプレイブックを共通サーバ３０から取得し、実行処理部４１２は、プレイブックに基づいて、試験サーバ５０に、共通サーバ３０が記憶するソフトウェアをインストールさせる。
【０１２６】
これにより、本実施形態による情報処理システム１は、共通サーバ３０により、ソフトウェアの開発環境を構築するためのソフトウェア及びプレイブックを一括管理することができる。よって、本実施形態による情報処理システム１は、利用者による手順ミスをさらに低減することができる。
また、ソフトウェア資産を共通サーバ３０で一括管理するため、本実施形態による情報処理システム１では、ツールに関連するトラブルの対策や更新を容易に行うことができる。
【０１２７】
また、本実施形態では、プレイブックには、予め検証されたソフトウェアのバージョン及び組合せにより開発環境用のソフトウェアをインストールする手順が規定されている。実行処理部４１２は、プレイブックに基づいて、バージョン及び組合せが検証済みの開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理システム１は、検証済みの開発環境用のソフトウェアを提供できるため、ツールに関連するトラブルを低減する、又は未然に防ぐことができる。
【０１２８】
また、本実施形態による情報処理システム１は、実行管理部４１１と、実行処理部４１２とを含み、テナント６０ごとに構築された管理サーバ４０を備える。
これにより、本実施形態による情報処理システム１は、インストール処理の負荷を分散することができる。また、例えば、管理サーバ４０と試験サーバ５０とをローカルなネットワーク（ネットワークＮＷ２）に接続して、試験サーバ５０を外部のネットワークから遮断することができるため、本実施形態による情報処理システム１は、開発環境のセキュリティを向上させることができる。
【０１２９】
また、本実施形態による情報処理方法は、コンピュータリソースの提供を受ける契約を示す複数のテナント６０それぞれに対応したソフトウェアの開発環境を構築可能な情報処理システムの情報処理方法であって、手順取得ステップと、構築処理ステップとを含む。手順取得ステップにおいて、実行管理部４１１が、共通のオペレーティングシステム上に仮想領域を構築するコンテナ型仮想化を利用してソフトウェアをインストールするための手順を規定したプレイブックであって、テナント６０に対応する利用者からの要求に応じたプレイブックを取得する。構築処理ステップにおいて、実行処理部４１２が、手順取得ステップによって取得したプレイブックに基づいて、テナント６０に対応する試験サーバ５０に、少なくとも開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム１と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【０１３０】
また、本実施形態による情報処理システム１は、ＵＩ制御部２２１（要求受付部）と、命令実行部２２２（インストール依頼部）と、実行処理部４１２とを備える。ＵＩ制御部２２１は、メニュー画面を表示させて、テナント６０に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付ける。命令実行部２２２は、ＵＩ制御部２２１によって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント６０に対応する試験サーバ５０に設定情報の示す設定でインストールさせるインストール依頼を生成する。実行処理部４１２は、命令実行部２２２によって生成されたインストール依頼に応じて、試験サーバ５０に、開発環境用のソフトウェアを設定情報の示す設定でインストールさせる。
【０１３１】
これにより、本実施形態による情報処理システム１は、ＵＩ制御部２２１によってメニュー画面で受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、該開発環境用のソフトウェアを設定情報の示す設定で、試験サーバ５０にインストールすることができる。そのため、本実施形態による情報処理システム１は、例えば、ソフトウェアに関する専門知識を持っていない利用者、或いは、スキルレベルが低い利用者であっても、容易にソフトウェアの開発環境を構築することができる。よって、本実施形態による情報処理システム１は、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【０１３２】
例えば、本実施形態による情報処理システム１は、メニュー画面（例えば、図９の表示画面Ｇ２、図１０の表示画面Ｇ３など）を選択することで、自動で開発環境用のソフトウェア及び設定情報を行うことができ、ソフトウェアの開発環境の構築時間を大幅に短縮することができる。
【０１３３】
また、本実施形態では、命令実行部２２２は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報（手順指定情報）を含むインストール依頼を生成する。実行処理部４１２は、インストール依頼に含まれるプレイブック情報に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ５０にインストールさせる。
これにより、本実施形態による情報処理システム１は、利用者の要求に応じたプレイブックを用いて、開発環境用のソフトウェアをインストールできるため、利用者による手順ミスをさらに低減することができる。
【０１３４】
また、本実施形態による情報処理システム１は、複数のプレイブックを記憶する共通サーバ３０から、プレイブック情報に対応するプレイブックを取得する実行管理部４１１（手順取得部）を備える。実行処理部４１２は、実行管理部４１１によって取得したプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ５０にインストールさせる。
これにより、本実施形態による情報処理システム１は、複数のプレイブックを記憶する共通サーバ３０からプレイブックを取得するため、多様な開発環境の構築に対応することができる。また、共通サーバ３０により、プレイブックを一括管理することができる。よって、本実施形態による情報処理システム１は、多様な開発環境の構築に対応させつつ、利用者による手順ミスをさらに低減することができる。
【０１３５】
また、本実施形態では、ＵＩ制御部２２１は、ソフトウェアの開発環境の要求情報として、コンテナを利用してインストールするソフトウェアの識別情報（例えば、コンテナ名、コンテナＩＤなど）と、当該ソフトウェアのバージョン情報と、当該ソフトウェアが外部と接続するための外部ポート情報とを受け付ける。命令実行部２２２は、ソフトウェアの識別情報に対応するソフトウェアであって、バージョン情報の示すバージョンのソフトウェアを、当該ソフトウェアに予め設定された内部ポート情報と外部ポート情報とを対応付けて、コンテナを利用してインストールさせるインストール依頼を生成する。
これにより、本実施形態による情報処理システム１は、コンテナの外部ポートを指定したインストールを、専門知識を必要とせず容易に行うことができる。
【０１３６】
また、本実施形態による情報処理システム１は、ポータルサーバ２０を備える。ポータルサーバ２０は、上述したＵＩ制御部２２１と命令実行部２２２とを含み、複数のテナント６０それぞれに対応したソフトウェアの開発環境を構築させる。
これにより、本実施形態による情報処理システム１は、ポータルサーバ２０を用いることで、複数のテナント６０に対応させることができるとともに、開発環境の要求情報に応じたソフトウェアのインストールを容易に行うことができる。よって、本実施形態による情報処理システム１は、開発環境の構築時間をさらに短縮することができる。
【０１３７】
また、本実施形態による情報処理方法は、要求受付ステップと、インストール依頼ステップと、構築処理ステップとを含む。要求受付ステップにおいて、ＵＩ制御部２２１が、メニュー画面を表示させて、テナント６０に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付ける。インストール依頼ステップにおいて、命令実行部２２２が、要求受付ステップによって受け付けた要求情報に基づいて、開発環境用のソフトウェア及び設定情報を決定し、当該開発環境用のソフトウェアを、テナント６０に対応する試験サーバ５０に設定情報の示す設定でインストールさせるインストール依頼を生成する。構築処理ステップにおいて、実行処理部４１２が、インストール依頼ステップによって生成されたインストール依頼に応じて、試験サーバ５０に、開発環境用のソフトウェアを設定情報の示す設定でインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム１と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【０１３８】
また、本実施形態による情報処理システム１は、ポータルサーバ２０と、管理サーバ４０とを備えている。ポータルサーバ２０は、テナント６０に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、少なくとも開発環境用のソフトウェアを、テナント６０に対応する試験サーバ５０に、コンテナを利用してインストールさせるインストール依頼を生成する。管理サーバ４０は、テナント６０ごとに構築され、ポータルサーバ２０によって生成されたインストール依頼に応じて、試験サーバ５０に、コンテナ型仮想化を利用して開発環境用のソフトウェアをインストールさせる。
【０１３９】
これにより、本実施形態による情報処理システム１は、例えば、インストールに関わる計算リソースやジョブ管理を、テナント６０ごとに構築された管理サーバ４０に処理させることができる。よって、本実施形態による情報処理システム１は、管理サーバ４０によって、処理を分散することができるため、複数のソフトウェアの開発環境を構築する際に、パフォーマンスが低下することを抑制することができる。
【０１４０】
また、本実施形態では、ポータルサーバ２０は、要求情報に基づいて、開発環境用のソフトウェアをインストールするための手順を規定したプレイブックを指定するプレイブック情報（手順指定情報）を含むインストール依頼を生成する。管理サーバ４０は、インストール依頼に含まれるプレイブック情報に基づいて取得されたプレイブックに基づいて、開発環境用のソフトウェアを試験サーバ５０にインストールさせる。
これにより、本実施形態による情報処理システム１は、利用者の要求に応じたプレイブックを用いて、開発環境用のソフトウェアをインストールできるため、利用者による手順ミスを低減することができる。
【０１４１】
また、本実施形態では、ポータルサーバ２０と共通サーバ３０とは、複数のテナント６０に対して共通に構築されている。
これにより、本実施形態による情報処理システム１は、共通のポータルサーバ２０及び共通サーバ３０によって、各テナント６０に対する開発環境の構築、及びプレイブックを一括管理することができる。
【０１４２】
また、本実施形態では、ポータルサーバ２０は、試験サーバ５０にインストールしているソフトウェアを制御する制御指示を、利用者から受け付ける。管理サーバ４０は、ポータルサーバ２０が受け付けた制御指示に基づいて、試験サーバ５０にインストールしているソフトウェアを制御する。
これにより、本実施形態による情報処理システム１は、複数のソフトウェアを制御（管理）する際に、パフォーマンスが低下することを抑制することができる。
【０１４３】
また、本実施形態による情報処理方法は、第１のステップと、第２のステップとを含む。第１のステップにおいて、ポータルサーバ２０が、テナント６０に対応する利用者から、ソフトウェアの開発環境の要求情報を受け付け、受け付けた要求情報に基づいて、少なくとも開発環境用のソフトウェアを、テナント６０に対応する試験サーバ５０に、コンテナを利用してインストールさせるインストール依頼を生成する。第２のステップにおいて、テナント６０ごとに構築された管理サーバ４０が、第１のステップによって生成されたインストール依頼に応じて、試験サーバ５０に、コンテナを利用して開発環境用のソフトウェアをインストールさせる。
これにより、本実施形態による情報処理方法は、上述した本実施形態による情報処理システム１と同様の効果を奏し、複数のソフトウェアの開発環境を構築する際に、パフォーマンスが低下することを抑制することができる。
【０１４４】
［第２の実施形態］
次に、図１８を参照して、第２の実施形態による情報処理システム１ａについて説明する。本実施形態による情報処理システム１ａは、上述した第１の実施形態の情報処理システム１における管理サーバ４０の機能をポータルサーバ２０に含めた場合の変形例について説明する。
【０１４５】
図１８は、本実施形態による情報処理システム１ａの一例を示すブロック図である。
図１８に示すように、情報処理システム１ａは、利用者端末装置１０と、ポータルサーバ２０ａと、共通サーバ３０と、複数のテナント６０ａのそれぞれが有する試験サーバ５０を備えている。本実施形態において、情報処理システム１ａは、複数のテナント６０ａそれぞれに対応したソフトウェアの開発環境を構築可能なシステムである。
この図において、図１に示す構成と同一の構成には、同一の符号を付与して、ここではその説明を省略する。
【０１４６】
なお、テナント６０ａは、コンピュータリソースの提供を受ける契約を示し、テナント６０ａ−１、テナント６０ａ−２、・・・は、それぞれ異なる契約を示している。また、本実施形態において、テナント６０ａ−１、テナント６０ａ−２、・・・は、情報処理システム１ａが備える任意のテナントを示す場合、又は特に区別しない場合には、テナント６０ａとして説明する。
また、情報処理システム１ａにおいて、ポータルサーバ２０ａ及び共通サーバ３０は、当該システムを提供するシステム運用者１００によって提供及び管理される。
【０１４７】
ポータルサーバ２０ａは、情報処理システム１ａを利用するためのポータルサイトであり、各種メニュー画面及び操作画面などの表示データを、ネットワークＮＷ１を介して、利用者端末装置１０に送信して、各種メニュー画面及び操作画面を利用者端末装置１０の表示部１２に表示させる。また、ポータルサーバ２０ａは、利用者端末装置１０からネットワークＮＷ１を介して受信した入力情報に基づいて、各種処理を実行する。
また、ポータルサーバ２０ａは、ポータル記憶部２１と、ポータル制御部２２ａとを備えている。
【０１４８】
ポータル制御部２２ａは、例えば、ＣＰＵなどを含むプロセッサであり、ポータルサーバ２０ａを統括的に制御する。ポータル制御部２２ａは、例えば、ＵＩ制御部２２１と、命令実行部２２２と、実行管理部４１１と、実行処理部４１２と、管理処理部４１３とを備えている。実行管理部４１１、実行処理部４１２、及び管理処理部４１３の機能は、第１の実施形態の管理サーバ４０が備える実行管理部４１１、実行処理部４１２、及び管理処理部４１３と同様であるので、ここではその説明を省略する。
【０１４９】
以上説明したように、本実施形態による情報処理システム１ａでは、第１の実施形態における管理サーバ４０の機能をポータルサーバ２０ａが備える。このような構成においても、本実施形態による情報処理システム１ａは、第１の実施形態による情報処理システム１と同様の効果を奏し、ソフトウェアの開発環境を構築する際に、手順ミスを低減し、且つ、構築時間を短縮することができる。
【０１５０】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、情報処理システム１（１ａ）は、共通サーバ３０を備える例を説明したが、共通サーバ３０の共通記憶部３１の一部、又は全部を、ポータルサーバ２０（２０ａ）又は管理サーバ４０が備えるようにしてもよい。
【０１５１】
また、上記の各実施形態において、情報処理システム１（１ａ）は、ポータルサーバ２０（２０ａ）のメニュー画面から、仮想マシンによりテナント６０内の試験サーバ５０及び管理サーバ４０を、自動で構築できるようにしてもよい。この場合、ＯＳのインストールやネットワークの構築などを、上述した開発環境の構築と同様の仕組み（プレイブックを取得してインストールする仕組み）を利用するようにしてもよい。これにより、情報処理システム１（１ａ）は、テナント６０の仮想マシンの取得を含めた開発環境の構築を、手順ミスを低減し、且つ、構築時間を短縮して行うことができる。
【０１５２】
また、ネットワークの構築を行う場合に、ポータルサーバ２０（２０ａ）が、サーバの別に応じて、グローバルＩＰアドレス（Ｆｌｏａｔｉｎｇ  ＩＰアドレス）、又はローカルＩＰアドレス（Ｎｏｎ  Ｆｌｏａｔｉｎｇ  ＩＰアドレス）を適切に割振って、ネットワークを、自動で構築するようにしてもよい。これにより、標準的な開発環境のネットワークの構築を自動で行うことができるため、情報処理システム１（１ａ）は、利便性を向上させることができる。
【０１５３】
また、上記の第１の実施形態において、情報処理システム１は、共通サーバ３０とは別に、共通記憶部３１と同様の記憶部を管理サーバ４０に備え、定期的又は更新時に、共通記憶部３１内の情報を、共通サーバ３０から管理サーバ４０に配信して同期させるようにしてもよい。この場合、実行管理部４１１及び実行処理部４１２は、共通サーバ３０の代わりに、管理サーバ４０内の記憶部から、プレイブックと、ソフトウェア（インストーラ及びコンテナイメージ）とを取得する。
【０１５４】
また、上記の第１の実施形態において、情報処理システム１は、試験サーバ５０へのベアインストール及びコンテナを利用したインストールと同様の手法を用いて、管理サーバ４０に対して、ベアインストール及びコンテナを利用したインストールを実行するようにしてもよい。
【０１５５】
なお、上述した情報処理システム１（１ａ）が備える各構成は、内部に、コンピュータシステムを有している。そして、上述した情報処理システム１（１ａ）が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理システム１（１ａ）が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１５６】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理システム１（１ａ）が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１５７】
また、上述した機能の一部又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１５８】
１、１ａ  情報処理システム
１０  利用者端末装置
１１  入力部
１２  表示部
１３  端末制御部
２０、２０ａ  ポータルサーバ
２１  ポータル記憶部
２２、２２ａ  ポータル制御部
３０  共通サーバ
３１  共通記憶部
４０、４０−１、４０−２  管理サーバ
４１  管理制御部
５０、５１−１、５１−２、５２−１、５２−２  試験サーバ
６０、６０ａ、６０−１、６０ａ−１、６０−２、６０ａ−２  テナント
１００  システム運用者
２１１  テナント情報記憶部
２１２  利用者情報記憶部
２１３  メニュー情報記憶部
２１４  仮想マシン情報記憶部
２１５  インストーラ情報記憶部
２１６  コンテナ情報記憶部
２１７  プレイブック情報記憶部
２２１  ＵＩ制御部
２２２  命令実行部
３１１  プレイブック記憶部
３１２  インストーラ記憶部
３１３  コンテナ記憶部
４１１  実行管理部
４１２  実行処理部
４１３  管理処理部
【図１】
2019128617.tif 000003
【図２】
2019128617.tif 000004
【図３】
2019128617.tif 000005
【図４】
2019128617.tif 000006
【図５】
2019128617.tif 000007
【図６】
2019128617.tif 000008
【図７】
2019128617.tif 000009
【図８】
2019128617.tif 000010
【図９】
2019128617.tif 000011
【図１０】
2019128617.tif 000012
【図１１】
2019128617.tif 000013
【図１２】
2019128617.tif 000014
【図１３】
2019128617.tif 000015
【図１４】
2019128617.tif 000016
【図１５】
2019128617.tif 000017
【図１６】
2019128617.tif 000018
【図１７】
2019128617.tif 000019
【図１８】
2019128617.tif 000020