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

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

▶ 日本電気株式会社の特許一覧

特許7571414コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム
<>
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図1
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図2
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図3
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図4
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図5
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図6
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図7
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図8
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図9
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図10
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図11
  • 特許-コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20241016BHJP
   G06F 9/455 20180101ALI20241016BHJP
   G06F 9/50 20060101ALI20241016BHJP
【FI】
G06F9/445
G06F9/455 150
G06F9/50 120Z
【請求項の数】 10
(21)【出願番号】P 2020133544
(22)【出願日】2020-08-06
(65)【公開番号】P2022029930
(43)【公開日】2022-02-18
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】中尾 哲也
【審査官】松平 英
(56)【参考文献】
【文献】国際公開第2017/029826(WO,A1)
【文献】特開2019-106031(JP,A)
【文献】特表2015-534663(JP,A)
【文献】米国特許出願公開第2017/0063722(US,A1)
【文献】山内 和朗 他,Windows版Docker&Windowsコンテナーテクノロジ入門,初版,日本,日経BP,2020年04月06日,pp.165-171,ISBN: 978-4-8222-8654-5
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
9/455-9/54
(57)【特許請求の範囲】
【請求項1】
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、
コンテナイメージに付与されている前記属性情報と、前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、
を備え、
前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる、
コンテナ実行システム。
【請求項2】
コンテナ実行環境から実行環境に関する情報を取得して保存する実行環境取得部、
をさらに備え、
前記実行環境決定部は、
コンテナイメージに付与されている前記属性情報と、前記定義情報取得部が取得した前記定義情報と、前記実行環境取得部から取得した実行環境に関する情報とに基づいて、コンテナの実行環境を決定する、
請求項1に記載のコンテナ実行システム。
【請求項3】
前記実行環境決定部により決定されたコンテナの実行環境に基づいて、当該コンテナの実行を指示する実行部、
をさらに備える請求項1または請求項2に記載のコンテナ実行システム。
【請求項4】
前記属性情報には、コンテナイメージを利用するユーザ要件に関する情報として少なくとも稼働率がさらに含まれる、
請求項1から請求項3のいずれか一項に記載のコンテナ実行システム。
【請求項5】
前記属性付与部は、
端末装置で設定された情報に基づいて前記属性情報をコンテナイメージに付与する、
請求項1から請求項4のいずれか一項に記載のコンテナ実行システム。
【請求項6】
前記定義情報取得部は、
端末装置で設定された前記定義情報を取得して蓄積部に保存する、
請求項1から請求項5のいずれか一項に記載のコンテナ実行システム。
【請求項7】
ユーザの操作に応じてコンテナイメージに付与する属性情報であってコンピュータリソースに関する情報が含まれる前記属性情報を設定する設定部と、
前記設定部により設定された前記属性情報と前記コンテナイメージを示す情報とを関連付けて送信する送信部と、
を備え、
前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる、
端末装置。
【請求項8】
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、
コンテナイメージに付与されている前記属性情報と前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、
を備え、
前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる、
サーバ装置。
【請求項9】
コンテナ実行システムにおけるコンテナ実行環境決定方法であって、
属性付与部が、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、
定義情報取得部が、コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、
実行環境決定部が、コンテナイメージに付与されている前記属性情報と、取得した前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、
を含み、
前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる、
コンテナ実行環境決定方法。
【請求項10】
コンピュータに、
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、
コンテナイメージに付与されている前記属性情報と前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、
を実行させ、
前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラムに関する。
【背景技術】
【0002】
ソフトウェアやサービスをデプロイする方法は、ここ数年で大きく変化しており、最近ではコンテナ型仮想技術が用いられるようになっている。コンテナ型仮想技術では、1つの物理マシンで動作するOS(operating system)のカーネルを共有し、物理マシンのリソースをコンテナ単位で複数のユーザ空間に隔離し実行することができる。コンテナはレジストリから複数のイメージを自動的に取得して構築され、開発者は開発評価を進める中で得られたリソース消費量やユーザ要件といった知見をもとに実行環境を選択して実行する。
【0003】
例えば、特許文献1には、情報処理装置の資源を評価する評価プログラムを含む評価コンテナで資源データを採取して、その資源データに基づいてコンテナを配備する技術について開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-117485号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、コンテナはレジストリからイメージを自動的に取得して構築されるため開発者から内容が見えにくく、実行時のリソースの消費や要件も分かり難くい。そのため、開発環境でコンテナの負荷試験を行い、そのリソース消費結果から余裕をもった環境を選択して実行することになる。よって、コンテナを適切な実行環境で実行しているとはいえない。
【0006】
そこでこの発明は、上述の課題を解決することのできるコンテナ実行システム、端末装置、サーバ装置、コンテナ実行環境決定方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、コンテナ実行システムは、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、コンテナイメージに付与されている前記属性情報と、前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、を備え、前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる
【0008】
本発明の第2の態様によれば、端末装置は、ユーザの操作に応じてコンテナイメージに付与する属性情報であってコンピュータリソースに関する情報が含まれる前記属性情報を設定する設定部と、前記設定部により設定された前記属性情報と前記コンテナイメージを示す情報とを関連付けて送信する送信部と、を備え、前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる
【0009】
本発明の第3の態様によれば、サーバ装置は、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、コンテナイメージに付与されている前記属性情報と前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、を備え、前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる
【0010】
本発明の第4の態様によれば、コンテナ実行システムにおけるコンテナ実行環境決定方法は、属性付与部が、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、定義情報取得部が、コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、コンテナイメージに付与されている前記属性情報と、実行環境決定部が、取得した前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、を含み、前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる。
【0011】
本発明の第5の態様によれば、プログラムは、コンピュータに、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、コンテナイメージに付与されている前記属性情報と前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、を実行させ、前記属性情報には、コンピュータリソースに関する情報として少なくともネットワークの消費量が含まれる
【発明の効果】
【0012】
本発明によれば、コンテナの実行環境を適切に決定することができる。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態に係るコンテナ実行システムの構成例を示すブロック図である。
図2】本発明の一実施形態に係るイメージ属性情報設定処理の一例を示すフローチャートである。
図3】本発明の一実施形態に係る実行環境選択方法設定処理の一例を示すフローチャートである。
図4】本発明の一実施形態に係るイメージの属性情報と実行環境の選択方法の定義の一例を示す図である。
図5】本発明の一実施形態に係るコンテナ実行処理の一例を示すフローチャートである。
図6】本発明の一実施形態に係るイメージのレイヤ構成の一例を示す図である。
図7】本発明の一実施形態に係る最終的に決定したコンテナの属性情報の値の一例を示す図である。
図8】本発明の一実施形態に係るコンテナ実行システム及びサーバの最小構成を示す図である。
図9】本発明の一実施形態に係るコンテンツ実行環境決定処理の一例を示すフローチャートである。
図10】本発明の一実施形態に係る端末の最小構成を示す図である。
図11】本発明の一実施形態に係るコンテンツイメージの属性情報の設定処理の一例を示すフローチャートである。
図12】本発明の一実施形態に係るコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態に係るコンテナ実行システムについて、図面を参照して説明する。
[システム構成]
図1は、本実施形態に係るコンテナ実行システムの構成例を示すブロック図である。図示するコンテナ実行システム1は、クライアント100と、サーバ200と、イメージレジストリ301と、イメージ定義ファイルリポジトリ302と、コンテナ実行環境400とを備えている。クライアント100とサーバ200とは、ネットワークを介して通信を行う。サーバ200は、ネットワークを介して、イメージレジストリ301、イメージ定義ファイルリポジトリ302、およびコンテナ実行環境400と通信を行う。
【0015】
クライアント100の端末101は、ユーザの操作入力に応じて、入力内容に基づく操作情報をサーバ200へ送信する。例えば、端末101にはクライアントマネージャーがインストールされている。クライアントマネージャーは、ユーザの操作入力を受け付け、入力内容に基づく操作情報をサーバ200へ送信する。例えば、ユーザは、端末101においてコンテナイメージの属性情報を設定することができる。
【0016】
ここで、属性情報とは、該当イメージを評価・検証した際のコンピュータのリソースであるCPU(Central Processing Unit)、メモリ(Memory)、ストレージ(Storage)、またはネットワーク(Network)等の消費量や、該当イメージを利用するユーザ要件(稼働率、リージョン等)のことを示す。なお、属性情報には、少なくともリソースに関する情報のみが含まれてもよい。また、属性情報には、ユーザ要件に関する情報のみが含まれてもよい。例えば、端末101は、コンテナイメージに属性情報を付与するユーザの操作入力に応じてコンテナイメージに付与する属性情報を設定し、設定した属性情報とコンテナイメージを示す情報とを関連付けた情報(以下、「属性付与情報」という)を、操作情報としてサーバ200へ送信する。
【0017】
また、ユーザは、端末101において、コンテナイメージの属性情報と当該コンテナを実行する際の実行環境の選択方法とを関連付けて設定することができる。例えば、端末101は、コンテナを実行する際の実行環境の選択方法を定義するユーザの操作入力に応じて、当該実行環境の選択方法とコンテナイメージの属性情報との関連付けの定義を設定する。そして、端末101は、設定した実行環境の選択方法と属性情報との関連付けの定義を示す情報(以下、「定義情報」という)を、操作情報としてサーバ200へ送信する。
【0018】
サーバ200は、操作受付部201と、イメージ属性付与部202と、イメージ属性取得部203と、実行環境選択方法定義部204と、実行環境定義部205と、コンテナ実行環境決定部206と、コンテナ実行部207とを備えている。
【0019】
操作受付部201は、端末101から送信された操作情報を受信する。操作受付部201は、受信した操作情報が属性情報を付与する操作入力によるものであれば、当該操作情報(属性付与情報)をイメージ属性付与部202へ送信する。また、操作受付部201は、受信した操作情報が実行環境選択方法を定義する操作入力であれば、当該操作情報(定義情報)を実行環境選択方法定義部204へ送信する。
【0020】
イメージ属性付与部202は、操作受付部201から送信された属性付与情報に基づいて、イメージに付与する属性情報(以下、「イメージ属性情報」という)をイメージレジストリ301またはイメージ定義ファイルリポジトリ302へ送信する。これにより、イメージ属性付与部202は、操作受付部201から送信された属性付与情報に基づいてイメージ属性情報をコンテンツイメージに付与する。
【0021】
イメージレジストリ301およびイメージ定義ファイルリポジトリ302は、イメージ属性付与部202から受信したイメージ属性情報を該当するイメージファイルに関連付けて保存する。イメージレジストリ301は、イメージリポジトリが保存されるデータベースである。イメージリポジトリとは、イメージバイナリを構成管理しているリポジトリ(例えば、Docker Hub)のことである。イメージ定義ファイルリポジトリ302は、イメージソースを構成管理しているリポジトリ(例えば、GitHub) が保存されるデータベースである。
【0022】
イメージ属性取得部203は、イメージレジストリ301またはイメージ定義ファイルリポジトリ302からイメージ属性情報を取得し、取得したイメージ属性情報をイメージ属性蓄積部210に保存する。
【0023】
実行環境選択方法定義部204は、操作受付部201から受信した実行環境選択方法の定義情報を取得し、取得した定義情報を実行環境選択方法蓄積部220に保存する。
【0024】
実行環境定義部205は、コンテナ実行環境400から実行環境に関する情報を取得して、コンテナ実行環境蓄積部230に保存する。コンテナ実行環境400は、コンテナを実行するコンピュータを含む構成である。実行環境とは、コンテナ実行環境400のリソースに関する情報およびユーザ要件に関する情報などである。
【0025】
コンテナ実行環境決定部206は、イメージ属性蓄積部210からイメージ属性情報を取得する。また、コンテナ実行環境決定部206は、実行環境選択方法蓄積部220から実行環境選択方法の定義情報を取得する。さらに、コンテナ実行環境決定部206は、コンテナ実行環境蓄積部230から実行環境に関する情報を取得する。そして、コンテナ実行環境決定部206は、取得したイメージ属性情報と定義情報と実行環境に関する情報とに基づいて、コンテナを実行させる際の実行環境を決定する。また、コンテナ実行環境決定部206は、決定したコンテナ実行環境の情報をコンテナ実行部207へ送信する。
【0026】
コンテナ実行部207は、コンテナ実行環境決定部206からコンテナ実行環境の情報を取得する。そして、コンテナ実行部207は、取得したコンテナ実行環境に基づいてコンテナ実行環境400へコンテナの実行を指示する。
【0027】
[イメージ属性情報の設定処理]
次に、図2を参照して、ユーザの操作に応じてイメージ属性情報を設定するイメージ属性情報設定処理の動作について説明する。図2は、イメージ属性情報設定処理の一例を示すフローチャートである。
【0028】
(ステップS101)端末101は、コンテナイメージに属性情報を付与するユーザの操作入力に応じてコンテナイメージに付与する属性情報を設定し、設定した属性情報とコンテナイメージを示す情報とを関連付けた属性付与情報をサーバ200へ送信する。
【0029】
(ステップS102)サーバ200は、ステップS101で端末101から送信された属性付与情報を受信し、受信した属性付与情報に基づいてイメージ属性情報をリポジトリへ送信する。具体的には、操作受付部201は、端末101から送信された属性付与情報を受信すると、イメージ属性付与部202へ送信する。また、イメージ属性付与部202は、操作受付部201から送信された属性付与情報を受信すると、受信した属性付与情報に基づくイメージ属性情報をイメージレジストリ301またはイメージ定義ファイルリポジトリ302へ送信する。
【0030】
[実行環境選択方法の定義の設定処理]
次に、図3を参照して、ユーザの操作に応じてイメージの属性情報と実行環境の選択方法との定義を設定する実行環境選択方法設定処理の動作について説明する。図3は、実行環境選択方法設定処理の一例を示すフローチャートである。
【0031】
(ステップS201)端末101は、コンテナを実行する際の実行環境の選択方法を定義するユーザの操作入力に応じて、当該実行環境の選択方法とコンテナイメージの属性情報との関連付けの定義を設定する。そして、端末101は、設定した実行環境の選択方法と属性情報との関連付けの定義を示す定義情報をサーバ200へ送信する。
【0032】
(ステップS202)サーバ200は、ステップS201で端末101から送信された実行環境の選択方法の定義情報を受信して保存する。具体的には、操作受付部201は、端末101から送信された上記定義情報を受信すると、受信した定義情報を実行環境選択方法定義部204へ送信する。また、実行環境選択方法定義部204は、操作受付部201から上記定義情報を受信すると、受信した定義情報を実行環境選択方法蓄積部220に保存する。
【0033】
図4は、イメージの属性情報と実行環境の選択方法の定義の一例を示す図である。この図では、イメージの属性(イメージ属性)と実行環境の選択方法とが関連付けられている。例えば、イメージ属性「vCPU」は、実行環境の選択方法「最も大きい値」と関連付けられている。これはコンテナを構成するイメージのすべての属性「vCPU」のうち「最も大きい値」をコンテナ実行環境の選択に利用することを示している。また、イメージ属性「リージョン」は、実行環境の選択方法「Asia Pacific>US-West>US-East」と関連付けられている。これはコンテナを構成するイメージのすべての属性「リージョン」のうち「Asia Pacific」が存在すればコンテナ実行環境の選択に利用する、存在しなければ次の「US-West」が存在すればコンテナ実行環境の選択に利用する、さらに存在しなければ次の「US-East」が存在すればコンテナ実行環境の選択に利用する、という優先順に利用することを示している。
【0034】
[コンテナ実行処理]
次に、図5を参照して、コンテナの実行環境を決定してコンテナを実行するコンテナ実行処理の動作について説明する。図5は、コンテナ実行処理の一例を示すフローチャートである。
【0035】
(ステップS301)ユーザは、端末101でコンテナの実行を指示する。端末101は、コンテナの実行を指示するユーザの操作入力に応じて、当該コンテナの実行を指示するコンテナ実行指示情報をサーバ200へ送信する。
【0036】
(ステップS302)サーバ200は、端末101からコンテナ実行指示情報を取得すると、リポジトリからイメージの属性情報を取得する。具体的には、イメージ属性取得部203は、実行するコンテナのイメージ属性情報を、イメージレジストリ301またはイメージ定義ファイルリポジトリ302から取得する。
【0037】
(ステップS303)イメージ属性取得部203は、ステップS302で取得した属性情報を属性の種類(例えばCPU、Memory、Storage、Network、稼働率、リージョンなど)ごとに分類してイメージ属性蓄積部210に保存する。そして、ステップS304の処理に進む。
【0038】
(ステップS304)イメージ属性取得部203は、コンテナを構成するイメージのイメージ属性情報の取得が完了したか否かを判定する。
【0039】
ここで、コンテナの構成について説明する。コンテナは互いにイメージを積み重ねた1つまたは複数のレイヤで構成されている(一般的に下位レイヤをベースイメージと呼ぶ)。コンテナのイメージ定義ファイル(例えばDockerfile)にベースイメージが記述されているため、イメージ属性取得部203は、リポジトリに格納されたイメージ定義ファイルをたどることでレイヤ構成を取得することができる。これにより、イメージ属性取得部203は、コンテナを構成する最上位レイヤのイメージから順に最下位レイヤのイメージまでステップS302、S303の処理を繰り返して、各イメージのイメージ属性情報を取得する。
【0040】
図6は、イメージのレイヤ構成の一例を示す図である。この図において、イメージ列に記述されているmyapp、ruby、buildpack、debianのそれぞれがイメージのレイヤ構成である。myappが最上位レイヤのイメージ、debianが最下位レイヤのイメージを示している。イメージ属性取得部203は、はじめにmyappイメージのイメージ属性情報(vCPU、Memory、Storage、Network、稼働率、リージョン)をリポジトリから取得して、種類ごとに分類してイメージ属性蓄積部210に保存する。次に、イメージ属性取得部203は、rubyイメージの属性情報をリポジトリから取得して、種類ごとに分類して保存する。イメージ属性取得部203は、この処理を最下位レイヤまで繰り返す。
【0041】
イメージ属性取得部203は、イメージ属性情報の取得が完了していないと判定した場合(NO)、ステップS302の処理に戻る。一方、イメージ属性取得部203は、イメージ属性情報の取得が完了したと判定した場合(YES)、ステップS305の処理に進む。
【0042】
(ステップS305)サーバ200は、イメージ属性蓄積部210からイメージ属性情報を取得する。具体的には、コンテナ実行環境決定部206は、ステップS303で保存されたイメージ属性情報をイメージ属性蓄積部210から1つ取得する。そして、ステップS306の処理に進む。
【0043】
(ステップS306)コンテナ実行環境決定部206は、図3のステップS202で保存された実行環境選択方法を実行環境選択方法蓄積部220から取得する。そして、コンテナ実行環境決定部206は、取得した実行環境選択方法と、ステップS305で取得したイメージ属性情報とを照合し、コンテナの属性情報の値を決定する。
【0044】
(ステップS307)コンテナ実行環境決定部206は、イメージ属性蓄積部210からステップS303で保存されたすべての属性情報の取得が完了したか否かを判定する。コンテナ実行環境決定部206は、すべての属性情報の取得が完了していないと判定した場合(NO)、ステップS305の処理に戻る。
【0045】
つまり、コンテナ実行環境決定部206は、コンテナを構成するイメージのイメージ属性情報すべてについてステップS305、S306の処理を繰り返す。例えば、図4に示すイメージ属性と実行環境の選択方法との定義の例では、「vCPU」の実行環境の選択方法は「最も大きい値」となっている。また、図6に示すコンテンツイメージのレイヤ構成の例では、「vCPU」の最も大きい値は「2」である。そのため、コンテナ実行環境決定部206は、コンテナの「vCPU」の値を「2」に決定する。また、他の例として、図4に示す例では、「リージョン」の実行環境の選択方法は「Asia Pacific>US-West>US-East」となっている。図6に示す例では、「リージョン」に「Asia Pacific」が存在する。そのため、コンテナ実行環境決定部206は、コンテナの「リージョン」の値を「Asia Pacific」に決定する。このようにして、コンテナ実行環境決定部206は、コンテナのイメージ属性情報すべての値を決定する。
【0046】
図7は、最終的に決定したコンテナの属性情報の値の一例を示している。図示するコンテナの例では、「vCPU」の値が「2」、「Memory」の値が「5(GiB)」、「Storage」の値が「27(GB)」、「Network」の値が「25(Gbps)」、「稼働率」の値が「99.9」、「リージョン」の値が「Asia Pacific」にそれぞれ決定されている。コンテナ実行環境決定部206は、すべての属性情報の取得が完了したと判定した場合(YES)、ステップS308の処理に進む。
【0047】
(ステップS308)コンテナ実行環境決定部206は、コンテナ実行環境蓄積部230から各実行環境の値(例えばCPU、Memory、Storage、Network、稼働率、リージョンなど)を取得する。そして、ステップS309の処理に進む。
【0048】
(ステップS309)コンテナ実行環境決定部206は、ステップS305~S307で決定したコンテナの属性情報の値とステップS308で取得した各実行環境の値とに基づいて、コンテナの実行環境を決定する。例えば、コンテナ実行環境決定部206は、コンテナの属性情報の値と各実行環境の値とを照合し、最も近いコンテナ実行環境を選択し決定する。そして、コンテナ実行部207は、コンテナ実行環境決定部206で決定したコンテナ実行環境に基づいて、コンテナ実行環境400へコンテナの実行を指示する。
【0049】
以上説明したように、本実施形態に係るコンテナ実行システム1において。イメージ属性付与部202は、コンピュータリソースに関する情報が含まれる属性情報(イメージ属性情報)をコンテナイメージに付与する。また、実行環境選択方法定義部204は、コンテナを実行する際の実行環境の選択方法とイメージ属性情報とが予め関連付けられて定義された定義情報を取得する。そして、コンテナ実行環境決定部206は、コンテナイメージに付与されているイメージ属性情報と、実行環境選択方法定義部204が取得した定義情報とに基づいて、コンテナの実行環境を決定する。
【0050】
これにより、コンテナ実行システム1は、コンテナの実行に必要なリソースに合致した適切なコンテナの実行環境を決定することができる。また、コンテナ実行システム1は、負荷試験を実施して消費リソースを測定するコスト、無駄なリソース消費、利用料金の抑制が可能となる。例えば、本実施形態を使用してパブリックリポジトリにコンテナイメージとともにユーザやベンダーが試験して計測したリソースや要件等の結果を属性情報として登録し、実行環境を決定することで広く利用者に効果が期待できる。
【0051】
また、コンテナ実行環境決定部206は、コンテナイメージに付与されているイメージ属性情報と、実行環境選択方法定義部204が取得した定義情報と、実行環境定義部205から取得した実行環境に関する情報とに基づいて、コンテナの実行環境を決定する。
【0052】
これにより、コンテナ実行システム1は、実際のコンテナの実行環境に応じてコンテナの実行に必要なリソースに合致した適切なコンテナの実行環境を決定することができる。
【0053】
また、コンテナ実行部207(実行部の一例)は、コンテナ実行環境決定部206により決定されたコンテナの実行環境に基づいて、当該コンテナの実行を指示する。
【0054】
これにより、コンテナ実行システム1は、コンテナの実行に必要なリソースに合致した適切な実行環境でコンテナを実行することができる。
【0055】
なお、例えばイメージ属性情報には、コンテナイメージを利用するユーザ要件に関する情報がさらに含まれる。また、例えばユーザ要件に関する情報には、稼働率またはリージョンに関する情報が含まれる。
【0056】
これにより、コンテナ実行システム1は、コンテナの実行に必要なリソース及びユーザ要件に合致した適切なコンテナの実行環境を決定することができる。
【0057】
また、イメージ属性付与部202は、端末101(端末装置の一例)で設定された情報に基づいてイメージ属性情報をコンテナイメージに付与する。
【0058】
これにより、コンテナ実行システム1は、ユーザが任意に設定したイメージの属性情報に基づいて、コンテナの実行環境を適切に決定することができる。
【0059】
また、実行環境選択方法定義部204は、端末101で設定された実行環境の選択方法定義情報を取得して実行環境選択方法蓄積部220(蓄積部の一例)に保存する。
【0060】
これにより、コンテナ実行システム1は、ユーザが任意に設定した実行環境の選択方法に基づいて、コンテナの実行環境を適切に決定することができる。
【0061】
図8は、本実施形態に係るコンテナ実行システム1及びサーバ200の最小構成を示す図である。コンテナ実行システム1は、サーバ200を備えている。コンテナ実行システム1及びサーバ200(サーバ装置の一例)は、イメージ属性付与部202(属性付与部の一例)と、実行環境選択方法定義部204(定義情報取得部の一例)と、コンテナ実行環境決定部206(実行環境決定部の一例)と、を備えている。イメージ属性付与部202は、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する。実行環境選択方法定義部204は、コンテナを実行する際の実行環境の選択方法と属性情報とが予め関連付けられて定義された定義情報を取得する。コンテナ実行環境決定部206は、コンテナイメージに付与されている属性情報と、実行環境選択方法定義部204が取得した定義情報とに基づいて、コンテナの実行環境を決定する。
【0062】
図9は、本実施形態に係るコンテナ実行システム1及びサーバ200が実行するコンテンツ実行環境決定処理の一例を示すフローチャートである。イメージ属性付与部202は、コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する(ステップS401)。また、実行環境選択方法定義部204は、コンテナを実行する際の実行環境の選択方法とイメージ属性情報とが予め関連付けられて定義された定義情報を取得する(ステップS402)。そして、コンテナ実行環境決定部206は、コンテナイメージに付与されているイメージ属性情報と、実行環境選択方法定義部204が取得した定義情報とに基づいて、コンテナの実行環境を決定する(ステップS403)。これにより、コンテナ実行システム1及びサーバ200は、コンテナの実行に必要なリソースに合致した適切なコンテナの実行環境を決定することができる。
【0063】
図10は、本実施形態に係るコンテナ実行システム1に含まれる端末101の最小構成を示す図である。端末101(端末装置の一例)は、設定部110と、送信部111とを備えている。設定部110は、ユーザの操作に応じてコンテナイメージに付与する属性情報であってコンピュータリソースに関する情報が含まれる属性情報を設定する。送信部111は、設定部110により設定された属性情報とコンテナイメージを示す情報とを関連付けて送信する。
【0064】
図11は、本実施形態に係る端末101が実行するコンテンツイメージの属性情報の設定処理の一例を示すフローチャートである。
設定部110は、ユーザの操作に応じてコンテナイメージに付与する属性情報であってコンピュータリソースに関する情報が含まれる属性情報を設定する(ステップS501)。次に、送信部111は、設定部110により設定された属性情報とコンテナイメージを示す情報とを関連付けて送信する(ステップS502)。これにより、端末101は、コンテナの実行環境を適切に決定するためのコンテナイメージの属性情報を、ユーザが任意に設定することができる。
【0065】
なお、図3に示す例では、ユーザがイメージの属性情報と実行環境の選択方法を設定する処理の動作を示しているが、これに限定されない。例えば、コンテナがイメージのレイヤ構成となっている特徴を利用して、サーバ200が自動的に設定することも可能である。例えば、サーバ200は、各イメージ属性情報の値は最上位レイヤの値を自動的に採用し、最上位レイヤに値がなければ、1つ下のレイヤの値を自動的に採用するといった方法としてもよい。
【0066】
また、図4のステップS309でコンテナ実行環境を決定する際に、サーバ200がコンテナの属性情報に近いコンテナ実行環境を選択して決定する例を示したが、これに限定されない。例えば、サーバ200は、各イメージ属性情報に優先度を設定して、優先度が高い属性で最も近い実行環境を選択することも可能である。例えば、サーバ200は、イメージ属性情報「vCPU」が最も優先度が高く、実行環境にイメージ属性情報「vCPU」の値に近い環境があれば優先して決定するといった方法でコンテナ実行環境を決定してもよい。
【0067】
また、上述の端末101、サーバ200及びコンテナ実行環境400は内部に、コンピュータシステムを有している。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、磁気ディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0068】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0069】
次に、図12を参照して、コンピュータの具体例を説明する。図12は、本実施形態に係る端末101、サーバ200及びコンテナ実行環境400を例とするコンピュータのハードウェア構成の一例を示す図である。コンピュータ500は、CPU501、メインメモリ502、ストレージ503、インターフェース504を備えている。例えば、上述した各処理部の動作は、プログラムの形式でストレージ503に記憶されている。CPU501は、プログラムをストレージ503から読み出してメインメモリ502に展開し、当該プログラムに従って上述した処理を実行する。また、CPU501は、プログラムに従って、上述した各蓄積部に対応する記憶領域をメインメモリ502に確保する。
【0070】
ストレージ503の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ503は、コンピュータ500のバスに直接接続された内部メディアであってもよいし、インターフェース504または通信回線を介してコンピュータ500に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ500に配信される場合、配信を受けたコンピュータ500が当該プログラムをメインメモリ502に展開し、上述した処理を実行してもよい。少なくとも1つの実施形態において、ストレージ503は、一時的でない有形の記憶媒体である。
【0071】
なお、図1に示す例では、コンテナ実行環境400は、サーバ200の外部に備えられているが、サーバ200の内部に含まれてもよい。また、イメージレジストリ301及びイメージ定義ファイルリポジトリ302の一方又は両方は、サーバ200に含まれてもよい。
【0072】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0073】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0074】
(付記1)
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、
コンテナイメージに付与されている前記属性情報と、前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、
を備えるコンテナ実行システム。
【0075】
(付記2)
コンテナ実行環境から実行環境に関する情報を取得して保存する実行環境取得部、
をさらに備え、
前記実行環境決定部は、
コンテナイメージに付与されている前記属性情報と、前記定義情報取得部が取得した前記定義情報と、前記実行環境取得部から取得した実行環境に関する情報とに基づいて、コンテナの実行環境を決定する、
付記1に記載のコンテナ実行システム。
【0076】
(付記3)
前記実行環境決定部により決定されたコンテナの実行環境に基づいて、当該コンテナの実行を指示する実行部、
をさらに備える付記1または付記2に記載のコンテナ実行システム。
【0077】
(付記4)
前記属性情報には、コンテナイメージを利用するユーザ要件に関する情報がさらに含まれる、
付記1から付記3のいずれか一つに記載のコンテナ実行システム。
【0078】
(付記5)
前記コンピュータリソースに関する情報には、CPU(Central Processing Unit)、メモリ、ストレージ、またはネットワークに関する情報が含まれる、
付記1から付記4のいずれか一つに記載のコンテナ実行システム。
【0079】
(付記6)
前記ユーザ要件に関する情報には、稼働率またはリージョンに関する情報が含まれる、
付記4に記載のコンテナ実行システム。
【0080】
(付記7)
前記属性付与部は、
端末装置で設定された情報に基づいて前記属性情報をコンテナイメージに付与する、
付記1から付記6のいずれか一つに記載のコンテナ実行システム。
【0081】
(付記8)
前記定義情報取得部は、
端末装置で設定された前記定義情報を取得して蓄積部に保存する、
付記1から付記7のいずれか一つ項に記載のコンテナ実行システム。
【0082】
(付記9)
ユーザの操作に応じてコンテナイメージに付与する属性情報であってコンピュータリソースに関する情報が含まれる前記属性情報を設定する設定部と、
前記設定部により設定された前記属性情報と前記コンテナイメージを示す情報とを関連付けて送信する送信部と、
を備える端末装置。
【0083】
(付記10)
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与する属性付与部と、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得する定義情報取得部と、
コンテナイメージに付与されている前記属性情報と前記定義情報取得部が取得した前記定義情報とに基づいて、コンテナの実行環境を決定する実行環境決定部と、
を備えるサーバ装置。
【0084】
(付記11)
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、
コンテナイメージに付与されている前記属性情報と、取得した前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、
を含むコンテナ実行環境決定方法。
【0085】
(付記12)
コンピュータに、
コンピュータリソースに関する情報が含まれる属性情報をコンテナイメージに付与するステップと、
コンテナを実行する際の実行環境の選択方法と前記属性情報とが予め関連付けられて定義された定義情報を取得するステップと、
コンテナイメージに付与されている前記属性情報と前記定義情報とに基づいて、コンテナの実行環境を決定するステップと、
を実行させるためのプログラム。
【符号の説明】
【0086】
1 コンテナ実行システム
100 クライアント
101 端末
110 設定部
111 送信部
200 サーバ
201 操作受付部
202 イメージ属性付与部
203 イメージ属性取得部
204 実行環境選択方法定義部
205 実行環境定義部
206 コンテナ実行環境決定部
207 コンテナ実行部
301 イメージレジストリ
302 イメージ定義ファイルリポジトリ
400 コンテナ実行環境
500 コンピュータ
501 CPU
502 メインメモリ
503 ストレージ
504 インターフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12