JP2021047806A - Information processing system, information processing apparatus, and information processing program - Google Patents
Information processing system, information processing apparatus, and information processing program Download PDFInfo
- Publication number
- JP2021047806A JP2021047806A JP2019171543A JP2019171543A JP2021047806A JP 2021047806 A JP2021047806 A JP 2021047806A JP 2019171543 A JP2019171543 A JP 2019171543A JP 2019171543 A JP2019171543 A JP 2019171543A JP 2021047806 A JP2021047806 A JP 2021047806A
- Authority
- JP
- Japan
- Prior art keywords
- repository
- data
- test
- storage
- backup volume
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 45
- 238000012360 testing method Methods 0.000 claims abstract description 231
- 238000012545 processing Methods 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 35
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 230000004044 response Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、情報処理システム、情報処理装置および情報処理プログラムに関する。 The present invention relates to an information processing system, an information processing device and an information processing program.
継続的インテグレーション(Continuous Integration:CI)は、プログラムの開発を効率化するための手段として広く利用されている。CI環境では、プログラムのソースコードがリポジトリに格納され、開発者によってリポジトリ内のソースコードが更新されていく。リポジトリ内のソースコードの更新イベントが発生すると、更新されたソースコードのテストが実行される。このように、ソースコードの更新に応じて更新されたソースコードのテストが自動的に実行されることで、プログラムの開発を継続的に効率化できる。 Continuous Integration (CI) is widely used as a means to streamline program development. In the CI environment, the source code of the program is stored in the repository, and the source code in the repository is updated by the developer. When the source code update event in the repository occurs, the updated source code is tested. In this way, the test of the updated source code is automatically executed in response to the update of the source code, so that the program development can be continuously streamlined.
CIにおけるソースコードのテストに関しては、例えば次のようなシステムが提案されている。このシステムでは、第1サーバによってソースコードの静的解析が行われ、解析結果が第2サーバにアップロードされる。第2サーバは、開発者端末から解析結果の提供が要求されると、過去の解析結果に対してなされた除外申請に関して参考になる参考情報を、解析結果とともに開発者端末に出力する。 Regarding the source code test in CI, for example, the following system has been proposed. In this system, the first server statically analyzes the source code, and the analysis result is uploaded to the second server. When the developer terminal requests the provision of the analysis result, the second server outputs the reference information that is helpful for the exclusion application made to the past analysis result to the developer terminal together with the analysis result.
また、関連技術として、コピー複合機のアプリケーションにおける更新されたコンポーネントをCIによりテストするシステムが提案されている。 In addition, as a related technology, a system for testing updated components in a copy multifunction device application by CI has been proposed.
ところで、CI環境では、ソースコードが格納されるリポジトリと、ソースコードのテストが実行されるテスト装置とが、WAN(Wide Area Network)などのネットワークを介して接続される場合がある。この場合、テスト装置は、ソースコードをリポジトリからダウンロードしてテスト環境をビルドし、テストを実行する。しかし、このような構成では、ソースコードのサイズが多くなるほど、テスト装置がソースコードをダウンロードするのにかかる時間が長くなるという問題がある。また、ネットワークのトラフィックによっても、ソースコードのダウンロードにかかる時間が長くなり得る。このようにソースコードのダウンロードに時間がかかると、テストの実行開始までに長時間を要し、テストを効率的に実行できなくなる。 By the way, in the CI environment, the repository in which the source code is stored and the test device in which the source code test is executed may be connected via a network such as a WAN (Wide Area Network). In this case, the test device downloads the source code from the repository, builds the test environment, and executes the test. However, in such a configuration, there is a problem that the larger the size of the source code, the longer it takes for the test device to download the source code. Also, network traffic can increase the time it takes to download the source code. If it takes a long time to download the source code in this way, it takes a long time to start executing the test, and the test cannot be executed efficiently.
1つの側面では、本発明は、テスト実行のためのソースコードのダウンロード量を削減可能な情報処理システム、情報処理装置および情報処理プログラムを提供することを目的とする。 In one aspect, it is an object of the present invention to provide an information processing system, an information processing apparatus and an information processing program capable of reducing the download amount of source code for test execution.
1つの案では、次のようなテスト制御部およびテスト実行部を有する情報処理システムが提供される。テスト制御部は、プログラムのソースコードが記憶されたリポジトリから、リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する。また、テスト制御部は、リポジトリ内のデータが更新されると、更新後のリポジトリ内のデータのうち第1のデータ群との差分データが、リポジトリからネットワークを介して送信され、第2のデータ群としてストレージにコピーされるように制御する。テスト実行部は、ストレージ内の第1のデータ群と第2のデータ群とに基づいて、更新後のリポジトリに記憶されているソースコードのテストを実行する。 One proposal provides an information processing system having the following test control unit and test execution unit. The test control unit controls the repository in which the source code of the program is stored so that all the data in the repository is transmitted via the network and copied to the storage as the first data group. Further, when the data in the repository is updated, the test control unit transmits the difference data from the first data group among the updated data in the repository from the repository via the network, and the second data. Control so that it is copied to the storage as a group. The test execution unit executes a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.
また、1つの案では、次のような処理部を有する情報処理装置が提供される。処理部は、プログラムのソースコードが記憶されたリポジトリから、リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する第1の処理を実行する。また、処理部は、リポジトリ内のデータが更新されると、更新後のリポジトリ内のデータのうち第1のデータ群との差分データが、リポジトリからネットワークを介して送信され、第2のデータ群としてストレージにコピーされるように制御する第2の処理を実行し、ストレージ内の第1のデータ群と第2のデータ群とに基づく、更新後のリポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理を実行する。 Further, in one plan, an information processing apparatus having the following processing units is provided. The processing unit executes the first process of controlling so that all the data in the repository is transmitted from the repository in which the source code of the program is stored via the network and copied to the storage as the first data group. .. Further, when the data in the repository is updated, the processing unit transmits the difference data from the first data group among the updated data in the repository from the repository via the network, and the second data group. Performs a second process that controls the data to be copied to the storage as, and tests the source code stored in the updated repository based on the first and second data groups in the storage. , Execute the third process to be executed by the test apparatus.
さらに、1つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。 Further, in one plan, an information processing program for causing a computer to execute the same processing as the above-mentioned information processing device is provided.
1つの側面では、テスト実行のためのソースコードのダウンロード量を削減できる。 On one side, the amount of source code downloaded for test execution can be reduced.
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、テスト制御部1、テスト実行部2、ストレージ3およびリポジトリ4を含む。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram showing a configuration example and a processing example of the information processing system according to the first embodiment. The information processing system shown in FIG. 1 includes a test control unit 1, a
テスト制御部1およびテスト実行部2の処理は、例えば、それぞれ個別の、または同一のプロセッサがプログラムを実行することで実現される。テスト制御部1およびテスト実行部2は、それぞれ個別の情報処理装置に実装されていてもよいし、同一の情報処理装置に実装されていてもよい。ストレージ3は、HDD(Hard Disk Drive)などの記憶装置である。ストレージ3は、テスト制御部1やテスト実行部2と同一の情報処理装置に搭載されていてもよいし、これらの外部に接続されていてもよい。
The processing of the test control unit 1 and the
リポジトリ4は、開発対象となるプログラムのソースコードを複数記憶する記憶装置である。情報処理システムでは、リポジトリ4とストレージ3との間がネットワーク5を介して接続されている。一方、テスト制御部1、テスト実行部2およびストレージ3との間では、ネットワーク5を介さずに(例えば、ネットワーク5に接続する別の内部ネットワークを介して)通信可能になっている。
The
この情報処理システムでは、リポジトリ4内のソースコードが開発者によって更新されると、テスト制御部1によってその更新が検知され、テスト実行部2によってリポジトリ4内のソースコードのテストが実行される。このように、リポジトリ4の更新ごとにテストが自動実行されるCI環境が構築されている。
In this information processing system, when the source code in the
ただし、リポジトリ4が更新されるたびにリポジトリ4内のすべてのソースコードがネットワーク5を介してテスト実行部2にダウンロードされると、ダウンロードに長時間を要し、リポジトリ4の更新からテスト開始までに長い時間がかかってしまう。そこで、この情報処理システムでは、リポジトリ4が更新されると、更新された分のデータだけがリポジトリ4からネットワーク5を介してダウンロードされるように制御される。
However, if all the source code in the
まず、図1の上側に示すように、テストの実行に先立ち、テスト制御部1は、リポジトリ4内の全データがネットワーク5を介して送信され、ストレージ3にコピー(フルコピー)されるように制御する。この制御により、ストレージ3には、リポジトリ4内の全データに対応するコピーデータがデータ群11として記憶される。
First, as shown in the upper part of FIG. 1, prior to the execution of the test, the test control unit 1 causes all the data in the
その後、図1の下側に示すように、テスト制御部1は、リポジトリ4の更新を検知すると、更新後のリポジトリ4内のデータのうちデータ群11との差分データが、リポジトリ4からネットワーク5を介してストレージ3にコピー(差分コピー)されるように制御する。この制御により、差分データがデータ群12としてストレージ3に記憶される。
After that, as shown in the lower part of FIG. 1, when the test control unit 1 detects the update of the
データ群12が記憶されると、テスト実行部2は、データ群11とデータ群12とに基づいて、更新後のリポジトリ4に記憶されているソースコードのテストを実行する。すなわち、テスト実行部2は、更新後のリポジトリ4内のソースコードのうち、更新されたソースコードをデータ群12から取得し、残りのソースコードをデータ群11から取得して、取得したソースコードのテストを実行する。
When the
このように、リポジトリ4が更新された場合、リポジトリ4内のデータのうち更新されたデータのみがネットワーク5を介してダウンロードされる。これにより、更新のたびにリポジトリ4から全データをダウンロードする場合と比較して、ダウンロードされるデータ量を削減でき、ダウンロードにかかる時間を短縮できる。その結果、リポジトリ4が更新されてからリポジトリ内のソースコードのテストを開始するまでの時間を短縮できる。また、ネットワーク5のトラフィックを軽減でき、ネットワーク5を介して通信する他の装置の通信速度が低下する可能性を抑制できる。
In this way, when the
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システムは、プログラムのソースコードのテストを自動化するCI環境を構築するシステムである。
[Second Embodiment]
FIG. 2 is a diagram showing a configuration example of the information processing system according to the second embodiment. The information processing system shown in FIG. 2 is a system for constructing a CI environment that automates the test of the source code of a program.
この情報処理システムは、リポジトリサーバ100、管理サーバ200、テストサーバ300およびストレージ装置400を含む。管理サーバ200、テストサーバ300およびストレージ装置400は、LAN(Local Area Network)51に接続され、LAN51を介して互いに通信可能になっている。リポジトリサーバ100は、WAN52に接続されている。LAN51はWAN52に接続されており、少なくとも管理サーバ200およびストレージ装置400は、LAN51およびWAN52を介してリポジトリサーバ100と通信可能になっている。
This information processing system includes a
さらに、リポジトリサーバ100には開発者端末501,502,・・・が接続されている。図2の例では、開発者端末501,502,・・・は、WAN52を介してリポジトリサーバ100と通信可能になっている。ただし、開発者端末501,502,・・・は、WAN52とは別のネットワークを介してリポジトリサーバ100に接続されていてもよい。
Further,
リポジトリサーバ100は、リポジトリ101の入出力を制御する。リポジトリ101は、開発対象となるプログラムのソースコードを記憶する。例えば、リポジトリ101は、1以上のソフトウェアコンポーネントのソースコードを記憶する。リポジトリ101は、リポジトリサーバ100の内部に搭載された、あるいはリポジトリサーバ100の外部に接続された記憶装置の記憶領域によって実現される。
The
開発者端末501,502,・・・は、プログラムの開発者によって操作される端末装置である。開発者端末501,502,・・・は、開発者の操作に応じて、リポジトリ101内のソースコードの更新をリポジトリサーバ100に要求する。リポジトリサーバ100は、開発者端末501,502,・・・からの要求に応じて、リポジトリ101内のソースコードを更新する。この更新では、リポジトリ101に記憶されているソースコードの一部が変更される場合もあれば、リポジトリ101に記憶されているソースコードに新たなソースコードが追加される場合もある。
管理サーバ200は、CIによるソースコードのテストジョブを制御するCIマスタ機能を備えている。テストサーバ300は、管理サーバ200の制御の下で、ソースコードのテストを実行する。
The
管理サーバ200は、CIマスタ機能により、リポジトリ101の更新イベントを監視し、更新イベントの発生を検知するとテストジョブを起動する。テストジョブを起動すると、管理サーバ200は、CIマスタ機能により、ソースコードのテストを実行するためのスレーブVM(Virtual Machine)をテストサーバ300に作成させる。テストサーバ300は、スレーブVMを作成して動作させ、そのスレーブVM上でソースコードのテストを実行して、テスト結果を管理サーバ200に通知する。
The
このように、情報処理システムでは、リポジトリ101が開発者端末501,502,・・・を介して複数の開発者によって共有され、各開発者によって作成されたソースコードがリポジトリ101においてマージされる。そして、管理サーバ200の制御により、リポジトリ101内のソースコードの更新に応じて、リポジトリ101内のソースコードのテストが自動実行される。これによってCI環境が実現され、例えば、ソフトウェアの異常を早期に発見して対処することができ、高品質なソフトウェアを効率的に開発できるようになる。
In this way, in the information processing system, the
また、管理サーバ200は、リポジトリ101からのソースコードのダウンロードを制御するリポジトリコントローラ機能を備えている。管理サーバ200は、リポジトリコントローラ機能により、初期状態ではリポジトリ101のデータ全体がストレージ装置400にダウンロードされるように制御する。その後、管理サーバ200は、テストジョブを起動するたびに、リポジトリコントローラ機能により、リポジトリ101内のソースコードのうち更新された部分のみがストレージ装置400にダウンロードされるように制御する。
Further, the
ストレージ装置400は、コントローラ401とストレージ402を備える。コントローラ401は、ストレージに対するデータの読み書きを制御するストレージ制御装置である。また、コントローラ401は、ストレージ402の物理記憶領域を利用した論理ボリュームの作成や、論理ボリュームに対応するスナップショットボリュームの作成も可能になっている。ストレージ402は、1台または複数台の不揮発性記憶装置を備えている。これらの不揮発性記憶装置の記憶領域が、コントローラ401からの読み書きの制御対象となる。ストレージ402は、このような不揮発性記憶装置として、例えば、HDD、SSD(Solid State Drive)などを備えている。
The
ストレージ402には、管理サーバ200の制御により、リポジトリ101内のソースコードがダウンロードされて格納される。ストレージ402に格納されたソースコードは、テストサーバ300上で動作するスレーブVMによって参照され、テストされる。
The source code in the
なお、図2において、管理サーバ200は、図1のテスト制御部1が実装される情報処理装置の一例である。テストサーバ300は、図1のテスト実行部2が実装される情報処理装置の一例である。ストレージ402は、図1のストレージ3の一例である。リポジトリ101は、図1のリポジトリ4の一例である。WAN52は、図1のネットワーク5の一例である。
In FIG. 2, the
図3は、管理サーバのハードウェア構成例を示す図である。管理サーバ200は、例えば、図3に示すようなコンピュータとして実現される。図3に示す管理サーバ200は、プロセッサ201、RAM(Random Access Memory)202、HDD203、グラフィックインタフェース(I/F)204、入力インタフェース(I/F)205、読み取り装置206および通信インタフェース207(I/F)を備える。
FIG. 3 is a diagram showing a hardware configuration example of the management server. The
プロセッサ201は、管理サーバ200全体を統括的に制御する。プロセッサ201は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
The
RAM202は、管理サーバ200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。
The
HDD203は、管理サーバ200の補助記憶装置として使用される。HDD203には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDなどの他の種類の不揮発性記憶装置を使用することもできる。
グラフィックインタフェース204には、表示装置204aが接続されている。グラフィックインタフェース204は、プロセッサ201からの命令にしたがって、画像を表示装置204aに表示させる。表示装置としては、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどがある。
A
入力インタフェース205には、入力装置205aが接続されている。入力インタフェース205は、入力装置205aから出力される信号をプロセッサ201に送信する。入力装置205aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
An
読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、半導体メモリなどがある。
A
通信インタフェース207は、ネットワーク207aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、管理サーバ200の処理機能を実現することができる。なお、リポジトリサーバ100、テストサーバ300、ストレージ装置400のコントローラ401も、図3に示すようなハードウェア構成のコンピュータとして実現可能である。
The
With the above hardware configuration, the processing function of the
次に、CIのためのシステム構成の比較例を示し、この比較例の問題点について説明する。図4は、CIのためのシステム構成の比較例を示す。
図4に示す比較例では、リポジトリ101に対してWAN52を介してCIマスタ61が接続されている。CIマスタ61は、リポジトリ101内のソースコードについてのテストジョブの実行を制御する処理機能であり、例えば、図2に示す管理サーバ200に対応するサーバ装置において動作する。
Next, a comparative example of the system configuration for CI will be shown, and the problems of this comparative example will be described. FIG. 4 shows a comparative example of the system configuration for CI.
In the comparative example shown in FIG. 4, the
CIマスタ61は、開発者によるリポジトリ101の更新イベントを監視する。CIマスタ61は、更新イベントを検知すると(ステップS11)、ハイパバイザ62上でスレーブVM63を起動させる(ステップS12)。ハイパバイザ62およびスレーブVM63は、例えば、図2に示すテストサーバ300に対応するサーバ装置において動作する。
The
スレーブVM63は、テスト実行のためのアプリケーションプログラムにしたがって、次のような処理を実行する。スレーブVM63は、リポジトリ101からソースコードをダウンロードし(ステップS13)、ダウンロードしたソースコードを用いてテスト環境をビルドし、テストを実行する(ステップS14)。テストが完了すると、スレーブVM63は、テスト結果をCIマスタ61に通知する(ステップS15)。通知を受けたCIマスタ61は、スレーブVM63を削除する。
The slave VM63 executes the following processing according to the application program for test execution. The slave VM63 downloads the source code from the repository 101 (step S13), builds a test environment using the downloaded source code, and executes the test (step S14). When the test is completed, the slave VM63 notifies the
なお、スレーブVM63は、リポジトリ101の更新イベントが発生するたびにハイパバイザ62上に作成される。1つのスレーブVM63によるテストの実行中にリポジトリ101が更新されると、別のスレーブVM63が作成されて、リポジトリ101からのダウンロードとテストとが実行される。このため、ハイパバイザ62上では同時に複数のスレーブVM63が動作する場合がある。
The slave VM63 is created on the
このような構成では、リポジトリ101が更新されるたびに、テストに必要なすべてのソースコードがWAN52を介してリポジトリ101からスレーブVM63にダウンロードされる。このため、ダウンロードされるデータ量が大きく、ダウンロードに長い時間がかかる。その結果、スレーブVM63が起動してからテストを開始するまでに時間がかかり、テストを効率的に実行できない。ダウンロードに時間がかかり過ぎると、スレーブVM63によるテスト環境のビルドがタイムアウトになり、テストを完了できない場合もある。
In such a configuration, every time the
さらに、リポジトリ101の更新頻度が高いほど、WAN52を介してダウンロードされるデータ量が多くなり、WAN52のトラフィックが増大化し、WAN52に接続された他の装置による通信速度が悪化する。また、WAN52のトラフィックの増大化により、スレーブVM63によるソースコードのダウンロード時間も長くなり、テストの実行効率はさらに悪化する。
Further, as the update frequency of the
そこで、本実施の形態では、最初にリポジトリ101のソースコード全体がストレージ装置400(図2参照)にコピーされる。それ以後、リポジトリ101が更新されてテスト用のスレーブVMが起動するたびに、リポジトリ101のソースコードのうち更新された差分データだけがストレージ装置400にダウンロードされる。スレーブVMは、最初にストレージ装置400にコピーされたソースコードと、新たにダウンロードされた差分データとに基づいてテストに必要なソースコードをストレージ装置400から読み込み、テストを実行する。このような処理により、テストのためのリポジトリ101からのソースコードのダウンロード量を抑制し、テストを効率的に実行できるようにする。
Therefore, in the present embodiment, the entire source code of the
図5は、第2の実施の形態に係る情報処理システムが備える処理機能の構成例を示すブロック図である。
まず、リポジトリサーバ100は、前述のリポジトリ101に加えてリポジトリ管理部110を備える。リポジトリ管理部110の処理は、例えば、リポジトリサーバ100が備える図示しないプロセッサが所定のプログラムを実行することで実現される。
FIG. 5 is a block diagram showing a configuration example of a processing function included in the information processing system according to the second embodiment.
First, the
リポジトリ管理部110は、開発者端末501,502,・・・からリポジトリ101の更新指示を受け付けて、リポジトリ101内のソースコードを更新する。また、リポジトリ管理部110は、リポジトリ101の更新イベントが発生したことを管理サーバ200に通知する。例えば、リポジトリ管理部110は、管理サーバ200から更新イベントの発生の有無についての問い合わせを定期的に受け付け、更新イベントが発生した場合にはその旨を返信する。
The
さらに、リポジトリ管理部110は、リポジトリ101内のソースコードを送信する機能を備える。例えば、リポジトリ管理部110は、リポジトリ101に格納されたソースコードをすべてに送信することや、リポジトリ101に格納されたデータのうち、過去の特定のバージョンと現在の最新バージョンとの差分データのみを送信することが可能になっている。
Further, the
次に、管理サーバ200は、CIマスタ210、リポジトリコントローラ220および記憶部230を備える。CIマスタ210およびリポジトリコントローラ220の処理は、例えば、管理サーバ200が備えるプロセッサ201が所定のプログラムを実行することで実現される。記憶部230は、例えば、RAM202やHDD203など、管理サーバ200が備える記憶装置の記憶領域として実現される。
Next, the
CIマスタ210は、ソースコードのテストジョブの実行を統括的に制御する。例えば、CIマスタ210は、リポジトリ101の更新イベントを監視し、更新イベントを検知すると、テストサーバ300にスレーブVMの作成を指示し、作成されたスレーブVMにテストを実行させる。そして、CIマスタ210は、スレーブVMからテスト結果の通知を受けると、スレーブVMの削除をテストサーバ300に指示する。
The
リポジトリコントローラ220は、WAN52を介したリポジトリ101からのソースコードのダウンロードを制御する。例えば、リポジトリコントローラ220は最初に、リポジトリ101のコピーボリュームであるリポジトリコピーをストレージ装置400に作成し、リポジトリ101内の全データをリポジトリコピーにコピーさせる。
The
また、リポジトリコントローラ220は、リポジトリ101の更新イベントに応じて、その時点でのリポジトリのスナップショットボリュームであるリポジトリスナップショットをストレージ装置400に作成する。リポジトリコントローラ220は、リポジトリ101のデータのうち更新データのみをリポジトリ101からストレージ装置400にダウンロードさせ、更新データをリポジトリスナップショットに記憶させる。リポジトリコントローラ220は、リポジトリスナップショットをテストサーバ300上のスレーブVMの仮想ディスクとして割り当てる。これにより、スレーブVMはリポジトリスナップショットからテストに必要なソースコードを取得して、テストを実行する。このとき、更新されたソースコードはリポジトリスナップショットから取得され、残りのソースコードはリポジトリコピーから取得される。これにより、更新データのみリポジトリ101からWAN52を通じてダウンロードするだけで、ソースコードのテストを実行できるようになる。
Further, the
記憶部230は、CIマスタ210やリポジトリコントローラ220の処理で利用される各種のデータを記憶する。例えば、記憶部230は、リポジトリコピーの作成時におけるリポジトリ101内のデータのバージョン番号を記憶する。
The
次に、テストサーバ300は、VMを作成してその動作を管理するハイパバイザ310を備える。ハイパバイザ310の処理は、例えば、テストサーバ300が備える図示しないプロセッサが所定のプログラムを実行することで実現される。このハイパバイザ310上で、CIマスタ210のスレーブとして動作するスレーブVMが1台以上動作する。各スレーブVMは、ソースコードのビルドおよびテストを実行するテスト実行部を備える。テスト実行部の処理は、スレーブVM上で所定のアプリケーションプログラムが実行されることで実現される。図5では例として、テスト実行部321a,321bをそれぞれ備えるスレーブVM320a,320bを示している。
Next, the
また、テストサーバ300は、記憶部330を備えている。記憶部330は、例えば、テストサーバ300が備える図示しない記憶装置の記憶領域として実現される。記憶部330は、テストサーバ300の処理で利用される各種のデータを記憶する。例えば、記憶部330は、スレーブVMを作成するためのVMイメージを記憶する。この場合、ハイパバイザ310によりVMイメージがテストサーバ300のメモリに展開されることでスレーブVMが作成される。また、スレーブVMには、テスト実行部の処理を実現するためのアプリケーションプログラムがインストールされている。
Further, the
次に、ストレージ装置400は、コピー制御部410と記憶部420を備える。コピー制御部410の処理は、例えば、ストレージ装置400のコントローラ401が備える図示しないプロセッサが所定のプログラムを実行することで実現される。記憶部420は、例えば、コントローラ401が備える図示しない記憶装置の記憶領域として実現される。
Next, the
コピー制御部410は、前述のリポジトリコピーやリポジトリスナップショットなどの論理ボリュームの管理や、論理ボリュームに対するアクセスの制御を行う。記憶部420は、コピー制御部410の処理で利用される各種のデータを記憶する。例えば、記憶部420は、リポジトリコピー内の論理ブロックとリポジトリコピーに格納されるデータとの対応関係を示す管理データや、リポジトリスナップショットに格納される、リポジトリコピーとの間の差分データを管理する管理データを記憶する。
The
次に、第2の実施の形態におけるテストジョブの実行制御について説明する。
図6は、テストジョブの実行制御例を示す第1の図である。また、図7は、テストジョブの実行制御例を示す第2の図である。
Next, the execution control of the test job in the second embodiment will be described.
FIG. 6 is a first diagram showing an example of execution control of a test job. Further, FIG. 7 is a second diagram showing an example of execution control of a test job.
管理サーバ200のCIマスタ210は、リポジトリ101の更新イベントを監視する。そして、図6に示すように、CIマスタ210がリポジトリ101の更新イベントの発生を検知すると(ステップS21)、テストジョブが開始される。
The
図6の例では、リポジトリ101に対応するリポジトリコピー431がストレージ装置400に作成されていない。この場合、管理サーバ200のリポジトリコントローラ220は、リポジトリコピー431の作成をストレージ装置400のコントローラ401に指示する(ステップS22)。コントローラ401は、指示に応じてリポジトリコピー431を作成する。リポジトリコピー431は、リポジトリ101のコピーデータを保持するための記憶領域(コピーボリューム)であり、ストレージ装置400のストレージ402の記憶領域を用いた論理ボリュームとして作成される。
In the example of FIG. 6, the
リポジトリコントローラ220は、リポジトリ101の全データをストレージ装置400に送信するようにリポジトリサーバ100のリポジトリ管理部110に指示する。リポジトリ管理部110は、指示に応じてリポジトリ101の全データをストレージ装置400に送信する。これにより、リポジトリコピー431に対するリポジトリ101のフルコピーが行われる(ステップS23)。リポジトリコピー431は、リポジトリ101内の全データを実体的に保持するフルバックアップボリュームとなる。なお、リポジトリ101の全データはリポジトリコントローラ220を介してストレージ装置400に送信されてもよい。
The
また、ストレージ装置400のコントローラ401はフルコピーの際に、リポジトリコピー431に対応するボリューム管理データ431aを作成して、記憶部420に格納する。ボリューム管理データ431aには、例えば、リポジトリ101内の各ファイルと、リポジトリコピー431のボリューム上の論理アドレスとの対応関係を示す情報が登録される。また、CIマスタ210は、リポジトリコピー431に記憶された、リポジトリ101内のデータのバージョン番号を、記憶部230に記録する。このバージョン番号は、リポジトリ101が更新されるたびにインクリメントされる通し番号(コミット番号)である。
Further, the
次に、図7に示すように、CIマスタ210は、スレーブVMの作成をテストサーバ300に指示する(ステップS24)。テストサーバ300のハイパバイザ310は、記憶部330に記憶されたVMイメージを用いてスレーブVM(ここでは「スレーブVM320a」とする)を作成し、その動作を開始させる。
Next, as shown in FIG. 7, the
続いて、リポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する(ステップS25)。リポジトリスナップショットとは、その時点におけるリポジトリ101の記憶データを論理的に記憶する論理ボリュームである。この論理ボリュームは、リポジトリコピー431と同じ論理アドレス空間を備えている。また、リポジトリスナップショットは、その時点でのリポジトリ101のデータのうち、リポジトリコピー431との差分データだけを実体的に記憶し、残りのデータについてはリポジトリコピー431を参照するように形成された論理ボリュームである。換言すると、リポジトリスナップショットは、フルバックアップボリュームであるリポジトリコピー431との差分のみを実データとして保持する、リポジトリ101の差分バックアップボリュームである。したがって、その時点におけるリポジトリ101とリポジトリコピー431との間にデータの差分がある場合、その差分データだけがリポジトリ101からWAN52を介してストレージ装置400にダウンロードされる。
Subsequently, the
図7の例では、ストレージ装置400にリポジトリスナップショット441が作成されたとする。図7のケースではリポジトリ101とリポジトリコピー431との間にデータの差分がないので、リポジトリ101からの差分データのダウンロードは行われない。この場合、ストレージ装置400では、例えば、リポジトリスナップショット441の各論理ブロックに対応するビットを有するビットマップ441aが作成されて記憶部420に格納される。ビットマップ441aの各ビットには、差分データが存在しないことを示すビット値「0」がセットされる。
In the example of FIG. 7, it is assumed that the
次に、リポジトリコントローラ220は、作成されたリポジトリスナップショット441を、仮想ディスクとしてスレーブVM320aに割り当てる(ステップS26)。そして、CIマスタ210は、スレーブVM320aのテスト実行部321a(図5参照)にテストを開始させる。テスト実行部321aは、リポジトリスナップショット441からソースコードを読み込む。このとき、実体的にはリポジトリコピー431からソースコードが読み込まれる。テスト実行部321aは、読み込んだソースコードを用いてテスト環境のビルドを行う(ステップS27)。このビルドでは、例えば、読み込んだソースコードが統合される。また、統合されたソースコードを実行プログラムに変換する処理(コンパイル)が行われてもよい。続いて、テスト実行部321aは、ビルドが行われたソースコードのテストを実行する(ステップS28)。例えば、ソースコードの静的解析によりバグの発見や修正などが行われる。
Next, the
図示しないが、テストが終了すると、テスト実行部321aは、テスト結果をCIマスタ210に通知する。このとき、詳細なテスト結果の内容(ログなど)が、LAN51に接続された図示しないログサーバに格納されてもよい。CIマスタ210は、テスト結果の通知を受けると、スレーブVM320aを削除するようにテストサーバ300に指示するとともに、リポジトリスナップショット441を削除するようにストレージ装置400に指示する。これにより、スレーブVM320aおよびリポジトリスナップショット441が削除されて、テストジョブの実行が完了する。
Although not shown, when the test is completed, the
次に、図8は、テストジョブの実行制御例を示す第3の図である。また、図9は、テストジョブの実行制御例を示す第4の図である。
図8では、図6、図7の処理が実行された後に、CIマスタ210が再度、リポジトリ101の更新イベントの発生を検知したとする(ステップS31)。このとき、ストレージ装置400においてリポジトリコピー431はすでに作成されている。この場合、CIマスタ210は、スレーブVMの作成をテストサーバ300に指示する(ステップS32)。テストサーバ300のハイパバイザ310は、スレーブVM(ここでは「スレーブVM320b」とする)を作成し、その動作を開始させる。
Next, FIG. 8 is a third diagram showing an example of execution control of the test job. Further, FIG. 9 is a fourth diagram showing an example of execution control of a test job.
In FIG. 8, it is assumed that the
続いて、リポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する(ステップS33)。ストレージ装置400のコントローラ401は、リポジトリスナップショット(ここでは「リポジトリスナップショット442」とする)を作成する。また、コントローラ401は、リポジトリスナップショット442の管理データとしてビットマップ442aを作成し、記憶部420に格納する。この時点では、ビットマップ442aの各ビットのビット値は「0」にセットされている。
Subsequently, the
次に、リポジトリコントローラ220は、作成されたリポジトリスナップショット442を、仮想ディスクとしてスレーブVM320bに割り当てる(ステップS34)。そして、リポジトリコントローラ220は、現在のリポジトリ101とリポジトリコピー431との間にデータの差分があるかを判定する。この判定では、リポジトリコントローラ220は例えば、ステップS31で更新を検知した際にリポジトリ管理部110から取得した、現在のリポジトリ101内のデータのバージョン番号と、記憶部230に記憶されている、リポジトリコピー431内のデータのバージョン番号とを比較する。これらのバージョン番号が異なる場合、データの差分があると判定される。
Next, the
図8の例では、データの差分があると判定される。この場合、図9に示すように、リポジトリコントローラ220は、リポジトリコピー431内のデータのバージョン番号をリポジトリサーバ100に通知して、通知したバージョン番号と現在のバージョン番号との間の差分データの送信を要求する(ステップS35)。リポジトリサーバ100のリポジトリ管理部110は、指示に応じて差分データをリポジトリ101から読み出し、ストレージ装置400に送信する。これにより、ストレージ装置400に対する差分データのダウンロードが行われる(ステップS36)。なお、差分データはリポジトリコントローラ220を介してストレージ装置400に送信されてもよい。
In the example of FIG. 8, it is determined that there is a difference in data. In this case, as shown in FIG. 9, the
ストレージ装置400のコントローラ401は、リポジトリコントローラ220からの指示に基づき、送信された差分データをリポジトリスナップショット442に格納する。このとき例えば、送信される差分データ(差分のファイル)には、ソフトウェアコンポーネントの識別番号とファイル名とが付与されている。コントローラ401は、ボリューム管理データ431aを参照して、リポジトリスナップショット442の論理ブロックのうち、差分データを格納する論理ブロックを判定し、判定した論理ブロックに差分データを格納する。具体的には、コントローラ401は、該当論理ブロックに対応する物理領域に差分データを格納するとともに、ビットマップ442aにおける該当論理ブロックに対応するビットの値を「1」に更新する。
The
このようにして、リポジトリスナップショット442に差分データが反映される。リポジトリスナップショット442は、現在のリポジトリ101のデータのうち、リポジトリコピー431との差分データだけを実体的に記憶し、残りのデータについてはリポジトリコピー431を参照するように形成された論理ボリュームとなっている。また、リポジトリコピー431は過去の世代におけるリポジトリ101のフルバックアップボリュームであり、これに対してリポジトリスナップショット442は、現世代におけるリポジトリ101の差分バックアップボリュームである。
In this way, the difference data is reflected in the
以上のようにリポジトリスナップショット442に差分データが反映されると、CIマスタ210は、スレーブVM320bのテスト実行部321b(図5参照)にテストを開始させる。テスト実行部321bは、リポジトリスナップショット442からソースコードを読み込む。このとき、ストレージ装置400のコントローラ401は、リポジトリスナップショット442のデータのうち、ビットマップ442aの対応するビット値が「0」のブロックのデータをリポジトリコピー431から読み出してテスト実行部321bに出力する。また、コントローラ401は、リポジトリスナップショット442のデータのうち、ビットマップ442aの対応するビット値が「1」のブロックのデータを、リポジトリスナップショット442の物理領域から読み出してテスト実行部321bに出力する。
When the difference data is reflected in the
テスト実行部321bは、読み込んだソースコードを用いてテスト環境のビルドを行い(ステップS37)、ビルドが行われたソースコードのテストを実行する(ステップS38)。また、図示しないが、テストが終了すると、テスト実行部321aは、テスト結果をCIマスタ210に通知する。この通知に応じて、スレーブVM320bおよびリポジトリスナップショット442が削除されて、テストジョブの実行が完了する。
The
以上の図8、図9の例のように、本実施の形態では、2回目以降のリポジトリ101の更新時には、その時点でのリポジトリ101とリポジトリコピー431との差分データのみが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる。これにより、ソースコードのダウンロード量を削減でき、そのダウンロードにかかる時間を短縮できる。その結果、リポジトリ101の更新発生からスレーブVMによるビルドおよびテストの開始までの時間を短縮でき、テストの実行を効率化できるとともに、テストを正しく完了できる可能性が高められる。
As in the examples of FIGS. 8 and 9 described above, in the present embodiment, when the
また、次の図10、図11に示すように、スレーブVMおよびリポジトリスナップショットは、リポジトリ101の更新イベントが検知されるたびに個別に作成される。
図10は、スレーブVMおよびリポジトリスナップショットの第1の作成例を示す図である。また、図11は、スレーブVMおよびリポジトリスナップショットの第2の作成例を示す図である。
Further, as shown in FIGS. 10 and 11 below, the slave VM and the repository snapshot are individually created each time an update event of the
FIG. 10 is a diagram showing a first example of creating a slave VM and a repository snapshot. Further, FIG. 11 is a diagram showing a second creation example of the slave VM and the repository snapshot.
図10では、ある時点においてリポジトリ101の更新イベントが発生し、テストサーバ300においてスレーブVM320cが作成され、ストレージ装置400においてリポジトリスナップショット443が作成されたとする。この場合、リポジトリスナップショット443は仮想ディスクとしてスレーブVM320cに割り当てられる。また、ストレージ装置400ではリポジトリスナップショット443に対応するビットマップ443aが作成される。
In FIG. 10, it is assumed that the update event of the
そして、リポジトリコントローラ220の制御により、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる(ステップS41)。差分データはリポジトリスナップショット443における格納先論理ブロックに対応する物理領域に格納され、ビットマップ443aにおける該当論理ブロックに対応するビットの値が「1」に更新される。これにより、リポジトリスナップショット443に差分データが反映される。以上の処理が完了すると、スレーブVM320cは、リポジトリスナップショット443からソースコードを読み込み、テスト環境をビルドし(ステップS42)、テストを実行する(ステップS43)。
Then, under the control of the
ここで、スレーブVM320cによるテストの実行中にリポジトリ101の更新イベントが再度発生したとする。この場合、図11に示すように、テストサーバ300においてスレーブVM320dが作成され、ストレージ装置400においてリポジトリスナップショット444が作成される。リポジトリスナップショット444は、仮想ディスクとしてスレーブVM320dに割り当てられる。ストレージ装置400では、リポジトリスナップショット444に対応するビットマップ444aが作成される。
Here, it is assumed that the update event of the
そして、リポジトリコントローラ220の制御により、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが、WAN52を介してリポジトリ101からストレージ装置400にダウンロードされる(ステップS51)。差分データはリポジトリスナップショット444における格納先論理ブロックに対応する物理領域に格納され、ビットマップ444aにおける該当論理ブロックに対応するビットの値が「1」に更新される。これにより、リポジトリスナップショット444に差分データが反映される。以上の処理が完了すると、スレーブVM320dは、リポジトリスナップショット444からソースコードを読み込み、テスト環境をビルドし(ステップS52)、テストを実行する(ステップS53)。
Then, under the control of the
このように、スレーブVMと、これに対応するリポジトリスナップショットは、リポジトリ101の更新イベントが検知されるたびに個別に作成される。各リポジトリスナップショットには、その時点でのリポジトリ101とリポジトリコピー431との間の差分データが個別に反映される。そして、各スレーブVMは、対応するリポジトリスナップショットからソースコードを読み込むことで、その時点でテストに必要なソースコードを確実かつ簡単に取得できる。すなわち、本実施の形態によれば、WAN52を介したソースコードのダウンロード量を抑制しながらも、リポジトリ101の更新が発生するたびに、その時点での最新のソースコードを用いて確実にテストを行うことができるようになる。
In this way, the slave VM and the corresponding repository snapshot are created individually each time an update event in the
なお、リポジトリコピー431を過去の世代におけるリポジトリ101のフルバックアップボリュームと見なすと、リポジトリスナップショット443を、その後のある世代におけるリポジトリ101の差分バックアップボリュームと見なすことができる。また、リポジトリスナップショット444を、さらに後のある世代におけるリポジトリ101の差分バックアップボリュームと見なすことができる。ただしこの場合、リポジトリスナップショット443,444のいずれも、リポジトリコピー431の世代を基準とした差分バックアップボリュームとなる。
If the
次に、テストジョブの実行時における処理についてシーケンス図を用いて説明する。
図12、図13は、テストジョブの実行時における処理手順の例を示すシーケンス図である。
Next, the processing at the time of executing the test job will be described using a sequence diagram.
12 and 13 are sequence diagrams showing an example of a processing procedure at the time of executing a test job.
[ステップS101]管理サーバ200のCIマスタ210は、リポジトリ101の更新イベントを監視する。そして、CIマスタ210がリポジトリ101の更新イベントの発生を検知すると、処理がステップS102に進められる。なお、CIマスタ210は、更新イベントの発生を検知した際、現在の(すなわち更新後の)リポジトリ101内のデータのバージョン番号を、リポジトリサーバ100のリポジトリ管理部110から取得する。
[Step S101] The
[ステップS102]管理サーバ200のリポジトリコントローラ220は、ストレージ装置400にリポジトリコピー431が存在するかを判定する。リポジトリコピー431が存在しない場合、処理はステップS103に進められ、リポジトリコピー431が存在する場合、処理はステップS107に進められる。
[Step S102] The
[ステップS103]リポジトリコントローラ220は、リポジトリコピー431の作成をストレージ装置400に指示する。また、リポジトリコントローラ220は、ステップS101で取得した、リポジトリ101内のデータのバージョン番号を、作成されるリポジトリコピー431内のデータのバージョン番号として記憶部230に記録する。
[Step S103] The
[ステップS104]ストレージ装置400のコントローラ401は、リポジトリコピー431を作成する。前述のように、リポジトリコピー431は、ストレージ装置400のストレージ402の記憶領域を用いた論理ボリュームとして作成される。また、このときコントローラ401は、リポジトリコピー431に対応するボリューム管理データを作成して記憶部420に格納する。
[Step S104] The
[ステップS105]管理サーバ200のリポジトリコントローラ220は、リポジトリ101の全データをストレージ装置400に送信するようにリポジトリサーバ100に指示する。図示しないが、リポジトリサーバ100のリポジトリ管理部110は、リポジトリ101の全データをストレージ装置400に送信する。なお、他の例として、リポジトリ101の全データは管理サーバ200に送信され、管理サーバ200のリポジトリコントローラ220からLAN51を介してストレージ装置400に転送されてもよい。
[Step S105] The
[ステップS106]ストレージ装置400のコントローラ401は、送信されたリポジトリ101の全データをリポジトリコピー431に格納する。このとき、コントローラ401は、リポジトリ101内の各ファイルとリポジトリコピー431のボリューム上の論理アドレスとの対応関係を示す情報を、リポジトリコピー431に対応するボリューム管理データに書き込む。
[Step S106] The
[ステップS107]管理サーバ200のCIマスタ210は、スレーブVMの作成をテストサーバ300に指示する。
[ステップS108]テストサーバ300のハイパバイザ310は、記憶部330に記憶されたVMイメージを用いてスレーブVMを作成し、その動作を開始させる。これにより、ハイパバイザ310でスレーブVMが起動し、そのスレーブVMがテスト用のアプリケーションを実行することにより、スレーブVM上でテスト実行部が動作する。
[Step S107] The
[Step S108] The
[ステップS109]管理サーバ200のリポジトリコントローラ220は、リポジトリスナップショットの作成をストレージ装置400に指示する。
[ステップS110]ストレージ装置400のコントローラ401は、リポジトリスナップショットを作成する。前述のように、リポジトリスナップショットは、リポジトリコピー431と同じ論理アドレス空間を備えた論理ボリュームである。ステップS110において、コントローラ401は、実体的にはリポジトリスナップショットに対応するビットマップを作成し、記憶部420に格納する。ビットマップは、リポジトリスナップショット内の各論理ブロックに対応するビットを備え、この時点では各ビットの値として「0」が設定される。
[Step S109] The
[Step S110] The
[ステップS111]管理サーバ200のCIマスタ210は、ステップS110で作成されたリポジトリスナップショットをステップS108で起動したスレーブVMの仮想ディスクとして割り当てるようにテストサーバ300に指示する。
[Step S111] The
[ステップS112]テストサーバ300のハイパバイザ310は、ステップS110で作成されたリポジトリスナップショットをステップS108で起動したスレーブVMの仮想ディスクとして割り当てる。
[Step S112] The
以下、図13を用いて説明を続ける。
[ステップS113]管理サーバ200のリポジトリコントローラ220は、現在のリポジトリ101とリポジトリコピー431との間にデータの差分があるかを判定する。この判定では、リポジトリコントローラ220は例えば、ステップS101で取得した、現在のリポジトリ101内のデータのバージョン番号と、記憶部230に記録された、リポジトリコピー431内のデータのバージョン番号とを比較する。これらのバージョン番号が異なる場合、データの差分があると判定される。
Hereinafter, the description will be continued with reference to FIG.
[Step S113] The
データの差分がある場合、処理はステップS114に進められ、データの差分がない場合、処理はステップS116に進められる。なお、ステップS102でリポジトリコピー431が存在しないと判定された場合、データの差分は存在しない。このため、ステップS113の判定は、ステップS102でリポジトリコピー431が存在したか否かによって行われてもよい。
If there is a data difference, the process proceeds to step S114, and if there is no data difference, the process proceeds to step S116. If it is determined in step S102 that the
[ステップS114]リポジトリコントローラ220は、リポジトリコピー431内のデータのバージョン番号をリポジトリサーバ100に通知して、通知したバージョン番号と現在のバージョン番号との間の差分データをストレージ装置400に送信するように要求する。リポジトリサーバ100のリポジトリ管理部110は、指示に応じて差分データをリポジトリ101から読み出し、WAN52を介してストレージ装置400に送信する。なお、他の例として、差分データは管理サーバ200に送信され、管理サーバ200のリポジトリコントローラ220からLAN51を介してストレージ装置400に転送されてもよい。
[Step S114] The
[ステップS115]ストレージ装置400のコントローラ401は、送信された差分データを受信し、リポジトリスナップショットに反映する。このとき例えば、受信した差分データ(差分のファイル)には、ソフトウェアコンポーネントの識別番号とファイル名とが付与されている。コントローラ401は、ボリューム管理データ431aを参照して、リポジトリスナップショットの論理ブロックのうち、差分データを格納する論理ブロックを特定し、特定した論理ブロックに対応する物理領域に差分データを格納する。そして、コントローラ401は、リポジトリスナップショットに対応するビットマップを参照し、ビットマップにおける該当論理ブロックに対応するビットの値を「1」に更新する。
[Step S115] The
[ステップS116]管理サーバ200のCIマスタ210は、ステップS108で起動したスレーブVMに対してテストの開始を指示する。
[ステップS117]テストサーバ300のスレーブVMは、仮想ディスクとして割り当てられ、ステップS115で差分データが反映されたリポジトリスナップショットから、ソースコードを読み込む。このとき、ストレージ装置400のコントローラ401は、リポジトリスナップショットのデータのうち、ビットマップの対応するビット値が「0」の論理ブロックのデータをリポジトリコピー431から読み出してスレーブVMに出力する。また、コントローラ401は、リポジトリスナップショットのデータのうち、ビットマップの対応するビット値が「1」の論理ブロックのデータを、リポジトリスナップショットの物理領域から読み出してスレーブVMに出力する。
[Step S116] The
[Step S117] The slave VM of the
スレーブVMは、読み込んだソースコードを用いてテスト環境のビルドを行う。このビルドでは、例えば、読み込んだソースコードが統合される。また、統合されたソースコードを実行プログラムに変換する処理(コンパイル)が行われてもよい。 The slave VM builds the test environment using the read source code. In this build, for example, the loaded source code is integrated. Further, a process (compilation) of converting the integrated source code into an execution program may be performed.
[ステップS118]スレーブVMは、ビルドが行われたソースコードのテストを実行する。例えば、ソースコードの静的解析によりバグの発見や修正などが行われる。
[ステップS119]スレーブVMは、テスト結果を管理サーバ200に通知する。このとき、スレーブVMは、詳細なテスト結果の内容(ログなど)を、LAN51に接続された図示しないログサーバに格納してもよい。
[Step S118] The slave VM executes a test of the built source code. For example, static analysis of source code finds and fixes bugs.
[Step S119] The slave VM notifies the
[ステップS120]管理サーバ200のCIマスタ210は、スレーブVMの削除をテストサーバ300に指示する。
[ステップS121]テストサーバ300のハイパバイザ310は、ステップS108で起動したスレーブVMの動作を停止させ、スレーブVMを削除する。
[Step S120] The
[Step S121] The
[ステップS122]管理サーバ200のリポジトリコントローラ220は、リポジトリスナップショットの削除をストレージ装置400に指示する。
[ステップS123]ストレージ装置400のコントローラ401は、ステップS110で作成したリポジトリスナップショットを削除する。
[Step S122] The
[Step S123] The
〔第3の実施の形態〕
次に、第3の実施の形態に係る情報処理システムについて説明する。第3の実施の形態に係る情報処理システムは、第2の実施の形態に係る情報処理システムの一部を変形したものである。なお、第3の実施の形態に係る情報処理システムの構成要素については、第2の実施の形態と同様の符号を用いて説明する。
[Third Embodiment]
Next, the information processing system according to the third embodiment will be described. The information processing system according to the third embodiment is a modification of a part of the information processing system according to the second embodiment. The components of the information processing system according to the third embodiment will be described with reference to the same reference numerals as those of the second embodiment.
第2の実施の形態では、リポジトリコピー431が作成された後、コピー元のリポジトリ101が更新されてもリポジトリコピー431の内容が更新されることはなかった。そのため、リポジトリ101が更新されて新たなリポジトリスナップショットが作成されたときに、その時点でのリポジトリ101のデータと、更新されないリポジトリコピー431のデータの差分がリポジトリ101からWAN52を介してダウンロードされる。このような処理では、リポジトリ101が何度も更新され、新たなリポジトリスナップの作成回数が増加するほど、リポジトリ101からダウンロードされる差分データのデータ量が増加してしまう。
In the second embodiment, after the
そこで、第3の実施の形態では、リポジトリスナップショットが削除される際に、そのリポジトリスナップショットが保持していた差分データをリポジトリコピー431に反映させる。ただし、同時に稼働している複数のリポジトリスナップショットがリポジトリコピー431を更新できてしまうと、更新の競合が発生し、リポジトリコピー431のデータの整合性が保たれなくなる可能性がある。また、更新の競合により更新にかかる時間が長くなる可能性もある。そこで、第3の実施の形態では、稼働中の複数のリポジトリスナップショットのうち最初に作成されたリポジトリスナップショットに対してのみ、リポジトリコピー431を更新するための優先権を付与するようにして、上記問題の発生を防止する。
Therefore, in the third embodiment, when the repository snapshot is deleted, the difference data held by the repository snapshot is reflected in the
まず、図14〜図16を用いて、第3の実施の形態におけるテストジョブの実行制御例を説明する。
図14は、テストジョブの実行制御例を示す第5の図である。図14では、ストレージ装置400においてリポジトリコピー431が作成された後に、リポジトリ101の更新イベントが発生し、これに伴ってテストサーバ300においてスレーブVM320eが起動したとする。ただし、この段階ではストレージ装置400においてリポジトリスナップショットが1つも作成されていないとする。
First, an example of execution control of a test job in the third embodiment will be described with reference to FIGS. 14 to 16.
FIG. 14 is a fifth diagram showing an example of execution control of a test job. In FIG. 14, it is assumed that the update event of the
管理サーバ200のリポジトリコントローラ220は、新たなリポジトリスナップショット(ここでは「リポジトリスナップショット445」)を作成する際に、すでに他のリポジトリスナップショットが存在するか(稼働中か)を判定する。図14のように他のリポジトリスナップショットが存在しない場合、リポジトリコントローラ220は、新たに作成されたリポジトリスナップショット445に優先権を付与する(ステップS61)。この優先権とは、リポジトリコピー431を更新できる権利を示す。
When creating a new repository snapshot (here, "
この後、第2の実施の形態と同様に、リポジトリ101からWAN52を介してリポジトリコピー431との間の差分データがダウンロードされ、差分データがリポジトリスナップショット445に反映される(ステップS62)。このとき、リポジトリスナップショット445に対応するビットマップ445aが更新される。そして、スレーブVM320eは、リポジトリスナップショット445からソースコードを読み込んでテスト環境のビルドを行い(ステップS63)、テストを実行する(ステップS64)。
After that, the difference data between the
図15は、テストジョブの実行制御例を示す第6の図である。図15では、スレーブVM320eでのテストの実行中にリポジトリ101の更新イベントが再度発生し、これに伴ってテストサーバ300においてスレーブVM320fが起動したとする。
FIG. 15 is a sixth diagram showing an example of execution control of a test job. In FIG. 15, it is assumed that the update event of the
管理サーバ200のリポジトリコントローラ220は、新たなリポジトリスナップショット(ここでは「リポジトリスナップショット446」)を作成する際に、すでに他のリポジトリスナップショットが存在するか(稼働中か)を判定する。図15の例ではすでにリポジトリスナップショット445が存在しているので、リポジトリコントローラ220は新たなリポジトリスナップショット446に優先権を付与しない。
When creating a new repository snapshot (here, "
この後、リポジトリ101からWAN52を介してリポジトリコピー431との間の差分データがダウンロードされ、差分データがリポジトリスナップショット446に反映される(ステップS71)。このとき、リポジトリスナップショット446に対応するビットマップ446aが更新される。そして、スレーブVM320fは、リポジトリスナップショット446からソースコードを読み込んでテスト環境のビルドを行い(ステップS72)、テストを実行する(ステップS73)。
After that, the difference data between the
図16は、テストジョブの実行制御例を示す第7の図である。図16の上側では、スレーブVM320eでのテストが完了し、スレーブVM320eが削除されたとする(ステップS81)。 FIG. 16 is a seventh diagram showing an example of execution control of a test job. On the upper side of FIG. 16, it is assumed that the test on the slave VM320e is completed and the slave VM320e is deleted (step S81).
管理サーバ200のリポジトリコントローラ220は、スレーブVM320eに仮想ディスクとして割り当てられていたリポジトリスナップショット445に、優先権が付与されているかを判定する。図14に示したように、リポジトリスナップショット445には優先権が付与されている。この場合、リポジトリコントローラ220は、リポジトリスナップショット445に格納された差分データをリポジトリコピー431に反映させるようにストレージ装置400に指示する。
The
ストレージ装置400のコントローラ401は、ビットマップ445aに基づいて、リポジトリスナップショット445に格納された差分データをリポジトリコピー431に反映させる。すなわち、コントローラ401は、リポジトリスナップショット445の論理ブロックのうち、ビットマップ445aにおけるビット値が「1」のビットに対応する論理ブロックからデータを読み出し、リポジトリコピー431における同じアドレスの論理ブロックに書き込む。これにより、リポジトリスナップショット445の作成時点におけるリポジトリ101の更新内容がリポジトリコピー431に反映される(ステップS82)。更新内容の反映処理が完了すると、リポジトリコントローラ220からの指示に応じてリポジトリスナップショット445が削除される(ステップS83)。
The
その後、図16の下側に示すように、スレーブVM320fでのテストが完了し、スレーブVM320fが削除される(ステップS84)。リポジトリコントローラ220は、スレーブVM320fに仮想ディスクとして割り当てられていたリポジトリスナップショット446に、優先権が付与されているかを判定する。図15に示したように、リポジトリスナップショット446には優先権が付与されていない。この場合、リポジトリコントローラ220は、差分データをリポジトリコピー431に反映させることなく、リポジトリスナップショット446を削除するようにストレージ装置400に指示する。これにより、リポジトリスナップショット446は削除される(ステップS85)。
After that, as shown in the lower part of FIG. 16, the test on the slave VM320f is completed, and the slave VM320f is deleted (step S84). The
次に、図14〜図16の処理が実行された場合におけるリポジトリコピー431の具体的な更新処理例について説明する。
図17は、リポジトリコピーの更新処理例を示す第1の図である。また、図18は、リポジトリコピーの更新処理例を示す第2の図である。
Next, a specific update processing example of the
FIG. 17 is a first diagram showing an example of update processing of the repository copy. Further, FIG. 18 is a second diagram showing an example of update processing of the repository copy.
図17では、説明を簡単にするために、リポジトリコピー431の生成時において、リポジトリ101にはソースコードに関するファイルF1〜F3が記憶されていたとする。この時点でのリポジトリ101内のデータのバージョンを「バージョン1」とする。したがって、図17の上側に示すように、リポジトリコピー431には初期状態において、バージョン1のファイルF1〜F3が記憶されている。
In FIG. 17, for the sake of simplicity, it is assumed that the files F1 to F3 related to the source code are stored in the
ここで、リポジトリ101内のファイルF2が更新されてリポジトリ101内のデータがバージョン2となり、この更新に応じて図14の処理が実行されてリポジトリスナップショット445が作成されたとする。このとき、リポジトリ101からはバージョン1に対する差分データとして、バージョン2のファイルF2がWAN52を介してダウンロードされ、リポジトリスナップショット445に格納される。また、図14に示したように、リポジトリスナップショット445には優先権が付与される。
Here, it is assumed that the file F2 in the
さらにその後、リポジトリ101内のファイルF3が更新されてリポジトリ101内のデータがバージョン3となり、この更新に応じて図15の処理が実行されてリポジトリスナップショット446が作成されたとする。このとき、リポジトリ101からはバージョン1に対する差分データとして、バージョン2のファイルF2とバージョン3のファイルF3とがWAN52を介してダウンロードされ、リポジトリスナップショット446に格納される。また、図15に示したように、リポジトリスナップショット446には優先権が付与されない。
After that, it is assumed that the file F3 in the
その後、図16の上側に示すように、スレーブVM320eによるリポジトリスナップショット445を用いたテストが完了し、スレーブVM320eが削除される。このとき、リポジトリスナップショット445に優先権が付与されていることから、図17の下側に示すように、リポジトリスナップショット445内のバージョン2のファイルF2によって、リポジトリコピー431内のバージョン1のファイルF2が更新される。そして、リポジトリスナップショット445が削除される。
After that, as shown in the upper part of FIG. 16, the test using the
さらにその後、図16の下側に示すように、スレーブVM320fによるリポジトリスナップショット446を用いたテストが完了し、スレーブVM320fが削除される。このとき、リポジトリスナップショット446には優先権が付与されていないことから、リポジトリコピー431への差分データの反映を行うことなく、リポジトリスナップショット446が削除される。
After that, as shown in the lower part of FIG. 16, the test using the
その結果、リポジトリコピー431には、バージョン1のファイルF1,F3とバージョン2のファイルF2とが記憶された状態となる。この状態で、リポジトリ101内のファイルF3が更新されてリポジトリ101内のデータがバージョン4になったとする。この場合、図18に示すように、新たなリポジトリスナップショット447が作成され、リポジトリ101から差分データがWAN52を介してダウンロードされる。
As a result, the version 1 files F1 and F3 and the
このとき、リポジトリコピー431にはバージョン2のデータが格納されているので、リポジトリ101からはバージョン2との差分データがダウンロードされる。この差分データとしてはバージョン4のファイルF3がダウンロードされ、リポジトリスナップショット447に格納される。
At this time, since the
前述の第2の実施の形態では、図18のようにリポジトリ101のデータがバージョン4に更新された場合、リポジトリ101からはバージョン2のファイルF2とバージョン4のファイルF3とがダウンロードされる。一方、第3の実施の形態では図18に示したように、リポジトリ101からはバージョン4のファイルF3のみがダウンロードされる。
In the second embodiment described above, when the data in the
このように、優先権が付与されたリポジトリスナップショット445の削除時において、リポジトリスナップショット445内の差分データによってリポジトリコピー431が更新されることで、その後のリポジトリ101の更新時におけるソースコードのダウンロード量を削減できる。また、稼働中のリポジトリスナップショットのうち最初に作成されたリポジトリスナップショットにだけ優先権が付与されることで、リポジトリコピー431の更新順をリポジトリ101の更新順と同じにすることができる。したがって、リポジトリコピー431の更新順を守り、リポジトリコピー431内のデータの整合性を維持できるようになる。さらに、リポジトリコピー431に対する更新が競合しなくなり、更新にかかる時間を削減できる。
In this way, when the
図19は、第3の実施の形態におけるテストジョブ実行時の処理手順の例を示すシーケンス図である。
管理サーバ200、テストサーバ300およびストレージ装置400の間では、まず、図12に示したステップS101〜S110の処理が実行される。すなわち、スレーブVMが起動し、リポジトリスナップショットが作成され、そのリポジトリスナップショットがスレーブVMの仮想ディスクとして割り当てられる。なお、スレーブVMの起動前の時点でリポジトリコピーが存在しない場合は、リポジトリコピーが作成された後、上記の処理が行われる。
FIG. 19 is a sequence diagram showing an example of a processing procedure at the time of executing a test job in the third embodiment.
First, the processes of steps S101 to S110 shown in FIG. 12 are executed between the
次に、図19に示すようにステップS131,S132が実行される。
[ステップS131]管理サーバ200のリポジトリコントローラ220は、優先権が付与されたリポジトリスナップショットが存在するかを判定する。この判定は、ステップS109の直前において、稼働中の他のリポジトリスナップショットがあるかによって行われてもよい。優先権が付与されたリポジトリスナップショットが存在しない場合、処理はステップS132に進められ、優先権が付与されたリポジトリスナップショットが存在する場合、ステップS132はスキップされる。
Next, steps S131 and S132 are executed as shown in FIG.
[Step S131] The
[ステップS132]リポジトリコントローラ220は、ステップS109で作成を指示したリポジトリスナップショットに優先権を付与する。例えば、リポジトリコントローラ220は、このリポジトリスナップショットに優先権を付与したことを示す情報を記憶部230に記録する。
[Step S132] The
その後、図12、図13に示したステップS111〜S121の処理が実行される。すなわち、リポジトリ101から差分データがダウンロードされリポジトリスナップショットに格納され、このリポジトリスナップショットを用いたビルドおよびテストが実行される。そして、テストが完了すると、テストを実行していたスレーブVMが削除される。
After that, the processes of steps S111 to S121 shown in FIGS. 12 and 13 are executed. That is, the difference data is downloaded from the
次に、図19に示すようにステップS133〜S135が実行される。
[ステップS133]リポジトリコントローラ220は、テストに利用されていたリポジトリスナップショットに優先権が付与されているかを判定する。優先権が付与されている場合、処理はステップS134に進められ、優先権が付与されていない場合、ステップS134はスキップされる。
Next, steps S133 to S135 are executed as shown in FIG.
[Step S133] The
[ステップS134]リポジトリコントローラ220は、リポジトリスナップショット内の更新データをリポジトリコピー431に反映させるように、ストレージ装置400に指示する。
[Step S134] The
[ステップS135]ストレージ装置400のコントローラ401は、リポジトリスナップショット内の更新データ(差分データ)をリポジトリコピー431に反映させる。具体的には、コントローラ401は、リポジトリスナップショットに対応するビットマップを参照する。そして、コントローラ401は、リポジトリスナップショットの論理ブロックのうち、ビットマップにおけるビット値が「1」のビットに対応する論理ブロックからデータを読み出し、リポジトリコピー431における同じアドレスの論理ブロックに書き込む。また、コントローラ401は、必要に応じてリポジトリコピー431に対応するボリューム管理データ431aも更新する。
[Step S135] The
その後、管理サーバ200のリポジトリコントローラ220はリポジトリスナップショットの削除を指示し(ステップS122)、ストレージ装置400のコントローラ401はリポジトリスナップショットを削除する(ステップS123)。
After that, the
ここで、上記の第2、第3の実施の形態におけるリポジトリスナップショットに対する差分データの反映処理について、説明を補足する。
第2、第3の実施の形態では、リポジトリコピー431についてのボリューム管理データ431aをストレージ装置400のコントローラ401が保持していた。しかし、ボリューム管理データ431aは管理サーバ200の記憶部230に保持されていてもよい。この場合、管理サーバ200のリポジトリコントローラ220は、ストレージ装置400のリポジトリスナップショットに差分データを反映させる際に、ボリューム管理データ431aに基づき、リポジトリスナップショット内の論理ブロックを直接指定して差分データを書き込むように制御することができる。
Here, the description of the reflection data reflection process for the repository snapshot in the second and third embodiments described above will be supplemented.
In the second and third embodiments, the
例えば、図13のステップS114,S115では、リポジトリコントローラ220は、リポジトリサーバ100から送信された差分データ(差分のファイル)を受信し、差分データに付与されたソフトウェアコンポーネントの識別番号とファイル名とを抽出する。リポジトリコントローラ220は、ボリューム管理データ431aを参照して、抽出した識別番号とファイル名とに基づき、リポジトリスナップショットの論理ブロックのうち、差分データを格納する論理ブロックを特定する。リポジトリコントローラ220は、特定した論理ブロックの識別番号を書き込み先として指定して、差分データをストレージ装置400に送信し、リポジトリスナップショットの該当論理ブロックに差分データを書き込むように指示する。これにより、差分データがリポジトリスナップショットに反映される。なお、リポジトリスナップショットに対応するビットマップの更新は、ストレージ装置400のコントローラ401によって行われればよい。
For example, in steps S114 and S115 of FIG. 13, the
なお、上記の各実施の形態に示した装置(例えば、テスト制御部1およびテスト実行部2が実装された情報処理装置、リポジトリサーバ100、管理サーバ200、テストサーバ300、コントローラ401)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
The processing functions of the devices shown in each of the above embodiments (for example, the information processing device on which the test control unit 1 and the
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When a program is distributed, for example, a portable recording medium such as a DVD or a CD on which the program is recorded is sold. It is also possible to store the program in the storage device of the server computer and transfer the program from the server computer to another computer via the network.
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。 The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes the processing according to the program. The computer can also read the program directly from the portable recording medium and execute the processing according to the program. In addition, the computer can sequentially execute processing according to the received program each time the program is transferred from the server computer connected via the network.
1 テスト制御部
2 テスト実行部
3 ストレージ
4 リポジトリ
5 ネットワーク
11,12 データ群
1
Claims (9)
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づいて、更新後の前記リポジトリに記憶されているソースコードのテストを実行するテスト実行部と、
を有する情報処理システム。 From the repository in which the source code of the program is stored, all the data in the repository is transmitted via the network and controlled so that it is copied to the storage as the first data group, and the data in the repository is updated. And, among the updated data in the repository, the difference data from the first data group is controlled to be transmitted from the repository via the network and copied to the storage as the second data group. Test control unit and
A test execution unit that executes a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.
Information processing system with.
更新後の前記リポジトリに対応するバックアップボリュームであって、実データとして前記フルバックアップボリュームとの差分のみ保持する差分バックアップボリュームを前記ストレージを用いて作成して、前記ネットワークを介して送信された前記第2のデータ群を前記差分バックアップボリュームに格納し、
前記差分バックアップボリュームから前記第2のデータ群を読み出して前記テスト実行部に送信するとともに、前記差分バックアップボリュームの記憶領域のうち前記第2のデータ群の記憶領域以外の他の記憶領域のデータを、前記フルバックアップボリュームから読み出して第3のデータ群として前記テスト実行部に送信する、
ストレージ制御部をさらに有し、
前記テスト実行部は、前記ストレージ制御部から送信された前記第2のデータ群および前記第3のデータ群を用いて前記テストを実行する、
請求項1記載の情報処理システム。 A full backup volume corresponding to the repository is created using the storage, and the first data group transmitted via the network is stored in the full backup volume.
A backup volume corresponding to the updated repository, which is a differential backup volume that holds only the difference from the full backup volume as actual data, is created by using the storage, and is transmitted via the network. The data group of 2 is stored in the differential backup volume, and
The second data group is read from the differential backup volume and transmitted to the test execution unit, and data in a storage area other than the storage area of the second data group in the storage area of the differential backup volume is stored. , Read from the full backup volume and send it to the test execution unit as a third data group.
It also has a storage control unit
The test execution unit executes the test using the second data group and the third data group transmitted from the storage control unit.
The information processing system according to claim 1.
請求項2記載の情報処理システム。 The test execution unit creates and operates a virtual machine, allocates the differential backup volume as a virtual storage device of the virtual machine, and executes the test using the data acquired from the virtual storage device by the virtual machine. To do
The information processing system according to claim 2.
前記テスト制御部は、
前記リポジトリ内のデータの更新を検知したとき、前記差分バックアップボリュームを作成するように前記ストレージ制御部に指示するとともに、更新を検知した時点で他の前記差分バックアップボリュームが作成されていたかを判定し、作成されていなかった場合、作成を指示した前記差分バックアップボリュームに優先権を付与し、
作成された前記差分バックアップボリュームを用いた前記テスト実行部による前記テストが完了すると、当該差分バックアップボリュームに前記優先権が付与されているかを判定し、前記優先権が付与されている場合、当該差分バックアップボリューム内の前記第2のデータ群を前記フルバックアップボリュームに反映させ、当該差分バックアップボリュームを削除するように前記ストレージ制御部に指示し、前記優先権が付与されていない場合、前記反映させる処理をスキップして当該差分バックアップボリュームを削除するように前記ストレージ制御部に指示する、
請求項2記載の情報処理システム。 The differential backup volume is created each time the data in the repository is updated.
The test control unit
When the update of the data in the repository is detected, the storage control unit is instructed to create the differential backup volume, and it is determined whether another differential backup volume has been created at the time when the update is detected. , If it has not been created, give priority to the differential backup volume that was instructed to create it.
When the test by the test execution unit using the created differential backup volume is completed, it is determined whether or not the priority is given to the differential backup volume, and if the priority is given, the difference is given. The process of reflecting the second data group in the backup volume to the full backup volume, instructing the storage control unit to delete the differential backup volume, and reflecting the priority when the priority is not given. Instruct the storage control unit to skip and delete the differential backup volume.
The information processing system according to claim 2.
前記リポジトリ内のデータが更新されると、更新後の前記リポジトリ内のデータのうち前記第1のデータ群との差分データが、前記リポジトリから前記ネットワークを介して送信され、第2のデータ群として前記ストレージにコピーされるように制御する第2の処理と、
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づく、更新後の前記リポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理と、を実行する処理部、
を有する情報処理装置。 From the repository in which the source code of the program is stored, the first process that controls so that all the data in the repository is transmitted via the network and copied to the storage as the first data group, and
When the data in the repository is updated, the difference data from the first data group among the updated data in the repository is transmitted from the repository via the network, and is used as the second data group. A second process that controls the data to be copied to the storage, and
A third process of causing the test device to execute the test of the source code stored in the updated repository based on the first data group and the second data group in the storage is executed. Processing unit,
Information processing device with.
前記第2の処理では、前記ストレージ制御装置に対して、更新後の前記リポジトリに対応するバックアップボリュームであって、実データとして前記フルバックアップボリュームとの差分のみ保持する差分バックアップボリュームを前記ストレージを用いて作成して、前記ネットワークを介して送信された前記第2のデータ群を前記差分バックアップボリュームに格納するように指示し、
前記テストは、前記ストレージ制御装置から送信された前記第2のデータ群と、前記ストレージ制御装置から送信された、前記差分バックアップボリュームの記憶領域のうち前記第2のデータ群の記憶領域以外の他の記憶領域のデータとを用いて実行される、
請求項5記載の情報処理装置。 In the first process, the storage control device that controls the storage creates a full backup volume corresponding to the repository using the storage, and the first data group transmitted via the network. Instructed to store in the full backup volume
In the second process, the storage is used as a backup volume corresponding to the updated repository for the storage control device, which holds only the difference from the full backup volume as actual data. And instructed to store the second data group transmitted via the network in the differential backup volume.
In the test, the second data group transmitted from the storage control device and the storage area of the differential backup volume transmitted from the storage control device other than the storage area of the second data group are used. Performed with data in the storage area of
The information processing device according to claim 5.
前記テストは、前記仮想マシンにより前記仮想記憶装置から取得したデータを用いて実行される、
請求項6記載の情報処理装置。 In the second process, the test device is instructed to create and operate a virtual machine and allocate the differential backup volume as a virtual storage device of the virtual machine.
The test is performed using the data acquired from the virtual storage device by the virtual machine.
The information processing device according to claim 6.
前記第2の処理では、前記リポジトリ内のデータの更新を検知したとき、前記差分バックアップボリュームを作成するように前記ストレージ制御装置に指示するとともに、更新を検知した時点で他の前記差分バックアップボリュームが作成されていたかを判定し、作成されていなかった場合、作成を指示した前記差分バックアップボリュームに優先権を付与し、
前記処理部はさらに、作成された前記差分バックアップボリュームを用いた前記テスト装置による前記テストが完了すると、当該差分バックアップボリュームに前記優先権が付与されているかを判定し、前記優先権が付与されている場合、当該差分バックアップボリューム内の前記第2のデータ群を前記フルバックアップボリュームに反映させ、当該差分バックアップボリュームを削除するように前記ストレージ制御装置に指示し、前記優先権が付与されていない場合、前記反映させる処理をスキップして当該差分バックアップボリュームを削除するように前記ストレージ制御装置に指示する、
請求項6記載の情報処理装置。 The differential backup volume is created each time the data in the repository is updated.
In the second process, when the update of the data in the repository is detected, the storage control device is instructed to create the differential backup volume, and when the update is detected, the other differential backup volume is sent. It is determined whether it has been created, and if it has not been created, priority is given to the differential backup volume instructed to create it.
Further, when the test by the test apparatus using the created differential backup volume is completed, the processing unit determines whether or not the priority is given to the differential backup volume, and the priority is granted. If so, the second data group in the differential backup volume is reflected in the full backup volume, the storage control device is instructed to delete the differential backup volume, and the priority is not given. , Instructs the storage control device to skip the reflection process and delete the differential backup volume.
The information processing device according to claim 6.
プログラムのソースコードが記憶されたリポジトリから、前記リポジトリ内の全データがネットワークを介して送信され、第1のデータ群としてストレージにコピーされるように制御する第1の処理と、
前記リポジトリ内のデータが更新されると、更新後の前記リポジトリ内のデータのうち前記第1のデータ群との差分データが、前記リポジトリから前記ネットワークを介して送信され、第2のデータ群として前記ストレージにコピーされるように制御する第2の処理と、
前記ストレージ内の前記第1のデータ群と前記第2のデータ群とに基づく、更新後の前記リポジトリに記憶されているソースコードのテストを、テスト装置に実行させる第3の処理と、
を実行させる情報処理プログラム。 On the computer
From the repository in which the source code of the program is stored, the first process that controls so that all the data in the repository is transmitted via the network and copied to the storage as the first data group, and
When the data in the repository is updated, the difference data from the first data group among the updated data in the repository is transmitted from the repository via the network, and is used as the second data group. A second process that controls the data to be copied to the storage, and
A third process of causing the test device to execute a test of the source code stored in the updated repository based on the first data group and the second data group in the storage.
An information processing program that executes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019171543A JP2021047806A (en) | 2019-09-20 | 2019-09-20 | Information processing system, information processing apparatus, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019171543A JP2021047806A (en) | 2019-09-20 | 2019-09-20 | Information processing system, information processing apparatus, and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021047806A true JP2021047806A (en) | 2021-03-25 |
Family
ID=74878550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019171543A Pending JP2021047806A (en) | 2019-09-20 | 2019-09-20 | Information processing system, information processing apparatus, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021047806A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024071870A1 (en) * | 2022-09-26 | 2024-04-04 | 주식회사 엘지에너지솔루션 | Battery data processing apparatus and operation method thereof |
-
2019
- 2019-09-20 JP JP2019171543A patent/JP2021047806A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024071870A1 (en) * | 2022-09-26 | 2024-04-04 | 주식회사 엘지에너지솔루션 | Battery data processing apparatus and operation method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI428830B (en) | Converting machines to virtual machines | |
US10067835B2 (en) | System reset | |
JP5724477B2 (en) | Migration program, information processing apparatus, migration method, and information processing system | |
JP4467624B2 (en) | Software update management program, software update management apparatus, and software update management method | |
US9804855B1 (en) | Modification of temporary file system for booting on target hardware | |
US20130036300A1 (en) | Method of fixing error of boot image for fast booting and image forming apparatus for performing the method | |
EP1637987A2 (en) | Operation environment associating data migration method | |
US20130042097A1 (en) | Method of updating boot image for fast booting and image forming apparatus for performing the method | |
US11698808B2 (en) | System and method of selectively restoring a computer system to an operational state | |
US8732427B2 (en) | Systems and methods for collapsing a derivative version of a primary storage volume | |
KR20090092570A (en) | Method and Apparatus of Inputting/Outputting Data Using Virtualization Technique | |
JP2015087906A (en) | Tape device, storage controller, and storage control method | |
CN113467882A (en) | Method and system for deploying containers | |
KR101576370B1 (en) | System and method for remote restoration of computer system, and computer-readable recording medium with program therefor | |
JP2021047806A (en) | Information processing system, information processing apparatus, and information processing program | |
JP7323769B2 (en) | Storage devices, storage systems and programs | |
US20220374256A1 (en) | Information processing system, information processing apparatus, method of controlling the same, and storage medium | |
JP6536618B2 (en) | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING SYSTEM, AND CONTROL PROGRAM | |
KR101850275B1 (en) | Method for generating boot image for fast booting and image forming apparatus for performing the same, method for performing fast booting and image forming apparatus for performing the same | |
KR101845467B1 (en) | Method for restoring error of boot image for fast booting and image forming apparatus for performing the same | |
KR101850272B1 (en) | Method for updating boot image for fast booting and image forming apparatus for performing the same | |
JP2008217202A (en) | Disk array device and firmware update method | |
KR100792786B1 (en) | Method for os restoring of computer using backup image file | |
KR20090123674A (en) | Soild state drive usable for a plurality of drive | |
JP2016181091A (en) | Information management apparatus, information management method, information management program, data structure, and software asset management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20231128 |