(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023079086
(43)【公開日】2023-06-07
(54)【発明の名称】モデル管理システム、方法、およびプログラム
(51)【国際特許分類】
G06F 8/60 20180101AFI20230531BHJP
【FI】
G06F8/60
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021192520
(22)【出願日】2021-11-26
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】水野 和彦
(72)【発明者】
【氏名】坂田 匡通
(72)【発明者】
【氏名】石井 陽介
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AA14
5B376AA32
5B376AB12
5B376BA16
5B376BC09
(57)【要約】
【課題】アプリケーションを構成するソフトウェアの処理性能を評価するための予測モデルを効率よく管理することを可能にする。
【解決手段】アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するモデル管理システムが、同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶するモデル管理テーブルと、前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶するデータ管理テーブルと、予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出する構成比較部と、前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとするモデル作成部と、を有する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するモデル管理システムであって、
同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶するモデル管理テーブルと、
前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶するデータ管理テーブルと、
予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出する構成比較部と、
前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとするモデル作成部と、
を有するモデル管理システム。
【請求項2】
前記第1共通モデルが作成されたときに該共通モデルによって処理性能の予測が行われたソフトウェアのデプロイ先はオンプレミスのコンピュータであり、
前記対象ソフトウェアのデプロイ先はパブリッククラウドのコンピュータである、
請求項1に記載のモデル管理システム。
【請求項3】
前記予測モデルは、演算処理に供されるリソースのリソース量に関する説明変数に基づいて、前記演算処理の処理性能を表す目的変数を算出する回帰式である、
請求項2に記載のモデル管理システム。
【請求項4】
前記構成比較部は、前記第1構成情報に含まれるリソース量の範囲が前記第2構成情報に含まれるリソース量の取り得る範囲よりも広い場合、前記第1構成情報を、前記第2構成情報に含まれるリソース量の範囲に制限し、前記第2構成情報と、前記制限された第1構成情報との差分を抽出し、
前記モデル作成部は、前記制限された第1構成情報と、前記第1構成情報を制限して抽出された差分とに基づいて前記第2共通モデルを作成する、請求項3に記載のモデル管理システム。
【請求項5】
前記パブリッククラウドのコンピュータは、前記オンプレミスのコンピュータでは提供されない固有のコンピューティングサービスである固有サービスを提供し、前記固有サービスを利用して前記パブリッククラウドに前記対象ソフトウェアをデプロイする場合、
前記モデル作成部は、前記対象ソフトウェアと同じ種類のソフトウェアのオンプレミスのコンピュータでの処理性能の予測に利用可能な第1共通モデルに基づいて、前記対象ソフトウェアのパプリッククラウドのコンピュータで前記固有サービスを利用しての処理性能の予測に利用可能な第2共通モデルを作成する、
請求項2に記載のモデル管理システム。
【請求項6】
前記モデル作成部により作成された共通モデルを含む予測モデルと該予測モデルにより処理性能の予測が行われるソフトウェアとを対応付けて管理するモデル管理部と、
前記モデル管理部により管理されている中に、同種の複数のソフトウェアの処理性能の予測に異なる予測モデルが用いられていれば前記複数の予測モデルが作成されたときのデータを再学習して新たな予測モデルを作成し、該新たな予測モデルにより前記複数のソフトウェアの処理性能が正しく予測されるのであれば、該新たな予測モデルを前記複数のソフトウェアに対する共通モデルとするモデル更新部と、
を更に有する、
請求項1に記載のモデル管理システム。
【請求項7】
前記モデル更新部は、前記モデル管理部により管理されている中に、同種かつデプロイ先の構成が同じである複数のソフトウェアの処理性能の予測に異なる共通モデルが用いられていれば、いずれか1つの共通モデルを前記複数のソフトウェアに対する共通モデルとする、
請求項6に記載のモデル管理システム。
【請求項8】
前記共通モデルが作成されたとき該共通モデルによって処理性能の予測が行われたソフトウェアのデプロイ先はパブリッククラウドのコンピュータであり、
前記対象ソフトウェアのデプロイ先はオンプレミスのコンピュータである、
請求項1に記載のモデル管理システム。
【請求項9】
アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するためのモデル管理方法であって、
同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶し、
前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶し、
予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出し、
前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとする、
ことをコンピュータが実行するモデル管理方法。
【請求項10】
アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するためのモデル管理プログラムであって、
同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶し、
前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶し、
予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出し、
前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとする、
ことをコンピュータに実行させるためのモデル管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アプリケーションを構成するソフトウェアに適用する予測モデルを管理する技術に関する。
【背景技術】
【0002】
アプリケーションにより実現されるITインフラの提供方法として、マルチクラウドあるいはハイブリッドクラウドと呼ばれる提供方法がある。マルチクラウドあるいはハイブリッドクラウドでは、クラウド環境を含む複数の環境のサイトが組み合わせて利用される。アプリケーションを1つ以上のソフトウェアで構成し、アプリケーションあるいは各ソフトウェアが適切なサイトに配置される。その際、パブリッククラウド、プライベートクラウド、オンプレミスなど種別の異なるサイトが組み合わされる場合もある。
【0003】
例えば、検索系のアプリケーションを、ウェブサーバを実現するソフトウェアと、データベースを管理するSQLサーバを実現するソフトウェアとで構成し、そのアプリケーションあるいは各ソフトウェアをオンプレミスあるいはパブリッククラウドにデプロイするといった構成が考えられる。更に、データベースに蓄積されるIoTデータを収集するデータ収集アプリケーションをエッジにデプロイするといった構成が考えられる。
【0004】
アプリケーションが要求される処理性能(以下「要求処理性能」ともいう)を満たすためには各ソフトウェアもそれぞれの要求処理性能を満たす必要がある。処理性能は、例えば実行時間およびスループットなどにより示される。処理性能は、アプリケーションのデプロイ先の環境により変化する。アプリケーションを含む情報処理インフラを整備し管理する管理者(以下「ITインフラ管理者」ともいう)は、アプリケーションの各ソフトウェアを、それぞれの要求処理性能を満たす適切な環境のサイトにデプロイする。例えば、各ソフトウェアに好適なリソース量のコンテナを用意し、各ソフトウェアをそのコンテナにデプロイする。ここでいうリソース量は例えばCPUコア数やメモリ量などである。
【0005】
コンテナにより得られる処理性能はそのコンテナに与えられたリソース量により変化する。したがって、ITインフラ管理者は、リソース量をパラメータとしてコンテナが発揮する処理性能を予測し、ソフトウェアのデプロイ先とコンテナのリソース量とを決定する。ITインフラ管理者は、リソース量を入力パラメータとし処理性能の予測値を算出する予測モデル(以下単に「モデル」ともいう)を作成し、その予測に利用する。予測モデルは、例えば、マシンラーニングやディープラーニングにより得られるものであってもよいし、回帰式などであってもよい。モデルは、各サイトで利用可能なリソースの構成を示す構成情報と、当該サイトで過去にソフトウェアが実行されたときのリソースの稼働状態を示す稼働情報とに基づいて、アプリケーションのデプロイ先およびアプリケーションの種類に応じて個々に作成される。
【0006】
特許文献1には、クエリが、パブリッククラウドのリソースにおいて利用可能なデータであるか、プライペートクラウドのリソースにおいて利用可能なデータであるか判断し、判断結果に応じてクエリの処理にパブリッククラウドのモデルを利用するか、あるいはプライベートクラウドのモデルを利用するかを選択する技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】米国特許公開US2019/0377897号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
時間が経つとサイトの環境に変化が生じ、モデルの予測精度が低下することがある。そのため予測精度を高く保つようにモデルを管理するためには必要に応じてモデルを更新することが要求される。モデルを更新するには、新たなメトリクス情報や学習データなどを準備あるいは収集する必要があり、工数やコストがかかる。
【0009】
アプリケーションの個数や各アプリケーションの規模が増大すればアプリケーションを構成するソフトウェアの個数も増加し、それに伴って、ソフトウェアに適用されるモデルの個数も増大する。モデルの個数が増大すると、それらモデルを更新するのに要する工数やコストも増大することとなる。
【0010】
本開示のひとつの目的は、アプリケーションを構成するソフトウェアの処理性能を評価するための予測モデルを効率よく管理することを可能にする技術を提供することである。
【課題を解決するための手段】
【0011】
本開示のひとつの態様によるモデル管理システムは、アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するモデル管理システムであって、同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶するモデル管理テーブルと、前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶するデータ管理テーブルと、予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出する構成比較部と、前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとするモデル作成部と、を有する。
【発明の効果】
【0012】
本開示のひとつの態様によれば、アプリケーションを構成するソフトウェアの処理性能を評価するための予測モデルを効率よく管理することができる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態によるハイブリッドクラウドの構成例を示すブロック図である。
【
図2】第1の実施の形態によるオンプレシステムの内部構成例を示すブロック図である。
【
図3】第1の実施の形態によるパブクラシステムの内部構成例を示すブロック図である。
【
図4】第1の実施の形態による管理システムの内部構成例を示すブロック図である。
【
図5】第1の実施の形態による稼働構成情報管理テーブルの構成例を示す図である。
【
図6】第1の実施の形態によるアプリカタログ管理テーブルの構成例を示す図である。
【
図7】第1の実施の形態によるモデル管理テーブルの構成例を示す図である。
【
図8】第1の実施の形態によるデータ管理テーブルの構成例を示す図である。
【
図9】第1の実施の形態によるモデル更新テーブルの構成例を示す図である。
【
図10】第1の実施の形態による共通モデル作成履歴管理テーブルの構成例を示す図である。
【
図11】第1の実施の形態による操作用ポータルの画面構成例を示す図である。
【
図12】第1の実施の形態おいて想定する予測モデルの概要を説明するための図である。
【
図13】第1の実施の形態おいて想定するアプリケーションの概要を説明するための図である。
【
図14】第1の実施の形態による予測モデルの共通化に関する処理の概要を説明するための図である。
【
図15】第1の実施の形態による予測モデルの共通化に関する処理の一連の流れを説明するためのフローチャートである。
【
図16】第1の実施の形態による共通モデルの初期登録処理を説明するためのフローチャートである。
【
図17】第1の実施の形態によるアプリに適用するモデル作成処理を説明するためのフローチャートである。
【
図18】第2の実施の形態によるモデルの共通化処理の概要を説明するための図である。
【
図19】第2の実施の形態によるモデル管理テーブルの構成例を示す図である。
【
図20】第2の実施の形態による操作用ポータルの画面構成例を示す図である。
【
図21】第2の実施の形態による予測モデルの共通化処理の一連の流れを説明するためのフローチャートである。
【
図22】第2の実施の形態によるモデル登録処理を説明するためのフローチャートである。
【
図23】第2の実施の形態によるモデル統廃合処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について図面を参照して説明する。
【0015】
(第1の実施の形態)
【0016】
図1は、第1の実施の形態によるハイブリッドクラウドの構成例を示すブロック図である。
【0017】
図1を参照すると、ハイブリッドクラウド環境110には、エッジシステム101、オンプレミスシステム102、パブリッククラウドシステム103、および管理システム104が含まれている。以下、オンプレミスシステム102をオンプレシステム102と呼ぶ場合があり、パブリッククラウドシステム103をパブクラシステム103と呼ぶ場合がある。
【0018】
ハイブリッドクラウド環境110は、クラウド環境を含む複数の環境のサイトのコンピュータシステムが組み合わされたコンピューティング環境である。本実施形態では、エッジシステム101、オンプレシステム102、およびパブクラシステム103が組み合わされている。エッジシステム101は、ユーザあるいはデバイスに近い場所に配置されたコンピュータシステムである。オンプレシステム102は、ユーザが自身が管理しているコンピュータシステムである。パブクラシステム103は、パブリッククラウド上で提供されるコンピュータシステムである。
【0019】
エッジシステム101、オンプレシステム102、およびパブクラシステム103は、共通する基本構成として、通信装置105、LAN(Local Area Network)106、物理サーバ107、SAN(Storage Area Network)108、ストレージ装置109を含んで構成される。通信装置105は、物理サーバ107がWAN(Wide Area Network)100経由で外部と通信することを可能にする装置である。物理サーバ107は、LAN106経由で通信装置105と接続されている。また、物理サーバ107は、SAN108経由でストレージ装置109と接続されている。物理サーバ107は、ソフトウェアの処理を実行するコンピュータであり、処理に伴い、ストレージ装置109にデータを記録したり、ストレージ装置109からデータを取得したりする。
【0020】
管理システム104は、ハイブリッドクラウド環境110、そこに実装された各アプリケーション、各アプリケーションを構成するソフトウェアを管理するコンピュータシステムである。アプリケーションは1つ以上のソフトウェアで構成されている。管理システム104は、どの環境下に実装されていてもよい。
【0021】
なお、ここでは、エッジシステム101、オンプレシステム102、およびパブクラシステム103がそれぞれ1つずつである構成が示されているが、そのいずれもが複数であってもよい。
【0022】
図2は、第1の実施の形態によるオンプレシステム102の内部構成例を示すブロック図である。
【0023】
図2を参照すると、オンプレシステム102において、物理サーバ107は、CPU(Central Processing Unit)200、チップセット201、物理NIC(Network Interface Card)202、HBA(Host Bus Adapter)203、およびメモリ204を有する。メモリ204に配置されたOS(Operating System)206上で、アプリケーション207がデプロイされるコンテナ205が提供される。
【0024】
CPU 200は、メモリ204からアプリケーション207(以下「アプリ207」ともいう)を読み出し、その処理を実行するプロセッサである。チップセット201は、物理サーバ107内の各装置を相互に接続するブリッジ回路である。物理NIC 202は、LAN106への物理接続を可能にするインタフェースカードである。HBA 203は、SAN108経由によるストレージ装置109との通信を実現するための物理接続を提供するインタフェースカードである。
【0025】
ストレージ装置109は、ストレージコントローラ208および物理ボリューム209を有している。物理ボリューム209は、ハードディスクなどの記憶デバイスにより提供される物理的な記憶領域である。ストレージ装置109には複数の記憶デバイスが搭載されており、ストレージコントローラ208がそれら複数の記憶デバイスの物理的な記憶領域を統合して論理的な記憶領域として提供する。
【0026】
なお、エッジシステム101も
図2に示したオンプレシステム102と同等の内部構成を有している。エッジシステム101は主に、工場などのIoTデータの取得および格納などの用途で用いられる。
【0027】
図3は、第1の実施の形態によるパブクラシステム103の内部構成例を示すブロック図である。
【0028】
図3を参照すると、パブクラシステム103は、OS 206上にマネージドサービス301が配置されている点でオンプレシステム102と異なる。マネージドサービス301は、パブリッククラウドの環境上でクラウド事業者が提供する固有サービスを実現するソフトウェアである。
【0029】
ユーザは、このマネージドサービス301を自身のアプリケーションあるいはその一部として利用することができる。
【0030】
図4は、第1の実施の形態による管理システム104の内部構成例を示すブロック図である。
【0031】
図4を参照すると、管理システム104は、OS 206上で動作するソフトウェアとして、操作用ポータル401、情報取得部402、アプリデプロイ部404、モデル更新部406、およびモデル管理部408が配置されている。情報取得部402は稼働構成情報管理テーブル403を備えている。アプリデプロイ部404はアプリカタログ管理テーブル405を備えている。モデル更新部406はモデル更新テーブル407を備えている。モデル管理部408は内部ソフトウェアとしてモデル作成部409と構成比較部410とを含み、モデル管理テーブル411、データ管理テーブル412、および共通モデル作成履歴管理テーブル413を備えている。
【0032】
操作用ポータル401は、アプリケーションを構成するソフトウェアの共通モデルを作成したり更新したりするための操作画面を提供する。
【0033】
情報取得部402は、ハイブリッドクラウド環境の各サイト(オンプレ、パブクラ、エッジ)においてソフトウェアに提供されている物理的あるいは論理的なコンピュータのリソース量を示す構成情報と、コンピュータの稼働を示す稼働情報とを取得し、稼働構成情報管理テーブル403に登録する。ハイブリッドクラウド環境のサイトとして、オンプレミスシステム、パブリッククラウドシステム、エッジシステム等がある。
【0034】
稼働構成情報管理テーブル403は、各サイトで稼働するアプリケーションのソフトウェアに割り当てられたリソース量を示す構成情報と、ソフトウェアの実行によるCPU利用率などの稼働情報と、アプリケーションの処理時間と課金情報を含む処理性能と登録されるテーブルである。
【0035】
構成情報は、ソフトウェアに割り当てられたリソースの構成を示す情報であり、ソフトウェアをサイトにデプロイするときに利用するマニフェストファイル等に設定されたデプロイ構成情報から取得することができる。稼働情報は、ソフトウェアに割り当てられたリソースの稼働の程度を示す情報であり、例えば、OSS(Open Source Software)ツールを利用して取得することができる。処理時間は、所定の処理を実行するのに要する時間を示す情報である。処理時間は、コンテナ間の通信をフックして算出することにしてもよいし、あるいは、入力に対して結果が返ってくるまでの時間を計測することにしてもよい。課金情報は、リソースの利用に対して課される金額を示す情報である。金額は、リソース量に対する価格を示す料金体系を事前に取得しておき、利用されたリソース量と料金体系とから算出することにしてもよい。
【0036】
アプリデプロイ部404は、各サイトにアプリケーション207またはソフトウェアをデプロイする。コンテナ上にアプリケーションまたはソフトウェアをデプロイする場合に、デプロイ構成の設定情報となるマニフェストファイルを作成し、例えば汎用ツールを利用して自動的にデプロイを行ってもよい。なお、アプリケーション207あるいはソフトウェアのデプロイ先は、コンテナに限らず、仮想マシンあるいはサーバ(物理サーバおよびマネージドサービスで提供されるサーバを含む)でもよい。
【0037】
アプリカタログ管理テーブル405は、マニフェストファイル、デプロイツール、イメージ格納先を登録するテーブルである。アプリカタログ管理テーブル405は、事前にテンプレートを作成しておき、予測モデルによる予測結果に基づく決定によって更新することにしてもよい。
【0038】
モデル更新部406は、必要に応じて共通モデルの更新を行う。例えば、モデル作成部409によって登録された共通モデルの学習に利用した稼働情報および構成情報と、各サイトにおける稼働情報および構成情報とを取得し、それぞれの情報に変化があるか確認する。モデル更新部406は、それぞれの情報に変化がある場合、各サイトにおける稼働情報と構成情報に基づく再学習により共通モデルを更新し、新たな共通モデルをモデル更新テーブル407に登録する。
【0039】
モデル更新テーブル407は、共通モデルを含む予測モデルに関する各種情報を格納するテーブルである。例えば、モデル更新テーブル407には、予測モデルの入力情報、出力情報、学習に利用する稼働情報および構成情報がソフトウェア毎に登録される。また、モデル更新テーブル407では、共通化フラグで、モデルの共通化の有無を確認することができる。共通化フラグが1は、再学習による共通化された共通モデルを示す。共通化フラグが0は、新規に登録されどこにも適用されていない予測モデルをを示す。
【0040】
モデル管理部408は、アプリケーション207に適用する共通モデルを作成して適用し、管理を行う。
【0041】
モデル作成部409は、構成比較部410の結果に基づいて、アプリケーション207を構成するソフトウェアに適用する共通モデルの再学習を行って作成し、モデル管理テーブルに411登録する。また、モデル作成部409は、再学習した内容を共通モデル作成履歴管理テーブル413に登録する。モデル作成部409は、共通モデルの再学習において、構成比較部410による処理の結果である差分がリソースに関するものであれば、共通モデルが作成されたときに学習に用いた情報(学習データ)を取得し、当該学習データを絞り込むことで対応する。当該学習データを絞り込むというのは、上述した構成比較部410による処理の結果に応じた制御である。また、構成比較部410による処理の結果である差分がマネージドサービス301に関するものであれば、モデル作成部409は、オンプレミスシステム102での共通モデルとその共通モデルの作成履歴とに基づいて対応する。
【0042】
構成比較部410は、アプリケーション207がデプロイされているサイト(オンプレミスシステム102、パブリッククラウドシステム103、エッジシステム101)の構成情報と、共通モデルが作成されたときに利用されたサイトの構成情報とを比較し、構成情報の差分を抽出する。
【0043】
モデル管理テーブル411は、予測モデルの入力情報、出力情報、学習に利用する稼働情報および構成情報を利用アプリの1つ以上のソフトウェア毎に登録し、管理するためのテーブルである。また、モデル管理テーブル411では、共通化フラグにより、予測モデルが共通化されているか否かが示される。共通化フラグが1であれば、再学習による共通化モデルが登録されており、共通化フラグが0であれば、新規に予測モデルを登録した状態(どこにも適用されていないモデル)を示す。
【0044】
データ管理テーブル412は、共通モデルを学習する際に利用した構成情報や稼働情報を登録し、管理するためのテーブルである。
【0045】
共通モデル作成履歴管理テーブル413は、ソフトウェアのデプロイ先に応じた共通モデルの再学習、新規作成、更新などの履歴を登録し、管理するためのテーブルである。
【0046】
以下、各テーブルの構成と各部の処理の詳細について順次説明する。
【0047】
図5は、第1の実施の形態による稼働構成情報管理テーブル403の構成例を示す図である。稼働構成情報管理テーブル403には、各サイトにデプロイされている各アプリケーション207の各ソフトウェアについて構成および稼働状態に関する情報が記録される。構成はソフトウェアがデプロイされたときに定まった情報である。稼働状態は変化する可能性のある情報であり、最新の値が格納される。
【0048】
図5を参照すると、稼働構成情報管理テーブル403には、取得日時500、対象サイト名501、利用アプリ名502、利用ソフト名503、構成情報504、稼働情報509、および処理性能514が対応づけて記録される。
【0049】
取得日時500は、情報が取得された日時を示す。対象サイト名501は、対象とするサイトのサイト名を示す。利用アプリ名502は、サイトにデプロイされているアプリケーション207の名称を示す。利用ソフト名503は、当該アプリケーション207を構成する各ソフトウェアの名称を示す。構成情報504は、当該ソフトウェアがデプロイされているコンテナの構成を示す情報であり、当該コンテナのコンテナID 505、CPUコア数506、メモリ容量507、およびデータ容量508を含む。稼働情報509は、当該コンテナにおける当該ソフトウェアの稼働状態を示す情報であり、CPU使用率510、メモリ利用率511、データ利用率512、およびIOビジー率513を含む。処理性能514は、当該コンテナにおける当該ソフトウェアの処理性能を示す情報であり、平均処理時間515と課金(コスト)516を含む。
【0050】
図6は、第1の実施の形態によるアプリカタログ管理テーブル405の構成例を示す図である。アプリカタログ管理テーブル405には、各アプリケーション207の各ソフトウェアについてサイトに導入するためのカタログ情報が登録されている。
【0051】
図6を参照すると、アプリカタログ管理テーブル405には、各アプリケーション207について、アプリID600、利用アプリ名601、利用ソフト名602、導入サイト名603、デプロイツール名604、マニフェストID 605、イメージファイルID 606、およびイメージ格納先607が対応づけて記録されている。
【0052】
アプリID 600は、アプリケーション207の識別情報である。利用アプリ名601は、当該アプリケーション207の名称を示す。利用ソフト名602は、当該ソフトウェアの名称を示す。導入サイト名603は、当該ソフトウェアが導入されるサイトのサイト名を示す。デプロイツール名604は、当該ソフトウェアを当該サイトにデプロイするためのデプロイツールの名称を示す。マニフェストID 605は、当該ソフトウェアと当該サイトにデプロイする場合のマニフェストファイルの識別情報である。イメージファイルID 606は、当該ソフトウェアを当該サイトにデプロイした場合に利用されるイメージファイルの識別情報である。イメージ格納先607は、当該ソフトウェアを当該サイトにデプロイした場合に利用されるイメージファイルの格納場所を示す。
【0053】
図7は、第1の実施の形態によるモデル管理テーブル411の構成例を示す図である。モデル管理テーブル411には、共通化モデルを含む予測モデルのそれぞれについての情報が記録されている。
【0054】
図7を参照すると、モデル管理テーブル411には、登録日時700、モデル名701、共通化フラグ702、利用アプリ名703、利用ソフト名704、入力情報705、出力情報709、およびモデル作成データID 712が対応づけて記録される。
【0055】
登録日時700は、当該予測モデルが登録された日時を示す。モデル名701は、当該予測モデルの名称を示す。共通化フラグ702は、当該予測モデルが共通モデルであるか否かを示すフラグである。利用アプリ名703は、当該予測モデルが適用されるアプリケーション207の名称を示す。利用ソフト名704は、当該予測モデルが適用されるソフトウェアの名称を示す。入力情報705は、当該予測モデルへ説明変数として入力される情報であり、CPUコア数706、メモリ容量707、およびアプリ固有パラメータ708を含む。なお、アプリ固有パラメータとは、アプリケーション207の入力データ数などの入力情報を表し、また、複数の入力情報が想定される。出力情報709は、当該予測モデルから目的変数として出力される情報であり、処理時間710およびコスト(料金)711を含む。モデル作成データID 712は、当該予測モデルが作成されたときに用いられたデータの識別情報であり、稼働情報713および構成情報714を含む。
【0056】
図8は、第1の実施の形態によるデータ管理テーブル412の構成例を示す図である。データ管理テーブル412には、各サイトにデプロイされた各ソフトウェアの構成情報および稼働情報に関する管理情報が記録されている。
【0057】
図8を参照すると、データ管理テーブル412には、取得日時800、対象サイト名801、利用アプリ名802、利用ソフト名803、構成情報804、および稼働情報808が対応づけて記録されている。
【0058】
取得日時800は、当該情報が取得された日時を示す。対象サイト名801、利用アプリ名802、および利用ソフト名803は、当該情報の対象であるサイト、アプリケーション207、およびソフトウェアのそれぞれの名称を示す。構成情報804は、構成情報に関する管理情報であり、データ格納先805、データID 806、およびデータ名807を含む。稼働情報808は、稼働情報に関する管理情報であり、データ格納先809、データID 810、およびデータ名811を含む。
【0059】
図9は、第1の実施の形態によるモデル更新テーブル407の構成例を示す図である。モデル更新テーブル407は、更新された予測モデルのそれぞれについての情報が記録されている。
図9を参照すると、モデル更新テーブル407の構成は
図7に示したモデル管理テーブル411と同じ構成である。
【0060】
図10は、第1の実施の形態による共通モデル作成履歴管理テーブル413の構成例を示す図である。共通モデル作成履歴管理テーブル413には、作成された各共通モデルに関する情報が登録されている。
【0061】
図10を参照すると、共通モデル作成履歴管理テーブル413には、各共通モデルについて、利用アプリ名1000、利用ソフト名1001、登録日時1002、デプロイ先1003、モデル名1004、作成更新内容ID 1005、詳細情報1006、およびモデル作成データID 1007が記録されている。
【0062】
利用アプリ名1000は、当該共通モデルが適用されているアプリケーション207の名称を示す。利用ソフト名1001は、当該共通モデルが適用されているソフトウェアの名称を示す。登録日時1002は、当該共通モデルが登録された日時を示す。デプロイ先1003は、当該共通モデルが適用されるソフトウェアがデプロイされたサイトを示す。モデル名1004は、当該共通モデルの名称を示す。作成更新内容ID 1005は、当該共通モデルの作成あるいは更新に関する情報であり、例えば、0であれば「新規モデル作成」であることを示し、1であれば「リソースを変更し再学習したモデル」であることを示し、2であれば「モデルを再学習(更新)」であることを示す。詳細情報1006、当該共通モデルの作成更新内容の詳細情報である。モデル作成データID 1007は、当該予測モデルが作成されたときに用いられたデータの識別情報あり、稼働情報1008および構成情報1009のそれぞれの識別情報を含む。
【0063】
図11は、第1の実施の形態による操作用ポータル401の画面構成例を示す図である。本管理システム104は、操作用ポータル401によって、端末111を操作する操作者(ITインフラ管理者)に対して各種のユーザインタフースを提供する。
図11に示した画面1100はその一例である。画面1100は、操作者が所望のアプリケーションを所望のサイトにデプロイするための画面である。画面1100には、選択可能なアプリケーションの一覧と、選択可能なサイトの一覧と、実行ボタンと、キャンセルボタンとが表示されている。あるアプリケーションとあるサイトを選択した状態で実行ボタンをクリックすると、そのデプロイに関するメッセージ画面をポップアップ表示する。メッセージ画面に対して操作者がYesボタンをクリックすると、実際にデプロイが実行される。
【0064】
操作用ポータル401は、これ以外にも様々な処理に伴って様々な画面を表示する。例えば、予測モデルを用いたソフトウェアの処理性能の予測を実行の指示を受け付け、その結果を提示する画面を表示してもよい。
【0065】
図12は、第1の実施の形態おいて想定する予測モデルの概要を説明するための図である。
図12には、メモリ量を固定した場合のCPUコア数とレスポンスタイムとの関係を表すグラフと、CPUコア数を固定した場合のメモリ量とレスポンスタイムとの関係を表すグラフが示されている。
【0066】
本実施の形態では、ソフトウェアのデプロイ先となるコンテナに割り当てられるCPUコア数やメモリ量といったリソース量と、ソフトウェア処理のレスポンスタイムといった処理性能との間には線形の相関があると想定する。したがって、
図12に示すように、メモリ量を固定値とするとCPUコア数とレスポンスタイムとの関係は直線で近似でき、また、CPUコア数を固定値とするとメモリ量とレスポンスタイムとの関係は直線で近似できる。リソース量を含む構成情報を説明変数とし処理性能を目的変数とする線形回帰式を学習によって決定することにより予測モデルが生成される。
【0067】
図13は、第1の実施の形態おいて想定するアプリケーション207の概要を説明するための図である。
【0068】
本実施の形態では、アプリケーション207が一例として検索系アプリケーションであるとし、その検索系アプリケーションを、Web Serverのソフトウェアと、SQL Serverのソフトウェアとで構成することを想定している。そのような構成のアプリケーション207のデプロイ構成としては、Web ServerとSQL Serverを両方ともオンプレミスシステム102に構築したコンテナにデプロイすることができる。また、Web Serverのソフトウェアをパブクラシステム103で提供されるコンテナ上にデプロイし、パブリッククラウド事業者が提供するマネージドサービス301をSQL Serverのソフトウェアとして利用することもできる。
【0069】
どのようなデプロイ構成を採用するかを決定する際に予測モデルを使ってソフトウェアの処理性能を予測し、適切な環境(サイト)と適切なリソース量を決めていくことができる。
【0070】
図14は、第1の実施の形態による予測モデルの共通化に関する処理の概要を説明するための図である。
図14の概念
図1400には、検索系アプリAPP#3をパブクラシステム103にデプロイしようとするときに、既にオンプレミスシステム102にデプロイされている検索系アプリAPP#2をデプロイしたときに作成され、共通モデルとして登録されている予測モデルを使って、検索系アプリAPP#3のデプロイ先の候補であるパブクラシステム103での処理性能を予測し、予測結果を基に適切なリソース量を決定した上で実際にデプロイするまでの一連の処理の流れが(1)から(7)により概念的に示されている。
(1)構成比較部410が、既にデプロイされているアプリケーション207およびこれからデプロイしようとしているアプリケーション207の情報を取得する。
(2)構成比較部410は、これからデプロイしようとしているアプリケーション207と同種の既にデプロイされているアプリケーション207に適用されている共通モデルの情報を取得する。
(3)構成比較部410は、これからデプロイしようとしているアプリケーション207と既にデプロイされている同種のアプリケーション207との構成情報の差分を抽出する。
(4)モデル作成部409は、構成情報の差分を考慮したデータを学習することによってパブクラシステム103向けの共通モデルを作成する。
(5)モデル作成部409は、作成した共通モデルをモデル管理テーブル411に登録する。
(6)アプリデプロイ部404は、その共通モデルを用いて、検索系アプリAPP#3のパブクラシステム103上での処理性能を予測する。
(7)アプリデプロイ部404は、予測結果を基に必要なリソース量を算出し、そのリソース量を確保したコンテナにAPP#3の各ソフトウェアをデプロイする。
【0071】
これら一連の処理を以下により詳しく説明する。
【0072】
図15は、第1の実施の形態による予測モデルの共通化に関する処理の一連の流れを説明するためのフローチャートである。
【0073】
ステップ1500にて、情報取得部402が定期的に各サイトの稼働情報と構成情報を取得し、稼働構成情報管理テーブル403を更新する。
【0074】
新たに利用しようとするアプリ207のデプロイを実行する旨の指示があると(ステップ1051のYes)、ステップ1502にて、モデル管理部408は、アプリ207を構成するソフトウェアがモデル管理テーブル411に登録済であるか否か判定する。アプリ207を構成するソフトウェアがモデル管理テーブル411に登録済でなければ、管理システム104は、ステップ1503にて、共通モデルの初期登録処理を実行する。共通モデルの初期登録処理は、新たな共通モデルを初期登録する処理である。共通モデルの初期登録処理の詳細は
図16を用いて後述する。
【0075】
続いて、ステップ1504にて、アプリデプロイ部404は、モデル管理部408からアプリ207の共通モデルを取得し、アプリ207に共通モデルを適用することでアプリ207に割り当てるリソース量を算出し、当該リソース量をデプロイ構成の設定情報となるマニフェストファイル(以下、デプロイ構成情報ともいう)に更新し、利用アプリ207のデプロイを実施して処理を終了する。当該デプロイ構成情報には、アプリケーションの構成情報とそのアプリケーションのソフトウェアがどのサイトにデプロイされ、そのソフトウェアにどの予測モデルが適用されるかを示す情報が含まれていても良い。
【0076】
ステップ1502にて、アプリ207を構成するソフトウェアがモデル管理テーブル411に登録済であれば、ステップ1505にて、モデル管理部408は、アプリデプロイ部404から利用対象のアプリ207のデプロイ先に合わせたデプロイ構成情報を取得する。利用対象のアプリ207のデプロイ先に合わせたデプロイ構成情報とは、利用対象のアプリ207をこれからデプロイする予定のサイトをデプロイ先とするデプロイ構成情報である。このデプロイ構成情報には、これからデプロイしようとしているアプリ207の構成情報が含まれている。
【0077】
次に、ステップ1506にて、モデル管理部408は、利用対象のアプリ207の共通モデルを作成した際の構成情報をモデル管理テーブル411から取得する。
【0078】
更に、モデル管理部408は、ステップ1507にて、構成比較部410によって、ステップ1506で取得した共通モデルの構成情報と、ステップ1504で取得したデプロイ構成情報に含まれる構成情報との差分を抽出し、ステップ1508にて、それらの構成情報に差分があるか否か判定する。
【0079】
それら構成情報に差分があれば(ステップ1508のYes)、モデル管理部408は、ステップ1509にて、アプリ207に適用するモデル作成処理を実行する。アプリ207に適用するモデル作成処理とは、アプリ207を構成するソフトウェアの処理性能を予測するのに用いる予測モデルを作成する処理である。アプリ207に適用するモデル作成処理の詳細は
図17を用いて後述する。
【0080】
ステップ1508にて2つの構成情報に差分がなかったとき(ステップ1508のNo)と、ステップ1509の処理を終えたときとに、アプリデプロイ部404は、ステップ1510にて、モデル管理部408から利用対象のアプリ207の共通モデルを取得し、利用対象のアプリ207に共通モデルを適用することでアプリ207に割り当てるリソース量を算出し、当該リソース量をデプロイ構成情報に更新する。
【0081】
さらに、アプリデプロイ部404は、利用対象のアプリ207のデプロイを実施して処理を終了する。
【0082】
図16は、第1の実施の形態による共通モデルの初期登録処理を説明するためのフローチャートである。これは、
図15におけるステップ1603の処理を詳細に示すものである。
【0083】
ステップ1600にて、アプリデプロイ部404は、初期登録対象のアプリ207をオンプレシステム102にデプロイする。
【0084】
アプリ207をデプロイしようとしているサイトはパブクラシステム103であるが、この段階ではまずはオンプレシステム102にデプロイする。
【0085】
次に、ステップ1601にて、モデル作成部409は、オンプレシステム102上の初期登録対象のアプリ207をテストとして実行し、テスト実行により得られたテスト実行結果を示すデータを所定の場所に格納する。そのデータの管理情報をデータ管理テーブル412に登録する。テスト実行は、例えば、CPUコア数およびメモリ量といったリソース量を変更しながら処理時間といった処理性能を測定するというものである。
【0086】
次に、ステップ1602にて、モデル作成部409は、テスト実行結果を学習データとして学習を行い、初期登録対象のアプリ207の共通モデルを作成し、モデル管理テーブル411に登録する。ここでいう共通モデルは一例として回帰式である。更に、ステップ1603にて、モデル作成部409は、作成した当該共通モデルの内容を共通モデル作成履歴管理テーブル413に登録する。
【0087】
図17は、第1の実施の形態によるアプリ207に適用するモデル作成処理を説明するためのフローチャートである。これは、
図15におけるステップ1509の処理を詳細に示すものである。
【0088】
ステップ1700にて、モデル作成部409は、モデル管理テーブル412から、アプリ207を構成するソフトウェアに適用されている共通モデルを取得する。続いて、ステップ1701にて、モデル作成部409は、取得した当該共通モデルを学習したときに利用した情報をデータ管理テーブル412から取得する。
【0089】
次に、ステップ1702て、モデル作成部409は、デプロイしようとするアプリ207がパブクラシステム103においてマネージドサービス301を利用するか否か判定する。マネージドサービス301を利用するか否かは、例えば操作用ポータル401から操作者に判断の入力を得てもよい。マネージドサービス301を利用しないと判定された場合(ステップ1702のNo)には、ステップ1703にて、モデル作成部409は、ステップ1507で抽出された構成情報の差分を加味した構成情報を用いた学習によって予測モデルを作成し、その予測モデルを共通モデルとする。
【0090】
構成情報の差分を加味した構成情報を用いた学習は特に限定されないが、構成情報に含まれるリソース量の差異を所定の換算式によって処理性能に反映させるものであってもよい。例えば、CPUコア数が2倍になれば処理時間は1/2になるという想定による換算を行ってもよい。また、例えば、ソフトウェアをオンプレシステム102にデプロイするときに作成された共通モデルを基に、パブクラシステム103にそのマネージドサービス301を利用してデプロイする場合の処理性能を予測するための共通モデルを作成するときには、例えば、オンプレシステム102におけるリソース量と、パブクラシステム103のマネージドサービス301におけるリソース量とを所定の換算式によって換算して学習に用いることにしてもよい。
【0091】
また、既存の共通モデルを作成したときに学習に用いた構成情報においてリソース量の範囲が、新たな共通モデルを適用するソフトウェアのデプロイ先でのリソース量の取り得る範囲よりも広い場合に、既存の共通モデルを作成したときの構成情報を、新たな共通モデルを適用するソフトウェアのデプロイ先でのリソース量の取り得る範囲に制限して学習に用いることにしてもよい。既存の共通モデルを作成したときの構成情報から、リソース量の値が新たなソフトウェアのデプロイ先におけるリソース量の取り得る範囲内の構成情報のみに絞り込み、絞り込まれた構成情報を学習に用いることにしてもよい。ここでは、モデル作成部409は、ステップ1507で抽出された構成情報の差分に相当するリソース量の違いを考慮して学習に利用した情報を絞り込み、絞り込んだ当該情報によって再学習を行い、作成された予測モデルを共通モデルとするものとする。
【0092】
ステップ1702でマネージドサービス301を利用すると判定された場合(ステップ1702のYes)には、ステップ1704にて、モデル作成部409は、モデル管理テーブル411からアプリ207を構成するソフトウェアに対応付けられている共通モデルを取得する。
【0093】
次に、ステップ1705にて、モデル作成部409は、共通モデル作成履歴管理テーブル413における当該共通モデルの作成履歴を参照し、ステップ1704で抽出された共通モデルの利用頻度を算出する。
【0094】
続いて、ステップ1706にて、モデル作成部409は、ステップ1704で抽出された共通モデルの中から利用頻度に基づいていずれかを選択し、選択した共通モデルの情報を取得し、取得した情報を再学習することによって予測モデルを作成し、作成した予測モデルを、これからデプロイしようとしているアプリ207におけるマネージドサービス301向けの共通モデルを作成する。なお、利用頻度に基づいて共通モデルを選択するのは、ここでは、マネージドサービス301を利用するソフトウェアに適用する共通モデルがまだ存在していないため、他の環境(オンプレシステム102)にデプロイされているソフトウェアに適用される共通モデルの中から利用頻度の高いものを用いることにするというものである。また、共通モデルの利用頻度を、その共通モデルが適用されているソフトウェアのデプロイ先がどこか、またはリソース量の変化時の対応として利用されたのか等によって重み付けしてもよい。また、マネージドサービス301向けの共通モデルとは、マネージドサービス301の処理性能を予測するための予測モデルであり、かつそれが共通モデルとされているものをいう。
【0095】
ステップ1703の処理を実行した後、またはステップ1706の処理を実行した後、ステップ1707にて、モデル作成部409は、作成した当該共通モデルをモデル管理テーブル411に登録し、再学習に利用した情報をデータ管理テーブル412に登録する。更に、ステップ1708にて、モデル作成部409は、作成した当該共通モデルの内容を共通モデル作成履歴管理テーブル413に登録する。
【0096】
(第2の実施の形態)
【0097】
第2の実施の形態は、管理システム104が共通モデルの統廃合と更新とを行う点で第1の実施の形態とは異なる。第2の実施の形態におけるハイブリッドクラウドの構成は
図1に示した第1の実施の形態のものと同様である。また、第2の実施の形態によるエッジシステム101、オンプレシステム102、およびパブクラシステム103は、
図2または
図3に示したものと同様である。更に、第2の実施の形態による管理システム104は、基本的な構成については
図4に示した第1の実施の形態のものと同様であり、実行する処理が異なっている。以下、主に第2の実施の形態における第1の実施の形態と異なる部分について説明する。
【0098】
図18は、第2の実施の形態によるモデルの共通化処理の概要を説明するための図である。
図18の概念
図1900には、オンプレシステム102およびパブクラシステム103にデプロイされている検索系アプリAPP#2~4に適用される共通モデルについて、複数の共通モデルを1つにまとめる統廃合の処理と、各共通モデルを新しい情報によって学習して更新する更新の処理とを含む一連の処理の流れが(1)から(9)により概念的に示されている。
(1)情報取得部402が各サイトに導入されているアプリ207の稼働情報と構成情報を収集する。
(2)モデル管理部408が情報取得部402から各サイトのアプリ情報(稼働情報と構成情報)を取得する。
(3)モデル管理部408は、別サイトに導入されたアプリ207が新たに登録されていれば、その稼働情報と構成情報を抽出する。更に、モデル管理部408は、そのアプリケーションのソフトウェアに既存の共通モデルを適用できる場合、その既存の共通モデルを適用する。例えば、同種のソフトウェアに既存の共通モデルが適用されていれば、新たなソフトウェアに既存の共通モデルを適用できる。モデル管理部408は、新たなソフトウェアに既存の共通モデルが適用できない場合には、新たに学習を行って予測モデルを生成し、その予測モデルにより十分な予測結果が得れらることを確認の上、共通モデルとする。
(4)モデル更新部406も各サイトのアプリ情報を取得している。
(5)モデル更新部406は、操作用ポータルへの操作入力によって共通化指示が与えられる。
(6)モデル更新部406は、モデル管理部408から既存の共通モデルを含む各予測モデルのモデル情報を取得する。モデル情報には当該予測モデルが適用されているソフトウェアの情報が含まれている。
(7)モデル更新部406は、モデル情報を基に、適用する対象のソフトウェアに共通モデルを適用することができる予測モデルを抽出し、共通モデルへの統廃合を実施する。共通モデルへの統廃合というのは、元はある予測モデルが適用されていたソフトウェアに共通モデルを適用することにし、元の予測モデルを廃止することである。また、モデル更新部406は、モデル情報を基に稼働情報または構成情報が変化しているアプリ207のソフトウェアを抽出し、そのソフトウェアに適用されている予測モデルを更新する。
(8)モデル更新部406は、モデル管理部408に共通モデルを更新したことを通知する。
(9)モデル管理部408は、通知を基に更新された共通モデルを登録する。
【0099】
これら一連の処理を以下により詳しく説明する。
【0100】
図19は、第2の実施の形態によるモデル管理テーブル411の構成例を示す図である。
図19を参照すると、第2の実施の形態におけるモデル管理テーブル411は、
図7に示した第1の実施の形態におけるモデル管理テーブル411とは、予測モデルに対してポリシー2000が登録されている点で異なる。ポリシー2000は、予測モデルの共通化に関するポリシーであり、予測モデルを適用可能なソフトウェアおよび環境を規定する情報である。ポリシー2000には、同種アプリ2001、稼働情報2002、および構成情報の一致2003が含まれている。同種アプリ2001は、当該予測モデルが適用できるためには、対応づけられたアプリケーションと同種のアプリケーションを構成するソフトウェアである必要があるか否かを示す情報である。稼働情報2002は、稼働情報2002は、当該予測モデルが適用できるためには、対応づけられたアプリケーションとの稼働情報の差異がどの程度までである必要があるかを示す情報である。構成情報の一致2003は、当該予測モデルが適用できるためには、対応づけられたアプリケーションと構成が一致している必要があるか否かを示す情報である。
【0101】
図20は、第2の実施の形態による操作用ポータル401の画面構成例を示す図である。操作用ポータルの画面2100は、予測モデルの共通化処理を実行する操作を受け付ける画面である。画面2100には、予測モデルの一覧の表示と、アプリ207の一覧の表示と、実行ボタンと、登録ボタンと、メッセージ表示領域とが含まれている。予測モデルの一覧の表示からは、共通化処理の対象とする予測モデルを個々に選択することができる。アプリ207の一覧の表示からは、共通化処理の対象とする予測モデルとして、適用されるアプリ207およびソフトウェアに関する条件に該当する予測モデルを一括で選択することができる。実行ボタンをクリックすると、予測モデルの共通化処理が実行される。登録ボタンをクリックすると、予測モデルの共通化処理の結果が登録される。メッセージ表示領域には、操作の受け付けや処理の実行などに伴って操作者へのメッセージが表示される。
【0102】
図21は、第2の実施の形態による予測モデルの共通化処理の一連の流れを説明するためのフローチャートである。
【0103】
操作用ポータル401にて共通化の実行を指示する操作が受け付けられるまで、管理システム104はステップ2200から2204の処理を定期的に繰り返し実行する。ステップ2200では、情報取得部402は定期的に各サイトの稼働情報と構成情報を取得し、取得した情報によって稼働構成情報管理テーブル403を更新する。ステップ2201では、情報取得部402は、更新した稼働構成情報管理テーブル403をモデル管理部408に送信する。ステップ2202では、モデル管理部408は、情報取得部402から稼働構成情報管理テーブル403を受信し、その稼働構成情報管理テーブル403から各サイトのアプリ207に関する情報を抽出する。ステップ2203では、モデル管理部408は、別サイトに新たに導入されたアプリ207を抽出し、別サイトに新たに導入されたアプリ207があれば、そのアプリ207についてモデル登録処理を実施する。モデル登録処理は、適用する予測モデルが登録されていないソフトウェアに対して適用する予測モデルを登録する処理である。モデル登録処理の詳細は
図22を参照して後述する。
【0104】
ステップ2204では、管理システム104は、操作用ポータル401にて予測モデルの共通化処理を実行する旨の指示が受け付けられたか否か判定する。指示が受け付けられていなければ(ステップ2204のNo)、管理システム104はステップ2200に戻って処理を繰り返す。
【0105】
操作用ポータル401にて予測モデルの共通化処理を実行する旨の指示が受け付けられると(ステップ2204のYes)、ステップ2205にて、モデル更新部406は、モデル管理部408からモデル管理テーブル411とデータ管理テーブル412を取得し、情報取得部402から稼働構成情報管理テーブル403を取得する。
【0106】
次に、ステップ2206にて、モデル更新部406は、モデル管理テーブル411に登録された各モデル情報を基にモデル統廃合処理を実施する。モデル統廃合処理は、異なる予測モデルが適用されているが同一の共通モデルを適用できる複数のソフトウェアがある場合に、それらのソフトウェアに適用する共通モデルを1つに統合する処理である。モデル統合処理の詳細は
図23を参照して後述する。
【0107】
次に、ステップ2207にて、モデル更新部406は、モデル統廃合処理の結果をモデル更新テーブル407に登録すると共に、モデル管理部408と操作用ポータル401に通知する。操作用ポータル401では、モデル統廃合処理の結果を操作者に提示する画面が表示される。また、ステップ2208にて、モデル管理部408は、モデル更新部406から通知されたモデル統廃合処理の結果に基づいてモデル管理テーブル411を更新して一連の処理を終了する。
【0108】
図22は、第2の実施の形態によるモデル登録処理を説明するためのフローチャートである。本処理は
図21におけるステップ2203の処理の詳細である。
【0109】
ステップ2301は、
図21におけるステップ2201から2202に対応する処理である。ステップ2301にて、モデル管理部408は、情報取得部402から受信した稼働構成情報管理テーブル403から各サイトのアプリ207に関する情報の抽出、および、別サイトに導入されたアプリ207の抽出を実施する。
【0110】
モデル管理部408は、ステップ2302にて、抽出されたアプリ207の情報がモデル管理テーブル411に登録されているか否か確認し、ステップ2303にて、アプリ207の情報がモデル管理テーブル411に登録されているか否か判定する。抽出されたアプリ207がモデル管理テーブル411に登録されていればモデル登録処理は終了する。
【0111】
ステップ2303でアプリ207の情報がモデル管理テーブル411に登録されていないと判定されたら、ステップ2304にて、モデル管理部408は、稼働構成情報管理テーブル403から登録されていない当該アプリケーション(以下「利用アプリ」ともいう)を構成するソフトウェア(以下「利用ソフト」ともいう)に関する情報を抽出する。
【0112】
更に、モデル管理部408は、ステップ2305にて、登録されていない利用アプリを構成する利用ソフトと同種のソフトウェア(以下「同種ソフト」ともいう)に適用する予測モデルがモデル管理テーブル411に登録されているか否か確認し、ステップ2306にて、同種ソフトに適用する予測モデルがモデル管理テーブル411に登録されているか否か判定する。なお、ここでは同種のソフトウェアに適用する予測モデルを対象とする例を示したが、他の例として、ポリシー2000を満たすソフトウェアに適用する予測モデルを対象としてもよい。
【0113】
同種ソフトに適用する予測モデルがモデル管理テーブル411に登録されていれば、モデル管理部408は、ステップ2307にて、利用ソフトの稼働情報と構成情報をデータ管理テーブル412から取得する。更に、ステップ2308にて、モデル管理部408は、同種ソフトに適用する予測モデルを作成したとき情報を示すモデル作成データID 712をモデル管理テーブル411から取得し、当該IDに該当する稼働情報および構成情報をデータ管理テーブル412から取得する。
【0114】
次に、ステップ2309にて、モデル管理部408は、ステップ2307およびステップ2308のそれぞれで取得した稼働情報および構成情報を合成して再学習を行い新たな予測モデルを作成する。ここで作成される新たな予測モデルは、利用ソフトと同種ソフトの両方に適用されうるものとなる。そこで、モデル管理部408は、その新たな予測モデルを適用することによって利用ソフトと同種ソフトのいずれも所望の情報が取得できることを確認する。所望の情報とは、予測モデルによる処理性能の適切な予測結果である。例えば、所望の情報は、必要なリソース量の適切な予測値である。
【0115】
ステップ2310にて、モデル管理部408は、利用ソフトと同種ソフトと共通モデルの統廃合が可能か否か判定する。ステップ2309にて作成した予測モデルによって利用ソフトと同種ソフトについて所望の情報が得られる場合には統廃合が可能であると判断し、その予測モデルによって利用ソフトと同種ソフトの一方あるいは両方について所望の情報が得られない場合には統廃合が可能ではないと判断する。
【0116】
統廃合が可能と判断されれば(ステップ2310のYes)、モデル管理部408は、ステップ2312にて、利用ソフトに対して同種モデルと同じ新たな共通モデルを適用することをモデル管理テーブル411に登録する。一方、統廃合が不可能と判断されれば(ステップ2310のNo)、モデル管理部408は、ステップ2311にて、利用ソフトに対する予測モデルを新たに作成し、モデル管理テーブル411に登録する。
【0117】
図23は、第2の実施の形態によるモデル統廃合処理を説明するためのフローチャートである。モデル統廃合処理は、操作用ポータル401にて受け付けられた指示により、共通モデルを統廃合する処理である。本処理は
図21におけるステップ2206の処理の詳細である。
【0118】
ステップ2401にて、モデル更新部406は、ステップ2205にて取得したモデル管理テーブル411からモデル名701、利用アプリ名703、利用ソフト名704、および共通化フラグ702を抽出する。
【0119】
ステップ2402にて、モデル更新部406は、ステップ2401にて抽出した情報を基に、互いに同種のソフトウェアを探索し、見つかった同種のソフトウェアに共通モデルが適用されているか否かを確認する。ステップ2403にて、モデル更新部406は、同種のソフトウェアに共通モデルが適用されているか否かを判定する。
【0120】
互いに同種のソフトウェアに共通モデルが適用されていなければ(ステップ2403のNo)、モデル更新部406は、ステップ2404にて、モデル管理テーブル411から、それら互いに同種のソフトウェアのそれぞれに適用する予測モデルを作成したときに用いられたモデル作成データID 712を取得し、当該IDのそれぞれにマッチする構成情報804および稼働情報808をデータ管理テーブル412から取得し、統合する。
【0121】
次に、ステップ2405にて、モデル更新部406は、ステップ2404で統合された構成情報804および稼働情報808を学習することにより、それらのソフトウェアに適用しうる予測モデルを作成する。更に、ここで作成された予測モデルをそれらソフトウェアに適用してみて適切な予測結果が得られることを確認する。例えば、適切な予測結果は、必要なリソース量の適切な予測値である。
【0122】
そして、ステップ2406にて、モデル更新部406は、予測モデルの統廃合が可能か否か判定する。ステップ2405にて作成した予測モデルによって互いに同種のソフトウェアについて適切な予測結果が得られる場合には統廃合が可能であると判断し、その予測モデルによって互いに同種のソフトウェアいずれかについて適切な予測結果が得られない場合には統廃合が可能ではないと判断する。予測モデルの統廃合が可能でないと判断されたら(ステップ2406のNo)、モデル更新部406は、それら互いに同種のソフトウェアに適用する予測モデルを統廃合することなく処理を終了する。
【0123】
ステップ2403にて、互いに同種のソフトウェアに共通モデルが適用されていれば(ステップ2403のYes)、モデル更新部406は、ステップ2407にて、モデル更新テーブル407に登録されていないソフトウェアに対して、同種のソフトウェアに適用されている共通モデルを適用するように、モデル更新テーブル407に登録する。
【0124】
ステップ2408にて、モデル更新部406は、稼働構成情報管理テーブル403から、それら互いに同種のソフトウェアのそれぞれの構成情報を取得する。
【0125】
ステップ2409にて、モデル更新部406は、同種のソフトウェアでありかつ構成が同様であるが、適用される予測モデルが異なるソフトウェアを抽出し、それらのソフトウェアに適用される予測モデルが共通モデルであるか否かをモデル管理テーブル411の共通化フラグ702を参照して確認する。
【0126】
ステップ2410にて、モデル更新部406は、予測モデルの統廃合が可能か否か判定する。ステップ2409にて、同種のソフトウェアでありかつ構成が同様のソフトウェアに対して同じ共通モデルが適用されていなければ、それらのソフトウェアに適用する予測モデルを統廃合することが可能と判断する。その場合は、それらソフトウェアのいずれか適用されている共通モデルを、それらソフトウェアに適用することにより、予測モデルの統廃合が可能である。一方、同種のソフトウェアでありかつ構成が同様のソフトウェアに対して既に同じ共通モデルが適用されていれば、それらのソフトウェアに適用する予測モデルを統廃合することは可能でないと判断する。予測モデルの統廃合が可能でないと判断されたら(ステップ2410のNo)、モデル更新部406は、それらのソフトウェアに適用する予測モデルを統廃合することなく処理を終了する。
【0127】
ステップ2406で予測モデルの統廃合が可能と判断された場合(ステップ2406のYes)と、ステップ2410で予測モデルの統廃合が可能と判断された場合(ステップ2410のYes)には、モデル更新部406は、ステップ2411にて、予測モデルを統廃合した結果をモデル更新テーブル407に登録するとともに、モデル更新テーブル407に新たな情報が登録された旨をモデル管理部408に通知する。ステップ2412にて、モデル管理部408は、モデル更新テーブル407に基づいてモデル管理テーブル411を更新する。
【0128】
以上説明した実施形態には以下に示す事項が含まれる。ただし、上記実施形態に含まれる事項が以下に示すものに限定されることはない。
【0129】
(事項1)
アプリケーションを構成するソフトウェアのデプロイ先における処理性能を予測する予測モデルを管理するモデル管理システムであって、
同じ種類のソフトウェアの処理性能の予測に共通的に利用可能な予測モデルである第1共通モデルを記憶するモデル管理テーブルと、
前記第1共通モデルが作成されたときに学習に用いられた、ソフトウェアのデプロイ先の構成を示す第1構成情報を記憶するデータ管理テーブルと、
予測の対象である対象ソフトウェアのデプロイ先の構成を示す第2構成情報と、前記第1構成情報との差分を抽出する構成比較部と、
前記第1構成情報に対して前記差分を加味した構成情報を用いた学習により予測モデルを作成し、該予測モデルを新たな共通モデルである第2共通モデルとするモデル作成部と、
を有するモデル管理システム。
【0130】
このように、同種のソフトウェアの処理性能の予測に共通的に利用可能な共通モデルを予め用意し、その共通モデルが作成されたときのデプロイ先と対象ソフトウェアのデプロイ先との構成の差分を加味して新たな共通モデルを作成する。そのため、予測モデルの共通化と差分を加味した好適な学習により、ソフトウェアの処理性能を評価するための予測モデルを効率よく管理することができる。
【0131】
(事項2)
事項1に記載のモデル管理システムにおいて、
前記第1共通モデルが作成されたときに該共通モデルによって処理性能の予測が行われたソフトウェアのデプロイ先はオンプレミスのコンピュータであり、
前記対象ソフトウェアのデプロイ先はパブリッククラウドのコンピュータである。
【0132】
(事項3)
事項2に記載のモデル管理システムにおいて、
前記予測モデルは、演算処理に供されるリソースのリソース量に関する説明変数に基づいて、前記演算処理の処理性能を表す目的変数を算出する回帰式である。
【0133】
これにより、回帰式により処理性能を予測するので、予測結果の根拠が明確であり、また学習データが十分でない領域の予測も可能である。
【0134】
(事項4)
事項3に記載のモデル管理システムにおいて、
前記構成比較部は、前記第1構成情報に含まれるリソース量の範囲が前記第2構成情報に含まれるリソース量の取り得る範囲よりも広い場合、前記第1構成情報を、前記第2構成情報に含まれるリソース量の範囲に制限し、前記第2構成情報と、前記制限された第1構成情報との差分を抽出し、
前記モデル作成部は、前記制限された第1構成情報と、前記第1構成情報を制限して抽出された差分とに基づいて前記第2共通モデルを作成する。
【0135】
これによれば、学習データを必要な範囲に絞り込んで学習を行うことにより、必要な範囲で高い予測精度が得られる共通モデルを作成することができる。
【0136】
(事項5)
事項2に記載のモデル管理システムにおいて、
前記パブリッククラウドのコンピュータは、前記オンプレミスのコンピュータでは提供されない固有のコンピューティングサービスである固有サービスを提供し、前記固有サービスを利用して前記パブリッククラウドに前記対象ソフトウェアをデプロイする場合、
前記モデル作成部は、前記対象ソフトウェアと同じ種類のソフトウェアのオンプレミスのコンピュータでの処理性能の予測に利用可能な第1共通モデルに基づいて、前記対象ソフトウェアのパプリッククラウドのコンピュータで前記固有サービスを利用しての処理性能の予測に利用可能な第2共通モデルを作成する。
【0137】
これにより、パブリッククラウドの固有サービスを利用して対象ソフトウェアをデプロイする場合にもその共通モデルを、オンプレミスの共通モデルを元に作成することができる。
【0138】
(事項6)
事項1に記載のモデル管理システムにおいて、
前記モデル作成部により作成された共通モデルを含む予測モデルと該予測モデルにより処理性能の予測が行われるソフトウェアとを対応付けて管理するモデル管理部と、
前記モデル管理部により管理されている中に、同種の複数のソフトウェアの処理性能の予測に異なる複数の予測モデルが用いられていれば前記複数の予測モデルが作成されたときのデータを再学習して新たな予測モデルを作成し、該新たな予測モデルにより前記複数のソフトウェアの処理性能が正しく予測されるのであれば、該新たな予測モデルを前記複数のソフトウェアに対する共通モデルとするモデル更新部と、
を更に有する。
【0139】
これにより、共通モデルを統廃合することにより予測モデルの管理を容易にすることができる。
【0140】
(事項7)
事項6に記載のモデル管理システムにおいて、
前記モデル更新部は、前記モデル管理部により管理されている中に、同種かつデプロイ先の構成が同じである複数のソフトウェアの処理性能の予測に異なる共通モデルが用いられていれば、いずれか1つの共通モデルを前記複数のソフトウェアに対する共通モデルとする。
【0141】
これにより、共通モデルを統廃合することにより予測モデルの管理を容易にすることができる。
【0142】
(事項8)
事項1に記載のモデル管理システムにおいて、
前記共通モデルが作成されたとき該共通モデルによって処理性能の予測が行われたソフトウェアのデプロイ先はパブリッククラウドのコンピュータであり、
前記対象ソフトウェアのデプロイ先はオンプレミスのコンピュータである。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【0143】
101…エッジシステム、102…オンプレミスシステム、103…パブリッククラウドシステム、104…管理システム、105…通信装置、106…LAN、107…物理サーバ、108…SAN、109…ストレージ装置、110…ハイブリッドクラウド環境、200…CPU、201…チップセット、202…物理NIC、203…HBA、204…メモリ、205…コンテナ、206…OS、207…アプリケーション、208…ストレージコントローラ、209…物理ボリューム、301…マネージドサービス、401…操作用ポータル、402…情報取得部、403…稼働構成情報管理テーブル、404…アプリデプロイ部、405…アプリカタログ管理テーブル、406…モデル更新部、407…モデル更新テーブル、408…モデル管理部、409…モデル作成部、410…構成比較部、411…モデル管理テーブル、412…データ管理テーブル、413…共通モデル作成履歴管理テーブル、500…取得日時、501…対象サイト名、502…利用アプリ名、503…利用ソフト名、504…構成情報、505…コンテナID、506…CPUコア数、507…メモリ容量、508…データ容量、509…稼働情報、510…CPU使用率、511…メモリ利用率、512…データ利用率、513…IOビジー率、514…処理性能、515…平均処理時間、516…課金、600…アプリID、601…利用アプリ名、602…利用ソフト名、603…導入サイト名、604…デプロイツール名、605…マニフェストID、606…イメージファイルID、607…イメージ格納先、700…登録日時、701…モデル名、702…共通化フラグ、703…利用アプリ名、704…利用ソフト名、705…入力情報、706…CPUコア数、707…メモリ容量、708…アプリ固有パラメータ、709…出力情報、710…処理時間、712…モデル作成データID、713…稼働情報、714…構成情報、800…取得日時、801…対象サイト名、802…利用アプリ名、803…利用ソフト名、804…構成情報、805…データ格納先、806…データID、807…データ名、808…稼働情報、809…データ格納先、810…データID、811…データ名、1000…利用アプリ名、1001…利用ソフト名、1002…登録日時、1003…デプロイ先、1004…モデル名、1005…作成更新内容ID、1006…詳細情報、1007…モデル作成データID、1008…稼働情報、1009…構成情報、1100…画面、1400…概念図、1900…概念図、2000…ポリシー、2001…同種アプリ、2002…稼働情報、2003…構成情報の一致、2100…画面