(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022158061
(43)【公開日】2022-10-14
(54)【発明の名称】表示方法、及び表示プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20221006BHJP
G06F 9/50 20060101ALI20221006BHJP
G06F 9/455 20060101ALI20221006BHJP
G06Q 30/02 20120101ALI20221006BHJP
【FI】
G06Q50/10
G06F9/50 120Z
G06F9/455 150
G06Q30/02 490
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021062690
(22)【出願日】2021-04-01
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】佐藤 昌浩
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
(57)【要約】
【課題】移行すべきコンテナを利用者が判断できるようにすることを目的とする。
【解決手段】第1システムで動作しているプログラムに割り当てられた第1リソース量を特定し、第2システムにおいて前記プログラムに割り当てる第2リソース量を、前記第1リソース量に基づいて決定し、前記第2システムの利用料金を、前記第2リソース量に基づいて算出し、算出した前記利用料金を表示する、処理をコンピュータが実行する。
【選択図】
図15
【特許請求の範囲】
【請求項1】
第1システムで動作しているプログラムに割り当てられた第1リソース量を特定し、
第2システムにおいて前記プログラムに割り当てる第2リソース量を、前記第1リソース量に基づいて決定し、
前記第2システムの利用料金を、前記第2リソース量に基づいて算出し、
算出した前記利用料金を表示する、
処理をコンピュータが実行することを特徴とする表示方法。
【請求項2】
前記プログラムにアクセスするときのAPI(アプリケーションプログラミングインターフェイス)ごとの通信量を特定する処理を更に有し、
前記第2リソース量を決定する処理において、前記第2リソース量の比率が、前記通信量の比率となるように前記第2リソース量を決定することを特徴とする請求項1に記載の表示方法。
【請求項3】
前記第2リソース量は、前記プログラムの前記第1リソース量以上であることを特徴とする請求項1又は2に記載の表示方法。
【請求項4】
前記第1システムにおける前記プログラムの前記第1リソース量は、予め定められた閾値以上であることを特徴とする請求項3に記載の表示方法。
【請求項5】
前記第1リソース量以上の前記第2リソース量の中で、前記利用料金が最安値になる第2リソース量の前記プログラムを前記第1システムから前記第2システムへの移行対象として選択する処理を更に有することを特徴とする請求項3又は4に記載の表示方法。
【請求項6】
前記プログラムが出力するログを格納するデータベースにおけるデータ種別ごとのデータ量を特定する処理を更に有し、
前記第2リソース量を決定する処理において、前記第2リソース量の比率が、前記データ量の比率となるように前記第2リソース量を決定することを特徴とする請求項1に記載の表示方法。
【請求項7】
前記第2リソース量を決定する処理において、前記プログラムにアクセスするときのAPI(アプリケーションプログラミングインターフェイス)が同じ種類である場合、前記第2リソース量の比率が、均等となるように前記第2リソース量を決定することを特徴とする請求項1に記載の表示方法。
【請求項8】
前記プログラムのグループを生成する処理と、前記プログラムのプログラム間通信の通信関係に基づいて、前記プログラムを前記グループに登録する処理を更に有し、
前記第2リソース量を決定する処理において、前記グループごとに、前記第2リソース量を決定することを特徴とする請求項1から7のいずれか1項に記載の表示方法。
【請求項9】
前記グループを登録する処理において、前記プログラム間通信の通信頻度が予め定められた閾値頻度より低い前記プログラムは前記グループの登録対象から除外することを特徴とする請求項8に記載の表示方法。
【請求項10】
前記第2システムから前記第1システムに向かう通信の通信料を算出する処理を更に有し、
前記利用料金を算出する処理において、前記通信料を前記利用料金に加算した総利用料を算出することを特徴とする請求項1から9のいずれか1項に記載の表示方法。
【請求項11】
第1システムで動作しているプログラムに割り当てられた第1リソース量を特定し、
第2システムにおいて前記プログラムに割り当てる第2リソース量を、前記第1リソース量に基づいて決定し、
前記第2システムの利用料金を、前記第2リソース量に基づいて算出し、
算出した前記利用料金を表示する、
処理をコンピュータに実行させることを特徴とする表示プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本件は表示方法、及び表示プログラムに関する。
【背景技術】
【0002】
オンプレミス上のシステムで複数のコンテナが動作している場合に、特定のコンテナに処理が集中することがある。その結果、その特定のコンテナの稼働に要するリソースが不足し、システムとしての性能が低下することがある。このような場合、例えば対象のコンテナをパプリッククラウド上のシステムにスケールアウトにより移行して、リソース不足を解消することが想定される。
【0003】
しかしながら、コンテナをパプリッククラウド上のシステムに移行すると、パプリッククラウド上のシステムを利用する利用料金が発生することがある。この利用料金はコンテナが利用するリソースのリソース量に応じて決定されている。このため、コンテナを単純にパプリッククラウド上のシステムに移行すると、システムの性能低下が抑制されても、多大な利用料金が請求される可能性がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015-152984号公報
【特許文献2】米国特許出願公開第2016/0173411号明細書
【特許文献3】特表2020-518932号公報
【特許文献4】特開2016-206952号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一側面によれば、移行すべきコンテナを利用者が判断できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
一側面によれば、第1システムで動作しているプログラムに割り当てられた第1リソース量を特定し、第2システムにおいて前記プログラムに割り当てる第2リソース量を、前記第1リソース量に基づいて決定し、前記第2システムの利用料金を、前記第2リソース量に基づいて算出し、算出した前記利用料金を表示する、処理をコンピュータが実行する。
【発明の効果】
【0007】
一側面によれば、移行すべきコンテナを利用者が判断できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は第1システム及び第2システムを説明する図である。
【
図2】
図2は第1システムのハードウェアとその上で実行される各プログラムの各々の構成図である。
【
図3】
図3は管理サーバのハードウェア構成の一例である。
【
図4】
図4(a)は管理サーバの機能構成の一例である。
図4(b)は配備部の機能構成の一例である。
【
図5】
図5(a)は第1収集部が実行する処理の一例を示すフローチャートである。
図5(b)は第2収集部が実行する処理の一例を示すフローチャートである。
図5(c)は第3収集部が実行する処理の一例を示すフローチャートである。
【
図6】
図6は管理サーバが第1システム及び第2システムから各種の情報を収集する様子を説明する図である。
【
図7】
図7は第1実施形態に係るコンテナの間で行われるメッセージの一例を説明する図である。
【
図8】
図8(a)は第1実施形態に係るトレーシング情報の一例である。
図8(b)は第1実施形態に係る通信量情報の一例である。
図8(c)は第1実施形態に係るコンテナ構成情報の一例である。
【
図9】
図9は第1実施形態に係る配備部が実行する処理の一例を示すフローチャート(その1)である。
【
図10】
図10は第1実施形態に係る配備部が実行する処理の一例を示すフローチャート(その2)である。
【
図11】
図11(a)は第1実施形態に係るグループ「1」におけるサブグループ「1-1」及び「1-2」の生成を説明する図である。
図11(b)は第1実施形態に係るグループ「2」におけるサブグループ「2-1」及び「2-2」の生成を説明する図である。
【
図12】
図12は第1実施形態に係る総リソース量と補強対象のリソース量の比較を説明する図である。
【
図13】
図13(a)は第1課金情報の一例である。
図13(b)は第2課金情報の一例である。
【
図14】
図14は第1実施形態に係る総利用料金の算出を説明する図である。
【
図16】
図16(a)は第1実施形態に係る第1設定ファイルの一例である。
図16(b)は第1実施形態に係る第2設定ファイルの一例である。
【
図17】
図17(a)はコンテナ移行前の第1システム及び第2システムの一例である。
図17(b)はコンテナ移行後の第1システム及び第2システムの一例である。
【
図18】
図18は第2実施形態に係る配備部が実行する処理の一例を示すフローチャートの一部である。
【
図19】
図19は第2実施形態に係るコンテナの間で行われるメッセージの一例を説明する図である。
【
図20】
図20(a)は第2実施形態に係るトレーシング情報の一例である。
図20(b)は第2実施形態に係る通信量情報の一例である。
図20(c)は第2実施形態に係るコンテナ構成情報の一例である。
【
図21】
図21は第2実施形態に係るグループ「1」におけるサブグループ「1-1」及び「1-2」の生成を説明する図である。
【
図22】
図22は第2実施形態に係るグループ「2」におけるサブグループ「2-1」及び「2-2」の生成を説明する図である。
【
図23】
図23は第2実施形態に係る総リソース量と補強対象のリソース量の比較を説明する図である。
【
図24】
図24は第2実施形態に係る総利用料金の算出を説明する図である。
【
図26】
図26は第2実施形態に係る第1設定ファイルの一例である。
【
図27】
図27は第2実施形態に係る第2設定ファイルの一例である。
【発明を実施するための形態】
【0009】
以下、本件を実施するための形態について図面を参照して説明する。
【0010】
(第1実施形態)
図1に示すように、第1システムST1は、第1担当者端末110、第2担当者端末120、ユーザ端末130、管理サーバ200とともに、オンプレミス側に配置されている。第1システムST1、第1担当者端末110、第2担当者端末120、ユーザ端末130、管理サーバ200は第1通信ネットワークNW1によって互いに接続されている。第1通信ネットワークNW1としては例えばLAN(Local Area Network)などがある。第1通信ネットワークNW1はインターネットといった第2通信ネットワークNW2と接続されている。
【0011】
第2システムST2はクラウド側に配置されている。例えば第2システムST2はパブリッククラウドのクラウドサービスを提供するデータセンターDC内に設置される。第2システムST2はデータセンターDC内に設置された第2システムST2以外の様々なシステムとLANなどの通信回線NW3によって互いに接続されている。この通信回線NW3は第2通信ネットワークNW2と接続されている。したがって、第2システムST2と第1システムST1は、通信回線NW3、第2通信ネットワークNW2、及び第1通信ネットワークNW1によって互いに通信することができる。なお、通信回線NW3、第2通信ネットワークNW2、及び第1通信ネットワークNW1はいずれも有線通信と無線通信の少なくとも一方を含んでいる。
【0012】
第1システムST1及び第2システムST2はいずれもコンピュータシステムである。コンテナは第1システムST1や第2システムST2で動作するプログラムの一例である。第1システムST1及び第2システムST2はいずれも複数のコンテナによって様々なサービス(具体的には通信サービスや情報処理サービスなど)を提供する。ユーザ端末130は第1システムST1にも第2システムST2にもアクセスすることができる。ユーザ端末130を操作するアプリユーザは例えば第1システムST1が提供するサービスを利用することができる。第1担当者端末110及び第2担当者端末120はいずれも第1システムST1及び第2システムST2にアクセスすることができる。第1担当者端末110を操作する分析担当者は例えば第1システムST1が提供するサービスの負荷を分析することができる。第2担当者端末120についても第1担当者端末110と同様である。
【0013】
管理サーバ200は第1システムST1のコンテナの構成を管理する管理者が操作するサーバ装置である。管理者を管理サーバ200の利用者と称してもよい。管理サーバ200は第1システムST1にアクセスし、第1システムST1が管理する各種の情報を定期的に収集する。管理サーバ200は、管理者の操作に基づく特定の依頼を受信すると、収集した情報に基づいて、移行すべきコンテナを管理者が判断できる情報を提供する。例えば、管理サーバ200は第1システムST1で動作する複数のコンテナの一部をスケールアウトにより第2システムST2に移行する際の決定に有益な情報を提供する。詳細は後述するが、この有益な情報としては、例えば第2システムST2の利用料金や、第2システムST2に移行するコンテナに割り当てられるリソース量などがある。
【0014】
図2を参照して、第1システムST1の詳細について説明する。なお、第2システムST2については第1システムST1と基本的に同様の構成であるため、第2システムST2の詳細な説明については省略する。
【0015】
図2に示すように、第1システムST1は、メモリやCPU(Central Processing Unit)等のハードウェアリソース11を有する。そして、ハードウェアリソース11に含まれるメモリとCPUが協働してOS(Operating System)12を実行し、更にOS12の上でハードウェアリソース11がコンテナエンジン15を実行する。コンテナエンジン15は、コンテナ16を生成するためのDOCKER(登録商標)等のプログラムである。コンテナ16はポッドに収容される。なお、ポッドはコンテナ16を管理するための最小単位であり、複数のコンテナ16の集合体である。ポッドによりコンテナ16を単独で管理するのではなく、グループとして管理することができる。
【0016】
コンテナ16の個数は特に限定されないが、この例ではコンテナエンジン15が全部でn個のコンテナ16を起動するものとし、各々のコンテナを「#1」、「#2」、・・・、「#n」等の文字列で識別する。また、n個のコンテナ16は、それぞれ1つのアプリ17を実行する。各アプリ17は後述するWebアプリや分析用アプリ等を実現するためのアプリケーションプログラムである。
【0017】
更に、この例では、OS12の上でハードウェアリソース11がコンテナオーケストレーションプログラムを実行する。これにより、n個のコンテナ16がコンテナオーケストレーションプログラムの配下に置かれ、各コンテナ16が同一のコンテナ実行環境20で起動する。なお、コンテナオーケストレーションプログラムとしては、例えばKubernetes(K8s)がある。
【0018】
コンテナ実行環境20は、コンテナオーケストレーションプログラムの管理下にある環境である。コンテナオーケストレーションプログラムは複数のコンテナ16の各々に名前を付与するが、一つのコンテナ実行環境20では名前が衝突することがなく、名前によって一意にコンテナを識別することができる。
【0019】
また、一つのコンテナ実行環境20は、複数のコンテナ16によって形成されたクラスタコンピュータと捉えることができる。コンテナオーケストレーションプログラムは、相異なるコンテナ実行環境20を一意に識別するためのクラスタIDを各々のコンテナ実行環境20に付与する。
【0020】
図3を参照して、管理サーバ200のハードウェア構成について説明する。
図3に示すように、管理サーバ200は表示方法を実行する制御装置210を含んでいる。制御装置210は、CPU210Aと、RAM(Random Access Memory)210BとROM(Read Only Memory)210Cとを含んでいる。制御装置210は、ネットワークI/F(インタフェース)210DとHDD(Hard Disk Drive)210Eを含んでいる。HDD(Hard Disk Drive)210Eに代えて、SSD(Solid State Drive)を採用してもよい。
【0021】
制御装置210は、必要に応じて、入力I/F210F、出力I/F210G、入出力I/F210H、ドライブ装置210Iの少なくとも1つを含んでいてもよい。CPU210Aからドライブ装置210Iまでは、内部バス210Jによって互いに接続されている。すなわち、制御装置210はコンピュータによって実現することができる。
【0022】
入力I/F210Fには入力装置710が接続される。入力装置710としては例えばキーボードやマウス、タッチパネルなどがある。入力装置710を管理サーバ200に含めてもよい。出力I/F210Gには表示装置720が接続される。表示装置720としては例えば液晶ディスプレイなどがある。表示装置720を管理サーバ200に含めてもよい。入出力I/F210Hには半導体メモリ730が接続される。半導体メモリ730としては、例えばUSB(Universal Serial Bus)メモリやフラッシュメモリなどがある。入出力I/F210Hは半導体メモリ730に記憶された表示プログラムを読み取る。入力I/F210F及び入出力I/F210Hは例えばUSBポートを備えている。出力I/F210Gは例えばディスプレイポートを備えている。
【0023】
ドライブ装置210Iには可搬型記録媒体740が挿入される。可搬型記録媒体740としては、例えばCD(Compact Disc)-ROM、DVD(Digital Versatile Disc)といったリムーバブルディスクがある。ドライブ装置210Iは可搬型記録媒体740に記録された表示プログラムを読み込む。ネットワークI/F210Dは例えばLANポートや通信回路などを備えている。
【0024】
RAM210BにはROM210C、HDD210E、半導体メモリ730の少なくとも1つに記憶された表示プログラムがCPU210Aによって一時的に格納される。RAM210Bには可搬型記録媒体740に記録された表示プログラムがCPU210Aによって一時的に格納される。格納された表示プログラムをCPU210Aが実行することにより、CPU210Aは後述する各種の機能を実現し、また、後述する各種の処理を実行する。なお、表示プログラムは後述するフローチャートに応じたものとすればよい。
【0025】
図4(a)及び(b)を参照して、制御装置210の機能構成について説明する。なお、
図4(a)では制御装置210の機能の要部が示されている。
【0026】
図4(a)に示すように、制御装置210は記憶部211、処理部212、入力部213、出力部214、及び通信部215を備えている。記憶部211は上述したRAM210BやHDD210Eなどによって実現することができる。処理部212は上述したCPU210Aによって実現することができる。入力部213は上述した入力I/F210Fによって実現することができる。出力部214は上述した出力I/F210Gによって実現することができる。通信部215は上述したネットワークI/F210Dによって実現することができる。したがって、記憶部211、処理部212、入力部213、出力部214、及び通信部215は互いに接続されている。
【0027】
記憶部211はトレーシングDB(Database)221、通信量DB222、及びコンテナ構成DB223を含んでいる。処理部212は第1収集部231、第2収集部232、第3収集部233、及び配備部234を含んでいる。第1収集部231は第1システムST1が管理するトレーシング情報を収集する。第1収集部231は収集したトレーシング情報をトレーシングDB221に登録する。これにより、トレーシングDB221はトレーシング情報を記憶する。第2収集部232は第1システムST1が管理する性能情報(メトリクス情報)を収集する。第2収集部232は収集した性能情報を通信量情報として通信量DB222に登録する。これにより、通信量DB222は通信量情報を記憶する。第3収集部233は第1システムST1が管理するコンテナ構成情報を収集する。第3収集部233は収集したコンテナ構成情報をコンテナ構成DB223に登録する。これにより、コンテナ構成DB223はコンテナ構成情報を記憶する。なお、トレーシング情報、通信量情報、及びコンテナ構成情報の詳細については後述する。
【0028】
配備部234は、
図4(b)に示すように、第1特定部241、第2特定部242、及び決定部243を含んでいる。また、配備部234は、第1算出部244、第2算出部245、表示部246、及び選択部247を含んでいる。第1特定部241、・・・、選択部247はトレーシングDB221、通信量DB222、及びコンテナ構成DB223に選択的にアクセスして、各種の処理を実行する。例えば、第1特定部241はコンテナ構成DB223にアクセスしてコンテナ構成情報を取得する。そして、第1特定部241は、取得したコンテナ構成情報に基づいて、第1システムST1で動作している複数のコンテナの各々に割り当てられた第1リソース量を特定する。その他の構成要素の詳細については後述する。
【0029】
次に、制御装置210の動作について説明する。
【0030】
まず、第1収集部231の動作について説明する。
図5(a)及び
図6に示すように、第1収集部231は第1システムST1や第2システムST2のコンテナ実行環境20が管理するトレーシング情報を収集する(ステップS1)。例えば
図7に示すように、第1実施形態に係る第1システムST1は、分析用アプリ、Webアプリ、及びデータ加工といった複数のコンテナ16を有する。この場合、コンテナ実行環境20はこれら複数のコンテナ16の間で行われるメッセージ(通信メッセージ)の流れ(処理フロー)をメッセージID毎にトレーシング情報として管理する。各コンテナ16には分散トレーシングプログラム16aが実装されている。分散トレーシングプログラム16aがメッセージIDを付与して、各コンテナ16の間で行われるメッセージの流れや流量、アクセス頻度等の情報を管理する。コンテナ実行環境20は分散トレーシングプログラム16aが管理するこれらの情報を取得してトレーシング情報として管理する。第1収集部231は第1システムST1のコンテナ実行環境20にアクセスして、コンテナ実行環境20からトレーシング情報を収集する。
【0031】
第1収集部231はトレーシング情報を収集すると、トレーシング情報をトレーシングDB221に登録する(ステップS2)。これにより、例えば
図8(a)に示すように、トレーシングDB221はメッセージIDと処理フローとを含むトレーシング情報を記憶する。処理フローにより、複数のコンテナ16の間で行われるメッセージの方向などを特定することができる。
【0032】
次に、第2収集部232の動作について説明する。
図5(b)及び
図6に示すように、第2収集部232は第1システムST1や第2システムST2のコンテナ実行環境20が管理する性能情報を収集する(ステップS3)。上述したように、分散トレーシングプログラム16aはメッセージの流量や各コンテナ16に対するアクセス頻度等の情報を管理している。コンテナ実行環境20は当該情報を取得し、性能情報として管理する。第2収集部232は第1システムST1のコンテナ実行環境20にアクセスして、コンテナ実行環境20から性能情報を収集する。
【0033】
第2収集部232は性能情報を収集すると、性能情報を通信量DB222に登録する(ステップS4)。これにより、例えば
図8(b)に示すように、通信量DB222は送信元のコンテナと宛先のコンテナとAPI(Application Programming Interface)の組合せにより一意に識別できる通信料情報を記憶する。通信料情報により、上記組合せにおけるメッセージの流量やアクセス頻度を特定することができる。なお、APIはURI(Uniform Resource Identifier)によって定義することができる。
【0034】
次に、第3収集部233の動作について説明する。
図5(c)及び
図6に示すように、第3収集部233は第1システムST1や第2システムST2のコンテナ実行環境20が管理するコンテナ構成情報を収集する(ステップS5)。分散トレーシングプログラム16aは各コンテナ16に割り当てられたCPUの数量やメモリ量などの第1リソース量も管理することができる。コンテナ実行環境20は第1リソース量を取得し、コンテナ構成情報として管理する。第3収集部233は第1システムST1のコンテナ実行環境20にアクセスして、コンテナ実行環境20からコンテナ構成情報を収集する。
【0035】
第3収集部233はコンテナ構成情報を収集すると、コンテナ構成情報をコンテナ構成DB223に登録する(ステップS6)。これにより、例えば
図8(c)に示すように、コンテナ構成DB223はコンテナ名とCPUの数量とメモリ量とを含むコンテナ構成情報を記憶する。コンテナ構成情報により、複数のコンテナ16のそれぞれに割り当てられた第1リソース量を特定することができる。
【0036】
次に、配備部234の動作について説明する。
図9に示すように、まず、第1特定部241がリソース増強依頼を受信する(ステップS11)。例えば、Webアプリ(
図7参照)を利用するアプリユーザが増加し、Webアプリの処理でリソース不足に起因した第1システムST1の性能低下が発生することがある。このような場合、管理サーバ200を操作する管理者が入力装置710にリソース増強依頼を入力する。入力装置710は入力されたリソース増強依頼を第1特定部241に向けて送信する。これにより、第1特定部241はリソース増強依頼を受信する。
【0037】
リソース増強依頼を受信すると、第1特定部241はトレーシングDB221を参照して、全トレーシング情報を探索済であるか否かを判断する(ステップS12)。トレーシングDB221は、
図8(a)に示すように、メッセージIDによって識別される複数のトレーシング情報を記憶するため、第1特定部241は複数のトレーシング情報の全てを探索し終えたか否かを判断する。全トレーシング情報を探索済でない場合(ステップS12:NO)、第1特定部241は、未探索のトレーシング情報の1つを処理対象として指定する。そして、第1特定部241は、コンテナ16を纏めるための空のグループを、識別番号を付して生成する(ステップS13)。グループを生成すると、第1特定部241は処理対象として指定したトレーシング情報の処理フローを参照して、処理フローに含まれる全コンテナの抽出が完了したか否かを判断する(ステップS14)。
【0038】
全コンテナの抽出が完了していない場合(ステップS14:NO)、第1特定部241はコンテナ16を抽出し(ステップS15)、グループに登録済であるか否かを判断する(ステップS16)。特に、第1特定部241はコンテナ16を抽出する際に通信量DB222を参照する。そして、第1特定部241はトレーシング情報の処理フローに応じた通信量情報のアクセス頻度が頻繁を表す所定値以上である場合に、コンテナ16を抽出する。例えば
図8(a)に示すように、メッセージID「0」のトレーシング情報が処理対象として指定されたと仮定する。この場合、
図8(b)に示すように、このトレーシング情報の処理フローに応じた通信量情報のアクセス頻度は100リクエスト/30分である。本実施形態において、このアクセス頻度は頻繁を表す所定値以上に相当する。このため、第1特定部241は分析用アプリをコンテナ16として抽出し、グループに登録済であるか否かを判断する。なお、ステップS15の処理において、第1特定部241はアクセス頻度が所定値未満であればコンテナ16の抽出を中止する。このように、アクセス頻度が所定値未満のコンテナ16は通信遅延の影響が少ないと想定されるため、後述するグループの登録対象から除外する。
【0039】
グループに登録済でない場合(ステップS16:NO)、第1特定部241は当該コンテナ16をグループに登録する(ステップS17)。これにより、
図7に示すように、分析用アプリのコンテナ16がグループ「1」に登録される。
【0040】
コンテナ16をグループに登録すると、第1特定部241は他のメッセージIDに当該コンテナ16があるか否かを判断する(ステップS18)。他のメッセージIDに当該コンテナ16がある場合(ステップS18:YES)、第1特定部241は他のメッセージIDに含まれる別のコンテナ16を抽出する(ステップS19)。特に、第1特定部241は別のコンテナ16を抽出する際にも通信量DB222を参照し、トレーシング情報の処理フローに応じた通信量情報のアクセス頻度が頻繁を表す所定値以上である場合に、別のコンテナ16を抽出する。
【0041】
例えば
図8(a)に示すように、分析用アプリはメッセージID「0」の他にメッセージID「1」にもある。メッセージID「1」にはデータ加工を表す別のコンテナ16が含まれている。しかしながら、
図8(b)に示すように、メッセージID「1」のトレーシング情報の処理フローに応じた通信量情報のアクセス頻度は1リクエスト/1日である。本実施形態において、このアクセス頻度は上記所定値未満に相当する。このため、第1特定部241は別のコンテナ16の抽出を中止する。すなわち、別のコンテナ16の抽出対象から除外される。このように、アクセス頻度が所定値未満である場合には、別のコンテナ16の抽出が中止されるため、ステップS14の処理に戻る。グループに登録済である場合(ステップS16:YES)や、他のメッセージIDに当該コンテナ16がない場合(ステップS18:NO)も同様にステップS14の処理に戻る。
【0042】
ステップS14の処理において、メッセージID「0」のトレーシング情報における処理フローには、分析用アプリを表す1つのコンテナ16がある。このため、第1特定部241は全コンテナの抽出が完了したと判断し(ステップS14:YES)、ステップS12の処理に戻る。ステップS12の処理では、メッセージID「1」のトレーシング情報などがまだ処理対象として指定されていない。このため、第1特定部241は全トレーシング情報を探索済でないと判断し、ステップS13~S19までの処理を繰り返す。これにより、
図7に示すように、グループ「2」も生成される。
【0043】
ステップS12の処理において、全トレーシング情報が探索済である場合(ステップS12:YES)、第1特定部241は後続の処理に対し全グループの探索が済んだか否かを判断する(ステップS20)。全グループの探索が済んでいない場合(ステップS20:NO)、第1特定部241は未探索のグループの1つを処理対象として指定した後、処理対象のグループに属するコンテナ16の第1リソース量を特定する(ステップS21)。
図7に示すように、グループ「1」を処理対象として指定した場合、第1特定部241は分析用アプリのコンテナ16の第1リソース量を特定する。
図8(c)に示すように、コンテナ構成DB223はコンテナ構成情報を記憶する。このため、第1特定部241は分析用アプリのコンテナ16に割り当てられたCPUの数量「8」及びメモリ量「24GB」を第1リソース量として特定することができる。
【0044】
第1リソース量を特定すると、次いで、決定部243は第2リソース量の候補を決定する(ステップS22)。より詳しくは、決定部243は、第1リソース量に基づいて、第2システムST2に移行した後のコンテナ16に割り当てる第2リソース量の複数の候補を決定する。例えば
図11(a)に示すように、分析用アプリのコンテナ16にはCPUの数量「8」及びメモリ量「24GB」の第1リソース量が割り当てられている。決定部243は予め定めた均等分割条件に基づいて第1リソース量を分割した第2リソース量の候補を決定する。本実施形態では、均等分割条件が2分割である。このため、
図11(a)に示すように、決定部243はCPUの数量「4」及びメモリ量「12GB」の第2リソース量の第1候補を決定する。また、決定部243はCPUの数量「4」及びメモリ量「12GB」の第2リソース量の第2候補を決定する。グループ「1」については、このように、第2システムST2に移行した後のコンテナ16に割り当てる第2リソース量の複数の候補が決定される。第1候補はサブグループ「1-1」に属し、第2候補はサブグループ「1-2」に属する。なお、均等分割条件は3分割以上であってもよい。ステップS22の処理が終了すると、ステップS20の処理に戻る。
【0045】
グループ「2」が処理対象として指定されていないため、グループ「2」が処理対象として指定されて同様の処理が実行される。これにより、
図11(b)に示すように、決定部243はCPUの数量「2」及びメモリ量「6GB」の第2リソース量の第3候補を決定する。また、決定部243はCPUの数量「2」及びメモリ量「6GB」の第2リソース量の第4候補を決定する。グループ「2」については、このように、第2システムST2に移行した後のコンテナ16に割り当てる第2リソース量の複数の候補が決定される。第3候補はサブグループ「2-1」に属し、第4候補はサブグループ「2-2」に属する。これにより、全グループの探索が済む(ステップS20:YES)。その後、
図10に示すように、決定部243は後続の処理に対し全サブグループの探索が済んだか否かを判断する(ステップS23)。全サブグループの探索が済んでいない場合(ステップS23:NO)、決定部243は未探索のサブグループの1つを処理対象として指定する。そして、決定部243は処理対象のサブグループに属する全コンテナ16の総リソース量を算出する(ステップS24)。
【0046】
例えばサブグループ「1-1」を処理対象として指定したと仮定する。この場合、
図11(a)及び(b)に示すように、サブグループ「1-1」に属するコンテナ16は1つである。このため、サブグループ「1-1」であれば、総リソース量は、
図12の上段に示すように、CPUの数量「4」及びメモリ量「12GB」となる。
【0047】
総リソース量を算出すると、決定部243は総リソース量が補強対象のコンテナ16のリソース量以上か否かを判断する(ステップS25)。決定部243はステップ25の処理をスキップしてもよい。本実施形態では、上述したように、Webアプリを利用するアプリユーザが増加し、Webアプリの処理でリソース不足に起因した第1システムST1の性能低下が発生している。このため、
図12の右隅に示すように、Webアプリが補強対象のコンテナ16に該当する。補強対象のコンテナ16のリソース量は予め定められた閾値以上である。ステップS25の処理では、決定部243は総リソース量におけるCPUの数量のメモリ量の両方がいずれも補強対象のコンテナ16のリソース量におけるCPUの数量とメモリ量以上か否かを判断する。
図12に示すように、サブグループ「1-1」の総リソース量と補強対象のコンテナ16のリソース量を比較すると、総リソース量と補強対象のコンテナ16のリソース量は同じである。このため、決定部243は総リソース量が補強対象のコンテナ16のリソース量以上であると判断する(ステップS25:YES)。
【0048】
この場合、決定部243はリソースタイプを決定し(ステップS26)、第1算出部244は決定したリソースタイプに基づいて第2システムST2の利用料金を算出する(ステップS27)。利用料金は第2システムST2のハードウェアリソースを利用するリソースコストに相当する。例えば
図13(a)に示すように、決定部243は管理サーバ200の内部又は外部で管理された第1課金情報を参照し、総リソース量に該当するリソースタイプを決定する。サブグループ「1-1」であれば、総リソース量がCPUの数量「4」及びメモリ量「12GB」であるため、リソースタイプ「中」を決定する。リソースタイプを決定すると、第1算出部244は決定したリソースタイプに基づいて利用料金の月額を算出する。サブグループ「1-1」であれば、
図14の下段に示すように、リソースタイプ「中」に対応するリソース料金単価「$0.248/時間」に1日の時間数と1か月の日数を掛け合わせることで利用料金の月額を算出することができる。
【0049】
利用料金を算出すると、第2算出部245は通信料を算出する(ステップS28)。ステップS28の処理をスキップしてもよい。通信料は第2システムST2から第1システムST1に向かう通信の通信コストに相当する。第1システムST1から第2システムST2に向かう通信は無課金になることが多い。一方で、第2システムST2から第1システムST1に向かう通信には課金が発生することが多い。このため、第2システムST2から第1システムST1に向かう通信を通信料の算出対象とすることで通信料を精度良く算出することができる。
【0050】
例えば
図13(b)に示すように、第2算出部245は管理サーバ200の内部又は外部で管理された第2課金情報を参照し、通信量に該当する通信単価を決定する。
図14の上段に示すように、サブグループ「1-1」に属するコンテナ16が通信量「7GB」であれば、通信量「7GB」に対応する通信単価「$0.114/GB」を決定する。そして、第2算出部245は、
図14の下段に示すように、通信単価「$0.114/GB」に通信量「7GB」から通信量「1GB」の無料分を差し引いた通信量「6GB」を掛け合わせることで通信料の月額を算出することができる。
【0051】
通信料を算出すると、第1算出部244は総利用料金を算出する(ステップS29)。具体的には、
図14の下段に示すように、通信料を利用料金に加算することにより、総利用料金を算出する。これにより、サブグループ「1-1」に属するコンテナ16を第2システムST2に移行した場合の総利用料金が特定される。ステップS29の処理が終了すると、ステップS23の処理に戻る。総リソース量が補強対象のコンテナ16のリソース量未満である場合(ステップS25:NO)、同様に、ステップS23の処理に戻る。全サブグループの探索が済むまで、ステップS24~S29の処理が繰り返される。これにより、サブグループ「1-2」、・・・「2-2」に属するコンテナ16を第2システムST2に移行した場合のそれぞれの総利用料金が特定される。なお、ステップS28の処理がスキップされた場合、総利用料金は利用料金と同額になる。
【0052】
全サブグループの探索が済むと(ステップS23:YES)、表示部246は総利用料金を表示する(ステップS30)。より詳しくは、表示部246はAPIごとのリソース量と総利用料金とを表示装置720に表示する。これにより、
図15に示すように、第2システムST2に移行するコンテナ16の複数の候補が表示装置720に現れる。移行先候補1がサブグループ「1-1」に対応し、移行先候補4がサブグループ「2-2」に対応する。サブグループ「1-2」及び「2-1」に対応する移行先候補2及び移行先候補3は省略されている。ステップS25の処理がスキップされた場合には、4つの移行先候補1~移行先候補4が現れる。一方で、ステップS25の処理が実行された場合には、総リソース量が補強対象のコンテナ16のリソース量未満である移行先候補3及び移行先候補4(
図12参照)が現れずに、2つの移行先候補1及び移行先候補2が現れる。表示部246は総利用料金を表示すると、選択部247は移行先候補1~移行先候補4のいずれか(又は移行先候補1及び移行先候補2のいずれか)が選択されるまで待機する(ステップS31:NO)。
【0053】
管理者が入力装置710を操作して、例えば総利用料金が最も低いサブグループ「1-1」に相当する移行先候補1を指定することができる。移行先候補1が指定されると、選択部247は移行先候補1を選択し、選択された移行先候補1を第2システムST2に移行して(ステップS32)、処理を終了する。具体的には、選択部247は、
図16(a)に示すように、第1システムST1向けの第1設定ファイルF1を生成するとともに、
図16(b)に示すように、第2システム向けの第2設定ファイルF2を生成する。そして、選択部247は、
図17(a)に示すように、第1設定ファイルF1を第1システムST1のコンテナ実行環境20に通知し、第2設定ファイルF2を第2システムST2のコンテナ実行環境20に通知する。
【0054】
これにより、
図17(b)に示すように、サブグループ「1-1」に相当する移行先候補1のコンテナ16が第2システムST2に移行し、サブグループ「1-2」に相当する移行先候補2のコンテナ16が第1システムST1に残存する。このように、Webアプリを表すコンテナ16を第1システムST1に追加してもリソース不足が発生せず、第1システムST1の性能が補強される。また、総利用料金が最も低いサブグループを指定することで、第2システムST2の総利用料金を低額に抑えることができる。分析担当者の一部は第2システムST2を利用して各種の分析作業を行う。
【0055】
なお、上述した実施形態では、管理者が総利用料金の最も低いサブグループ「1-1」に相当する移行先候補1を指定したが、選択部247が総利用料金の最も低いサブグループ「1-1」に相当する移行先候補1を動的に選択してもよい。この場合、ステップS30,S31の処理を省略してもよい。これにより、管理者の操作負担を低減することができる。
【0056】
(第2実施形態)
続いて、
図18から
図27を参照して、本件の第2実施形態について説明する。なお、
図18おいて、第1実施形態に係る
図9と同様の処理であるステップS20~S22については同一の符号を付して破線で示し、詳細な説明は省略する。
【0057】
まず、
図18に示すように、ステップS21の処理において、第1特定部241が第1リソース量を特定すると、第1特定部241は処理対象のAPIを抽出する(ステップS31)。第2実施形態に係る第1システムST1は、
図19に示すように、7つのコンテナ16を備えている。第1実施形態におけるステップS13~S19の処理により、7つのコンテナ16から分析向けGUI(Graphical User Interface)といった3つのコンテナ16を含むグループ「1」が生成される。また、ステップS13~S19の処理により、Webアプリ(フロント側)といった3つのコンテナ16を含むグループ「2」も生成される。データ加工のコンテナ16は、アクセス頻度が低いため、グループの生成対象から除外される。このように、第1実施形態と異なり、グループ「1」及びグループ「2」はいずれも複数のコンテナ16を含んでいる。
【0058】
グループ「1」を処理対象として指定した場合、第1特定部241は分析向けGUI、分析エンジン、及びアプリログ用DBの各コンテナ16の第1リソース量を特定する。
図20(c)に示すように、コンテナ構成DB223はコンテナ構成情報を記憶する。このため、第1特定部241は分析向けGUIのコンテナ16に割り当てられたCPUの数量「3」及びメモリ量「9GB」を第1リソース量として特定することができる。同様に、第1特定部241は分析エンジンのコンテナ16に割り当てられたCPUの数量「9」及びメモリ量「9GB」を第1リソース量として特定することができる。第1特定部241はアプリ用ログDBのコンテナ16に割り当てられたCPUの数量「8」及びメモリ量「16GB」を第1リソース量として特定することができる。
【0059】
このように、第1リソース量を特定すると、第1特定部241は処理対象のAPIを抽出する。例えばグループ「1」を処理対象として指定したと仮定する。この場合、
図19に示すように、第1特定部241はグループ「1」に属する3つのコンテナ16に対するAPI「bnsk…/fr」及びAPI「bnsk…/bk」(
図20(b)参照)を抽出する。なお、第1特定部241は通信量DB222を参照し、抽出対象から除外されたデータ加工を表すコンテナ16を含まない通信量情報と分析向けGUI等のコンテナ16とを突合することで、APIを抽出することができる。
【0060】
処理対象のAPIを抽出すると、第1特定部241はAPIが2種類以上か否かを判断する(ステップS32)。本実施形態では、2つのAPIが抽出され、これら2つのAPIは異なるURIで定義されているため、2種類である。このため、第1特定部241はAPIが2種類以上であると判断する(ステップS32:YES)。この場合、第1特定部241は処理対象として指定したグループ「1」に属する全コンテナ16の探索が済んだか否かを判断する(ステップS33)。全コンテナ16の探索が済んでいない場合(ステップS33:NO)、第2特定部242は、全コンテナ16の探索が済むまで、ステップS34~S36の処理を繰り返す。
【0061】
まず、第2特定部242は、通信量DB222を参照して、コンテナ16にアクセスするときのAPIごとの通信量を特定する(ステップS34)。なお、第2特定部242は、通信量DB222が記憶する通信量情報の流量等に登録された流量の数値に基づいて通信量を特定することができる。
【0062】
例えば
図21に示すように、分析向けGUIのコンテナ16に対するフロントのAPIの単位時間当たりのメッセージの第1流量と第2流量の合計を第2特定部242が算出する。この結果、送信側が合計流量「5GB」であり、受信側が合計流量「15GB」であると仮定する。この場合、第2特定部242は通信量「20GB」を特定する。同様に、バックのAPIの単位時間当たりのメッセージの第1流量と第2流量の合計を第2特定部242が算出する。この結果、送信側が合計流量「5GB」であり、受信側が合計流量「5GB」であると仮定する。この場合、第2特定部242は通信量「20GB」を特定する。
【0063】
また、分析エンジンのコンテナ16に対するフロントのAPIの単位時間当たりのメッセージの第2流量と第3流量の合計を第2特定部242が算出する。この結果、送信側が合計流量「10GB」であり、受信側が合計流量「60GB」であると仮定する。この場合、第2特定部242は通信量「70GB」を特定する。同様に、バックのAPIの単位時間当たりのメッセージの第2流量と第3流量の合計を第2特定部242が算出する。この結果、送信側が合計流量「5GB」であり、受信側が合計流量「30GB」であると仮定する。この場合、第2特定部242は通信量「35GB」を特定する。
【0064】
通信量を特定すると、第2特定部242は、通信量DB222を参照して、データ加工のコンテナ16が出力するログを格納するデータベースにおけるデータ種別ごとのデータ量を特定する(ステップS35)。なお、第2特定部242は、通信量DB222が記憶する通信量情報の流量等に登録されたデータ量の数値に基づいてデータ量を特定することができる。
【0065】
例えば
図21に示すように、アプリログ用DBにおけるフロントに関するログのデータ量がデータ量「300GB」であれば、第2特定部242はフロントのデータ量「300GB」を特定する。アプリログ用DBにおけるバックに関するログのデータ量がデータ量「100GB」であれば、第2特定部242はバックのデータ量「100GB」を特定する。なお、これらのログはデータ加工のコンテナ16で加工されたものである。データ加工のコンテナ16はWebアプリ(フロント側)のコンテナ16及びWebアプリ(バック側)のコンテナ16から出力されてストレージのコンテナ16に蓄積されたログを加工する。
【0066】
データ量を特定すると、第2特定部242は通信量の比率及びデータ量の比率を算出する(ステップS36)。
図21に示すように、分析向けGUIのコンテナ16であれば、フロント側が通信量「20GB」であり、バック側が通信量「10GB」である。このため、第2特定部242は通信量の比率「2:1」を算出する。分析エンジンのコンテナ16であれば、フロント側が通信量「70GB」であり、バック側が通信量「35GB」である。このため、第2特定部242は通信量の比率「2:1」を算出する。アプリログ用DBのコンテナ16であれば、フロント側がデータ量「300GB」であり、バック側がデータ量「100GB」である。このため、第2特定部242はデータ量の比率「3:1」を算出する。
【0067】
全コンテナ16の探索が済むと(ステップS33:YES)、決定部243がステップS22の処理を実行する。この場合、決定部243は第2リソース量の複数の候補の各々の第2リソース量同士の比率が、複数の通信量同士の比率となるように候補を決定する。例えば
図21に示すように、分析向けGUIのコンテナ16であれば、通信量の比率「2:1」が算出されている。このため、決定部243は当該コンテナ16が使用するCPUの数量「3」及びメモリ量「9GB」の第1リソース量を比率「2:1」で分割した第2リソース量の候補を決定する。これにより、決定部243はCPUの数量「2」及びメモリ量「6GB」の第2リソース量の第1候補を決定する。また、決定部243はCPUの数量「1」及びメモリ量「3GB」の第2リソース量の第2候補を決定する。なお、分析エンジンのコンテナ16については、分析向けGUIのコンテナ16と同様であるため、説明を省略する。
【0068】
一方、アプリログ用DBのコンテナ16であれば、データ量の比率「3:1」が算出されている。このため、決定部243は第2リソース量の複数の候補の各々の第2リソース量同士の比率が、複数のデータ量同士の比率となるように候補を決定する。したがって、決定部243はアプリログ用DBのコンテナ16が使用するCPUの数量「8」及びメモリ量「16GB」の第1リソース量を比率「3:1」で分割した第2リソース量の候補を決定する。これにより、決定部243はCPUの数量「6」及びメモリ量「12GB」の第2リソース量の第1候補を決定する。また、決定部243はCPUの数量「2」及びメモリ量「4GB」の第2リソース量の第2候補を決定する。グループ「1」については、以上のように、第2システムST2に移行した後のコンテナ16に割り当てる第2リソース量の複数の候補が決定される。以上3つの第1候補はサブグループ「1-1」に属し、3つの第2候補はサブグループ「1-2」に属する。
【0069】
ステップS22の処理が終了すると、ステップS20の処理に戻る。これにより、グループ「2」が処理対象として指定されて、同様の処理が繰り返される。ここで、グループ「2」が処理対象として指定されて、ステップS32の処理において、APIが2種類以上か否かを第1特定部241が判断する際、
図22に示すように、本実施形態では、2つのAPIが抽出される。しかしながら、これら2つのAPIは同じURIで定義されているため、1種類である。このため、第1特定部241はAPIが2種類以上でないと判断する(ステップS32:NO)。この場合、決定部243はステップS22の処理を実行する。特に、APIが1種類である場合、第1実施形態と同様に、決定部243は予め定めた均等分割条件に基づいて第1リソース量を分割した第2リソース量の候補を決定する。
【0070】
本実施形態では、均等分割条件が2分割である。このため、Webアプリ(フロント側)のコンテナ16であれば、
図22に示すように、決定部243はCPUの数量「6」及びメモリ量「8GB」の第2リソース量の第1候補を決定する。また、決定部243はCPUの数量「6」及びメモリ量「8GB」の第2リソース量の第2候補を決定する。Webアプリ(バック側)のコンテナ16については、Webアプリ(フロント側)のコンテナ16と同様であるため、説明を省略する。一方、ストレージのコンテナ16であれば、決定部243はCPUの数量「2」及びメモリ量「8GB」の第2リソース量の第1候補を決定する。また、決定部243はCPUの数量「2」及びメモリ量「8GB」の第2リソース量の第2候補を決定する。グループ「2」については、以上のように、第2システムST2に移行した後のコンテナ16に割り当てる第2リソース量の複数の候補が決定される。以上の第1候補はサブグループ「2-1」に属し、第2候補はサブグループ「2-2」に属する。グループ「2」に関する処理が終了すると、ステップS20の処理に戻る。本実施形態では、2つのグループ「1」及び「2」の全ての探索が済んだため、第1実施形態で説明したステップS23以後の処理が進行する。
【0071】
ここで、例えばWebアプリ(フロント側)を利用するアプリユーザが増加し、Webアプリ(バック側)の処理でリソース不足に起因した第1システムST1の性能低下が発生すると仮定する。この場合、
図23の右隅に示すように、Webアプリ(バック側)が補強対象のコンテナ16に該当する。このため、ステップS25の処理において、決定部243は総リソース量がいずれも補強対象のコンテナ16のリソース量以上か否かを判断する。より詳しくは、決定部243は総リソース量におけるCPUの数量のメモリ量の両方が補強対象のコンテナ16のリソース量におけるCPUの数量とメモリ量以上か否かを判断する。
図23に示すように、サブグループ「1-1」の総リソース量と補強対象のコンテナ16のリソース量を比較すると、これらの総リソース量は補強対象のコンテナ16のリソース量以上である。サブグループ「2-1」及び「2-2」についてもサブグループ「1-1」と同様である。一方、サブグループ「1-2」の総リソース量と補強対象のコンテナ16のリソース量を比較すると、この総リソース量は補強対象のコンテナ16のリソース量未満である。このため、サブグループ「1-2」に属する複数のコンテナ16は第2システムST2への移行対象として望ましくないため、この時点で移行対象から除外してもよい。
【0072】
その後、ステップS26~S28の処理において、決定部243がリソースタイプを決定し、第1算出部244が決定したリソースタイプに基づいて第2システムST2の利用料金を算出し、第2算出部245が通信料を算出する。サブグループ「1-1」であれば、決定部243は第1課金情報で定義されたリソースタイプ「特大」(
図13(a)参照)を決定する。そして、
図24の下段に示すように、第1算出部244はリソースタイプ「特大」に対応するリソース料金単価「$0.992/時間」を特定する。第1算出部244は特定したリソース料金単価「$0.992/時間」に1日の時間数と1か月の日数を掛け合わせることで利用料金の月額を算出することができる。また、サブグループ「1-1」に属するコンテナ16が通信量「7GB」であれば、第2算出部245はこの通信量に対応する通信単価を特定する。具体的には、第2算出部245は第2課金情報で定義された通信量「7GB」に対応する通信単価「$0.114/GB」を特定する(
図13(b)参照)。そして、
図24の下段に示すように、第2算出部245は通信単価「$0.114/GB」に通信量「6GB」を掛け合わせることで通信料の月額を算出することができる。これにより、ステップS29の処理において、第1算出部244が総利用料金を算出する。サブグループ「1-2」、「2-1」及び「2-2」についても同様である。なお、通信量「6GB」は通信量「7GB」から通信量「1GB」の無料分を差し引いた量である。
【0073】
総利用料金が算出されると、ステップS30の処理において、表示部246がAPIごとのリソース量と総利用料金とを表示装置720に表示する。これにより、
図25に示すように、第2システムST2に移行するコンテナ16の複数の候補が表示装置720に現れる。移行先候補1がサブグループ「1-1」に対応し、移行先候補4がサブグループ「2-2」に対応する。サブグループ「1-2」及び「2-1」に対応する移行先候補2及び移行先候補3は省略されている。ステップS25の処理がスキップされた場合には、4つの移行先候補1~移行先候補4が現れる。一方で、ステップS25の処理が実行された場合には、総リソース量が補強対象のコンテナ16のリソース量未満である移行先候補2(
図23参照)が現れずに、3つの移行先候補1、移行先候補3及び移行先候補4が現れる。
【0074】
総利用料金が表示されると、選択部247は移行先候補1~移行先候補4のいずれか(又は移行先候補1、移行先候補3及び移行先候補4のいずれか)が選択されるまで待機する。管理者が例えば総利用料金が最も低いサブグループ「1-1」に相当する移行先候補1を指定すると、選択部247は移行先候補1を選択し、選択された移行先候補1を第2システムST2に移行して、処理を終了する。
【0075】
具体的には、選択部247は、
図26に示すように、第1システムST1向けの第1設定ファイルF1を生成するとともに、
図27に示すように、第2システム向けの第2設定ファイルF2を生成する。そして、選択部247は、第1設定ファイルF1を第1システムST1のコンテナ実行環境20に通知し、第2設定ファイルF2を第2システムST2のコンテナ実行環境20に通知する。これにより、図示しないが、サブグループ「1-1」に相当する移行先候補1のコンテナ16が第2システムST2に移行し、サブグループ「1-2」に相当する移行先候補2のコンテナ16が第1システムST1に残存する。
【0076】
このように、Webアプリ(バック側)を表すコンテナ16を第1システムST1に追加してもリソース不足が発生せず、第1システムST1の性能が補強される。また、総利用料金が最も低いサブグループを指定することで、第2システムST2の総利用料金を低額に抑えることができる。分析担当者の一部は第2システムST2を利用して各種の分析作業を行う。
【0077】
なお、第1実施形態と同様に、選択部247が総利用料金の最も低いサブグループ「1-1」に相当する移行先候補1を動的に選択してもよい。この場合、ステップS30,S31の処理を省略してもよい。これにより、管理者の操作負担を低減することができる。
【0078】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、上述した実施形態では、コンテナ16をプログラムの一例として説明したが、仮想マシンをプログラムとしてもよい。
【0079】
また、上述した実施形態ではオンプレミス側の第1システムST1からパブリッククラウド側の第2システムST2への移行を一例として説明したが、例えばプライベートクラウド側の第3システム(不図示)からパブリッククラウド側の第2システムST2への移行であってもよい。
【符号の説明】
【0080】
200 管理サーバ
210 制御装置
212 処理部
234 配備部
241 第1特定部
243 決定部
244 第1算出部
246 表示部
ST1 第1システム
ST2 第2システム