IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7469655コンテナ配置先決定プログラム、及びコンテナ配置先決定方法
<>
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図1
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図2
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図3
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図4
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図5
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図6
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図7
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図8
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図9
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図10
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図11
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図12
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図13
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図14
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図15
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図16
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図17
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図18
  • 特許-コンテナ配置先決定プログラム、及びコンテナ配置先決定方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-09
(45)【発行日】2024-04-17
(54)【発明の名称】コンテナ配置先決定プログラム、及びコンテナ配置先決定方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240410BHJP
   G06F 9/455 20180101ALI20240410BHJP
【FI】
G06F9/50 120A
G06F9/455 150
【請求項の数】 5
(21)【出願番号】P 2020120485
(22)【出願日】2020-07-14
(65)【公開番号】P2022017754
(43)【公開日】2022-01-26
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】新井 宏明
(72)【発明者】
【氏名】佐藤 昌浩
(72)【発明者】
【氏名】山崎 公敬
(72)【発明者】
【氏名】和田 裕二
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2019-135597(JP,A)
【文献】特開2012-221049(JP,A)
【文献】特開2020-38477(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
第1の仮想マシンに配置されている第1のコンテナのリソース使用率が閾値を超えたときに、前記第1のコンテナで動作している第1のプログラムに対して処理を依頼している第2のプログラムを特定し、
前記第2のプログラムが動作している第2のコンテナが配置されている第2の仮想マシンを特定し、
前記第2の仮想マシンを前記第1のコンテナのスケールアウト先として決定する、
処理を実行させるためのコンテナ配置先決定プログラム。
【請求項2】
前記コンピュータに、
前記第2の仮想マシンに前記第1のコンテナをスケールアウトし、
前記第2のプログラムが処理を依頼する依頼先を、スケールアウトにより前記第2の仮想マシンに配置された前記第1のコンテナで動作する前記第1のプログラムに変更する、
処理を実行させるための請求項1に記載のコンテナ配置先決定プログラム。
【請求項3】
前記第1の仮想マシンと前記第2の仮想マシンは、それぞれ異なるクラウド拠点に配置されていることを特徴とする請求項1に記載のコンテナ配置先決定プログラム。
【請求項4】
前記コンピュータに、
前記第1のプログラムと前記第2のプログラムとを対応付けた情報を記憶した記憶部を参照することにより、前記第1のプログラムに対して処理を依頼している前記第2のプログラムを特定する、
処理を実行させるための請求項1に記載のコンテナ配置先決定プログラム。
【請求項5】
コンピュータが、
第1の仮想マシンに配置されている第1のコンテナのリソース使用率が閾値を超えたときに、前記第1のコンテナで動作している第1のプログラムに対して処理を依頼している第2のプログラムを特定し、
前記第2のプログラムが動作している第2のコンテナが配置されている第2の仮想マシンを特定し、
前記第2の仮想マシンを前記第1のコンテナのスケールアウト先として決定する、
処理を実行することを特徴とするコンテナ配置先決定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナ配置先決定プログラム、及びコンテナ配置先決定方法に関する。
【背景技術】
【0002】
仮想化技術の発展に伴い、データセンタ内で起動している仮想マシンを利用して種々のサービスを利用者に提供するクラウドが普及しつつある。特に、近年では異なるクラウド事業者のクラウド同士を組み合わせたマルチクラウドと呼ばれる新たなサービスが普及しつつある。マルチクラウドにおいては、いずれかのクラウド事業者に障害が発生しても、残りクラウド事業者のクラウドで仮想マシンを稼働し続けることができるため、サービスの可用性を高めることができる。
【0003】
マルチクラウドを実現するためのアプリケーションプログラムは、仮想マシンが直接実行するのではなく、仮想マシンに起動したコンテナが実行することがある。なお、以下ではアプリケーションプログラムのことを単にアプリとも呼ぶ。
【0004】
コンテナは、ゲストOSのカーネルの一部のみを利用した仮想的なユーザ空間であって、DOCKER(登録商標)等のコンテナエンジンによって生成される。アプリが実行時に参照するライブラリをコンテナに予め格納しておくことで、アプリをコンテナごと他の仮想マシンに移動したときに、移動前と同じ環境でアプリを実行することができる。
【0005】
但し、コンテナを利用したマルチクラウドには、アプリ等のプログラム間の通信の遅延を抑制するという点で改善の余地がある。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2017-219972号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一側面によれば、プログラム間の通信の遅延を抑制することを目的とする。
【課題を解決するための手段】
【0008】
一側面によれば、コンピュータに、第1の仮想マシンに配置されている第1のコンテナのリソース使用率が閾値を超えたときに、前記第1のコンテナで動作している第1のプログラムに対して処理を依頼している第2のプログラムを特定し、前記第2のプログラムが動作している第2のコンテナが配置されている第2の仮想マシンを特定し、第2の仮想マシンを第1のコンテナのスケールアウト先として決定する、処理を実行させるためのコンテナ配置先決定プログラムが提供される。
【発明の効果】
【0009】
一側面によれば、プログラム間の通信の遅延を抑制することができる。
【図面の簡単な説明】
【0010】
図1図1は、本願発明者が検討したマルチクラウドのシステム構成図である。
図2図2は、処理の依頼元と依頼先の各アプリの模式図である。
図3図3は、スケールアウトの一例を示す模式図である。
図4図4は、スケールアウトをしたときの各アプリへの処理の振り分けを示す模式図である。
図5図5は、遅延時間の定義を示す模式図である。
図6図6は、本実施形態に係る情報処理システムの構成図である。
図7図7は、本実施形態に係る物理サーバの模式図である。
図8図8は、本実施形態において各クラウド拠点で動作している仮想マシン、コンテナ、及びアプリの各々を示す模式図である。
図9図9は、本実施形態において仮想マシン、コンテナ、及びアプリの各々によって構築されるシステムの模式図である。
図10図10は、本実施形態に係るコンテナ配置先決定方法について示す模式図(その1)である。
図11図11は、本実施形態に係るコンテナ配置先決定方法について示す模式図(その2)である。
図12図12は、本実施形態に係るコンテナ配置先決定方法について示す模式図(その3)である。
図13図13は、本実施形態における各コンテナのリソース使用率の監視結果を示す図である。
図14図14は、本実施形態に係る設計情報の模式図である。
図15図15は、本実施形態に係る管理情報の模式図である。
図16図16は、本実施形態においてスケールアウトを行った後におけるシステム30の模式図である。
図17図17は、本実施形態に係る情報処理装置の機能構成図である。
図18図18は、本実施形態に係るコンテナ配置先決定方法のフローチャートである。
図19図19は、本実施形態に係る情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0011】
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
図1は、本願発明者が検討したマルチクラウドのシステム構成図である。
【0012】
このシステム1は、利用者に対してサービスを提供するためのシステムであって、クラウドを提供する事業者やリージョンが異なる複数の仮想マシンVMを組み合わせて構築される。
【0013】
リージョンは、仮想マシンVMを実行する物理マシンを収容したデータセンタが存在する地域である。例えば、「日本」や「米国」がリージョンとなる。また、事業者は、そのデータセンタを利用して仮想マシンVMを提供する事業者である。図1の例では、事業者Aと事業者Bの各々が提供する仮想マシンVMによってシステム1が構築される。以下では、事業者とリージョンの組のことをクラウド拠点と呼ぶ。例えば、(事業者A、日本)、(事業者A、米国)、(事業者B、日本)、及び(事業者B、米国)は、相異なるクラウド拠点の一例である。
【0014】
なお、システム1の利用者がオンプレミスでデータセンタを運用している場合には、利用者が自己所有するデータセンタで仮想マシンVMを稼働し、その仮想マシンVMをシステム1に取り入れてもよい。
【0015】
また、この例では、一つの仮想マシンVMの各々に複数のコンテナ4を配置する。そして、各々のコンテナ4にアプリ5を一つずつ配置する。これにより、コンテナ4をアプリ5ごと他の仮想マシンVMに移動することで、アプリ単位での仮想マシンVMの移動が可能となる。
【0016】
このようなシステム1においては複数のアプリ5の各々が互いに処理を依頼し合うことにより一つのサービスが実現される。
【0017】
図2は、処理の依頼元と依頼先の各アプリ5の模式図である。
図2の例では、「appA」、「appB」、「appO」、「appP」、「appW」、及び「appX」の各アプリ5が、「appV」のアプリ5に処理を依頼する場合を想定している。このように「appV」のアプリ5に処理が集中すると、「appV」のアプリ5のコンテナ4に割り当てられたメモリやCPU(Central Processing Unit)等のリソースが不足し、該アプリ5の処理速度が低下するおそれがある。
【0018】
これを避けるために、「appV」のアプリ5が動作しているクラウド拠点(事業者A、米国)に新たに仮想マシンVMを作成し、その仮想マシンVMに「appV」のアプリ5が動作しているコンテナ4をスケールアウトすることが考えられる。スケールアウトは、ある仮想マシンVMで動作しているコンテナ4を、そのコンテナ4で動作しているアプリ5ごと他の仮想マシンVMにコピーする操作である。これにより、クラウド拠点(事業者A、米国)の二つの仮想マシンVMで「appV」のアプリ5が動作するため、該アプリ5に処理が集中するのを抑制できる。
【0019】
但し、このように新たな仮想マシンVMを作成すると、システム1に含まれる仮想マシンVMの個数が増えてしまうため、システム1の利用料金が増えてしまう。
【0020】
そこで、利用料金が増えるのを防止しつつ、「appV」のアプリ5に処理が集中するのを抑制するために、次のようにシステム1に既に存在する仮想マシンVMをスケールアウト先とすることが考えられる。
【0021】
図3は、この場合のスケールアウトの一例を示す模式図である。
図3の例では、クラウド拠点(事業者A、米国)において「appV」のアプリ5が動作しているコンテナ4を、クラウド拠点(事業者B、米国)の既存の仮想マシンVMにスケールアウトする。ここでは、スケールアウト前のアプリ5の名前「appV」にプライムを付けた名前「appV’」をスケールアウト先でのアプリ5の名前とする。
【0022】
図4は、このようにスケールアウトをしたときの各アプリ5への処理の振り分けを示す模式図である。
【0023】
図4の例では、適当な仮想マシンVMにおいてロードバランサ6を起動し、そのロードバランサ6を用いて「appV」と「appV’」の各アプリ5に処理を均等に振り分ける。これにより、「appV」のアプリ5のコンテナ4に割り当てられたメモリやCPU等のリソースが不足するのを抑制できる。しかも、スケールアウト先の仮想マシンVMはシステム1に元々存在しているため、当該仮想マシンVMを新たに作成する必要がなく、システム1の利用料金が増加するのを防止できる。
【0024】
しかし、この例のようにスケールアウト先の仮想マシンVMのクラウド拠点が、スケールアウト元の仮想マシンVMのクラウド拠点と異なると、アプリ5の間の遅延時間が増大する可能性が高くなる。
【0025】
図5は、遅延時間の定義を示す模式図である。
ここでは、「appA」のアプリ5が「appB」のアプリ5に処理を依頼してからその結果が通知されるまでの時間を応答時間TRとする。また、「appB」のアプリ5が当該処理をするのに要する時間を処理時間TPとする。この場合、遅延時間TLはTR - TPで定義される。この定義によれば、遅延時間TLは、通信路に起因した遅延の長さということになる。そのため、異なるクラウド拠点にあるアプリ5の間のように、地理的に離れたアプリ5の間において遅延時間TLは増大し易い。
【0026】
利用者に対してサービスを提供するシステム1(図3参照)の要件には、遅延時間TLは上限値(例えば5msec)以下にすべきとの制約が課せられることがある。このとき、上記のようにスケールアウトによって二つのアプリ5が異なるクラウド拠点に配置されると、例えばこれらのアプリ5の間の遅延時間TLが10msecとなってしまい、システム1の要件を満たせなくなってしまう。
【0027】
(本実施形態)
図6は、本実施形態に係る情報処理システムの構成図である。
この情報処理システム20は、マルチクラウドにより利用者にサービスを提供するシステムであって、インターネット等のネットワーク21を介して相互に接続された複数の物理サーバ22と情報処理装置23とを有する。
【0028】
このうち、物理サーバ22は、クラウドを提供する事業者Aと事業者Bの各々のデータセンタに収容された計算機である。ここでは、事業者A、Bが、それぞれ「日本」と「米国」という異なるリージョンにデータセンタを保有しているものとする。なお、サービスの提供を受ける利用者が自己所有する物理サーバ22を情報処理システム20に含めてもよい。
【0029】
各物理サーバ22には仮想マシンが起動しており、更にその仮想マシンの内部でコンテナが起動する。そして、各コンテナは、利用者にサービスを提供するための種々のアプリを実行する。
【0030】
情報処理装置23は、ある仮想マシンで動作しているコンテナのリソース使用率が増えたときに、そのコンテナを他の仮想マシンにスケールアウトする制御を行うためのPC(Personal Computer)やサーバ等の計算機である。
【0031】
図7は、物理サーバ22の模式図である。
図7に示すように、物理サーバ22は、CPU(Central Processing Unit)やメモリ等の物理的なリソース25を有しており、そのリソース25がホストOS26を実行する。
【0032】
更に、物理サーバ22は、ホストOS26の上で複数の仮想マシン27を起動する。以下では、各仮想マシン27を「VM1」、「VM2」、…等の文字列で識別する。各仮想マシン27は、リソース25の一部を使用してコンテナ28を起動する。コンテナ28を起動するために各仮想マシン27が使用するコンテナエンジンとしては例えばDOCKER(登録商標)がある。そして、各コンテナ28が一つのアプリ29を実行する。
【0033】
図8は、各クラウド拠点で動作している仮想マシン27、コンテナ28、及びアプリ29の各々を示す模式図である。
【0034】
図8に示すように、例えばクラウド拠点(事業者A、米国)において「VM10」の仮想マシン27が動作しており、この仮想マシン27の各コンテナ28において「appV」、「appW」、「appX」の各アプリ29が動作している。
【0035】
図9は、仮想マシン27、コンテナ28、及びアプリ29の各々によって構築されるシステム30の模式図である。
【0036】
システム30は、利用者が利用するシステムであって、ネットワーク21によって相互に接続された複数の仮想マシン27を有する。そのシステム30においては、あるアプリ29に処理が集中すると、そのアプリ29を実行しているコンテナ28に割り当てられたリソース25(図7参照)が不足することがある。この場合には、以下のようにして情報処理装置23(図6参照)がコンテナ28をスケールアウトする。
【0037】
図10図12は、本実施形態に係るコンテナ配置先決定方法について示す模式図である。
【0038】
まず、図10に示すように、情報処理装置23が、スケールアウトするコンテナ28として、「appV」のアプリ29が動作しているコンテナ28を特定する。一例として、情報処理装置23は、各コンテナ28のリソース使用率を監視し、リソース使用率が閾値を超えた「appV」のアプリ29が動作しているコンテナ28をスケールアウトが必要なコンテナ28として特定する。
【0039】
図13は、各コンテナ28のリソース使用率の監視結果を示す図である。
図13においては、各コンテナ28で動作しているアプリ29の名前で各コンテナ28を区別する。また、この例では、各コンテナ28のリソース使用率としてCPU使用率とメモリ使用率の各々を採用し、リソース使用率の閾値として85%を採用した場合を想定する。この場合、情報処理装置23は、CPU使用率とメモリ使用率のいずれかが95%を超えたコンテナ28を、スケールアウトが必要なコンテナ28として特定する。
【0040】
再び図10を参照する。
次に、情報処理装置23が、「appV」のアプリ29に対して処理を依頼している依頼元のアプリ29を特定する。アプリ29の特定方法は特に限定されない。ここでは、情報処理装置23は、各アプリ29同士が対応付けられた設計情報を参照することにより依頼元のアプリ29を特定する。
【0041】
図14は、設計情報40の模式図である。
設計情報40は、開発者が情報処理システム20を設計した際に生成した情報であって、処理の依頼元と依頼先のアプリ29同士を対応付けた情報である。ここでは、二つのアプリ29が処理の依頼元と依頼先との関係にある場合に記号「〇」を付し、依頼元と依頼先との関係にない場合には記号「×」を付してある。図14によれば、情報処理装置23は、「appV」のアプリ29に対して処理を依頼している依頼元のアプリ29として、「appA」、「appB」、「appO」、「appP」、「appW」、及び「appX」の各アプリ29を特定する。
【0042】
再び図10を参照する。
次に、情報処理装置23が、「appV」のアプリ29に対して処理を依頼している各アプリ29が配置されている仮想マシン27を特定する。図10の例では、情報処理装置23は、「VM1」、「VM7」、及び「VM10」の仮想マシン27を特定する。
【0043】
仮想マシン27の特定方法は特に限定されない。例えば、情報処理装置23は、Kubernetes等のコンテナ管理プログラムを実行することにより管理情報を生成し、その管理情報に基づいて仮想マシン27を特定する。
【0044】
図15は、その管理情報41の模式図である。
管理情報41は、アプリ29とそれを実行する仮想マシン27とを対応付けた情報である。図15の例では、「VM1」の仮想マシン27が「appA」と「appB」の各コンテナ28を実行し、「VM7」の仮想マシン27が「appO」と「appP」の各コンテナ28を実行している。また、「VM10」の仮想マシン27が「appW」と「appX」の各コンテナ28を実行している。
【0045】
次に、図11に示すように、情報処理装置23が、上記で特定した「VM1」と「VM7」の各仮想マシン27を、「appV」のアプリ29を実行しているコンテナ28のスケールアウト先として決定する。なお、「VM10」の仮想マシン27においては既に「appV」のアプリ29が実行されているため、情報処理装置23は、「VM10」の仮想マシン27についてはスケールアウト先から除外する。
【0046】
その後、情報処理装置23が、「VM1」と「VM7」の各仮想マシン27に、「appV」のアプリ29を実行しているコンテナ28をスケールアウトする。ここでは、「VM1」の仮想マシン27にスケールアウトしたコンテナ28が実行するアプリ29の名前を「appV’」とし、「VM7」の仮想マシン27にスケールアウトしたコンテナ28が実行するアプリ29の名前を「appV”」とする。
【0047】
次に、図12に示すように、情報処理装置23が、「appA」と「appB」の各アプリ29が処理を依頼する依頼先を、これらのアプリ29と同じ「VM1」の仮想マシン27にある「appV’」のアプリ29に変更する。同様に、情報処理装置23は、「appO」と「appP」の各アプリ29が処理を依頼する依頼先を、これらのアプリ29と同じ「VM7」の仮想マシン27にある「appV”」のアプリ29に変更する。
【0048】
以上により、本実施形態に係るコンテナ配置先決定方法の基本的な処理を終える。
【0049】
図16は、上記のようにスケールアウトを行った後におけるシステム30の模式図である。
【0050】
図16に示すように、スケールアウトした後においては、「appA」と「appB」の各アプリ29が処理を依頼する依頼先が、これらのアプリ29と同じ「VM1」の仮想マシン27で動作する「appV’」のアプリ29となる。同様に、「appO」と「appP」の各アプリ29が処理を依頼する依頼先が、これらのアプリ29と同じ「VM7」の仮想マシン27で動作する「appV”」のアプリ29となる。
【0051】
これにより、スケールアウトに起因して相異なるクラウド拠点にあるアプリ29間で処理の依頼が発生するのを抑制でき、アプリ29の間の通信の遅延を抑制できる。その結果、システム30の要件に遅延時間の上限値が規定されている場合に、スケールアウト後でもその要件を満たすことができるようになる。
【0052】
次に、本実施形態に係る情報処理装置23の機能構成について説明する。
【0053】
図17は、本実施形態に係る情報処理装置23の機能構成図である。
図17に示すように、情報処理装置23は、記憶部51、通信部52、及び制御部53を備える。
【0054】
このうち、記憶部51は、前述の設計情報40(図14)と管理情報41(図15参照)とを記憶する。
【0055】
また、通信部52は、情報処理装置23をネットワーク21(図6参照)に接続する通信インターフェースである。
【0056】
制御部53は、情報処理装置23の各部を制御する処理部であって、リソース監視部55、アプリ特定部56、仮想マシン特定部57、決定部58、スケールアウト実行部59、及び依頼先変更部60を有する。
【0057】
このうち、リソース監視部55は、システム30(図9参照)に含まれる全てのコンテナ28のリソース使用率を監視する処理部である。監視対象のリソース使用率としては、例えばメモリ使用率とCPU使用率がある。
【0058】
アプリ特定部56は、リソース使用率が閾値を超えたコンテナ28で動作しているアプリ29を特定し、更にそのアプリ29に処理を依頼している依頼元のアプリ29を特定する処理部である。一例として、アプリ特定部56は、図14の設計情報40を参照して依頼元のアプリ29を特定する。図14の例において「appV」のアプリ29が動作しているコンテナ28のリソース使用率が閾値を超えた場合には、アプリ特定部56は、「appA」、「appB」、「appO」、「appP」、「appW」、及び「appX」の各アプリ29を依頼元として特定する。
【0059】
仮想マシン特定部57は、図15の管理情報41を参照することにより、アプリ特定部56が特定したアプリ29が動作しているコンテナ28が配置されている仮想マシン27を特定する処理部である。図15の例では、仮想マシン特定部57は、「VM1」、「VM7」、及び「VM10」の各仮想マシン27を特定する。
【0060】
決定部58は、仮想マシン特定部57が特定した仮想マシン27を、リソース使用率が閾値を超えたコンテナ28のスケールアウト先として決定する処理部である。図15の場合では、決定部58は、「VM1」と「VM7」の各仮想マシン27を、「appV」のアプリ29を実行しているコンテナ28のスケールアウト先として決定する。なお、決定部58は、既に「appV」のアプリ29を実行している「VM10」の仮想マシン27についてはスケールアウト先から除外する。
【0061】
スケールアウト実行部59は、図11に示したように、決定部58が決定したスケールアウト先の仮想マシン27に実際にコンテナ28をスケールアウトする処理部である。
【0062】
依頼先変更部60は、アプリ特定部56が特定したアプリ29が処理を依頼する依頼先を、スケールアウト後のコンテナ28で動作するアプリ29に変更する処理部である。図12の例では、依頼先変更部60は、「appA」と「appB」の各アプリ29が処理を依頼する依頼先を「appV’」のアプリ29に変更する。同様に、依頼先変更部60は、「appO」と「appP」の各アプリ29が処理を依頼する依頼先を「appV”」のアプリ29に変更する。
【0063】
次に、本実施形態に係るコンテナ配置先決定方法について説明する。
図18は、本実施形態に係るコンテナ配置先決定方法のフローチャートである。
【0064】
まず、リソース監視部55が、システム30(図9参照)に含まれる全てのコンテナ28のリソース使用率を監視する(ステップS11)。
【0065】
次に、アプリ特定部56が、リソース使用率が閾値を超えたコンテナ28で動作しているアプリ29を特定し、更にそのアプリ29に処理を依頼している依頼元のアプリ29を特定する(ステップS12)。
【0066】
次いで、仮想マシン特定部57が、依頼元のアプリ29が動作しているコンテナ28が配置されている仮想マシン27を特定する(ステップS13)。
【0067】
続いて、決定部58が、ステップS13で特定した仮想マシン27を、リソース使用率が閾値を超えたコンテナ28のスケールアウト先として決定する(ステップS14)。
【0068】
次に、スケールアウト実行部59が、ステップS14で決定したスケールアウト先の仮想マシン27に、リソース使用率が閾値を超えたコンテナ28をスケールアウトする(ステップS15)。
【0069】
そして、依頼先変更部60が、ステップS12で特定したアプリ29が処理を依頼する依頼先を、スケールアウト後のコンテナ28で動作するアプリ29に変更する(ステップS16)。
【0070】
以上により、本実施形態に係るコンテナ配置先決定方法の基本的な処理を終える。
【0071】
上記した本実施形態によれば、リソース使用率が閾値を超えたコンテナ28のスケールアウト先を、該アプリ29に処理を依頼している依頼元のアプリ29が動作しているコンテナ28が配置されている仮想マシン27とする。これにより、処理の依頼元と依頼先の二つのアプリ29がスケールアウト後に同一の仮想マシン27で動作するため、異なるクラウド拠点にある二つのアプリ29の間で処理の依頼が発生しない。その結果、アプリ29の間における遅延時間TLを抑制することができ、遅延時間TLがシステム30の要件を満たさなくなる可能性を低減できる。
【0072】
(ハードウェア構成)
図19は、情報処理装置23のハードウェア構成図である。
図19に示すように、情報処理装置23は、記憶装置23a、メモリ23b、プロセッサ23c、通信インターフェース23d、表示装置23e、入力装置23f、及び媒体読取装置23gを有する。これらの各部は、バス23iにより相互に接続される。
【0073】
このうち、記憶装置23aは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性のストレージであって、本実施形態に係るコンテナ配置先決定プログラム100を記憶する。
【0074】
なお、コンテナ配置先決定プログラム100をコンピュータが読み取り可能な記録媒体23hに記録し、媒体読取装置23gを介してプロセッサ23cにそのコンテナ配置先決定プログラム100を読み取らせるようにしてもよい。
【0075】
そのような記録媒体23hとしては、例えばCD-ROM (Compact Disc - Read Only Memory)、DVD (Digital Versatile Disc)、及びUSB (Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体23hとして使用してもよい。これらの記録媒体23hは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
【0076】
更に、公衆回線、インターネット、及びLAN等に接続された装置にコンテナ配置先決定プログラム100を記憶させてもよい。その場合は、プロセッサ23cがそのコンテナ配置先決定プログラム100を読み出して実行すればよい。
【0077】
一方、メモリ23bは、DRAM(Dynamic Random Access Memory)等のようにデータを一時的に記憶するハードウェアであって、その上にコンテナ配置先決定プログラム100が展開される。
【0078】
プロセッサ23cは、情報処理装置23の各部を制御するCPUやGPU(Graphical Processing Unit)等のハードウェアである。また、プロセッサ23cは、メモリ23bと協働してコンテナ配置先決定プログラム100を実行する。
【0079】
このようにメモリ23bとプロセッサ23cとが協働してコンテナ配置先決定プログラム100を実行することにより、情報処理装置23の制御部53(図17参照)が実現される。その制御部53には、リソース監視部55、アプリ特定部56、仮想マシン特定部57、決定部58、スケールアウト実行部59、及び依頼先変更部60が含まれる。
【0080】
また、記憶部51(図17参照)は、記憶装置23aとメモリ23bによって実現される。
【0081】
更に、通信インターフェース23dは、情報処理装置23をネットワーク21(図6参照)に接続するためのNIC(Network Interface Card)等のハードウェアである。その通信インターフェース23dにより通信部52(図17参照)が実現される。
【0082】
そして、表示装置23eは、各種の情報を表示するための液晶ディスプレイやタッチパネル等のハードウェアである。
【0083】
また、入力装置23fは、システム30の管理者が情報処理装置23に各種のデータを入力するためのキーボードやマウス等のハードウェアである。
【0084】
媒体読取装置23gは、記録媒体23hを読み取るためのCDドライブ、DVDドライブ、及びUSBインターフェース等のハードウェアである。
【符号の説明】
【0085】
1…システム、4…コンテナ、5…アプリ、6…ロードバランサ、20…情報処理システム、21…ネットワーク、22…物理サーバ、23…情報処理装置、25…リソース、27…仮想マシン、28…コンテナ、29…アプリ、30…システム、40…設計情報、41…管理情報、51…記憶部、52…通信部、53…制御部、55…リソース監視部、56…アプリ特定部、57…仮想マシン特定部、58…決定部、59…スケールアウト実行部、60…依頼先変更部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19