JP6958726B2 - アプリケーション実行装置、アプリケーション実行方法、およびプログラム - Google Patents

アプリケーション実行装置、アプリケーション実行方法、およびプログラム Download PDF

Info

Publication number
JP6958726B2
JP6958726B2 JP2020507792A JP2020507792A JP6958726B2 JP 6958726 B2 JP6958726 B2 JP 6958726B2 JP 2020507792 A JP2020507792 A JP 2020507792A JP 2020507792 A JP2020507792 A JP 2020507792A JP 6958726 B2 JP6958726 B2 JP 6958726B2
Authority
JP
Japan
Prior art keywords
container
definition file
update
application execution
build
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020507792A
Other languages
English (en)
Other versions
JPWO2019181860A1 (ja
Inventor
好大 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2019181860A1 publication Critical patent/JPWO2019181860A1/ja
Application granted granted Critical
Publication of JP6958726B2 publication Critical patent/JP6958726B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明は、アプリケーション実行装置、アプリケーション実行方法、およびプログラムに関する。
ビッグデータなどの大規模なデータを扱う業務システムを構築する際、コンテナ型仮想化技術が採用されるケースが増えてきている。コンテナ型仮想化は、仮想化の一種であり、1つのOS(Operating System)に、コンテナといわれる「独立したサーバと同様の振る舞いをする区画」を複数作り、それを個別のユーザ/サービスに割り当てるものである。コンテナには個別にCPU(Central Processing Unit)/メモリ/ストレージなどを割り当てる必要がない。従って、コンテナ型仮想化を用いた業務システムの場合、システムリソースのオーバーヘッドは少なくて済む。
一方で、近年、DevOpsが注目されており、上記業務システムもこのDevOpsを満足することが求められている。DevOpsとは、開発(Development)と運用(Operations)とが協力し、ビジネス要求に対して、より柔軟に、スピーディに対応できるシステムを作り上げるための取り組みのことを指す。なお、現時点においては、DevOpsについての厳密な定義はない。
上記に関連して、例えば、特許文献1には、アップデート命令を受信したコンテナ管理部が、現在のコンテナを削除(停止)し、コンテナテンプレートの更新を行うことが記載されている。ここで、コンテナテンプレートの更新とは、新コンテナテンプレートをダウンロードすることであってもよいし、コンテナ収容装置に予め格納されている新コンテナテンプレートを読み出すことであってもよいとの記載がある。
特開2017−111761号公報
コンテナ型仮想化を用いた業務システムにおいてアプリケーションを最新の状態で動作させるためには、アプリケーションの更新が必要である。その場合、更新内容をコンテナイメージに反映し、更新されたコンテナイメージを実行環境にデプロイする必要がある。上記において、コンテナイメージとは、アプリケーションをコンテナ上で動作させるために必要なファイルを一纏めにしたイメージファイルのことである。また、デプロイは、ソフトウェアシステムを利用可能にする活動全般のことを指す。
しかしながら、コンテナイメージの作成には手間が掛かり、かつそのビルド(たとえば、コンパイル/リンク)には時間が掛かる場合がある。
また、コンテナイメージでは、アプリケーションの更新に伴う実行環境へのデプロイの度に、これまでのファイルシステムの差分情報(ソースファイルの差分ファイル)がレイヤとして蓄積されている。従って、アプリケーションの更新を繰り返す度に、デプロイ完了までの時間が次第に増大していく虞がある。時間の増大を回避するため、業務システムの運用者自身による定期的なメンテナンス作業(コンテナイメージの整理)が実施されているが、これは運用者にとってかなりの手間となる。
すなわち、コンテナ型仮想化技術を用いて構築される業務システムの開発において、一般的なオンプレミス環境(自社運用環境)での業務システムの開発に比べ、アプリケーションの開発および運用(DevOps)を効率的に実施するための仕組みがあまり提案されていないのが実情である。
本発明は、上記課題を解決するためになされたものであり、コンテナ型仮想化技術を用いて構築される業務システムにおけるアプリケーションの開発および運用を効率化させることが可能な技術を提供することを目的とする。
本発明のアプリケーション実行装置は、コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置であって、コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する更新検出手段と、更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更する内容変更手段と、を備える。
本発明のアプリケーション実行方法は、コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置におけるアプリケーション実行方法であって、コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出し、更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更することを特徴とする。
本発明のプログラムは、コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置のコンピュータに、コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する更新検出処理と、更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更する内容変更処理と、を実行させる
本発明によれば、コンテナ型仮想化技術を用いて構築される業務システムにおけるアプリケーションの開発および運用を効率化させることができる。
本発明の第1の実施形態に係るアプリケーション実行装置の構成例を示すブロック図である。 図1に示すアプリケーション実行装置の動作例(アプリケーション実行方法)を説明するためのフローチャートである。 本発明の第2の実施形態に係る業務システムの構成例を示すブロック図である。 図3に示されるコンテナイメージ生成部の構成例を示すブロック図である。 図3に示されるコンテナ管理部の構成例を示すブロック図である。 図3に示されるアプリケーション実行装置の第1の動作例(アプリケーション実行方法)を説明するためのフローチャートである。 中間ファイル(ソースファイル)を削除するためにビルド実行ステップを書き換える処理を説明するための図である。 中間ファイル(ソースファイル)の削除によりコンテナイメージが軽量化される様子を示す図である。 図3に示されるアプリケーション実行装置の第2の動作例(アプリケーション実行方法)を説明するためのフローチャートである。 レイヤ統合によるコンテナイメージ更新処理を説明する図である。 本発明の第3の実施形態に係るアプリケーション実行システムの構成例を示すブロック図である。 本発明の第4の実施形態に係るアプリケーション実行装置の構成例を示すブロック図である。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るアプリケーション実行装置500の構成例を示すブロック図である。
アプリケーション実行装置500は、コンテナ型仮想化技術を用いて構築される業務システム(図1において不図示)に含まれる。コンテナおよびコンテナ型仮想化技術については、[背景技術]にて説明済みである。
アプリケーション実行装置500は、更新検出部501(更新検出手段および更新検出処理の一例)と、内容変更部502(内容変更手段および内容変更処理の一例)と、を備える。
更新検出部501は、コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する。内容変更部502は、更新が検出された場合、コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、コンテナ定義ファイルおよびコンテナイメージの各内容を変更する。
アプリケーション実行装置500は、例えば、IC(Integrated Circuit)やFPGA(Field Programmable Gate Array)等の電子回路で構成されてもよい。あるいは、アプリケーション実行装置500は、コンピュータ(たとえば、CPU(Central Processing Unit))がメモリに記憶されたプログラムを実行する構成であってもよい。もちろん、アプリケーション実行装置500は、電子回路とコンピュータの組み合わせにて構成されてもよい。
図2は、図1に示すアプリケーション実行装置500の動作例(アプリケーション実行方法)を説明するためのフローチャートである。
更新検出部501は、コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する(ステップS100)。
更新が検出された場合、内容変更部502は、コンテナイメージのデータ量を軽減させるために、コンテナ定義ファイルおよびコンテナイメージの各内容を変更する(ステップS101)。
なお、アプリケーション実行装置500の詳細な構成および動作については、第2の実施形態にて説明する。
以上説明した第1の実施形態によれば、コンテナへのアプリケーションの反映に必要なコンテナ定義ファイルの作成や更新の度に発生する、ビルドからコンテナへのデプロイまでの作業のすべてはアプリケーション実行装置500にて自動的に実行される。従って、更新に費やされる時間の増大を回避するために、業務システムの運用者自身によって定期的に実行されるメンテナンス作業を不要とすることができる。
さらに、第1の実施形態では、コンテナイメージを軽量化させるための処理がアプリケーション実行装置500によって自動的に実行されるので、コンテナに対するアプリケーションの更新に費やされる時間を短縮することができる。
すなわち、以上説明した第1の実施形態によれば、コンテナ型仮想化技術を用いて構築される業務システムにおけるアプリケーションの開発および運用を効率化させることができる。
[第2の実施形態]
(構成の説明)
図3は、本発明の第2の実施形態に係る業務システム100の構成例を示すブロック図である。業務システム100は、アプリケーション実行装置1と、データストレージ200と、を備える。
アプリケーション実行装置1は、図1に示すアプリケーション実行装置500を基本とする構成を含み、少なくとも1つのアプリケーションを、コンテナ型仮想化技術を用いて実行する。アプリケーションで実行される業務は、例えば、商品需要予測、販売価格予測、会計管理業務、顧客管理業務、商品管理業務、生産管理業務、または給与管理業務である。もちろん、アプリケーションが実行する業務は、上記に限定されない。また、アプリケーション実行装置1は、物理マシンおよび仮想マシンのどちらであってもよい。
アプリケーション実行装置1は、更新検出部10と、コンテナイメージ生成部20と、コンテナイメージ管理部30と、コンテナ管理部40と、記憶部50と、少なくとも1つのコンテナ60と、を備える。更新検出部10は、図1の更新検出部501の構成を含む。また、コンテナイメージ生成部20とコンテナイメージ管理部30とコンテナ管理部40とをまとめたものは、図1の内容変更部502の具体例に対応する。
更新検出部10は、コンテナ60上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する。コンテナ定義ファイルの更新が検出された場合、更新検出部10は、コンテナイメージ生成部20に対して、更新されたコンテナ定義ファイルを用いてコンテナイメージを更新するよう指示する。
コンテナイメージ生成部20およびコンテナ管理部40の詳細については後述する。
コンテナイメージ管理部30は、コンテナイメージをリポジトリ形式で管理するとともに、コンテナイメージの更新を通知する。
記憶部50は、アプリケーション実行装置1内で動作する各処理部が出力したファイルやイメージを保存する。
コンテナ60は、少なくとも1つ設けられ、割り当てられた所定のアプリケーションを実行する。
データストレージ200は、アプリケーションが使用する各種のファイルやデータを格納する。たとえば、データストレージ200は、コンテナ定義ファイルを格納する。
図4は、図3に示されるコンテナイメージ生成部20の構成例を示すブロック図である。コンテナイメージ生成部20は、図4に示されるように、ビルド実行部21と、ビルド時間計測部22と、コンテナ定義ファイル解析部23と、コンテナ定義ファイル書替部24と、コンテナイメージ書替部25と、を備える。
ビルド実行部21は、コンテナ定義ファイルをビルドする。ビルド時間計測部22は、ビルドに費やされた処理時間を計測する。コンテナ定義ファイル解析部23は、更新が検知されたコンテナ定義ファイルの内容を解析する。コンテナ定義ファイル書替部24は、更新されたコンテナ定義ファイルの内容を変更する。コンテナイメージ書替部25は、ビルドを実行するときにコンテナイメージの構成(たとえば、レイヤ構造)を再構築する。
図5は、図3に示されるコンテナ管理部40の構成例を説明するブロック図である。コンテナ管理部40は、リソース制御部41と、上限時間超過判定部42と、を備える。
リソース制御部41は、コンテナの起動に必要なリソースを制御する。上限時間超過判定部42は、全体の処理時間(後述)が、予め決定された上限時間(後述)を超えるか否かを判定する。
なお、図3および図4における各部の接続はあくまで一例である。
(動作の説明)
以下、本実施形態の業務システム100におけるデプロイ環境の更新動作について説明する。
なお、以下の説明において、コンテナ型仮想化の一例である、例えば、Docker(登録商標)が使用される場合を想定している。また、デプロイ対象のシステム構成は、RPM(Red Hat package managerまたはRPM Package Manager)などの一般的なパッケージで構成されるものとして説明する。さらに、以下の動作が実行される前に、業務システム100の運用者により、予め、デプロイ環境が更新されるまでの上限時間が設定されているものとする。上限時間は、例えば、業務システム100に要求される性能に基づいて決定される。上限時間は、例えば、記憶部50に記憶される。
図6は、図3に示されるアプリケーション実行装置1の第1の動作例(アプリケーション実行方法)を説明するための図であり、詳細には、実行環境が構築されるまでの動作を説明するフローチャートである。
更新検出部10は、データストレージ200に格納されているいずれかのコンテナ定義ファイルが更新されたか否かを検出する(ステップS1)。更新が検出されない場合(ステップS1にてNo)、ステップS1の処理が再度実行される。
更新が検知された場合(ステップS1のYes)、更新検出部10は、コンテナイメージ生成部20に対して、ビルド(更新が検知されたコンテナ定義ファイルを用いてコンテナイメージを更新する処理)の実行を指示する。
コンテナイメージ生成部20のコンテナ定義ファイル解析部23は、更新検出部10からの指示に応じて、更新が検知されたコンテナ定義ファイルを解析し、ビルド命令(たとえば、make、またはrpmbuild)を特定する(ステップS2)。
コンテナイメージ生成部20のコンテナ定義ファイル書替部24は、データストレージ200内の、更新されたコンテナ定義ファイルの内容を変更する(ステップS3)。ここで、ステップS2で特定されたビルド命令に記述されたソースファイルは、デプロイ環境の更新によって実行環境が構築されるまで(すなわち、ビルド命令によりビルドが完了するまで)のいわば中間ファイルであり、実行環境の構築後は不要となるファイルである。そこで、ステップS3において、コンテナ定義ファイル書替部24は、当該ビルド命令の実行時に使用されるソースファイルをビルド命令の実行完了後に削除するための削除命令を、更新が検知されたコンテナ定義ファイルに書き加える。
コンテナイメージ生成部20のビルド実行部21は、このように削除命令の追加によって書き替えられたコンテナ定義ファイルのビルドを、ステップS2で特定されたビルド命令に従って実行する(ステップS4)。すなわち、ビルド実行部21は、コンテナイメージ書替部25に指示し、コンテナイメージ書替部25は、データストレージ200に格納されたコンテナイメージの構成、たとえば、レイヤ構造を再構築(または、更新とも言う)する。
コンテナ定義ファイルのビルドを実行する際、コンテナイメージ生成部20のビルド時間計測部22は、上記ビルドの処理時間であるビルド時間を計測する(ステップS5)。計測されたビルド時間は、例えば、記憶部50に格納される。更新検出部10は、ビルドの実行により更新されたコンテナイメージをコンテナイメージ管理部30に格納する。コンテナイメージ管理部30は、コンテナ管理部40に対して、コンテナイメージが更新された旨の更新通知を送信する(ステップS6)。
図7は、ソースファイルを削除するためにコンテナ定義ファイル中のビルドの実行ステップを書き換える処理(ステップS3の処理)を説明するための図である。図7に示すように、ステップS3で変更後の命令行には、ソースファイル(/xxx/yyy/src)を削除するための「rm」コマンドが追加される。rmコマンドを追加することで、ソースファイルがコンテナイメージに追加されるのが禁止される。
図8は、ソースファイルの削除によりコンテナイメージが軽量化される様子を示す図である。図8から諒解されるように、図6に示すフローの実行により、Layer3において、ソースファイル(差分ファイル)はコンテナイメージ管理部30に格納されず、実行環境へのデプロイに必要なファイル(aaa.rpm)のみが格納されるようになる。
図9は、図3に示されるアプリケーション実行装置1の第2の動作例(アプリケーション実行方法)を説明するための図であり、詳細には、コンテナ起動時の動作を説明するフローチャートである。図9のフローチャートに示される処理は、通常、図6のフローチャートに示される処理が完了した後に実行される。
図5に示すコンテナ管理部40のリソース制御部41は、コンテナイメージ管理部30からの更新通知を受信する(ステップS10)。リソース制御部41は、稼働中のコンテナを順次停止させ、更新された新しいコンテナイメージをコンテナイメージ管理部30から取得してコンテナ60を起動する(ステップS11)。
コンテナ管理部40の上限時間超過判定部42は、コンテナの起動時間を計測する(ステップS12)。計測した起動時間は、例えば、記憶部50に格納される。上限時間超過判定部42は、起動時間と計測済みのビルド時間(図4のステップS5参照)とを用いて、コンテナ定義ファイルが更新されてからその更新についてのデプロイが完了するまでの全体時間を算出する(ステップS13)。
上限時間超過判定部42は、全体の処理時間が、予め決定された上限時間を超えるか否かを判定する(ステップS14)。全体の処理時間が上限時間を超えない場合(ステップS14のNo)、本フローは終了する。
上限時間を超える場合(ステップS14のYes)、コンテナイメージ書替部25は、コンテナイメージ管理部30に格納されるコンテナイメージに含まれるレイヤ構造を再構築する(ステップS15)。具体的には、図10に示されるように、コンテナイメージ書替部25は、古いレイヤ構造(図10のLayer1〜3)を一旦取り払うとともにメタデータを排除することにより、複数のレイヤ(Layer1〜3)を1つのレイヤ(Layer1)に統合する。メタデータとは、あるデータそのものではなく、そのデータを表す属性や関連する情報を記述したデータのことである。図10には、メタデータが排除されることにより軽量化し、且つ1つに纏められたLayer1が示されている。
(効果の説明)
以上説明した第2の実施形態によれば、コンテナへのアプリケーションの反映に必要なコンテナ定義ファイルの作成や更新の度に発生する、ビルドからコンテナへのデプロイまでの作業のすべてはアプリケーション実行装置1にて自動的に実行される。従って、更新に費やされる時間の増大を回避するために、業務システムの運用者自身によって定期的に実行されるメンテナンス作業を不要とすることができる。
さらに、第2の実施形態では、コンテナイメージを軽量化させるための様々な処理が、アプリケーション実行装置1によって自動的に実行されるので、コンテナに対するアプリケーションの更新に費やされる時間を短縮することができる。様々な処理とは、例えば、中間ファイルであるソースファイルを削除するための削除命令を追加する処理や、メタデータを排除しレイヤを1つに統合する処理である。
すなわち、以上説明した第2の実施形態によれば、コンテナ型仮想化技術を用いて構築される業務システム100におけるアプリケーションの開発および運用を効率化させることができる。
[第3の実施形態]
図11は、本発明の第3の実施形態に係る業務システム550の構成例を示すブロック図である。業務システム550は、マスタとして動作するマスタ側アプリケーション実行装置560と、スレーブとして動作するスレーブ側アプリケーション実行装置570と、を備える。
マスタ側アプリケーション実行装置560とスレーブ側アプリケーション実行装置570とは、インターネット等のネットワーク580を介して接続される。
マスタ側アプリケーション実行装置560およびスレーブ側アプリケーション実行装置570は、例えば、第1の実施形態および第2の実施形態のいずれか一方のアプリケーション実行装置とすることができる。
以上説明した第3の実施形態のように、アプリケーション実行装置を分散配置することにより、アプリケーションの開発および運用をより一層効率的に実施することが可能となる。
[第4の実施形態]
図12は、本発明の第4の実施形態に係るアプリケーション実行装置600の構成例を示すブロック図であり、詳細には、図1に示すアプリケーション実行装置500、または図3に示すアプリケーション実行装置1を、コンピュータによって実現したアプリケーション実行装置600のブロック図である。
アプリケーション実行装置600は、記憶装置602と、プロセッサ等を含む演算装置604(コンピュータ)と、を備える。記憶装置602は、コンピュータ読み取り可能な記録媒体であり、コンピュータプログラム650を記憶する。コンピュータプログラム650は、例えば、第1の実施形態で説明した動作や第2の実施形態で説明した動作を演算装置604に実行させるためのプログラムである。
なお、演算装置604の例としては、例えば、プログラムを読み取り実行する、1つまたはそれ以上のCPUと、CPUが実行する命令を記憶するメモリを挙げることができる。また、コンピュータ読み取り可能な記録媒体は、例えば、非一時的な記憶装置である。非一時的な記憶装置の例としては、例えば、光ディスク、磁気ディスク、ROM(Read Only Memory)、不揮発性半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスクを挙げることができる。また、コンピュータ読み取り可能な記録媒体は、一時的な記憶装置であってもよい。一時的な記憶装置の例としては、例えば、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の信号線、あるいは、コンピュータシステム内部の揮発性メモリを挙げることができる。
以上説明した第4の実施形態によれば、第1および第2の実施形態と同様に、コンテナ型仮想化技術を用いて構築される業務システムにおけるアプリケーションの開発および運用を効率化させることができる。
以上、各実施形態を用いて本発明を説明したが、本発明の技術的範囲は、上記各実施形態の記載に限定されない。上記各実施形態に多様な変更又は改良を加えることが可能であることは当業者にとって自明である。従って、そのような変更又は改良を加えた形態もまた本発明の技術的範囲に含まれることは説明するまでもない。また、以上説明した各実施形態において使用される、数値や各構成の名称等は例示的なものであり適宜変更可能である。
この出願は、2018年 3月23日に出願された日本出願特願2018−055456を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 アプリケーション実行装置
10 更新検出部
20 コンテナイメージ生成部
21 ビルド実行部
22 ビルド時間計測部
23 コンテナ定義ファイル解析部
24 コンテナ定義ファイル書替部
25 コンテナイメージ書替部
30 コンテナイメージ管理部
40 コンテナ管理部
41 リソース制御部
42 上限時間超過判定部
50 記憶部
60 コンテナ
500 アプリケーション実行装置
501 更新検出部
502 内容変更部
550 業務システム
560 マスタ側アプリケーション実行装置
570 スレーブ側アプリケーション実行装置
580 ネットワーク
600 アプリケーション実行装置
602 記憶装置
604 演算装置
650 コンピュータプログラム

Claims (7)

  1. コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置であって、
    コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する更新検出手段と、
    更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更する内容変更手段と
    備え、
    前記内容変更手段は、更新が検知された前記コンテナ定義ファイルを解析してビルド命令を特定し、更新が検知された前記コンテナ定義ファイルに、特定された前記ビルド命令が実行された後に、実行に使用されたソースファイルを削除する削除命令を書き加え、前記削除命令が書き加えられた前記コンテナ定義ファイルのビルドを実行し、
    前記コンテナ定義ファイルが更新されてから更新についてのデプロイが完了するまでの全体時間を算出し、前記全体時間が、予め決定された上限時間を超えるか否かを判定し、前記全体時間が前記上限時間を超える場合、前記コンテナイメージに含まれるレイヤの構造を再構築する
    ことを特徴とするアプリケーション実行装置。
  2. 前記再構築は、古い前記構造を一旦取り払うとともにメタデータを排除することにより複数の前記レイヤを1つの前記レイヤに統合する処理であることを特徴とする請求項1に記載のアプリケーション実行装置。
  3. 前記内容変更手段は、
    前記削除命令が書き加えられた前記コンテナ定義ファイルのビルドを実行する際、前記ビルドの時間であるビルド時間を計測し、
    コンテナの起動時間を計測し、前記起動時間と前記ビルド時間とを用いて前記全体時間を算出する
    ことを特徴とする請求項1または2に記載のアプリケーション実行装置。
  4. 前記上限時間は、前記業務システムに要求される性能に基づいて決定されることを特徴とする請求項1から3のいずれか1項に記載のアプリケーション実行装置。
  5. マスタとして動作するマスタ側アプリケーション実行装置と、
    前記マスタ側アプリケーション実行装置と接続され、スレーブとして動作するスレーブ側アプリケーション実行装置と、を備え、
    前記マスタ側アプリケーション実行装置および前記スレーブ側アプリケーション実行装置は、請求項1から4のいずれか1項に記載される前記アプリケーション実行装置である
    ことを特徴とする業務システム。
  6. コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置におけるアプリケーション実行方法であって、
    コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出し、
    更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更し、
    各内容の変更が、更新が検知された前記コンテナ定義ファイルを解析してビルド命令を特定し、更新が検知された前記コンテナ定義ファイルに、特定された前記ビルド命令が実行された後に、実行に使用されたソースファイルを削除する削除命令を書き加え、前記削除命令が書き加えられた前記コンテナ定義ファイルのビルドを実行し、
    前記コンテナ定義ファイルが更新されてから更新についてのデプロイが完了するまでの全体時間を算出し、前記全体時間が、予め決定された上限時間を超えるか否かを判定し、前記全体時間が前記上限時間を超える場合、前記コンテナイメージに含まれるレイヤの構造を再構築する
    ことを特徴とするアプリケーション実行方法。
  7. コンテナ型仮想化技術を用いて構築される業務システムに含まれるアプリケーション実行装置のコンピュータに、
    コンテナ上で動作するアプリケーションを定義するコンテナ定義ファイルの更新を検出する更新検出処理と、
    更新が検出された場合、前記コンテナ定義ファイルをビルドすることにより生成されるコンテナイメージのデータ量を軽減させるために、前記コンテナ定義ファイルおよび前記コンテナイメージの各内容を変更する内容変更処理と
    を実行させるためのプログラムであって、
    前記内容変更処理は、更新が検知された前記コンテナ定義ファイルを解析してビルド命令を特定し、更新が検知された前記コンテナ定義ファイルに、特定された前記ビルド命令が実行された後に、実行に使用されたソースファイルを削除する削除命令を書き加え、前記削除命令が書き加えられた前記コンテナ定義ファイルのビルドを実行する処理と、
    前記コンテナ定義ファイルが更新されてから更新についてのデプロイが完了するまでの全体時間を算出し、前記全体時間が、予め決定された上限時間を超えるか否かを判定し、前記全体時間が前記上限時間を超える場合、前記コンテナイメージに含まれるレイヤの構造を再構築する処理と
    であるプログラム
JP2020507792A 2018-03-23 2019-03-18 アプリケーション実行装置、アプリケーション実行方法、およびプログラム Active JP6958726B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018055456 2018-03-23
JP2018055456 2018-03-23
PCT/JP2019/011197 WO2019181860A1 (ja) 2018-03-23 2019-03-18 アプリケーション実行装置、アプリケーション実行方法、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019181860A1 JPWO2019181860A1 (ja) 2021-02-04
JP6958726B2 true JP6958726B2 (ja) 2021-11-02

Family

ID=67987242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020507792A Active JP6958726B2 (ja) 2018-03-23 2019-03-18 アプリケーション実行装置、アプリケーション実行方法、およびプログラム

Country Status (3)

Country Link
US (1) US11226808B2 (ja)
JP (1) JP6958726B2 (ja)
WO (1) WO2019181860A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669334B2 (en) * 2019-11-08 2023-06-06 Google Llc Just-in-time containers
WO2021172429A1 (ja) * 2020-02-28 2021-09-02 日本電気株式会社 検証制御装置、システム及び方法並びに非一時的なコンピュータ可読媒体
CN111596932B (zh) 2020-06-22 2021-03-02 腾讯科技(深圳)有限公司 一种镜像文件生成方法、装置和计算机可读存储介质
JPWO2023112230A1 (ja) * 2021-12-15 2023-06-22

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355248B1 (en) * 2015-01-26 2016-05-31 Red Hat, Inc. Container and image scanning for a platform-as-a-service system
US20160350081A1 (en) * 2015-05-27 2016-12-01 Runnable Inc. Automatic container definition
JP6749094B2 (ja) 2015-12-18 2020-09-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 コンテナ収容装置、コンテナ作成方法、及びプログラム
US10430378B1 (en) * 2016-09-19 2019-10-01 Tintri By Ddn, Inc. Fast container distribution with storage acceleration
US10503712B2 (en) * 2016-09-30 2019-12-10 International Business Machines Corporation Container repository optimization
US10528366B2 (en) * 2017-06-05 2020-01-07 International Business Machines Corporation Facilitating multi-inheritance within a single inheritance container-based environment
US10838702B2 (en) * 2018-11-09 2020-11-17 International Business Machines Corporation Analyzing and optimizing container images in cloud computing

Also Published As

Publication number Publication date
WO2019181860A1 (ja) 2019-09-26
US11226808B2 (en) 2022-01-18
US20210049001A1 (en) 2021-02-18
JPWO2019181860A1 (ja) 2021-02-04

Similar Documents

Publication Publication Date Title
JP6958726B2 (ja) アプリケーション実行装置、アプリケーション実行方法、およびプログラム
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US10725769B2 (en) Automated deployment and servicing of distributed applications
JP6790835B2 (ja) ネットワーク機能仮想化管理およびオーケストレーション方法と装置とプログラム
JP6819296B2 (ja) 仮想化管理・オーケストレーション装置、仮想化管理・オーケストレーション方法、および、プログラム
US20190026085A1 (en) Intelligent cloud engineering platform
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US8850423B2 (en) Assisting server migration
US20140372533A1 (en) Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
US11086662B2 (en) Method and system of migrating applications to a cloud-computing environment
US20140181817A1 (en) Methods and apparatus to manage execution of virtual machine workflows
US20090077090A1 (en) Method and apparatus for specifying an order for changing an operational state of software application components
US20120151198A1 (en) System and Method for Instantiation of Distributed Applications from Disk Snapshots
US11588698B2 (en) Pod migration across nodes of a cluster
US20120222004A1 (en) Publishing and updating of multidimensional models using orchestration tools for software offerings
Leite et al. Automating resource selection and configuration in inter-clouds through a software product line method
JPWO2017017937A1 (ja) 配備装置、配備方法、及び、記録媒体
JP2011034137A (ja) 分散処理装置及び分散処理方法
Prassanna et al. A review of existing cloud automation tools
CN112256287A (zh) 一种应用部署方法及装置
JP6922670B2 (ja) リソース決定装置、リソース決定方法およびリソース決定処理プログラム
CN114064054A (zh) 一种微服务发布方法、装置、设备及存储介质
KR20230067257A (ko) Ai 모델 서빙 시스템 및 방법
Fortuna et al. On-premise artificial intelligence as a service for small and medium size setups
US12079610B2 (en) Dynamic software provisioning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210920

R150 Certificate of patent or registration of utility model

Ref document number: 6958726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150