JP2021197098A - 継続的インテグレーションシステム及び継続的インテグレーション方法 - Google Patents

継続的インテグレーションシステム及び継続的インテグレーション方法 Download PDF

Info

Publication number
JP2021197098A
JP2021197098A JP2020105577A JP2020105577A JP2021197098A JP 2021197098 A JP2021197098 A JP 2021197098A JP 2020105577 A JP2020105577 A JP 2020105577A JP 2020105577 A JP2020105577 A JP 2020105577A JP 2021197098 A JP2021197098 A JP 2021197098A
Authority
JP
Japan
Prior art keywords
job
resource
execution
request
estimation
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.)
Granted
Application number
JP2020105577A
Other languages
English (en)
Other versions
JP7478037B2 (ja
Inventor
豪 竹内
Takeshi Takeuchi
重樹 東嶋
Shigeki Tojima
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020105577A priority Critical patent/JP7478037B2/ja
Publication of JP2021197098A publication Critical patent/JP2021197098A/ja
Application granted granted Critical
Publication of JP7478037B2 publication Critical patent/JP7478037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】各工程の処理前にモデルファイルや生成コードを静的に解析することで事前に処理の負荷を推定し処理の実行の際に割り当てるリソース量を最適化する。【解決手段】ファイルの構成管理を行うバージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群に依頼するCIサーバーを含む継続的インテグレーションシステムは、CIサーバーが、バージョン管理サーバーから入力ファイルを受け付けて、実行要求のパイプラインを構成するCIジョブ毎に、実行に要するリソースの推定を要求し、受信した推定結果に基づいてジョブ実行マシン群にCIジョブの実行を依頼するCIジョブ実行部と、CIジョブ実行部からの推定要求に応じて、CIジョブに割り当てるリソースを推定するリソース推定演算部と、リソース推定演算部からの推定結果に応じて、CIジョブに割り当てるリソースを決定するリソース決定演算部を有する。【選択図】図1

Description

本発明は、モデルベース開発での継続的インテグレーションシステムに関する。
モデルベース開発は、組み込みシステム開発において広く採用されている。モデルベース開発ではソフトウェア設計にモデルファイルを利用し、設計段階からシミュレーションを実行できるため設計の検証が早期に行えることから、ソフトウェアの信頼性が高くなることが特徴である。また、モデルファイルから直接自動的にコードが生成できるため、開発におけるコーディングの工数が削減できることも特徴である。
継続的インテグレーション(Continuous Integration、以下CI)は、仕様変更に伴うソースファイルの頻繁な変更に対してビルド及びテストをその都度自動的に実行し、エラーを早期に発見、修正することができる開発手法である。
CIにより、開発、テスト、リリースのサイクルが継続的に行われる仕組みが提供され、ソフトウェアの不具合を早期に発見、対処し、品質を短期で向上させることが可能となる。
従来のウォーターフォールに代表される開発手法では、一つの長い開発サイクルのために最終工程までビルド及びテストが実行されない。そのためビルドやテスト実行時にエラーが発生した場合、開発は最終工程であるために原因を解析するため非常に時間がかかるだけでなく、修正の際の手戻りが大きく、工数が増大する。
一方のアジャイル的ソフトウェア開発により開発サイクルが短いCIでは、その短いサイクルの中で都度ビルド及びテストを繰り返すため、エラーを早期に発見し、修正することが可能である。
また、開発初期の段階で仕様漏れや仕様違いに気が付くことができ、素早い修正が可能である。それにより従来の手法に比べ、リードタイムが削減できるだけでなく、一定の品質を保つことが可能である。
以下ではCIを構成するビルドやテストはジョブと呼ぶ。またジョブを内包した集まりをパイプラインと呼ぶ。
国際公開第2018/116460号
特許文献1は、過去のテストの履歴情報に着目し、各テストに必要なリソースを推定することにより、各テストのインスタンスに割り当てるリソースを変更し、テスト実行時に割り当てるリソース量を低減している。
前記先行技術文献でのテスト工程でのリソース消費量削減の手法は過去の実施データが必要であり、モデルベース開発での継続的インテグレーションにおけるコード生成やビルド工程への応用は困難である。
しかし、過去の履歴情報に基づくリソース推定は実施する処理の負荷が常に同等であるという前提の基で成り立っている。このため、モデルベース開発では処理の負荷がモデルファイルや生成コードに依存するだけでなく、それらのファイルは継続的インテグレーションにおいて日々単位で更新されるため、過去の履歴情報を利用したリソース推定は困難である。
本発明は以上の点を考慮してなされたもので、各工程の処理前にモデルファイルや生成コードを静的に解析することで事前に処理の負荷を推定し、その結果に基づいて各工程に割り当てるリソースを最適に配分し、各工程の処理実行時に割り当てるリソース量を最適化することを目的とする。
本発明は、ファイルの構成管理を行うバージョン管理サーバーと、前記バージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーと、前記CIサーバーからの要求に応じて前記CIジョブを実行するジョブ実行マシン群からなる継続的インテグレーションシステムであって、前記CIサーバーは、前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行部と、前記CIジョブ実行部からの推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算部と、前記リソース推定演算部からの推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算部を有し、前記リソース推定演算部は、前記CIジョブ実行部からのリソースの推定要求に応じて、前記CIジョブの前記入力ファイルから論理複雑度を算出し、前記リソース決定演算部は、前記リソース推定演算部から受け取った前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報から前記CIジョブを実行する実行マシンを決定する。
本発明によれば、過去の履歴情報に頼ることなく、日々単位で更新されるモデルファイルやソースファイル等のファイルに応じたリソースを最適に配分し、各工程(CIジョブ)の処理の実行の際に割り当てるリソースを最適化することが可能となる。
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
本発明の実施例を示し、継続的インテグレーションシステムの一例を示すブロック図である。 本発明の実施例を示し、バージョン管理サーバーの機能の一例を示すブロック図である。 本発明の実施例を示し、継続的インテグレーションサーバーの構成の一例を示すブロック図である。 本発明の実施例を示し、入力ファイルがモデルファイルの場合にリソース推定演算部で行われる処理の一例を示すフローチャートである。 本発明の実施例を示し、リソース決定演算部で行われる処理の一例を示すフローチャートである。 本発明の実施例を示し、ジョブ実行マシンと正規化論理複雑度の対応表を示す図である。 本発明の実施例を示し、パイプライン構成ファイルの一例を示す図である。
以下、本発明を実施するための実施形態について説明する。
図1は、継続的インテグレーション(以下、CI)システムの構成の一例を示すブロック図である。CIシステムは、ファイルの構成管理を行うバージョン管理サーバー40と、パイプライン72を構成するCIジョブ73−1〜73−Nを実行するために必要な計算機リソースを推定及び決定し、CIジョブ73−1〜73−Nの実行をジョブ実行マシン群200に要求するCIサーバー70と、CIジョブ73−1〜73−Nの処理を行う複数の実行マシン(計算機)211−1〜211−Mからなるジョブ実行マシン群200から構成される。
なお、CIジョブを個々に特定しない場合には、「−」以降を省略した符号「73」を使用する。また、他の構成要素の符号についても同様である。
バージョン管理サーバー40は、ファイル群の構成管理を行う機能を有し、ファイル群を管理するブランチ42と、複数のブランチ42を管理するリポジトリ41から構成される。図2は、バージョン管理サーバー40の機能の一例を示すブロック図である。
本実施例ではファイル群として、プログラムのソースファイルからなるソースファイル群43と、モデルを記述したモデルファイル群44と、CIスクリプト45と、パイプラインを構成するCIジョブ73を記述したパイプライン構成ファイル群48をブランチ42が管理する。
また、CIスクリプト45は、CIジョブ73の処理を記述したCIジョブスクリプト群46と、CIジョブ73に適切な実行マシン211を割り当てるための正規化論理複雑度−ジョブ実行マシン対応表47からなる。
CIサーバー70は、パイプライン72の構成に従ってCIジョブ73の実行管理を行うCIジョブ実行部71と、パイプライン72を構成するCIジョブ73に必要なリソースを推定するリソース推定演算部80と、推定されたリソースからCIジョブ73を実行するために必要なリソースを決定するリソース決定演算部90からなる。
なお、本実施例のパイプライン72は、CIジョブ73−1からCIジョブ73−Nを順次実行する例を示す。
ユーザー1はユーザー端末2を通じて入力ファイル群20をバージョン管理サーバー40へ送信する。バージョン管理サーバー40は受信した入力ファイル群20をリポジトリ41上のブランチ42へ格納する。
バージョン管理サーバー40は、受信した入力ファイル群20とブランチ42に格納されたファイル群との間に差分が存在する場合、CIサーバー70へファイル更新情報50とパイプライン入力ファイル51を送信する。
パイプライン入力ファイル51は、ブランチ42内の全てのファイルであるソースファイル群43と、モデルファイル群44と、CIスクリプト45と、パイプライン構成ファイル群48からなる。
ファイル更新情報50は、入力ファイル群20のうち、ソースファイル群43やモデルファイル群44で更新のあったファイルの情報が含まれる。
以下では入力ファイル群としてモデルファイル群44の例について説明する。
CIサーバー70は、バージョン管理サーバー40からCIサーバー70へファイル更新情報50とパイプライン入力ファイル51を受け付けると、CIジョブ実行部71が、パイプライン構成ファイル群48に記述されたそれぞれのCIジョブ73に対して、リソース推定要求81をリソース推定演算部80に送信し、リソース決定演算部90からリソース決定結果91を受け付けて、ジョブ実行マシン群200にCIジョブ73の実行を依頼する。
そして、CIサーバー70は、ジョブ実行マシン群200からジョブ実行結果100を受け付けると、パイプライン実行結果60をバージョン管理サーバー40へ送信する。
図7は、パイプライン構成ファイル500の一例を示す図である。本実施例におけるパイプライン構成ファイル500は、モデルファイル群44からコードを生成するジョブ501が記述されている。
CIジョブ実行部71はこのコード生成ジョブ501に関してリソース推定要求81をリソース推定演算部80に送信し、リソース決定演算部90からリソース決定結果91を受け付け、ジョブ実行マシン群200の実行マシン211にCIジョブ73の実行を依頼する。
リソース推定演算部80は、CIジョブ実行部71からリソース推定要求81を受け付けると、パイプライン入力ファイル51に存在するモデルファイル群44を用いて計算機リソースの推定を行い、正規化論理複雑度82を算出してリソース決定演算部90へ送信する。
リソース決定演算部90は、リソース推定演算部80から正規化論理複雑度82を受け付けると、パイプライン入力ファイル51に含まれる正規化論理複雑度−ジョブ実行マシン対応表47を参照して割り当てるリソースの決定を行う。
正規化論理複雑度82は0〜1の実数値であり、正規化論理複雑度−ジョブ実行マシン対応表47には、正規化論理複雑度の値とジョブ実行に適した実行マシンを紐づけるための情報が記載されている。
リソース決定演算部90は正規化論理複雑度82と、正規化論理複雑度−ジョブ実行マシン対応表47を用いて、CIジョブ73を実行する実行マシン211を一意に選択し、リソースの決定を行い、リソース決定結果91をCIジョブ実行部71へ送信する。
CIジョブ実行部71は、CIジョブ情報112と、ジョブ実行要求110をジョブ実行マシン群200へ送信する。ジョブ実行要求110はCIジョブ73を実行するマシン情報が含まれ、ジョブ実行マシン群200の中から一意に選択される。
選択された実行マシン211はCIジョブ情報112を基にCIジョブ73を実行した後、ジョブ実行結果100をCIサーバー70に送信する。
ジョブ実行マシン群200は、CIジョブ73の処理を行う複数の実行マシン211−1〜211−Mから構成されている。
図3は、CIサーバー70の構成の一例を示すブロック図である。CIサーバー70は、プロセッサ11と、メモリ12と、ストレージ装置13と、ネットワーク装置14とを含む計算機である。
メモリ12には、リソース推定演算部80と、リソース決定演算部90と、CIジョブ実行部71がロードされて、プロセッサ11によって実行される。
プロセッサ11は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ11は、リソース推定演算プログラムに従って処理を実行することでリソース推定演算部80として機能する。他のプログラムについても同様である。さらに、プロセッサ11は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
ネットワーク装置14には、ネットワーク15が接続される。ネットワーク15には、図1に示したバージョン管理サーバー40と、ジョブ実行マシン群200と、ユーザー端末2が接続されて相互に通信を行うことができる。
図4は、リソース推定演算部80で行われる処理の一例を示すフローチャートである。この処理は、CIサーバー70がバージョン管理サーバー40からファイル更新情報50と、パイプライン入力ファイル51を受信した場合に実行される。
まず、CIジョブ実行部71は、CIジョブ73を実行させる計算機リソースを推定するため、リソース推定要求81をリソース推定演算部80に送信する。
リソース推定演算部80は、リソース推定要求81を受信(301)すると、対象ファイル(例えば、モデルファイル)に対して論理複雑度の評価を実施する。リソース推定演算部80は、対象ファイルがモデルファイルの場合、論理複雑度の評価はモデルの入出力ポートサイズ(kB)を測定する(302)。
本実施例のCIサーバー70では、リソース推定演算部80がモデルファイルの入力ポートの数と出力ポートの数に各ポートのサイズを乗じた値の総和を入出力ポートサイズとして算出する。これにより、入出力ポートの数が大きいほど、CIジョブ73の処理負荷が増大するので、入出力ポートサイズはモデルファイルの処理負荷の指標として算出される。
なお、リソース推定演算部80は、CIサーバー70が受け付けたファイル更新情報50に基づいて、モデルファイル群44から最新のモデルファイルの情報を取得して入出力ポートサイズを測定する。また、上記では入出力ポートサイズをモデルファイルの処理負荷の指標とする例を示したが、これに限定されるものではなく、入力ポートの数と出力ポートの数の総和をモデルファイルの処理負荷の指標とすることができる。
測定した入出力ポートのサイズは、評価の簡単化のため、広く周知されている既存の方法を用いて正規化を行って論理複雑度として扱う(303)。正規化された論理複雑度は、正規化論理複雑度82としてリソース決定演算部90へ送信(304)される。
図5は、リソース決定演算部90で行われる処理の一例を示すフローチャートである。
リソース決定演算部90は正規化論理複雑度82を受信すると(401)、ジョブ実行マシン群200で使用する計算機リソースの決定処理を実施する。リソース決定演算部90は、正規化論理複雑度82と正規化論理複雑度−ジョブ実行マシン対応表47を比較し(402)、CIジョブ73を実行する実行マシン211を一意に決定する(403)。
リソース決定演算部90は、決定したCIジョブ73の実行マシン211の結果をリソース決定結果91としてCIジョブ実行部71へ送信する(404)。
上記処理によって、CIジョブ実行部71は、受信したリソース決定結果91に基づいてCIジョブ73を割り当てる実行マシン211にジョブ実行要求110と、入力ファイル111と、CIジョブ情報112を送信してCIジョブ73を実行させる。
CIジョブ実行部71は、CIジョブ73を割り当てた実行マシン211からジョブ実行結果100を受信すると、パイプライン72を構成するCIジョブ73のジョブ実行結果100をまとめてパイプライン実行結果60としてバージョン管理サーバー40へ送信する。
図6は、正規化論理複雑度−ジョブ実行マシン対応表47の一例を示す図である。正規化論理複雑度−ジョブ実行マシン対応表47は、実行マシンの性能470と、CIジョブ73−1〜73−N毎の正規化論理複雑度471−1〜471−Nを一つのエントリに含む。
実行マシンの性能470には、ジョブ実行マシン群200の実行マシン211毎の性能の指標が格納される。正規化論理複雑度471−1〜471−Nには、各CIジョブ73毎に予め設定された正規化論理複雑度の範囲が格納される。
また、実行マシン211の性能情報は、実行マシン211毎にそれぞれの構成に応じて予め設定される。実行マシン211毎の性能の指標としては、プロセッサの周波数やコア数に基づく指標や、搭載するメモリ容量などを指標とすることができる。
リソース決定演算部90は、リソース推定演算部75が算出したCIジョブ73の正規化論理複雑度82と、正規化論理複雑度471の範囲に応じて、CIジョブ73を実行するのに最適な実行マシン211を決定する。例えば、CIジョブ1(73−1)の実行マシンを割り当てる場合、正規化論理複雑度82の値が0.1以上0.4未満であれば実行マシンMにCIジョブ1(73−1)を割り当て、正規化論理複雑度82の値が0.4以上0.8未満であれば実行マシン2にCIジョブ1(73−1)を割り当て、正規化論理複雑度82の値が0.8以上1以下であれば実行マシン1にCIジョブ1(73−1)を割り当てる。
CIジョブ73毎のマシン割り当ての変更は、対応する正規化論理複雑度471のレンジの閾値を適宜変更することにより実現できる。特に正規化論理複雑度が0の場合は該対応表の中に最適なマシンは存在しない。
正規化論理複雑度が0とは、CIジョブ73の処理対象のファイルに論理が含まれていない場合であり、CIジョブ73として必要な処理がないと判断することが可能である。この場合、リソース決定演算部90は、CIジョブ実行部71には最適な実行マシン211はないという情報が送信される。
正規化論理複雑度は、CIジョブ73の種類毎に正規化論理複雑度−ジョブ実行マシン対応表47の値を設定すればよく、CIジョブ73がコンパイルの場合では、ソースファイルの行数を論理複雑度として算出し、CIジョブ73がテストの場合では、テストベクターを論理複雑度として算出すればよい。
また、論理複雑度は、CIジョブ73を処理する際の実行マシン211の負荷を表す指標であればよく、上記に限定されるものではない。
以上のように、本実施例のCIサーバー70は、過去の履歴情報に頼ることなく、各CIジョブ73(各工程)の実行前にモデルファイルやソースファイルを静的に解析することで事前に処理の負荷を正規化論理複雑度として推定し、推定結果に基づいて各CIジョブ73(工程)を割り当てるリソース(実行マシン211)を最適に配分することができる。
<結び>
以上のように、上記実施例の継続的インテグレーションシステムは、以下のような構成とすることができる。
(1)ファイル(入力ファイル群20)の構成管理を行うバージョン管理サーバー(40)と、前記バージョン管理サーバー(40)からの要求に応じてCIジョブ(73)の実行をジョブ実行マシン群(200)の実行マシン(211)に依頼するCIサーバー(70)と、前記CIサーバー(70)からの要求に応じて前記CIジョブ(73)を実行するジョブ実行マシン群(200)からなる継続的インテグレーションシステムであって、前記CIサーバー(70)は、前記バージョン管理サーバー(40)から入力ファイルを受け付けて、実行要求のあったパイプライン(72)を構成するCIジョブ(73)毎に、実行に必要なリソースの推定要求(81)を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群(200)の実行マシン(211)にCIジョブ(73)の実行を依頼するCIジョブ実行部(71)と、前記CIジョブ実行部(71)からの推定要求(81)に応じて、前記CIジョブ(73)に割り当てるリソースを推定するリソース推定演算部(80)と、前記リソース推定演算部(80)からの推定結果(正規化論理複雑度822)に応じて、前記CIジョブ(73)に割り当てるリソースを決定するリソース決定演算部(90)を有し、前記リソース推定演算部(80)は、前記CIジョブ実行部(71)からのリソースの推定要求(91)に応じて、前記CIジョブ(73)の前記入力ファイルから論理複雑度(82)を算出し、前記リソース決定演算部(90)は、前記リソース推定演算部(80)から受け取った前記論理複雑度(82)に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報(47)から前記CIジョブ(73)を実行する実行マシン(211)を決定することを特徴とする継続的インテグレーションシステム。
上記構成により、過去の履歴情報に頼ることなく、日々単位で更新されるモデルファイルやソースファイル等の入力ファイルの更新情報に応じてCIジョブ73を実行するリソースを最適に配分し、各工程(CIジョブ)の処理の実行の際に割り当てるリソースを最適化することが可能となる。
(2)上記(1)に記載の継続的インテグレーションシステムであって、前記リソース推定演算部(80)は、前記入力ファイルを処理する際の負荷の指標として前記論理複雑度を算出することを特徴とする継続的インテグレーションシステム。
上記構成により、入力ファイルの種類に応じて論理複雑度を算出することで、パイプライン72を構成する各CIジョブ73間で処理負荷に応じたリソースの割り当てを最適化することができる。
(3)上記(2)に記載の継続的インテグレーションシステムであって、前記リソース推定演算部(80)は、前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度(82)を算出することを特徴とする継続的インテグレーションシステム。
上記構成により、入力ファイルがモデルファイルの場合は、入力ポートの数と出力ポートの数の総和の大きさに応じて処理負荷が増大すると予測することができ、論理複雑度の大きさに応じて実行マシン211を決定することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1 ユーザー
2 ユーザー端末
20 入力ファイル群
40 バージョン管理サーバー
41 リポジトリ
42 ブランチ
43 ソースファイル群
44 モデルファイル群
45 CIスクリプト
46 CIジョブ用スクリプト群
47 正規化論理複雑度−ジョブ実行マシン対応表
48 パイプライン構成ファイル群
50 ファイル更新情報
51 パイプライン入力ファイル
60 パイプライン実行結果
70 CIサーバー
71 CIジョブ実行部
72 パイプライン
73−1〜73−N CIジョブ1〜N
80 リソース推定演算部
81 リソース推定要求
82 正規化論理複雑度
90 リソース決定結果
100 ジョブ実行結果
110 ジョブ実行要求
111 入力ファイル
112 CIジョブ情報
200 ジョブ実行マシン群
211−1〜211−M 実行マシン1〜M
501 コード生成ジョブ

Claims (6)

  1. ファイルの構成管理を行うバージョン管理サーバーと、
    前記バージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーと、
    前記CIサーバーからの要求に応じて前記CIジョブを実行するジョブ実行マシン群からなる継続的インテグレーションシステムであって、
    前記CIサーバーは、
    前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行部と、
    前記CIジョブ実行部からの推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算部と、
    前記リソース推定演算部からの推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算部を有し、
    前記リソース推定演算部は、
    前記CIジョブ実行部からのリソースの推定要求に応じて、前記CIジョブの前記入力ファイルから論理複雑度を算出し、
    前記リソース決定演算部は、
    前記リソース推定演算部から受け取った前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報から前記CIジョブを実行する実行マシンを決定することを特徴とする継続的インテグレーションシステム。
  2. 請求項1に記載の継続的インテグレーションシステムであって、
    前記リソース推定演算部は、
    前記入力ファイルを処理する際の負荷の指標として前記論理複雑度を算出することを特徴とする継続的インテグレーションシステム。
  3. 請求項2に記載の継続的インテグレーションシステムであって、
    前記リソース推定演算部は、
    前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度を算出することを特徴とする継続的インテグレーションシステム。
  4. ファイルの構成管理を行うバージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーが前記CIジョブを実行するジョブ実行マシン群を制御する継続的インテグレーション方法であって、
    前記CIサーバーが、前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行ステップと、
    前記CIサーバーが、前記推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算ステップと、
    前記CIサーバーが、前記推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算ステップと、を含み、
    前記リソース推定演算ステップは、
    前記リソースの推定要求に応じて、前記CIジョブの前記入力ファイルから論理複雑度を算出し、
    前記リソース決定演算ステップは、
    前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報から前記CIジョブを実行する実行マシンを決定することを特徴とする継続的インテグレーション方法。
  5. 請求項4に記載の継続的インテグレーション方法であって、
    前記リソース推定演算ステップは、
    前記入力ファイルを処理する際の負荷の指標として前記論理複雑度を算出することを特徴とする継続的インテグレーション方法。
  6. 請求項5に記載の継続的インテグレーション方法であって、
    前記リソース推定演算ステップは、
    前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度を算出することを特徴とする継続的インテグレーション方法。
JP2020105577A 2020-06-18 2020-06-18 継続的インテグレーションシステム及び継続的インテグレーション方法 Active JP7478037B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020105577A JP7478037B2 (ja) 2020-06-18 2020-06-18 継続的インテグレーションシステム及び継続的インテグレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020105577A JP7478037B2 (ja) 2020-06-18 2020-06-18 継続的インテグレーションシステム及び継続的インテグレーション方法

Publications (2)

Publication Number Publication Date
JP2021197098A true JP2021197098A (ja) 2021-12-27
JP7478037B2 JP7478037B2 (ja) 2024-05-02

Family

ID=79195848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020105577A Active JP7478037B2 (ja) 2020-06-18 2020-06-18 継続的インテグレーションシステム及び継続的インテグレーション方法

Country Status (1)

Country Link
JP (1) JP7478037B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952961B2 (en) 2015-09-29 2018-04-24 International Business Machines Corporation Assessing risk of software commits to prioritize verification resources
JP6692454B2 (ja) 2016-12-22 2020-05-13 株式会社日立製作所 継続的インテグレーションシステム及びリソース制御方法

Also Published As

Publication number Publication date
JP7478037B2 (ja) 2024-05-02

Similar Documents

Publication Publication Date Title
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US9003239B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
KR20190070659A (ko) 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
US20120173838A1 (en) Data storage system and method
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
US20180248768A1 (en) Identification of mutual influence between cloud network entities
CN108647137B (zh) 一种作业性能预测方法、装置、介质、设备及系统
WO2021141875A1 (en) Automated local scaling of compute instances
JP2021152711A (ja) オペレータ管理装置、オペレータ管理方法及びオペレータ管理コンピュータープログラム
JP6692454B2 (ja) 継続的インテグレーションシステム及びリソース制御方法
CN113296905A (zh) 调度方法、装置、电子设备、存储介质及软件产品
US20110191094A1 (en) System and method to evaluate and size relative system performance
CN108139929B (zh) 用于调度多个任务的任务调度装置和方法
CN109992408B (zh) 一种资源分配方法、装置、电子设备和存储介质
CN113703975A (zh) 模型分配方法、装置、电子设备及计算机可读存储介质
US8122117B2 (en) Determining an imbalance among computer-component usage
JP5321195B2 (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
CN110737509B (zh) 热迁移处理方法及装置、存储介质和电子设备
JP2021197098A (ja) 継続的インテグレーションシステム及び継続的インテグレーション方法
CN114741160A (zh) 一种基于平衡能耗与服务质量的动态虚拟机整合方法和系统
CN114090213A (zh) 任务处理方法、装置、设备及存储介质
JP2024063653A (ja) 継続的インテグレーションシステム、及び継続的インテグレーション方法
JP5500301B2 (ja) 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム
KR102022972B1 (ko) 이종 멀티 프로세싱 시스템 환경 기반 런타임 관리장치 및 방법
US10592813B1 (en) Methods and apparatus for data operation pre-processing with probabilistic estimation of operation value

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240207

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: 20240326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150