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

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

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

特開2023-146495制御プログラム、制御方法、および情報処理装置
<>
  • 特開-制御プログラム、制御方法、および情報処理装置 図1
  • 特開-制御プログラム、制御方法、および情報処理装置 図2
  • 特開-制御プログラム、制御方法、および情報処理装置 図3
  • 特開-制御プログラム、制御方法、および情報処理装置 図4
  • 特開-制御プログラム、制御方法、および情報処理装置 図5
  • 特開-制御プログラム、制御方法、および情報処理装置 図6
  • 特開-制御プログラム、制御方法、および情報処理装置 図7
  • 特開-制御プログラム、制御方法、および情報処理装置 図8
  • 特開-制御プログラム、制御方法、および情報処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023146495
(43)【公開日】2023-10-12
(54)【発明の名称】制御プログラム、制御方法、および情報処理装置
(51)【国際特許分類】
   G06F 8/60 20180101AFI20231004BHJP
   G06F 21/55 20130101ALI20231004BHJP
【FI】
G06F8/60
G06F21/55
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022053699
(22)【出願日】2022-03-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】馬 斯嘯
(72)【発明者】
【氏名】森島 沙央梨
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AB25
5B376AB47
(57)【要約】
【課題】破損または改ざんされたイメージデータが本番環境に配備されるのを防ぐこと。
【解決手段】同期制御装置201は、オブジェクトストレージ230に格納されたコンテナイメージを、開発環境E1におけるアプリケーションの改変に応じて更新されるコンテナイメージと同期させる。開発環境E1と本番環境E2との間の通信は、実行できないように設定される。例えば、同期制御装置201は、第1の時間間隔ごとに、コンテナレジストリ220からコンテナイメージを取得する。同期制御装置201は、取得したコンテナイメージと、オブジェクトストレージ230に前回格納されたコンテナイメージとの一致判定を行う。同期制御装置201は、前回格納されたコンテナイメージと一致しない場合、取得したコンテナイメージをオブジェクトストレージ230に格納する。
【選択図】図6
【特許請求の範囲】
【請求項1】
ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
処理をコンピュータに実行させ、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする制御プログラム。
【請求項2】
前記同期させる処理は、
第1の時間間隔ごとに、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータが格納されるレジストリから前記イメージデータを取得し、
取得した前記イメージデータと前記ストレージに前回格納したイメージデータとの一致判定を行い、
前記前回格納したイメージデータと一致しない場合、取得した前記イメージデータを前記ストレージに格納する、
処理を含むことを特徴とする請求項1に記載の制御プログラム。
【請求項3】
前記同期させる処理は、
第2の時間間隔ごとに、前記ストレージに格納されているイメージデータと、前記ストレージに前回格納したイメージデータとの一致判定を行い、
前記前回格納したイメージデータと一致しない場合、前記前回格納したイメージデータを前記ストレージに格納する、
処理を含むことを特徴とする請求項1または2に記載の制御プログラム。
【請求項4】
前記前回格納したイメージデータと一致しない場合、前記ストレージの管理者宛にアラート情報を出力する、処理を前記コンピュータに実行させ、
前記同期させる処理は、
前記アラート情報を出力した結果、前記ストレージへのイメージデータのアップロード要求を受け付けた場合、前記前回格納したイメージデータを前記ストレージに格納する、
処理を含むことを特徴とする請求項3に記載の制御プログラム。
【請求項5】
前記実行環境は、前記ソフトウェアを実行するためのコンテナまたは仮想マシンである、ことを特徴とする請求項1または2に記載の制御プログラム。
【請求項6】
ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
処理をコンピュータが実行し、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする制御方法。
【請求項7】
ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
制御部を有し、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、制御方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、アプリケーションの開発・実行基盤では、顧客のセキュリティ要件を満たすために、開発環境と本番環境との間の通信が禁じられる場合がある。この場合、開発環境の生産物を本番環境に配備する際に、開発環境と本番環境との間で直接の受渡しができない。このため、インターネット上に中間メディアとしてオブジェクトストレージを設置し、それを経由して生産物の受渡しを実施する場合がある。
【0003】
先行技術としては、本番環境におけるモジュールの所在情報と検証環境におけるモジュールの所在情報との対応関係を示す情報を参照して、本番環境に配備されたモジュールと検証環境に配備されたモジュールとの差分を抽出し、差分情報を出力するものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013-206114号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、破損または改ざんされたコンテナイメージがオブジェクトストレージに格納されて、破損または改ざんされたコンテナイメージが本番環境に配備されるリスクがある。
【0006】
一つの側面では、本発明は、破損または改ざんされたイメージデータが本番環境に配備されるのを防ぐことを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させ、前記開発環境と前記本番環境との間の通信は実行できないように設定される、制御プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、破損または改ざんされたイメージデータが本番環境に配備されるのを防ぐことができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。
図2図2は、情報処理システム200のシステム構成例を示す説明図である。
図3図3は、同期制御装置201のハードウェア構成例を示すブロック図である。
図4図4は、管理テーブル240の記憶内容の一例を示す説明図である。
図5図5は、同期制御装置201の機能的構成例を示すブロック図である。
図6図6は、情報処理システム200の動作例を示す説明図(その1)である。
図7図7は、情報処理システム200の動作例を示す説明図(その2)である。
図8図8は、同期制御装置201の同期制御処理手順の一例を示すフローチャート(その1)である。
図9図9は、同期制御装置201の同期制御処理手順の一例を示すフローチャート(その2)である。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる制御プログラム、制御方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。図1において、情報処理装置101は、ソフトウェアSWを実行するための実行環境のイメージデータIdを、ソフトウェアSWの開発環境110とソフトウェアSWの本番環境120とからアクセス可能なストレージSTに格納するコンピュータである。
【0012】
ソフトウェアSWは、開発対象のソフトウェアであり、例えば、アプリケーション、ミドルウェア、OS(Operating System)などである。ソフトウェアSWを実行するための実行環境は、例えば、ソフトウェアSWを実行するためのコンテナまたは仮想マシンである。
【0013】
コンテナは、OSのカーネルを内部で分割して作成される、他と隔離されたユーザ空間に相当し、OSのプロセスのひとつとして動作する。仮想マシンは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。
【0014】
イメージデータIdは、開発環境110の生産物であり、例えば、開発されたソフトウェア(例えば、ソフトウェアSW)、ソフトウェアの実行に用いられる変数、コマンド、メタデータなどを含む。開発環境110は、ソフトウェアを開発するための作業環境であり、ソフトウェアを開発するためのデバイスやソフトウェアを含む。
【0015】
情報処理装置101は、例えば、開発環境110に含まれる。本番環境120は、開発されたソフトウェアSWを実際に稼働させるための運用環境であり、ソフトウェアSWを稼働させるためのデバイスやソフトウェアを含む。開発環境110と本番環境120との間の通信は、実行できないように設定される。
【0016】
例えば、開発環境110と本番環境120との間の通信は、顧客のセキュリティ要件を満たすために禁じられる。具体的には、例えば、開発環境110内のデバイスと本番環境120内のデバイスとの間は、直接通信できないように設定される。例えば、開発環境110内のデバイスから本番環境120内のデバイスへのアクセスは禁止される。また、本番環境120内のデバイスから開発環境110内のデバイスへのアクセスは禁止される。このため、開発環境110と本番環境120との間で、直接情報の受け渡しをすることができない。ストレージSTは、例えば、インターネットなどのネットワークを介してアクセス可能なオブジェクトストレージである。
【0017】
従来、開発環境(例えば、開発環境110)の生産物を本番環境(例えば、本番環境120)に配備する際に、開発環境と実行環境との間で直接の受け渡しができないために、オブジェクトストレージを経由して生産物の受渡しを実施する場合がある。ここでは、開発環境の生産物として、アプリケーションのコンテナイメージを例に挙げて説明する。
【0018】
異なる環境間でコンテナイメージの受け渡しを行う場合、開発者に必要以上の権限が付与されることがある。例えば、開発者には、開発環境のコンテナレジストリへの読み取り、オブジェクトストレージへの読み取り/書き込みの権限が付与される。運用者には、オブジェクトストレージへの読み取り、本願環境のコンテナレジストリへの書き込みの権限が付与される。
【0019】
例えば、開発者は、開発環境のコンテナレジストリからコンテナイメージを取得してオブジェクトストレージにアップロードする。また、運用者は、オブジェクトストレージからダウンロードしたコンテナイメージを開発環境のコンテナレジストリに登録して、本番環境にコンテナイメージを配備する。
【0020】
しかし、この場合、オブジェクトストレージに意図しないコンテナイメージが格納されるおそれがある。例えば、オブジェクトストレージへのアップロードの操作でファイルが破損すると、破損したコンテナイメージがオブジェクトストレージに格納される。また、コンテナイメージは、例えば、オブジェクトストレージにファイル形式で格納される。コンテナイメージからのファイル作成時にファイルが破損すると、破損したコンテナイメージがオブジェクトストレージに格納される。
【0021】
また、開発者がオブジェクトストレージへの読み書き権限を持つことで、オブジェクトストレージを直接操作する者が増え、誤操作によるコンテナイメージファイルの破損のリスクが高まる。さらに、オブジェクトストレージを直接操作する者が増えると、コンテナイメージファイルの故意の改ざんのリスクが高まる。
【0022】
ここで、オブジェクトストレージへのアップロードの操作でのファイルの破損については、例えば、既存のチェックサムの技術を利用して検知することが考えられる。例えば、開発者が、オブジェクトストレージからチェックサムを取得し、アップロードしたファイルのチェックサムと比較することで、ファイルの破損を検知することができる。
【0023】
また、オブジェクトストレージへの開発者の誤操作によるファイルの破損についても、チェックサムを利用して検知することが考えられる。例えば、運用者が、オブジェクトストレージからダウンロードしたファイルのチェックサムを、電子メールなどで開発者から通知されるチェックサムと比較することで、ファイルの破損を検知することができる。
【0024】
しかし、上述した手法では、コンテナイメージからのファイル作成時にファイルが破損すると、開発者が保持するチェックサム自体が破損したファイルのチェックサムとなり、ファイルの破損を検知することができない。また、悪意のある開発者によりファイルが改ざんされた場合は、チェックサムを用いた開発者による改ざん検知が故意に省略される可能性が高い。
【0025】
オブジェクトストレージに格納されたコンテナイメージ(イメージファイル)の破損や改ざんを検知できなければ、破損または改ざんされたコンテナイメージが本番環境に配備されてしまう。破損または改ざんされたコンテナイメージが本番環境に配備されると、運用時に重大な問題を引き起こすおそれがある。
【0026】
そこで、本実施の形態では、破損または改ざんされたイメージデータが本番環境(例えば、本番環境120)に配備されることを防ぐ制御方法について説明する。ここで、情報処理装置101の処理例(下記(1)および(2)に相当)について説明する。
【0027】
(1)情報処理装置101は、ソフトウェアSWを実行するための実行環境のイメージデータIdを、ソフトウェアSWの開発環境110とソフトウェアSWの本番環境120とからアクセス可能なストレージSTに格納する。ストレージSTは、例えば、インターネット環境130に設置される。
【0028】
具体的には、例えば、情報処理装置101は、開発環境110のレジストリ111からイメージデータIdを取得する。ここで、レジストリ111は、開発環境110におけるソフトウェアSWの改変に応じて更新されるイメージデータIdが格納されるデータベースである。
【0029】
そして、情報処理装置101は、取得したイメージデータIdを、インターネット環境130のストレージSTに格納する。なお、詳細は後述するが、イメージデータIdをストレージSTに格納するにあたり、イメージデータIdは、ファイル形式のデータ(例えば、コンテナイメージファイル)に変換される。
【0030】
(2)情報処理装置101は、ストレージSTに格納されたイメージデータIdを、開発環境110におけるソフトウェアSWの改変に応じて更新されるイメージデータIdと同期させる。ここで、ソフトウェアSWの改変は、ソフトウェアSWの内容を変更することであり、例えば、システムの障害対応や機能強化のために行われる。
【0031】
具体的には、例えば、情報処理装置101は、第1の時間間隔ごとに、開発環境110のレジストリ111からイメージデータIdを取得する。第1の時間間隔は、任意に設定可能であり、例えば、1週間程度に設定される。つぎに、情報処理装置101は、取得したイメージデータIdとストレージSTに前回格納したイメージデータIdとの一致判定を行う。そして、情報処理装置101は、前回格納したイメージデータIdと一致しない場合、取得したイメージデータIdをストレージSTに格納することにしてもよい。
【0032】
また、情報処理装置101は、第2の時間間隔ごとに、ストレージSTに格納されているイメージデータIdと、ストレージSTに前回格納したイメージデータIdとの一致判定を行う。第2の時間間隔は、任意に設定可能であり、例えば、1日程度に設定される。そして、情報処理装置101は、前回格納したイメージデータIdと一致しない場合に、前回格納したイメージデータIdをストレージSTに格納することにしてもよい。
【0033】
運用者140は、例えば、ソフトウェアSWのリリースのタイミングで、ストレージSTからイメージデータId(例えば、コンテナイメージファイル)をダウンロードする。そして、運用者140は、本番環境120のレジストリ121にイメージデータIdを登録する。レジストリ121は、本番環境120に配備されるイメージデータIdが格納されるデータベースである。これにより、本番環境120にイメージデータIdが配備される。
【0034】
このように、情報処理装置101によれば、ストレージSTに格納されるイメージデータIdを、開発環境110のレジストリ111に格納されているイメージデータIdと同期させることができる。これにより、情報処理装置101は、開発環境110におけるイメージデータIdの更新に合わせて、ストレージSTに格納されるイメージデータIdを自動更新することができる。この結果、情報処理装置101は、破損または改ざんされたイメージデータIdが本番環境120に配備されるのを防ぐことができる。
【0035】
(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。ここでは、図1に示した情報処理装置101を、情報処理システム200内の同期制御装置201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、開発環境と本番環境との間でコンテナイメージを自動同期させるサービスに適用される。
【0036】
以下の説明では、開発対象のソフトウェアSWとして、「アプリケーションAp」を例に挙げて説明する。また、アプリケーションApの開発環境を「開発環境E1」と表記し、アプリケーションApの本番環境を「本番環境E2」と表記する場合がある。開発環境E1と本番環境E2との間の通信は、実行できないように設定される。
【0037】
また、開発環境E1の生産物として「アプリケーションApのコンテナイメージC」を例に挙げて説明する。コンテナイメージCは、アプリケーションApをコンテナで実行するためのイメージデータである。コンテナイメージCは、例えば、アプリケーションAp、アプリケーションApの実行に用いられる変数、コマンド、メタデータなどを含む。コンテナイメージCは、例えば、アプリケーションApをビルドすることにより作成される。図1に示したイメージデータIdは、例えば、コンテナイメージCに対応する。
【0038】
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、同期制御装置201と、データベースサーバ202と、ストレージサーバ203と、複数のユーザ端末204と、を含む。情報処理システム200において、同期制御装置201、データベースサーバ202、ストレージサーバ203およびユーザ端末204は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0039】
ここで、同期制御装置201は、管理テーブル240を有し、自動同期サービスを提供するコンピュータである。自動同期サービスとは、オブジェクトストレージ230に格納されたコンテナイメージCを、開発環境E1におけるアプリケーションApの改変に応じて更新されるコンテナイメージCと同期させるサービスである。同期制御装置201は、例えば、開発環境E1(後述の図6参照)に設置されるサーバである。なお、管理テーブル240の記憶内容については、図4を用いて後述する。
【0040】
データベースサーバ202は、開発環境E1に設置されるコンピュータである。データベースサーバ202は、コンテナレジストリ220を有し、アプリケーションApのコンテナイメージCを格納する。コンテナレジストリ220は、アプリケーションApのコンテナイメージCが格納されるデータベースである。コンテナレジストリ220には、開発環境E1におけるアプリケーションApの改変に応じて更新されるコンテナイメージCが格納される。図1に示したレジストリ111は、例えば、コンテナレジストリ220に対応する。
【0041】
ストレージサーバ203は、インターネット環境E3(後述の図6参照)に設置されるコンピュータである。ストレージサーバ203は、オブジェクトストレージ230を有する。オブジェクトストレージ230は、アプリケーションApの開発環境E1と本番環境E2(後述の図6参照)とからネットワーク210を介してアクセス可能なストレージの一例である。図1に示したストレージSTは、例えば、オブジェクトストレージ230に対応する。ストレージサーバ203は、例えば、クラウドコンピューティングにより実現される。
【0042】
ユーザ端末204は、情報処理システム200のユーザが使用するコンピュータである。ユーザは、例えば、アプリケーションApの開発者、運用者などである。また、ユーザは、例えば、クラウド管理者である。クラウド管理者は、同期制御装置201やオブジェクトストレージ230の管理者である。ユーザ端末204は、例えば、PC(Personal Computer)、タブレットPCなどである。
【0043】
なお、ここでは同期制御装置201とデータベースサーバ202とを別体に設けることにしたが、これに限らない。例えば、同期制御装置201は、データベースサーバ202により実現されることにしてもよい。また、同期制御装置201は、例えば、クラウド管理者のユーザ端末204により実現されることにしてもよい。
【0044】
(同期制御装置201のハードウェア構成例)
つぎに、同期制御装置201のハードウェア構成例について説明する。
【0045】
図3は、同期制御装置201のハードウェア構成例を示すブロック図である。図3において、同期制御装置201は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0046】
ここで、CPU301は、同期制御装置201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0047】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0048】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータに接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0049】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0050】
なお、同期制御装置201は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、同期制御装置201は、上述した構成部のうち、例えば、可搬型記録媒体I/F306、可搬型記録媒体307を有さないことにしてもよい。また、図2に示したデータベースサーバ202、ストレージサーバ203、ユーザ端末204についても、同期制御装置201と同様のハードウェア構成により実現することができる。ただし、ユーザ端末204は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0051】
(管理テーブル240の記憶内容)
つぎに、同期制御装置201が有する管理テーブル240の記憶内容について説明する。管理テーブル240は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
【0052】
図4は、管理テーブル240の記憶内容の一例を示す説明図である。図4において、管理テーブル240は、URL、コンテナイメージ、イメージファイルおよびチェックサムのフィールドを有し、各フィールドに情報を設定することで、イメージ管理情報(例えば、イメージ管理情報400-1)をレコードとして記憶する。
【0053】
ここで、URL(Uniform Resource Locator)は、コンテナイメージCを一意に識別する識別子である。URLは、例えば、オブジェクトストレージ230内のコンテナイメージCの格納場所を示す。コンテナイメージは、アプリケーションApをコンテナで実行するためのイメージデータ(コンテナイメージC)である。イメージファイルは、コンテナイメージCから作成されるファイル(コンテナイメージファイルF)である。
【0054】
チェックサムは、コンテナイメージCの一致判定を行うための情報(誤り検出符号)である。例えば、イメージ管理情報400-1は、URL「xxx.yyy.zzz」に対応するコンテナイメージC1、コンテナイメージファイルF1およびチェックサムS1を示す。なお、コンテナイメージCは、管理テーブル240に含まれないことにしてもよい。
【0055】
(同期制御装置201の機能的構成例)
つぎに、同期制御装置201の機能的構成例について説明する。
【0056】
図5は、同期制御装置201の機能的構成例を示すブロック図である。図5において、同期制御装置201は、格納部501と、同期部502と、取得部503と、通知部504と、を含む。格納部501~通知部504は制御部500となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0057】
格納部501は、アプリケーションApのコンテナイメージCをオブジェクトストレージ230(図2参照)に格納する。具体的には、例えば、格納部501は、自動同期サービスを開始するにあたり、取得部503により、コンテナレジストリ220(図2参照)からコンテナイメージCを取得する。コンテナレジストリ220は、図2に示したデータベースサーバ202にアクセスすることにより参照することができる。コンテナレジストリ220には、開発環境E1におけるアプリケーションApの改変に応じて更新されるコンテナイメージCが格納される。
【0058】
つぎに、格納部501は、取得したコンテナイメージCからコンテナイメージファイルFを作成する。コンテナイメージファイルFは、コンテナイメージCをオブジェクトストレージ230に格納するためにファイル形式のデータに変換したものである。
【0059】
また、格納部501は、作成したコンテナイメージファイルFのチェックサムSを算出する。チェックサムSは、誤り検出符号の一例である。誤り検出符号として、チェックサム以外の情報を用いることにしてもよい。コンテナイメージファイルFのチェックサムSは、コンテナイメージCのチェックサムSに相当する。
【0060】
そして、格納部501は、作成したコンテナイメージファイルFをストレージサーバ203に送信することにより、オブジェクトストレージ230にコンテナイメージファイルFを格納する。これにより、格納部501は、自動同期サービスを開始する際に、アプリケーションApのコンテナイメージC(コンテナイメージファイルF)をオブジェクトストレージ230にアップロードすることができる(初回登録)。
【0061】
なお、コンテナイメージC、コンテナイメージファイルF、および、チェックサムSは、例えば、コンテナイメージCのURLと対応付けて、図4に示した管理テーブル240に記憶される。
【0062】
同期部502は、オブジェクトストレージ230に格納されたコンテナイメージCを、開発環境E1におけるアプリケーションApの改変に応じて更新されるコンテナイメージCと同期させる。具体的には、例えば、同期部502は、第1の時間間隔T1ごとに、取得部503により、コンテナレジストリ220からコンテナイメージCを取得する。第1の時間間隔T1は、任意に設定可能であり、例えば、アプリケーションApのリリース間隔よりも短い時間間隔に設定される。例えば、アプリケーションApのリリース間隔が1ヶ月の場合、第1の時間間隔T1は、1週間程度に設定される。
【0063】
つぎに、同期部502は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとの一致判定を行う。より詳細に説明すると、例えば、同期部502は、取得したコンテナイメージCからコンテナイメージファイルFを作成する。つぎに、同期部502は、作成したコンテナイメージファイルFのチェックサムSを算出する。
【0064】
そして、同期部502は、算出したチェックサムSと、管理テーブル240内のチェックサムSとを比較する。管理テーブル240内のチェックサムSは、オブジェクトストレージ230に前回格納されたコンテナイメージCのチェックサムSに相当する。
【0065】
ここで、チェックサムSが一致する場合、同期部502は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致すると判定する。一方、チェックサムSが一致しない場合、同期部502は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致しないと判定する。
【0066】
そして、同期部502は、前回格納されたコンテナイメージCと一致しない場合、取得したコンテナイメージCをオブジェクトストレージ230に格納する。より詳細に説明すると、例えば、同期部502は、取得したコンテナイメージCから作成したコンテナイメージファイルFをストレージサーバ203に送信することにより、オブジェクトストレージ230にコンテナイメージファイルFを格納する。
【0067】
これにより、同期部502は、開発環境E1におけるアプリケーションApの改変に応じてコンテナイメージCが更新された場合に、更新されたコンテナイメージC(コンテナイメージファイルF)をオブジェクトストレージ230にアップロードすることができる。
【0068】
この場合、同期部502は、例えば、最新のコンテナイメージC、コンテナイメージファイルF、および、チェックサムSを、コンテナイメージCのURLと対応付けて、管理テーブル240に上書き保存する。これにより、同期部502は、管理テーブル240の内容を、オブジェクトストレージ230に今回格納したコンテナイメージCの内容に書き換えることができる。
【0069】
また、同期部502は、前回格納されたコンテナイメージCと一致する場合には、オブジェクトストレージ230に格納されるコンテナイメージCの更新は行わない。例えば、前回からコンテナイメージCが更新されていない場合には、オブジェクトストレージ230へのコンテナイメージCのアップロードは行われない。
【0070】
また、同期部502は、第2の時間間隔T2ごとに、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとの一致判定を行う。第2の時間間隔T2は、任意に設定可能であり、例えば、第1の時間間隔T1よりも短い時間間隔(1日など)に設定される。ただし、第2の時間間隔T2は、第1の時間間隔T1と同じ時間間隔に設定されてもよい。
【0071】
そして、同期部502は、前回格納されたコンテナイメージCと一致しない場合、前回格納されたコンテナイメージCをオブジェクトストレージ230に格納する。具体的には、例えば、同期部502は、オブジェクトストレージ230に格納されているコンテナイメージCのチェックサムSを取得する。
【0072】
より詳細に説明すると、例えば、同期部502は、ストレージサーバ203にチェックサムSの取得要求を送信する。ストレージサーバ203は、チェックサムSの取得要求を受信すると、オブジェクトストレージ230に格納されているコンテナイメージファイルFのチェックサムSを取得する。そして、ストレージサーバ203は、取得したチェックサムSを同期制御装置201に送信する。同期部502は、ストレージサーバ203からチェックサムSを受信すると、受信したチェックサムSと、管理テーブル240内のチェックサムSとを比較する。
【0073】
ここで、チェックサムSが一致する場合、同期部502は、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致すると判定する。一方、チェックサムSが一致しない場合、同期部502は、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致しないと判定する。
【0074】
そして、同期部502は、前回格納されたイメージデータと一致しない場合、管理テーブル240内のコンテナイメージファイルFをストレージサーバ203に送信することにより、オブジェクトストレージ230にコンテナイメージファイルFを格納する。これにより、同期部502は、何らかの手段によりオブジェクトストレージ230に格納されたコンテナイメージファイルFが改ざんされた場合であっても、改ざんを検知して、自動復旧することができる。また、同期部502は、ストレージサーバ203におけるファイル作成時にファイルが破損した場合であっても、破損を検知して、自動復旧することができる。
【0075】
また、同期部502は、前回格納されたイメージデータと一致する場合には、オブジェクトストレージ230に格納されるコンテナイメージCの更新は行わない。例えば、オブジェクトストレージ230に格納されたコンテナイメージファイルFが破損または改ざんされていない場合には、オブジェクトストレージ230へのコンテナイメージCのアップロードは行われない。
【0076】
また、同期部502は、前回格納されたコンテナイメージCと一致しない場合、クラウド管理者の承諾を得た上で、オブジェクトストレージ230に格納されるコンテナイメージCの更新を行うことにしてもよい。具体的には、例えば、前回格納されたコンテナイメージCと一致しない場合、同期部502は、通知部504により、オブジェクトストレージ230の管理者宛にアラート情報を出力することにしてもよい。
【0077】
アラート情報は、オブジェクトストレージ230に格納されたコンテナイメージファイルFが破損または改ざんされていることを警告するための通知である。アラート情報には、例えば、コンテナイメージCのURLが含まれる。これにより、クラウド管理者は、URLに対応するコンテナイメージCについて、破損または改ざんされていることを把握することができる。
【0078】
そして、同期部502は、アラート情報を出力した結果、オブジェクトストレージ230へのコンテナイメージCのアップロード要求を受け付けた場合、前回格納されたコンテナイメージCをオブジェクトストレージ230に格納する。アップロード要求は、例えば、クラウド管理者のユーザ端末204(図2参照)から送信される。
【0079】
一方、同期部502は、アラート情報を出力した結果、オブジェクトストレージ230へのコンテナイメージCのアップロードを行わない旨の指示を受け付けた場合、オブジェクトストレージ230に格納されるコンテナイメージCの更新は行わない。
【0080】
(情報処理システム200の動作例)
つぎに、図6および図7を用いて、情報処理システム200の動作例について説明する。情報処理システム200は、同期制御装置201による自動同期サービスを利用して、オブジェクトストレージ230にあるコンテナイメージファイルFの破損や改ざんを検知したり、復旧をしたりする。
【0081】
図6および図7は、情報処理システム200の動作例を示す説明図である。図6において、同期制御装置201は、オブジェクトストレージ230に同期対象ファイルがない場合、コンテナレジストリ220からコンテナイメージCを取得する。つぎに、同期制御装置201は、取得したコンテナイメージCからコンテナイメージファイルFを作成する。
【0082】
また、同期制御装置201は、作成したコンテナイメージファイルFのチェックサムSを算出する。そして、同期制御装置201は、作成したコンテナイメージファイルFをストレージサーバ203に送信する(アップロード)。同期制御装置201は、コンテナイメージファイルFをアップロードしたら、コンテナイメージCのURLと対応付けて、コンテナイメージC、コンテナイメージファイルF、および、チェックサムSを管理テーブル240に記録する。
【0083】
ストレージサーバ203は、コンテナイメージファイルFを受信すると、受信したコンテナイメージファイルFをオブジェクトストレージ230に格納する。また、ストレージサーバ203は、オブジェクトストレージ230に格納されたコンテナイメージファイルFのチェックサムSを算出する。そして、ストレージサーバ203は、算出したチェックサムSをコンテナイメージファイルFと対応付けてオブジェクトストレージ230に記録する。
【0084】
これにより、同期制御装置201は、自動同期サービスの開始時に、オブジェクトストレージ230にコンテナイメージファイルFを格納することができる。
【0085】
運用者601は、ユーザ端末204を用いて、アプリケーションApのリリースのタイミングで、オブジェクトストレージ230からコンテナイメージファイルFをダウンロードする。そして、運用者601は、ユーザ端末204を用いて、ダウンロードしたコンテナイメージファイルFをもとに、本番環境E2のコンテナレジストリ602にコンテナイメージCを登録する。これにより、本番環境E2にコンテナイメージCが配備される。
【0086】
以降、同期制御装置201は、設定された時間間隔で、以下のような処理を行う。
【0087】
図6において、同期制御装置201は、第1の時間間隔T1ごとに、コンテナレジストリ220からコンテナイメージCを取得する。つぎに、同期制御装置201は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとの一致判定を行う。
【0088】
具体的には、例えば、同期制御装置201は、取得したコンテナイメージCからコンテナイメージファイルFを作成する。つぎに、同期制御装置201は、作成したコンテナイメージファイルFのチェックサムSを算出する。そして、同期制御装置201は、算出したチェックサムSと、管理テーブル240内のチェックサムSとを比較する。
【0089】
ここで、チェックサムSが一致する場合、同期制御装置201は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致すると判定する。一方、チェックサムSが一致しない場合、同期制御装置201は、取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致しないと判定する。
【0090】
図7において、同期制御装置201は、前回格納されたコンテナイメージCと一致しない場合、取得したコンテナイメージCをオブジェクトストレージ230に格納する。具体的には、例えば、同期制御装置201は、取得したコンテナイメージCから作成したコンテナイメージファイルFをストレージサーバ203に送信する(アップロード)。
【0091】
同期制御装置201は、コンテナイメージファイルFをアップロードしたら、コンテナイメージCのURLと対応付けて、コンテナイメージC、コンテナイメージファイルF、および、チェックサムSを管理テーブル240に上書き保存する。
【0092】
ストレージサーバ203は、コンテナイメージファイルFを受信すると、受信したコンテナイメージファイルFをオブジェクトストレージ230に格納する。また、ストレージサーバ203は、オブジェクトストレージ230に格納されたコンテナイメージファイルFのチェックサムSを算出する。そして、ストレージサーバ203は、算出したチェックサムSをコンテナイメージファイルFと対応付けてオブジェクトストレージ230に記録する。
【0093】
なお、同期制御装置201は、コンテナレジストリ220から取得したコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致する場合、オブジェクトストレージ230に格納されるコンテナイメージCの更新は行わない。
【0094】
これにより、同期制御装置201は、第1の時間間隔T1ごとに、開発環境E1におけるアプリケーションApの改変に応じたコンテナイメージCの更新の有無をチェックして、オブジェクトストレージ230に最新状態のコンテナイメージファイルFを格納することができる。また、同期制御装置201は、自装置におけるファイル作成時に破損したコンテナイメージファイルFが、オブジェクトストレージ230に格納され続けることを防ぐことができる。
【0095】
図6において、同期制御装置201は、第2の時間間隔T2ごとに、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとの一致判定を行う。
【0096】
同期制御装置201は、ストレージサーバ203から、オブジェクトストレージ230に格納されているコンテナイメージCのチェックサムSを取得する。同期制御装置201は、ストレージサーバ203からチェックサムSを取得すると、取得したチェックサムSと、管理テーブル240内のチェックサムSとを比較する。
【0097】
ここで、チェックサムSが一致する場合、同期制御装置201は、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致すると判定する。一方、チェックサムSが一致しない場合、同期制御装置201は、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致しないと判定する。
【0098】
図7において、同期制御装置201は、前回格納されたコンテナイメージCと一致しない場合、クラウド管理者701宛にアラート情報710を出力する。アラート情報710は、オブジェクトストレージ230に格納されたコンテナイメージファイルFが破損または改ざんされていることを警告するための通知である。クラウド管理者701は、オブジェクトストレージ230の管理者である。
【0099】
クラウド管理者701は、アラート情報710を参照することで、オブジェクトストレージ230に格納されたコンテナイメージファイルFが破損または改ざんされていることを把握することができる。そして、クラウド管理者701は、オブジェクトストレージ230に格納されるコンテナイメージCの自動更新を行うか否かを判断することができる。
【0100】
同期制御装置201は、クラウド管理者701のユーザ端末204から、オブジェクトストレージ230へのコンテナイメージCのアップロード要求を受け付けた場合、前回格納されたコンテナイメージCをオブジェクトストレージ230に格納する。具体的には、例えば、同期制御装置201は、管理テーブル240内のコンテナイメージファイルFをストレージサーバ203に送信する(アップロード)。
【0101】
ストレージサーバ203は、コンテナイメージファイルFを受信すると、受信したコンテナイメージファイルFをオブジェクトストレージ230に格納する。また、ストレージサーバ203は、オブジェクトストレージ230に格納されたコンテナイメージファイルFのチェックサムSを算出する。そして、ストレージサーバ203は、算出したチェックサムSをコンテナイメージファイルFと対応付けてオブジェクトストレージ230に記録する。
【0102】
なお、同期制御装置201は、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納されたコンテナイメージCとが一致する場合、オブジェクトストレージ230に格納されるコンテナイメージCの更新は行わない。
【0103】
これにより、同期制御装置201は、第2の時間間隔T2ごとに、オブジェクトストレージ230に格納されているコンテナイメージCが破損または改ざんされていないかをチェックすることができる。また、同期制御装置201は、コンテナイメージCが破損または改ざんされている場合には、クラウド管理者701の承諾を得た上で、オブジェクトストレージ230に格納されるコンテナイメージCの更新を行うことができる。
【0104】
(同期制御装置201の同期制御処理手順)
つぎに、図8および図9を用いて、同期制御装置201の同期制御処理手順について説明する。同期制御装置201の同期制御処理は、例えば、同期対象として指定されたURLに対応するコンテナイメージCごとに実行される。ここでは、第1の時間間隔T1および第2の時間間隔T2を同じ設定時間間隔Tとする。設定時間間隔Tは、アプリケーションApのリリース間隔が1ヶ月の場合、1週間程度に設定される。
【0105】
図8および図9は、同期制御装置201の同期制御処理手順の一例を示すフローチャートである。図8のフローチャートにおいて、まず、同期制御装置201は、コンテナレジストリ220からコンテナイメージCを取得する(ステップS801)。つぎに、同期制御装置201は、取得したコンテナイメージCからコンテナイメージファイルFを作成する(ステップS802)。
【0106】
そして、同期制御装置201は、作成したコンテナイメージファイルFのチェックサムSを算出する(ステップS803)。つぎに、同期制御装置201は、オブジェクトストレージ230にコンテナイメージファイルFがあるか否かを判断する(ステップS804)。
【0107】
なお、コンテナイメージファイルFの有無は、同期制御装置201からストレージサーバ203に問い合わせることで判断することにしてもよい。また、コンテナイメージファイルFの有無は、管理テーブル240内にコンテナイメージファイルFがあるか否かによって判断することにしてもよい。
【0108】
ここで、コンテナイメージファイルFがない場合(ステップS804:No)、同期制御装置201は、図9に示すステップS903に移行する。
【0109】
一方、コンテナイメージファイルFがある場合(ステップS804:Yes)、同期制御装置201は、ストレージサーバ203から、オブジェクトストレージ230にあるコンテナイメージファイルFのチェックサムSを取得する(ステップS805)。つぎに、同期制御装置201は、オブジェクトストレージ230からのチェックサムSを管理テーブル240内のチェックサムSと比較する(ステップS806)。
【0110】
そして、同期制御装置201は、チェックサムSが一致するか否かを判断する(ステップS807)。ここで、チェックサムSが一致する場合(ステップS807:Yes)、同期制御装置201は、図9に示すステップS901に移行する。
【0111】
一方、チェックサムSが一致しない場合(ステップS807:No)、同期制御装置201は、クラウド管理者宛にアラート情報を出力する(ステップS808)。そして、同期制御装置201は、クラウド管理者からオブジェクトストレージ230へのコンテナイメージCのアップロード要求を受け付けたか否かを判断する(ステップS809)。
【0112】
ここで、同期制御装置201は、クラウド管理者からアップロード要求を受け付けるのを待つ(ステップS809:No)。そして、同期制御装置201は、クラウド管理者からアップロード要求を受け付けた場合(ステップS809:Yes)、図9に示すステップS904に移行する。
【0113】
なお、ステップS809において、同期制御装置201は、オブジェクトストレージ230へのコンテナイメージCのアップロードを行わない旨の指示を受け付けた場合、本フローチャートによる一連の処理を終了することにしてもよい。
【0114】
図9のフローチャートにおいて、まず、同期制御装置201は、ステップS803において算出した、コンテナレジストリ220からのコンテナイメージファイルFのチェックサムSを管理テーブル240内のチェックサムSと比較する(ステップS901)。
【0115】
そして、同期制御装置201は、チェックサムSが一致するか否かを判断する(ステップS902)。ここで、チェックサムSが一致する場合(ステップS902:Yes)、同期制御装置201は、ステップS905に移行する。
【0116】
一方、チェックサムSが一致しない場合(ステップS902:No)、同期制御装置201は、コンテナイメージCのURLと対応付けて、コンテナレジストリ220からのコンテナイメージファイルFとチェックサムSを管理テーブル240に格納する(ステップS903)。
【0117】
つぎに、同期制御装置201は、管理テーブル240に格納されたコンテナイメージファイルFをオブジェクトストレージ230にアップロードする(ステップS904)。そして、同期制御装置201は、設定時間間隔Tが経過したか否かを判断する(ステップS905)。なお、経過時間は、例えば、ステップS801の処理を実行してからの経過時間である。
【0118】
ここで、設定時間間隔Tが経過した場合(ステップS905:Yes)、同期制御装置201は、図8に示したステップS801に戻る。一方、設定時間間隔Tが経過していない場合(ステップS905:No)、同期制御装置201は、自動同期サービスを終了するか否かを判断する(ステップS906)。自動同期サービスは、例えば、クラウド管理者からの終了指示に応じて終了する。
【0119】
ここで、自動同期サービスを終了しない場合(ステップS906:No)、同期制御装置201は、ステップS905に戻る。一方、自動同期サービスを終了する場合(ステップS906:Yes)、同期制御装置201は、本フローチャートによる一連の処理を終了する。
【0120】
これにより、同期制御装置201は、オブジェクトストレージ230に格納されたコンテナイメージCを、コンテナレジストリ220に格納されているコンテナイメージCと同期させることができる。
【0121】
以上説明したように、実施の形態にかかる同期制御装置201によれば、アプリケーションApを実行するためのコンテナイメージCを、アプリケーションApの開発環境E1と本番環境E2とからアクセス可能なオブジェクトストレージ230に格納することができる。また、同期制御装置201によれば、オブジェクトストレージ230に格納されたコンテナイメージCを、開発環境E1におけるアプリケーションApの改変に応じて更新されるコンテナイメージCと同期させることができる。
【0122】
これにより、同期制御装置201は、オブジェクトストレージ230に格納されたコンテナイメージCを、開発環境E1のコンテナレジストリ220に格納されているコンテナイメージCと同期させて、破損または改ざんされたコンテナイメージCが本番環境E2に配備されるのを防ぐことができる。また、情報処理システム200において、開発環境E1と本番環境E2との間の通信は、実行できないように設定される。このため、情報処理システム200によれば、開発環境E1と本番環境E2との間で直接通信できないようにして、セキュリティを確保することができる。
【0123】
また、同期制御装置201によれば、第1の時間間隔T1ごとに、コンテナレジストリ220からコンテナイメージCを取得し、取得したコンテナイメージCとオブジェクトストレージ230に前回格納したコンテナイメージCとの一致判定を行うことができる。そして、同期制御装置201によれば、前回格納したコンテナイメージCと一致しない場合に、取得したコンテナイメージCをオブジェクトストレージ230に格納することができる。
【0124】
これにより、同期制御装置201は、第1の時間間隔T1ごとに、開発環境E1におけるアプリケーションApの改変に応じたコンテナイメージCの更新の有無をチェックして、オブジェクトストレージ230に最新状態のコンテナイメージファイルFを格納することができる。また、同期制御装置201は、自装置におけるファイル作成時に破損したコンテナイメージファイルFが、オブジェクトストレージ230に格納され続けることを防ぐことができる。
【0125】
また、同期制御装置201によれば、第2の時間間隔T2ごとに、オブジェクトストレージ230に格納されているコンテナイメージCと、オブジェクトストレージ230に前回格納したコンテナイメージCとの一致判定を行い、前回格納したコンテナイメージCと一致しない場合、前回格納したコンテナイメージCをオブジェクトストレージ230に格納することができる。
【0126】
これにより、同期制御装置201は、第2の時間間隔T2ごとに、オブジェクトストレージ230に格納されているコンテナイメージCが破損または改ざんされていないかをチェックすることができる。また、同期制御装置201は、コンテナイメージCが破損または改ざんされている場合、オブジェクトストレージ230に格納されるコンテナイメージCの更新を行うことができる。
【0127】
また、同期制御装置201によれば、前回格納したコンテナイメージCと一致しない場合、クラウド管理者宛にアラート情報を出力することができる。そして、同期制御装置201によれば、アラート情報を出力した結果、オブジェクトストレージ230へのコンテナイメージCのアップロード要求を受け付けた場合、前回格納したコンテナイメージCをオブジェクトストレージ230に格納することができる。
【0128】
これにより、同期制御装置201は、オブジェクトストレージ230に格納されたコンテナイメージCが破損または改ざんされている場合、クラウド管理者701の承諾を得た上で、オブジェクトストレージ230に格納されるコンテナイメージCの更新を行うことができる。
【0129】
これらのことから、実施の形態にかかる情報処理システム200および同期制御装置201によれば、破損または改ざんされたコンテナイメージCが本番環境E2に配備されるのを防いで、運用時における重大な問題の発生を抑えることができる。また、情報処理システム200および同期制御装置201によれば、自動同期サービスの存在により、開発者がコンテナイメージCの受け渡し作業を行わなくてもよくなるため、開発者の作業負荷や作業時間を削減することができる。また、情報処理システム200および同期制御装置201によれば、オブジェクトストレージ230への読み書き権限を開発者に付与しないことで、開発者による改ざんを抑止することができる。
【0130】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【0131】
また、本実施の形態で説明した情報処理装置101(同期制御装置201)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0132】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0133】
(付記1)ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
処理をコンピュータに実行させ、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする制御プログラム。
【0134】
(付記2)前記同期させる処理は、
第1の時間間隔ごとに、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータが格納されるレジストリから前記イメージデータを取得し、
取得した前記イメージデータと前記ストレージに前回格納したイメージデータとの一致判定を行い、
前記前回格納したイメージデータと一致しない場合、取得した前記イメージデータを前記ストレージに格納する、
処理を含むことを特徴とする付記1に記載の制御プログラム。
【0135】
(付記3)前記同期させる処理は、
第2の時間間隔ごとに、前記ストレージに格納されているイメージデータと、前記ストレージに前回格納したイメージデータとの一致判定を行い、
前記前回格納したイメージデータと一致しない場合、前記前回格納したイメージデータを前記ストレージに格納する、
処理を含むことを特徴とする付記1または2に記載の制御プログラム。
【0136】
(付記4)前記前回格納したイメージデータと一致しない場合、前記ストレージの管理者宛にアラート情報を出力する、処理を前記コンピュータに実行させ、
前記同期させる処理は、
前記アラート情報を出力した結果、前記ストレージへのイメージデータのアップロード要求を受け付けた場合、前記前回格納したイメージデータを前記ストレージに格納する、
処理を含むことを特徴とする付記3に記載の制御プログラム。
【0137】
(付記5)前記実行環境は、前記ソフトウェアを実行するためのコンテナまたは仮想マシンである、ことを特徴とする付記1~4のいずれか一つに記載の制御プログラム。
【0138】
(付記6)前記一致判定を行う処理は、
取得した前記イメージデータの誤り検出符号と前記前回格納したイメージデータの誤り検出符号とが一致しない場合、前記前回格納したイメージデータと一致しないと判定する、ことを特徴とする付記2に記載の制御プログラム。
【0139】
(付記7)前記一致判定を行う処理は、
前記ストレージに格納されているイメージデータの誤り検出符号を取得し、
取得した前記誤り検出符号と前記前回格納したイメージデータの誤り検出符号とが一致しない場合、前記前回格納したイメージデータと一致しないと判定する、
ことを特徴とする付記3に記載の制御プログラム。
【0140】
(付記8)ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
処理をコンピュータが実行し、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする制御方法。
【0141】
(付記9)ソフトウェアを実行するための実行環境のイメージデータを、前記ソフトウェアの開発環境と前記ソフトウェアの本番環境とからアクセス可能なストレージに格納し、
前記ストレージに格納されたイメージデータを、前記開発環境における前記ソフトウェアの改変に応じて更新されるイメージデータと同期させる、
制御部を有し、
前記開発環境と前記本番環境との間の通信は実行できないように設定される、
ことを特徴とする情報処理装置。
【符号の説明】
【0142】
101 情報処理装置
110,E1 開発環境
111,121 レジストリ
120,E2 本番環境
130,E3 インターネット環境
140,601 運用者
200 情報処理システム
201 同期制御装置
202 データベースサーバ
203 ストレージサーバ
204 ユーザ端末
210 ネットワーク
220,602 コンテナレジストリ
230 オブジェクトストレージ
240 管理テーブル
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
500 制御部
501 格納部
502 同期部
503 取得部
504 通知部
701 クラウド管理者
710 アラート情報
Ap アプリケーション
C コンテナイメージ
F コンテナイメージファイル
Id イメージデータ
S チェックサム
ST ストレージ
SW ソフトウェア
図1
図2
図3
図4
図5
図6
図7
図8
図9