(57)【特許請求の範囲】
【請求項１】
物理マシン上で動作する仮想機器を含むユーザ環境において動作するソフトウェアのソフトウェア情報を含む該ユーザ環境に関する環境情報を該ユーザ環境から抽出する環境情報抽出部と、
前記環境情報抽出部により抽出された環境情報をもとに、該環境情報に対応するユーザ環境に含まれる複数の仮想マシンで動作する複数のソフトウェアの接続パターンを判定し、判定した接続パターン毎の試験パターンをデータベースから取得する取得部と、
前記環境情報抽出部により抽出された環境情報に対応するユーザ環境に対して、該ユーザ環境で動作するソフトウェアの修正プログラムを適用後、前記取得部により取得された接続パターン毎の試験パターンを実行する実行部と
を備えることを特徴とする仮想機器試験装置。
【請求項２】
さらに、
前記取得部は、前記環境情報抽出部により抽出された環境情報をもとに、該環境情報に対応するユーザ環境で動作するソフトウェアを、ソフトウェア毎、グループ毎又は機能分類毎に分類し、ソフトウェア毎、グループ毎又は機能分類毎の試験パターンをデータベースから取得する
ことを特徴とする請求項１に記載の仮想機器試験装置。
【請求項３】
前記実行部は、前記環境情報抽出部により抽出された環境情報に対応するユーザ環境に対して、該ユーザ環境で用いられるデータを設定した上で前記修正プログラムを適用した後、前記試験パターンを実行し、該試験パターンの実行後における該データの正常性をチェックする
ことを特徴とする請求項１又は２に記載の仮想機器試験装置。
【請求項４】
前記ユーザ環境に関する構成情報を該ユーザ環境から抽出する構成情報抽出部と、
前記構成情報抽出部により取得された構成情報をもとに、物理マシン上に前記ユーザ環境の複製を作成する複製部とをさらに備え、
前記環境情報抽出部は、前記環境情報を該ユーザ環境の複製から抽出し、
前記取得部は、前記環境情報抽出部により抽出された前記環境情報をもとに、該環境情報に対応する該ユーザ環境の複製に含まれる複数の仮想マシンで動作する複数のソフトウェアの接続パターン毎の試験パターンをデータベースから取得し、
前記実行部は、前記複製部により作成された前記ユーザ環境の複製に対して、該ユーザ環境の複製で動作するソフトウェアの修正プログラムを適用後、前記取得部により取得された試験パターンを実行する
ことを特徴とする請求項１に記載の仮想機器試験装置。
【請求項５】
前記実行部により前記ユーザ環境の複製に対して前記試験パターンが実行された結果が正常であった場合に、前記ユーザ環境で動作するソフトウェアの修正プログラムを前記ユーザ環境に対して適用する適用部をさらに備える
ことを特徴とする請求項４に記載の仮想機器試験装置。
【請求項６】
仮想機器試験装置が行う仮想機器試験方法であって、
前記仮想機器試験装置の環境情報抽出部が、物理マシン上で動作する仮想機器を含むユーザ環境において動作するソフトウェアのソフトウェア情報を含む該ユーザ環境に関する環境情報を該ユーザ環境から抽出し、
前記仮想機器試験装置の取得部が、前記環境情報抽出部により抽出された環境情報をもとに、該環境情報に対応するユーザ環境に含まれる複数の仮想マシンで動作する複数のソフトウェアの接続パターンを判定し、判定した接続パターン毎の試験パターンをデータベースから取得し、
前記仮想機器試験装置の実行部が、前記環境情報抽出部により抽出された環境情報に対応するユーザ環境に対して、該ユーザ環境で動作するソフトウェアの修正プログラムを適用後、前記取得部により取得された試験パターンを実行する
ことを含むことを特徴とする仮想機器試験方法。
【請求項７】
請求項１〜５の何れか１つに記載の仮想機器試験装置としてコンピュータを機能させる仮想機器試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想機器試験装置、仮想機器試験方法及び仮想機器試験プログラムに関する。
【背景技術】
【０００２】
近年、ホスティングサービス、ＩａａＳ（Infrastructure  as  a  Service）型クラウドサービス等のような、ＶＰＳ（Virtual  Private  Server）や仮想資源を提供するサービスが普及している。ユーザは、サービス事業者と契約することで、仮想マシン、仮想ネットワーク、仮想ルーター、仮想ストレージ、仮想ロードバランサー等の仮想機器を利用できる。例えば、ユーザは、データベース、Ｗｅｂサーバ、メールサーバ、アプリケーションサーバ等のソフトウェアを仮想マシン上で動作させることにより、自身でハードウェアを用意せずとも、自身専用のサーバを構築できる。
【０００３】
ここで、仮想マシン等で利用されるＯＳ（Operating  System）やソフトウェアには、セキュリティ脆弱性の解消や機能追加などのため修正プログラム（以下、「ソフトウェアパッチ」又は「パッチ」と呼ぶ）が、ソフトウェア製造元より定期的に提供されている。これらのソフトウェアパッチの仮想マシンへの適用は、ユーザが選択して適用する場合が多く、適用はユーザ責任としているのが通常である。なぜなら、サービス事業者がこれらソフトウェアパッチを仮想マシン等に自動配布した場合に、何らかの不具合が生じる可能性があるためである。
【０００４】
そのため、ユーザは、仮想マシン等に対してソフトウェアパッチを適用前に正常に動作していたソフトウェアによるサービスが、適用後も正常に動作するかの確認が必要であり、ユーザの負担となっている。そこで、ソフトウェアパッチを、ユーザの代わりにサービス事業者が検証して、パッチ適用後もユーザのサービスが正常に動作することを確認することで、ユーザの負担を低減できる。例えば、ユーザのサービスが正常に動作する試験を自動化するツールとして、JenkinsやSelenium等がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１４−２５４１０５号明細書
【非特許文献】
【０００６】
【非特許文献１】Alan  Mark  Berg,“Jenkins  Continuous  Integration  Cookbook”，Packt  Publishing，June  2012.
【非特許文献２】A．Holmes  and  M．Kellogg，“Automating  Functional  Tests  Using  Selenium”，IEEE  Agile  Conference  2006，July，2006.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の従来技術では、サービス事業者が、仮想機器を含むユーザ毎のユーザテナント内で動作するソフトウェアに対する修正プログラムの適用について、適用後の正常性確認を行うために、ユーザテナント毎に試験パターンの組合せを事前に準備しておく必要がある。このため、ユーザ数が多い場合に、事前に準備しておく必要がある試験パターンの組合せが増大し、修正プログラムの適用の正常性確認を容易に行うことができない。
【０００８】
よって、サービス事業者にとって、ユーザ毎に設定が異なるユーザテナントに対して、パッチ適用後の正常性確認を検証することは、非常に大きな検証コストがかかる。このため、ユーザ毎に設定が異なるユーザテナントに対するパッチの検証を実施しているサービス事業者は市中に無い。
【０００９】
また、上述の従来技術は、ユーザテナント毎の試験パターン抽出の際、ソフトウェアを束ねた概念であるソフトウェアグループ、ソフトウェアグループを束ねた概念である機能分類の２段階抽象化を行い、上位概念に該当する試験パターンを抽出することで、試験効率化を行う。具体的には、例えば、ユーザテナントの仮想マシンにＤＢ＃Ｃ９．１というデータベース（Data  Base：ＤＢ）がインストールされている場合に、事前に準備されたＤＢ＃Ｃのソフトウェアグループ用試験やＤＢ機能分類用試験を行う。これにより、サービス事業者は、個々のソフトウェア毎のテストケースを準備しなくてよい。しかし、上述の従来技術は、個々の仮想マシンのソフトウェアに基づいた単体のリグレッション試験を行うことはできるが、複数の仮想マシンにまたがる結合試験は行うことができない。
【００１０】
本願が開示する実施形態の一例は、上記に鑑みてなされたものであって、ユーザ毎のユーザテナントにおける複数の仮想機器で動作する複数のソフトウェア間の結合テストを含む修正プログラムの適用の正常性確認を容易に行うことを目的とする。
【課題を解決するための手段】
【００１１】
本願が開示する実施形態の一例において、仮想機器試験装置は、環境情報抽出部、取得部、実行部を有する。環境情報抽出部は、物理マシン上で動作する仮想機器を含むユーザ環境において動作するソフトウェアのソフトウェア情報を含む該ユーザ環境に関する環境情報を該ユーザ環境から抽出する。取得部は、前記環境情報抽出部により抽出された環境情報をもとに、該環境情報に対応するユーザ環境に含まれる複数の仮想マシンで動作する複数のソフトウェアの接続パターンを判定し、判定した接続パターン毎の試験パターンをデータベースから取得する。実行部は、前記環境情報抽出部により抽出された環境情報に対応するユーザ環境に対して、該ユーザ環境で動作するソフトウェアの修正プログラムを適用後、前記取得部により取得された接続パターン毎の試験パターンを実行する。
【発明の効果】
【００１２】
本願が開示する実施形態の一例によれば、例えば、ユーザ毎のユーザテナントにおける複数の仮想機器で動作する複数のソフトウェア間の結合テストを含む修正プログラムの適用の正常性確認を容易に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、パッチ正常性確認システムを含む仮想機器システムの構成の一例を示す図である。
【図２Ａ】図２Ａは、仮想機器システムにおけるパッチ正常性確認処理の一例を示す図である。
【図２Ｂ】図２Ｂは、ユーザテナントにおいて複数の仮想マシンに機能が跨る構成の一例を示す図である。
【図３】図３は、ソフトウェア関係テーブルの一例を示す図である。
【図４】図４は、接続パターン情報テーブルの一例を示す図である。
【図５】図５は、テストケーステーブルの一例を示す図である。
【図６】図６は、仮想機器システムにおけるパッチ正常性確認処理の一例を示すシーケンス図である。
【図７】図７は、プログラムが実行されることにより、パッチ正常性確認装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１４】
［実施形態］
以下、本願が開示する仮想機器試験装置、仮想機器試験方法及び仮想機器試験プログラムの実施形態を説明する。なお、以下の実施形態は、一例を示すに過ぎず、本願が開示する技術を限定するものではない。また、以下に示す実施形態及びその変形例は、矛盾しない範囲で適宜組合せてもよい。以下、「パッチ」は、ＯＳ、アプリケーション等のソフトウェアの不具合修正又は機能向上等のために、定期的又は不定期に配布される修正プログラムを言う。また、以下では、「ユーザ」は、仮想マシン等の仮想機器を含む仮想環境であるユーザテナントの契約者を指す。また、以下では、「オペレータ」は、仮想マシン等の仮想機器を含む仮想環境であるユーザテナントの提供サービスを行うサービス事業者の要員を指す。
【００１５】
（仮想機器システムの構成）
図１は、パッチ正常性確認システムを含む仮想機器システムの構成の一例を示す図である。仮想機器システムＳは、オペレータ端末１、ユーザ端末２、検証起動装置３、パッチ正常性確認システム１００、クラウドコントローラ２００、物理マシン３０１〜３０３を含む。少なくともクラウドコントローラ２００、物理マシン３０１〜３０３は、例えばデータセンタ内に設置される。オペレータ端末１は、パッチ正常性確認システム１００を操作するオペレータの端末である。ユーザ端末２は、クラウドコントローラ２００を介して物理マシン３０１〜３０３上の仮想資源を操作するユーザの端末である。オペレータ端末１、ユーザ端末２、検証起動装置３、パッチ正常性確認システム１００は、クラウドコントローラ２００及び物理マシン３０１〜３０３と同一のデータセンタ内に設置されてもよいし、異なるデータセンタ内に設置されてもよい。また、検証起動装置３は、検証起動プログラム等が動作するコンピュータ等の装置である。
【００１６】
なお、図１に示す、オペレータ端末１、ユーザ端末２、検証起動装置３、パッチ正常性確認システム１００、クラウドコントローラ２００、物理マシン３０１〜３０３の数は、一例を示すに過ぎず、仮想機器システムＳの構成に応じて適切な数とすることができる。また、図１では、説明の便宜上、仮想マシン３０１ａ〜３０１ｂが動作する物理マシンを物理マシン３０１、仮想ルーター３０２ａ、仮想ネットワーク３０２ｂ、仮想ロードバランサー３０２ｃ等の仮想ネットワーク機器が動作する物理マシンを物理マシン３０２、仮想ストレージ３０３ａ〜３０３ｂが動作する物理マシンを物理マシン３０３とする。しかし、各物理マシンへの各仮想機器の配置は、これに限られるものではない。
【００１７】
パッチ正常性確認システム１００は、パッチ正常性確認装置１０、テストケースＤＢ２０を含む。パッチ正常性確認装置１０は、ネットワーク等の所定の通信回線を介して、オペレータ端末１と接続される。また、パッチ正常性確認装置１０は、ネットワーク等の所定の通信回線を介して、テストケースＤＢ２０が接続される。
【００１８】
テストケースＤＢ２０は、ソフトウェア関係テーブル２０ａ、接続パターン情報テーブル２０ｂ、テストケーステーブル２０ｃを有する。ソフトウェア関係テーブル２０ａは、「機能分類」「ソフトウェアグループ」「ソフトウェア名」のカラムを有する。接続パターン情報テーブル２０ｂは、「接続パターン名」「配置定義情報」のカラムを有する。テストケーステーブル２０ｃは、「接続パターン」「機能分類」「ソフトウェアグループ」「ソフトウェア名」「テストケース」「テストケース種類」「確認対象」のカラムを有する。ソフトウェア関係テーブル２０ａ、接続パターン情報テーブル２０ｂ、テストケーステーブル２０ｃの詳細は、後述する。
【００１９】
パッチ正常性確認装置１０は、テンプレート抽出部１１、テナント複製部１２、環境情報抽出部１３、テストケース取得部１４、テスト実行部１５を有する。テンプレート抽出部１１は、オペレータ端末１からのオペレータの指示、もしくは、検証起動装置３の指示により、パッチ正常性確認対象のソフトウェアが動作するユーザを特定し、特定したユーザのユーザテナントの構成情報を当該ユーザテナントから抽出する。なお、検証起動装置３の指示によりパッチ正常性確認装置１０がユーザテナントの構成情報を抽出する場合は、検証起動装置３は、次のように動作する。すなわち、検証起動装置３は、サービス事業者がデータベース等で管理するユーザ毎の契約情報に基づき、検証するユーザを定期的（例えば１か月に１回等）に抽出し、抽出したユーザについてパッチ正常性確認装置１０に検証を依頼することで、自動的に検証を行う。この場合、契約情報は、「定期的に（例えば１か月に１回等）検証する」等の情報を含む。「ユーザテナント」は、ユーザ毎に１以上の物理マシン上に構築された１つの仮想環境、すなわち仮想マシン等の仮想機器を含んで構築された一体のコンピュータ環境である。「構成情報」は、ユーザ毎のテナントの構成を、例えばＸＭＬ（Extensible  Markup  Language）のタグ付き言語等、ＪＳＯＮ（JavaScript（登録商標）  Object  Notation）等の形式で記載されたテキストで示すテンプレートである。
【００２０】
テナント複製部１２は、テンプレート抽出部１１により抽出された構成情報をもとに、１以上の物理マシン上に構築される、当該構成情報で構成が規定されるユーザテナントの複製を、同一の物理マシン又は他の物理マシン上に作成する。
【００２１】
環境情報抽出部１３は、テナント複製部１２により作成されたユーザテナントの複製のボリューム内を調査し、当該ユーザテナントの複製にインストールされているソフトウェアの情報を含む、当該ユーザテナントの環境情報を抽出する。そして、テストケース取得部１４は、抽出した環境情報を、ソフトウェア関係テーブル２０ａを参照して分析し、当該ソフトウェアの情報に規定されるソフトウェアを「ソフトウェア名」「ソフトウェアグループ」「機能分類」の３つの階層で分類する。
【００２２】
最下位階層の「ソフトウェア名」は、ソフトウェアの具体的製品名及びそのバージョン情報を含む。中位階層の「ソフトウェアグループ」は、「ソフトウェア名」で特定される各ソフトウェアを、ベンダ及び／又は製品ファミリーで分類する区分である。上位階層の「機能分類」は、「ソフトウェアグループ」で区分されたソフトウェアを、ＯＳ、データベース、Ｗｅｂ等の機能で分類する区分である。
【００２３】
また、環境情報抽出部１３は、テナント複製部１２が用いたテンプレートに記載されているＪＳＯＮやＨＯＴ（Heat  Orchestration  Template）で各仮想機器の属性や接続関係が記述されたユーザテナントの構成情報を取得し、取得した構成情報をパースする。そして、環境情報抽出部１３は、ユーザテナントの環境情報及び構成情報のパース結果に基づき、ユーザテナントの環境情報が含む各ソフトウェアが実装された各仮想マシンの「接続パターン」を判定する。
【００２４】
そして、テストケース取得部１４は、テストケーステーブル２０ｃを参照し、「接続パターン」「ソフトウェア名」「ソフトウェアグループ」「機能分類」の各階層に項目値が合致するテストケースのレコードをテストケーステーブル２０ｃから抽出する。例えば、テストケース取得部１４は、判定した「接続パターン」が「Ｗｅｂ  ３−ｔｉｅｒ」（Ｗｅｂ三層モデル）である場合、テストケーステーブル２０ｃにおいて「接続パターン」“Ｗｅｂ  ３−ｔｉｅｒ”に該当するレコードをテストケースとして抽出する。
【００２５】
また、例えば、テストケース取得部１４は、環境情報抽出部１３により抽出されたボリューム内の環境情報から分析された、ユーザテナントにインストールされているソフトウェアの情報を分類した結果、「ソフトウェア名」“ＯＳ＃Ａ  Ｓｅｒｖｅｒ  ２０１２”が得られたとする。この場合、テストケース取得部１４は、テストケーステーブル２０ｃにおいて「ソフトウェア名」“ＯＳ＃Ａ  Ｓｅｒｖｅｒ  ２０１２”に該当するレコードをテストケースとして抽出する。
【００２６】
また、例えば、テストケース取得部１４は、抽出した環境情報に規定されるソフトウェアの情報を分類した結果、「ソフトウェアグループ」“ＯＳ＃Ａ”が得られたとする。この場合、テストケース取得部１４は、テストケーステーブル２０ｃにおいて「ソフトウェアグループ」“ＯＳ＃Ａ”に該当するレコードをテストケースとして抽出する。
【００２７】
また、例えば、テストケース取得部１４は、抽出した環境情報に規定されるソフトウェアの情報を分類した結果、「機能分類」“ＯＳ”が得られたとする。この場合、テストケース取得部１４は、テストケーステーブル２０ｃにおいて「機能分類」“ＯＳ”に該当するレコードをテストケースとして抽出する。
【００２８】
なお、テストケース取得部１４は、「接続パターン」又は「ソフトウェアグループ」又は「機能分類」のみについて、項目値が合致するテストケースのレコードをテストケーステーブル２０ｃから抽出するとしてもよい。
【００２９】
そして、テスト実行部１５は、テナント複製部１２により作成されたユーザテナントの複製に対して「パッチ」を適用する。その後、テスト実行部１５は、テストケース取得部１４によりテストケーステーブル２０ｃから抽出されたテストケースを、テナント複製部１２により作成されたユーザテナントの複製に対して実行する。なお、テスト実行部１５は、実行するテストケースの「確認対象」が“データ”である場合には、テストデータをテスト実行対象であるユーザテナントの複製に対して設定後に、パッチを配布し、ユーザテナントの複製に対してテストを実行する。テスト実行部１５が実行するテストケースの「確認対象」は、例えば“機能”“データ”等がある。
【００３０】
そして、テスト実行部１５は、テナント複製部１２により複製されたユーザテナントの複製に対して実行した各テストケースの結果を分析し、テスト結果の詳細情報とともに正常又は異常の判定結果を、オペレータ端末１へ送信する。このようにして、オペレータ端末１を操作するオペレータは、ユーザテナントに対して「パッチ」を適用しても、正常動作が維持されるか否かを判定できる。オペレータは、パッチの適用によっても正常動作が維持されると判定できる場合には、オペレータ端末１から、複製元のユーザテナントに対してパッチを適用するように指示する。
【００３１】
一般にパッチは、仮想マシンとそのデータが保持される仮想ストレージにのみ配布されるが、パッチ適用正常性確認は仮想マシン及び仮想マシン以外の仮想ルーター、仮想ネットワーク、仮想ロードバランサー、仮想ストレージ等の仮想機器を含む一体として構築されたユーザテナント全体をパッチ適用正常性確認の対象とする。これは、ユーザテナント全体のシステム正常性を確認することが必要だからである。例えば、仮想ロードバランサー配下に２台の仮想マシンが動作している場合は、仮想ロードバランサーを介して仮想マシンにアクセスできることを確認する必要がある。
【００３２】
なお、パッチ正常性確認装置１０は、ユーザテナントの複製に対してパッチを適用して、ユーザテナントの複製の正常動作が維持されると判定される場合には、オペレータの指示によらず、本番のユーザテナントに対してパッチを自動的に適用するとしてもよい。
【００３３】
クラウドコントローラ２００は、制御部２０１、クラウドコントローラＤＢ２０２を有する。制御部２０１は、クラウドコントローラ２００全体の制御を実行し、クラウドコントローラ２００が提供する各種サービスを実行する。クラウドコントローラＤＢ２０２は、クラウドコントローラＤＢ２０２が提供する各種サービスに関する状態や設定に関する情報を格納する。
【００３４】
クラウドコントローラ２００は、例えばOpenStack（登録商標、以下同様）等を用いることができる。クラウドコントローラ２００は、ユーザ端末２からのオペレータ指示もしくは検証起動装置３の指示に応じて、物理マシン３０１〜３０３に対して仮想機器の作成依頼又は削除依頼を送信する。物理マシン３０１〜３０３は、仮想機器の作成依頼又は削除依頼に応じて、物理マシン３０１〜３０３上に仮想機器を作成したり、物理マシン３０１〜３０３上から仮想機器を削除したりする。OpenStackのコアサービスには、Compute、Identity、Networking、Block  Storage等がある。クラウドコントローラＤＢ２０２は、コアサービスの状態や設定に関する情報を格納する。
【００３５】
（仮想機器システムにおけるパッチ正常性確認処理）
図２Ａは、仮想機器システムにおけるパッチ正常性確認処理の一例を示す図である。図２Ａは、クラウドコントローラ２００としてOpenStackを用いる場合を示す。また、図２Ａは、クラウドコントローラ２００の制御部２０１は、ＡＰＩ（Application  Programming  Interface）部２０１ａ、クラウド構築部２０１ｂ、仮想計算機管理部２０１ｃ、仮想ネットワーク制御部２０１ｄを有する場合を示す。
【００３６】
ＡＰＩ部２０１ａは、クラウドコントローラ２００と外部との連携を司るＡＰＩであり、OpenStackの場合は“OpenStack  API”が該当する。クラウド構築部２０１ｂは、クラウド上のリソース配置やシステム構成を定義し、システムの構築及び運用を自動化するクラウドオーケストレーション機能であり、OpenStackの場合は“Heat”が該当する。
【００３７】
仮想計算機管理部２０１ｃは、HyperVisor上で動作する仮想マシン等により適用される仮想計算機をリソースプールとして管理し、提供する機能であり、OpenStackの場合は“Nova”が該当する。
【００３８】
仮想ネットワーク制御部２０１ｄは、ＯＶＳ（Open  vSwitch）等の仮想スイッチや、仮想ルーター、仮想ネットワーク、仮想サブネット、仮想ポート等のネットワーク機能を制御対象とするコンポーネントであり、OpenStackの場合は“Neutron”が該当する。
【００３９】
また、図２Ａに示す例では、仮想マシンのＯＳの“ＯＳ＃Ａ”のパッチがリリースされた場合に、“ＯＳ＃Ａ”が動作するユーザテナント４０１を複製した複製テナント４０２が作成されるとする。なお、ユーザテナント４０１は、ＬＲ（Logical  Router：論理ルーター、仮想ルーター）４０１ａ、ＶＭ（Virtual  Machine：仮想マシン）４０１ｂ−１〜４０１ｂ−３、ＶＯＬ（Volume：仮想ボリューム、仮想ストレージ）４０１ｃ−１〜４０１ｃ−３を有する。また、複製テナント４０２は、ＬＲ４０２ａ、ＶＭ４０２ｂ−１〜４０２ｂ−３、ＶＯＬ４０２ｃ−１〜４０２ｃ−３を有する。
【００４０】
例えば、OpenStack  Heatで用いられる構成テンプレートは、ＪＳＯＮやＨＯＴの記述で各仮想機器の属性や接続関係を示し、構成テンプレートのパースにより、複製テナント４０２は、図２Ｂに示す接続構成であることが分かる。
【００４１】
図２Ｂは、ユーザテナントにおいて複数の仮想マシンに機能が跨る構成の一例を示す図である。図２Ｂに示すように、ユーザテナント４０１は、ＬＲ４０１ａの配下に、Ｌ２ネットワーク４０１ｎ−１を介して、ＶＭ４０１ｂ−１及びＶＭ４０１ｂ−２が接続される。ＶＭ４０１ｂ−１の配下のＶＯＬ４０１ｃ−１には、“ＯＳ＃Ｂ６．１”“Ｗｅｂ＃Ｂ２．１”“ＡＰ＃Ａ６．０”が展開されている。また、ＶＭ４０１ｂ−２の配下のＶＯＬ４０１ｃ−２には、“ＯＳ＃Ｂ６．１”“Ｗｅｂ＃Ｂ２．１”“ＡＰ＃Ａ６．０”が展開されている。そして、ＶＭ４０１ｂ−１、ＶＭ４０１ｂ−２及びＶＭ４０１ｂ−３は、Ｌ２ネットワーク４０１ｎ−２を介して接続される。ＶＭ４０１ｂ−３の配下のＶＯＬ４０１ｃ−３には、“ＯＳ＃Ｂ６．１”“ＤＢ＃Ｂ５．０”が展開されている。ユーザテナント４０１を複製した複製テナント４０２も、ユーザテナント４０１と同様の接続構成である。すなわち、図２Ｂに示すように、複製テナント４０２は、ＬＲ４０２ａの配下に、Ｌ２ネットワーク４０１ｎ−１を介して、ＶＭ４０２ｂ−１及びＶＭ４０２ｂ−２が接続される。ＶＭ４０２ｂ−１の配下のＶＯＬ４０２ｃ−１には、“ＯＳ＃Ｂ６．１”“Ｗｅｂ＃Ｂ２．１”“ＡＰ＃Ａ６．０”が展開されている。また、ＶＭ４０２ｂ−２の配下のＶＯＬ４０２ｃ−２には、“ＯＳ＃Ｂ６．１”“Ｗｅｂ＃Ｂ２．１”“ＡＰ＃Ａ６．０”が展開されている。そして、ＶＭ４０２ｂ−１、ＶＭ４０２ｂ−２及びＶＭ４０２ｂ−３は、Ｌ２ネットワーク４０１ｎ−２を介して接続される。ＶＭ４０２ｂ−３の配下のＶＯＬ４０２ｃ−３には、“ＯＳ＃Ｂ６．１”“ＤＢ＃Ｂ５．０”が展開されている。
【００４２】
図２Ｂに示す複製テナント４０２から、構成情報を含む環境情報を取得し、構成情報をパースすると、｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝という接続情報が得られる。後述するように、得られた｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝という接続情報をもとに、接続パターン情報テーブル２０ｂを検索すると、「接続定義情報」“｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝”は、「接続パターン名」“Ｗｅｂ３−ｔｉｅｒ”であることが分かる。
【００４３】
サービス事業者は、ユーザ毎に、「“ＯＳ＃Ａ”のパッチリリース時にパッチ適用後の正常性検証を行う」等の契約情報や、ユーザテナント内の仮想マシンで用いるＯＳ等の構成情報を管理しており、その情報を用いて、パッチの対象ユーザを事前抽出する。なお、サービス事業者は、契約情報として、ユーザの仮想マシンやボリュームへアクセスするためのＩＤ（Identifier）、パスワード、アクセス方法等も管理する。
【００４４】
そして、オペレータは、オペレータ端末１を操作し、パッチとパッチ配布対象のユーザテナントをパッチ正常性確認装置１０に対して指定する（ステップＳ１）。なお、ステップＳ１における「パッチとパッチ配布対象のユーザテナントのパッチ正常性確認装置１０に対する指定」は、ユーザ毎の契約情報に基づいて検証起動装置３により実行されてもよい。そして、パッチ正常性確認装置１０は、クラウドコントローラ２００のＡＰＩ部２０１ａを介して、指定されたユーザのテナントを複製するために、ユーザテナントのテンプレートを抽出する（ステップＳ２）。
【００４５】
テンプレートとはOpenStack  Heat、Amazon  CloudFormation（登録商標）等で利用される、仮想機器の一括作成を行うための、仮想機器の構成情報が記載されたテキストファイルである。クラウドコントローラ２００に対して、抽出されたテンプレートの展開を依頼すると、クラウドコントローラ２００は、ユーザテナントの仮想機器と同じ構成の仮想機器を、指定された別テナントとして作成する。例えば、ユーザテナント４０１の複製として、複製テナント４０２が作成される（ステップＳ３）。
【００４６】
なお、テンプレート抽出と展開は、「OpenStack  Heat，https://wiki.openstack.org/wiki/Heat」、「Amazon  CloudFormation，http://aws.amazon.com/cloudformation/」、「Y．Yamato，M．Muroi，K．Tanaka  and  M．Uchimura，“Development  of  Template  Management  Technology  for  Easy  Deployment  of  Virtual  Resources  on  OpenStack”  Springer  Journal  of  Cloud  Computing，DOI：10.1186/s13677-014-0007-3,July  2014」等の既存技術を用いることができる。
【００４７】
次に、パッチ正常性確認装置１０は、作成された複製テナント４０２内のＶＭ４０２ｂ−１〜４０２ｂ−３、ＶＯＬ４０２ｃ−１〜４０２ｃ−３内を調査し、どのソフトウェアがインストールされているかを示す環境情報を取得する（ステップＳ４）。なお、ボリュームにアクセスする際のパスワード等は、事前登録されている、もしくは、オペレータ手動実行時に登録される。
【００４８】
そして、パッチ正常性確認装置１０は、取得した環境情報をもとに、仮想マシンへのパッチ適用後に実行するテストケースをテストケースＤＢ２０（図１参照）より取得する（ステップＳ５）。
【００４９】
そして、パッチ正常性確認装置１０は、パッチを複製した複製テナント４０２のＶＭ４０２ｂ−１〜４０２ｂ−３へ適用する。パッチ配布及び適用は、例えばＯＳがＷｉｎｄｏｗｓ（登録商標）であれば、Windows  Update（登録商標）等の従来のパッチ適用技術を用いることができる。
【００５０】
そして、パッチ正常性確認装置１０は、パッチ適用後の複製テナント４０２に対して、ステップＳ５で取得したテストケースを実行する（ステップＳ６）。ここで、テストケースは、パッチ適用後に機能が正常に動作するかの機能確認と、パッチ適用前のデータがパッチ適用後も正常か否かのデータ確認の２種類に大きく分けられる。データ確認については、パッチ適用前に確認用データを準備し、パッチ適用後に確認が行われる。その場合は、ステップＳ５を終えて、パッチを配布する前に、確認用データを複製テナントである複製テナント４０２に対して設定する。
【００５１】
例えば、テストケースが、日本語Ｗｅｂページの表示であれば、パッチ適用前に例えば日本語のサンプルｈｔｍｌ等の文字表示のためのファイルを設定しておき、パッチ適用後にそのｈｔｍｌが正常表示されるか否かの確認等を行う。表示の正常確認は、パッチ適用前後の表示キャプチャの比較、パッチ適用前後の文字コード比較等、既存の手法を用いてもよい。
【００５２】
そして、パッチ正常性確認装置１０は、取得したテストケースの実行について、Jenkins等の従来技術により、テストケースの実行が可能である。そして、パッチ正常性確認装置１０は、実行したテストケースの結果を収集し、ユーザ毎に、行ったテスト、及び、テストの実行結果を集計する。そして、パッチ正常性確認装置１０は、集計した情報を、オペレータに通知してもよいし、ユーザにメール等で通知してもよい（ステップＳ７）。また、パッチ正常性確認装置１０は、集計した情報が、全てのテストが正常を示す情報であった場合は、パッチを配布してもユーザサービスには問題がないため、ユーザテナントへパッチを配布してもよい。
【００５３】
そして、パッチ正常性確認装置１０は、検証が終わった仮想機器をクラウドコントローラ２００のＡＰＩ部２０１ａを介して削除する（ステップＳ８）。検証が終わった仮想機器を削除することにより、複製した仮想機器が物理リソースを圧迫することを抑えることができる。ただし、ステップＳ８を実行せず、検証が終わった仮想機器を削除しなくてもよい。ユーザテナントの仮想機器を複製する時間がかかるため、パッチ検証を早く行いたい場合は、事前に仮想機器を複製しておき、パッチ検証後も削除せず、次回のパッチ正常性確認の際に使用するようにしてもよい。
【００５４】
（ソフトウェア関係テーブル）
図３は、ソフトウェア関係テーブルの一例を示す図である。ソフトウェア関係テーブル２０ａは、ソフトウェア、ソフトウェアを束ねた概念である「ソフトウェアグループ」、ソフトウェアグループを束ねた概念である「機能分類」に関する情報を保持している。ソフトウェア関係テーブル２０ａは、「機能分類」「ソフトウェアグループ」「ソフトウェア名」のカラムを有する。
【００５５】
図３に示すように、例えば、「機能分類」“ＯＳ”の場合に、「ソフトウェアグループ」として“ＯＳ＃Ａ”“ＯＳ＃Ｂ”がある。そして、「ソフトウェアグループ」に属す具体的ソフトウェアとして、“ＯＳ＃Ａ”グループには、“ＯＳ＃Ａ  Ｓｅｒｖｅｒ  ２０１２”“ＯＳ＃Ａ  ８．１”等がある。また、例えば、「機能分類」“ＤＢ”の場合に、「ソフトウェアグループ」として“ＤＢ＃Ａ”“ＤＢ＃Ｂ”がある。そして、「ソフトウェアグループ」に属す具体的ソフトウェアとして、“ＤＢ＃Ａ”グループには、“ＤＢ＃Ａ  １１ｇ”“ＤＢ＃Ａ  １０ｇ”等がある。また、例えば、「機能分類」“Ｗｅｂ”の場合に、「ソフトウェアグループ」として“Ｗｅｂ＃Ａ”“Ｗｅｂ＃Ｂ”がある。そして、「ソフトウェアグループ」に属す具体的ソフトウェアとして、“Ｗｅｂ＃Ａ”グループには、“Ｗｅｂ＃Ａ  ２．１”“Ｗｅｂ＃Ａ  ２．２”等がある。また、例えば、「機能分類」“ＡＰ”の場合に、「ソフトウェアグループ」として“ＡＰ＃Ａ”がある。そして、「ソフトウェアグループ」に属す具体的ソフトウェアとして、“ＡＰ＃Ａ”グループには、“ＡＰ＃Ａ  ６．０”“ＡＰ＃Ａ  ７．０”等がある。
【００５６】
（接続パターン情報テーブル）
図４は、接続パターン情報テーブルの一例を示す図である。接続パターン情報テーブル２０ｂは、「接続パターン名」「配置定義情報」のカラムを有する。図４に示す接続パターン情報テーブル２０ｂの例は、接続パターンがＷｅｂ３層（Ｗｅｂ  ３−ｔｉｅｒ）である。例えば、図４に示す｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝という「配置定義情報」は、Ｗｅｂサーバ及びアプリケーション（AP）サーバが１つの仮想マシンに、ＤＢサーバが別の仮想マシンにインストールされていることを示す。すなわち、｛ｘ，ｙ｝のように、１つの括弧で括られたソフトウェアは、同一の仮想マシンに実装されていることを示し、併記される他の括弧で括られたソフトウェア要素は、他の同一の仮想マシンに実装されていることを示す。そして、１つの「配置定義情報」は、互いに連携する複数のソフトウェアが複数の仮想マシンに分散配置された構成を示す。例えば、パッチ正常性確認装置１０は、ユーザテナントの複製から取得した接続情報と、各仮想マシンのインストールソフトウェア情報と、ソフトウェア関係テーブル２０ａとから、ユーザ環境の仮想マシンが｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝の配置構成であることが判定できる。そして、パッチ正常性確認装置１０は、接続パターン情報テーブル２０ｂから、｛Ｗｅｂ，ＡＰ｝｛ＤＢ｝と合致する「配置定義情報」に対応する「接続パターン名」が“Ｗｅｂ  ３−ｔｉｅｒ”（Ｗｅｂ３層モデル）であることが判定できる。その他の配置構成についても、同様にして「接続パターン名」が特定できる。
【００５７】
（テストケーステーブル）
図５は、テストケーステーブルの一例を示す図である。テストケーステーブル２０ｃには、Jenkins等で実行可能なテストケースと、そのテストケースの属性情報を保持している。テストケーステーブル２０ｃに保持されるテストケースは、そのテストケース種別として、個別ソフトウェア毎のテストケースか、個別ソフトウェアを束ねたグループであるソフトウェアグループ毎のテストケースか、ソフトウェアグループを束ねた機能分類毎のテストケースか、複数の仮想マシンに分散配置される各機能の結合試験のテストケースかの情報を保持している。テストケーステーブル２０ｃは、「接続パターン」「機能分類」「ソフトウェアグループ」「ソフトウェア名」「テストケース」「テストケース種類」「確認対象」のカラムを有する。
【００５８】
例えば、「テストケース」“テーブルのＣＲＵＤ（Create、Read、Update、Delete）”は、ＳＱＬ（Structured  Query  Language）でサンプルデータのＣＲＵＤを行えばよいため、「機能分類」“ＤＢ”で共通的に利用できるテストケースである。また、テーブルのＣＲＵＤは、「確認対象」“機能”である。
【００５９】
また、例えば、「テストケース」“日本語データ表示文字チェック”というテストケースは、ＳＱＬでデータを確認するため、「機能分類」“ＤＢ”で共通的に利用できるテストケースである。また、パッチ適用後に表示文字が正常表示されているか否かは、データ正常性確認のため、「確認対象」は“データ”である。
【００６０】
また、例えば、「テストケース」“管理ツールによるアクセス正常”は、「ソフトウェアグループ」“ＤＢ＃Ｂ”のWeb  GUIでのアクセスツールである場合、“ＤＢ＃Ｂ”のソフトウェアグループで共通的に利用できるテストケースであり、「確認対象」は“機能”である。
【００６１】
また、例えば、「テストケース」“トランザクションベンチマーク”は、「接続パターン」“Ｗｅｂ  ３−ｔｉｅｒ”の接続パターンを有する仮想マシンで共通的に利用できるテストケースである。すなわち、Ｗｅｂ三層モデルの場合、テストケースとして、“トランザクションベンチマーク”、例えばＴＰＣ−Ｗ（Transaction  Processing  Performance  Council  benchmark  for  Web）等が利用できる。
【００６２】
その他の「接続パターン」「機能分類」「ソフトウェアグループ」「ソフトウェア名」についても、上記と同様である。
【００６３】
（パッチ正常性確認処理を示すシーケンス図）
図６は、仮想機器システムにおけるパッチ正常性確認処理の一例を示すシーケンス図である。先ず、オペレータ端末１は、パッチ正常性確認装置１０に対して、ユーザテナント及び配布パッチを指定して、パッチ正常性確認を依頼する（ステップＳ１１）。なお、ステップＳ１１における「パッチ正常性確認装置１０に対して、ユーザテナント及び配布パッチを指定して、パッチ正常性確認を依頼」は、ユーザ毎の契約情報に基づいて検証起動装置３により実行されてもよい。そして、パッチ正常性確認装置１０は、クラウドコントローラ２００のＡＰＩ部２０１ａを介して、テンプレート抽出を依頼する（ステップＳ１２）。クラウドコントローラ２００は、抽出したテンプレートを、パッチ正常性確認装置１０へ送信する（ステップＳ１３）。なお、テンプレート抽出は、既存技術を用いればよい。
【００６４】
次に、パッチ正常性確認装置１０は、クラウドコントローラ２００により抽出されたテンプレートの展開を、クラウドコントローラ２００のクラウド構築部２０１ｂに対して依頼する（ステップＳ１４）。クラウドコントローラ２００のクラウド構築部２０１ｂは、パッチ正常性確認装置１０からの依頼に応じて、物理マシン３０１に対して、テンプレートに記載の仮想マシンの作成を依頼する（ステップＳ１５）。次に、物理マシン３０１は、クラウド構築部２０１ｂからの依頼に応じて、仮想マシンを物理マシン３０１上に作成する（ステップＳ１６）。物理マシン３０１は、ステップＳ１６の仮想マシン作成が終了すると、クラウド構築部２０１ｂに対して、作成応答を送信する（ステップＳ１７）。
【００６５】
同様に、クラウド構築部２０１ｂは、パッチ正常性確認装置１０からの依頼に応じて、物理マシン３０２に対して、テンプレートに記載の仮想ルーターの作成を依頼する（ステップＳ１８）。次に、物理マシン３０２は、クラウド構築部２０１ｂからの依頼に応じて、仮想ルーターを物理マシン３０２上に作成する（ステップＳ１９）。物理マシン３０２は、ステップＳ１９の仮想ルーター作成が終了すると、クラウド構築部２０１ｂに対して、作成応答を送信する（ステップＳ２０）。クラウド構築部２０１ｂは、ステップＳ１７及びステップＳ２０の応答を受信したことに応じて、テンプレート展開完了を、パッチ正常性確認装置１０へ送信する（ステップＳ２１）。
【００６６】
次に、パッチ正常性確認装置１０は、クラウドコントローラ２００に対して、ステップＳ１６で作成された仮想マシン（以下、複製仮想マシンと呼ぶ）及びステップＳ１９で作成された仮想ルーター（以下、複製仮想ルーターと呼ぶ）への接続情報を含む環境情報を取得依頼する（ステップＳ２２）。なお、この接続情報は、テンプレートに記載の仮想機器の構成情報と同様の情報である。また、複製仮想マシンは、図２Ａに示すＶＭ４０２ｂ−１〜４０２ｂ−３が該当する。また、複製仮想ルーターは、図２Ａに示すＬＲ４０２ａが該当する。そして、パッチ正常性確認装置１０は、クラウドコントローラ２００から、複製仮想マシン及び複製仮想ルーターへの接続情報の応答を受け付ける（ステップＳ２３）。
【００６７】
次に、パッチ正常性確認装置１０は、契約情報として登録されているパスワード等の情報を用いて、物理マシン３０１上の複製仮想マシンへアクセスし、複製仮想マシンに対して、ソフトウェア情報を含む環境情報の取得を依頼する（ステップＳ２４）。なお、契約情報は、上述するように、サービス事業者によりユーザ毎に管理されている情報であり、オペレータ端末１や検証起動装置３が、契約情報ＤＢ（図示せず）から取得した契約情報をステップＳ１１で渡せばよい。そして、パッチ正常性確認装置１０は、複製仮想マシンから、当該複製仮想マシンのソフトウェア情報を含む環境情報の応答を受け付ける（ステップＳ２５）。
【００６８】
次に、パッチ正常性確認装置１０は、ステップＳ２２〜Ｓ２３で取得した環境情報をパースして得られた、各ソフトウェアが動作する各仮想マシン間の接続関係を示す接続パターンと、ステップＳ２４〜Ｓ２５で取得したソフトウェア情報とから、各仮想マシン間の接続関係を判定し、接続パターンを特定する（ステップＳ２６）。
【００６９】
次に、パッチ正常性確認装置１０は、テストケースＤＢ２０から、ステップＳ２３及びＳ２５で取得した環境情報が含む、仮想マシンに用いられている「ソフトウェア名」及び／又は「接続パターン名」を引数に、「ソフトウェアグループ」、「機能分類」、「接続パターン」を検索し、該当の「機能分類」及び／又は「ソフトウェアグループ」及び／又は「接続パターン」に対応する「テストケース」を抽出する（ステップＳ２７及びＳ２８）。ステップＳ２８で抽出された「テストケース」は、Jenkins等のテスト自動ツールを用いて、パッチ正常性確認装置１０により実行される。なお、パッチ正常性確認装置１０は、「テストケース」の実行前に、パッチ適用前データがパッチ適用後も正常であることを確認する、データ正常性確認試験のため確認用データを設定する（ステップＳ２９）。
【００７０】
次に、パッチ正常性確認装置１０は、物理マシン上の仮想マシンにパッチを配布する（ステップＳ３０）。次に、パッチ正常性確認装置１０は、パッチ配布し、対象の仮想マシンにてパッチ適用後、選択されたテストケースを実施する（ステップＳ３１）。そして、パッチ正常性確認装置１０は、テスト結果を収集する。パッチ正常性確認装置１０は、指定ユーザのテストケース結果を、オペレータ端末１へ通知する（ステップＳ３２）。オペレータは、テストケース結果をユーザに通知してもよい。また、テストケースが正常である場合は、パッチ正常性確認装置１０は通知をスキップして、ユーザテナントの仮想マシンにパッチを自動配布してもよい。
【００７１】
（実施形態による効果）
パッチ正常性確認装置１０は、物理マシン上で動作する仮想機器を含むユーザ環境において動作するソフトウェアのソフトウェア情報を含むユーザ環境に関する環境情報をユーザ環境から抽出する。パッチ正常性確認装置１０は、抽出された環境情報をもとに、環境情報に対応するユーザ環境に含まれる複数の仮想マシンで動作する複数のソフトウェアの接続パターンを判定し、判定した接続パターン毎の試験パターンをデータベースから取得する。パッチ正常性確認装置１０は、抽出された環境情報に対応するユーザ環境に対して、ユーザ環境で動作するソフトウェアの修正プログラムを適用後、取得された試験パターンを実行する。
【００７２】
よって、実施形態によれば、ユーザの仮想マシン等に対するパッチ配布、適用後のパッチ正常性確認試験を、互いに連携する複数のソフトウェアが複数の仮想マシンに分散配置された構成における結合試験を含めて自動で行うことができるため、仮想マシンに対するパッチ適用後の正常動作の検証工程を削減でき、運用コストが低減できる。また、実施形態は、ソフトウェアを、少なくとも「ソフトウェアグループ」「機能分類」と２段階に抽象化し、抽象化したグループ共通で実行できるテストケースを選択可能にするので、予め準備するテストケースの数を抑制できる。また、実施形態は、ユーザテナントを複製してパッチを適用し、正常性確認を行った後、ユーザテナントにパッチ配布を行うので、ユーザが利用中の実サービスに影響を与えることなく、パッチ適用後正常動作の検証が可能である。また、複製テナントは、パッチ適用後の正常動作の検証の期間だけ維持すればよく、検証終了後は複製テナントを削除すればよいため、物理リソースの圧迫を抑制できる。
【００７３】
（実施形態の変形例）
実施形態は、ユーザテナントの複製を行い、複製したユーザテナントに対してパッチ正常性確認を行うとしたが、ユーザテナントの複製を作成せず、ユーザテナントに対して直接パッチを配布してパッチ正常性確認を行うとしてもよい。
【００７４】
また、実施形態は、複製後のユーザテナントのボリューム内を調査し、ユーザテナントのどの仮想機器にどのようなソフトウェアがどのような接続関係で実装されているかを分析した結果をもとに、複数の仮想機器に実装される複数のソフトウェアが、いずれの「接続パターン」に該当するかを判定するとする。しかし、これに限らず、パッチ正常性確認装置１０は、ユーザテナントの複製を作成する際に抽出するユーザテナントの構成情報を分析して、複数の仮想機器に実装される複数のソフトウェアが、いずれの「接続パターン」に該当するかを判定するとしてもよい。
【００７５】
また、実施形態は、「接続パターン」として、Ｗｅｂ３層モデルを一例としてあげたが、これに限らず、送信サーバ、受信サーバ、ウィルスチェックサーバ等の複数の電子メールサーバの各機能を、複数の仮想マシンに分散して配置するような例に対しても適用可能である。すなわち、実施形態は、少なくとも２つ以上の機能を少なくとも２つ以上の仮想マシンに分散して配置して１つの機能を提供する場合にも適用可能である。
【００７６】
また、実施形態は、サービス事業者は、ユーザ毎の契約情報及びユーザ毎の仮想マシンで用いるＯＳ等の構成情報を用いて、パッチ適用対象ユーザを事前抽出し、当該ユーザのユーザテナントの複製を作成し、ユーザテナントの複製がパッチ正常性確認により正常と確認できたユーザテナントに対して実際のパッチ適用を指示するとする。しかし、これに限らず、パッチが公開されると、パッチ適用対象となるユーザを契約情報等から抽出し、対象となるユーザテナントの複製を作成し、ユーザテナントの複製に対してパッチ正常性確認を実行し、パッチ正常性確認が正常であった場合にユーザテナントの実環境に対してパッチを実際に適用し、ユーザテナントの複製を削除するまでの一連の処理を自動化してもよい。すなわち、通常のパッチ適用処理を開始するだけで、ユーザテナントの複製でのテストを実行し、正常であれば実環境のユーザテナントに対しパッチを適用するとしてもよい。なお、パッチ正常性確認が正常でない場合は、エラー通知を出力し、パッチ適用処理を中断するとしてもよい。このようにすることにより、通常のパッチ適用処理の中で、パッチ正常性確認を意識せずとも、ユーザテナントにおけるサービスを正常に継続可能なパッチ適用処理を容易に実現できる。
【００７７】
（パッチ正常性確認装置の装置構成について）
図１に示すパッチ正常性確認装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、パッチ正常性確認装置１０の機能の分散及び統合の具体的形態は図示のものに限られず、全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。
【００７８】
また、パッチ正常性確認装置１０において行われる各処理は、全部又は任意の一部が、ＣＰＵ（Central  Processing  Unit）及びＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、パッチ正常性確認装置１０において行われる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００７９】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部又は一部を手動的に行うこともできる。もしくは、実施形態において説明した各処理のうち、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００８０】
（プログラムについて）
図７は、プログラムが実行されることにより、パッチ正常性確認装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。コンピュータ１０００において、これらの各部はバス１０８０によって接続される。
【００８１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１０６１に接続される。
【００８２】
ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、パッチ正常性確認装置１０の各処理の規定するプログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクドライブ１０３１に記憶される。例えば、パッチ正常性確認装置１０における機能構成と同様の情報処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００８３】
また、上述した実施形態での処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００８４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３やプログラムデータ１０９４は、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００８５】
以上の実施形態並びにその変形例は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８６】
Ｓ                      仮想機器システム
１                      オペレータ端末
２                      ユーザ端末
３                      検証起動装置
１０                    パッチ正常性確認装置
１１                    テンプレート抽出部
１２                    テナント複製部
１３                    環境情報抽出部
１４                    テストケース取得部
１５                    テスト実行部
２０                    テストケースＤＢ
２０ａ                  ソフトウェア関係テーブル
２０ｂ                  接続パターン情報テーブル
２０ｃ                  テストケーステーブル
１００                  パッチ正常性確認システム
２００                  クラウドコントローラ
３０１、３０２、３０３  仮想マシン
１０００                コンピュータ
１０１０                メモリ
１０２０                ＣＰＵ
【図１】
0006272243.tif 000002
【図２Ａ】
0006272243.tif 000003
【図２Ｂ】
0006272243.tif 000004
【図３】
0006272243.tif 000005
【図４】
0006272243.tif 000006
【図５】
0006272243.tif 000007
【図６】
0006272243.tif 000008
【図７】
0006272243.tif 000009