JP7804520B2 - Template deployment system and template deployment method - Google Patents
Template deployment system and template deployment methodInfo
- Publication number
- JP7804520B2 JP7804520B2 JP2022072215A JP2022072215A JP7804520B2 JP 7804520 B2 JP7804520 B2 JP 7804520B2 JP 2022072215 A JP2022072215 A JP 2022072215A JP 2022072215 A JP2022072215 A JP 2022072215A JP 7804520 B2 JP7804520 B2 JP 7804520B2
- Authority
- JP
- Japan
- Prior art keywords
- template
- deployment
- state
- templates
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Description
本発明は、テンプレートデプロイシステム及びそれを用いたテンプレートデプロイ方法に関する。 The present invention relates to a template deployment system and a template deployment method using the same.
クラウドを用いることを前提としたクラウドネイティブなアプリケーション(以下、アプリと表記する)開発において、テンプレートによるインフラストラクチャー(以下、インフラと表記する)やミドルウェアの構築の迅速化が進んでいる。アプリ開発において、インフラ要件あるいはシステム要件に応じたテンプレートを組み合わせ、デプロイすることで、クラウドネイティブに詳しくない現場システムエンジニアの負担を軽減することができ、また、現場の知見をテンプレートとして蓄積することによって他案件に展開することもできる。 In the development of cloud-native applications (hereafter referred to as "apps") that are based on the cloud, the use of templates is accelerating the construction of infrastructure (hereafter referred to as "infrastructure") and middleware. In app development, combining and deploying templates based on infrastructure or system requirements reduces the burden on on-site system engineers who are not familiar with cloud-native technology, and by accumulating on-site knowledge as templates, it can also be applied to other projects.
特許文献1には、クラウドサービスのシステム要件及びアプリケーション要件が記載されたオーダーシートのコードへの変換、リソースのデプロイ及びリソースのテストを自動化する情報処理システムが開示されている。 Patent Document 1 discloses an information processing system that automates the conversion of order sheets containing system requirements and application requirements for cloud services into code, as well as the deployment and testing of resources.
要件に応じて複数のテンプレートを組み合わせてデプロイする場合、あるテンプレートのデプロイがそれを参照する他のテンプレートのデプロイに影響を及ぼす。これを依存関係と呼ぶ。 When combining and deploying multiple templates according to your requirements, the deployment of one template will affect the deployment of other templates that reference it. This is called a dependency.
特許文献1に開示される情報処理システムでは、コードに基づいてクラウド上にリソースをデプロイさせ、リソースに対するテストを実行させてリソースの使用可否を判定するよう制御する判定制御部を備えている。しかしながら、特許文献1の判定制御部では、テンプレート同士の依存関係の判定を行わないので、ユーザが依存関係を考慮してデプロイするテンプレートを選択する必要がある。 The information processing system disclosed in Patent Document 1 is equipped with a determination control unit that deploys resources to the cloud based on code and executes tests on the resources to determine whether the resources can be used. However, the determination control unit in Patent Document 1 does not determine the dependency relationships between templates, so the user must select the templates to deploy while taking the dependency relationships into consideration.
本発明の一実施態様であるテンプレートデプロイシステムは、プロジェクトに応じて選択された一連のテンプレートをデプロイ環境にデプロイするテンプレートデプロイシステムであって、プロジェクトがとり得る複数種類の状態を定義する状態定義テーブルと、テンプレートがデプロイ可能な状態を示す事前条件とテンプレートのデプロイ後に満たすべき状態を示す事後条件とを定義するテンプレート定義テーブルと、を格納するデータベースと、一連のテンプレートをデプロイ環境にデプロイするテンプレートデプロイ部と、を有し、テンプレート定義テーブルにおいて事前条件及び事後条件は、状態定義テーブルにおいて定義された状態の論理式として定義され、テンプレートデプロイ部は、一連のテンプレートを先頭から順にデプロイを行うにあたり、デプロイするテンプレートに定義された事前条件と事後条件とを満たすか否かをテストし、テストが正常に終了した場合に当該テンプレートをデプロイ環境にデプロイする。 One embodiment of the present invention is a template deployment system that deploys a series of templates selected according to a project into a deployment environment. The system includes a database that stores a state definition table that defines multiple states that a project can be in, and a template definition table that defines preconditions that indicate states in which a template can be deployed and postconditions that indicate states that must be met after the template is deployed, and a template deployment unit that deploys the series of templates into the deployment environment. In the template definition table, the preconditions and postconditions are defined as logical expressions for the states defined in the state definition table. As the template deployment unit deploys the series of templates in order from the top, it tests whether the preconditions and postconditions defined in the template to be deployed are met, and if the test is successful, it deploys the template into the deployment environment.
本発明によれば、テンプレート同士を疎結合に保ったまま、依存関係に基づいたテンプレートのデプロイが可能になる。 This invention makes it possible to deploy templates based on dependencies while maintaining loose coupling between templates.
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 Details of at least one implementation of the subject matter disclosed herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosed subject matter will become apparent from the following disclosure, drawings, and claims.
本発明のアプローチを一例に即して説明する。ユーザがクラウド上にリレーショナルデータベース(RDB)を作成し、RDBのメトリクス(例えば、CPU使用率やメモリ使用率など)を収集するインフラ構築(プロジェクト)を考えているとする。この場合、図2Aに示すように、クラウドの物理マシン本体のOS(ホストOS)上に構築される実行環境(「コンテナ」)へのITリソースの割当てや監視を行う高可用コンテナ基盤テンプレート、RDBを作成するRDBテンプレート、コンテナからメトリクスを収集するメトリクス収集テンプレートといったテンプレートが必要となる。しかしながら、例えば、RDBを1つのアベイラビリティゾーン(AZ)に作成するのではなく、複数のアベイラビリティゾーンに作成し、遠隔地同士のデータセンターにより冗長化させる場合には、RDBテンプレートではなく、冗長化RDBsテンプレートを使用する必要があり、また、RDBからメトリクスを出力させるRDB Exporterテンプレートも冗長化されたRDBに対応するものである必要がある。従来は、それぞれのテンプレートにより構築されるインフラ状態をユーザがよく理解した上で、依存関係を踏まえて適切なテンプレートを選択し、デプロイする必要があった。 The approach of the present invention will be explained using an example. Suppose a user is considering an infrastructure construction (project) to create a relational database (RDB) on the cloud and collect RDB metrics (e.g., CPU utilization, memory utilization, etc.). In this case, as shown in Figure 2A, templates are required: a high-availability container infrastructure template that allocates and monitors IT resources to the execution environment ("container") built on the OS (host OS) of the physical machine in the cloud; an RDB template that creates the RDB; and a metrics collection template that collects metrics from the container. However, for example, if the RDB is created in multiple availability zones (AZ) rather than in a single one, and redundancy is achieved through remote data centers, a redundant RDB template must be used instead of the RDB template. Furthermore, the RDB Exporter template that outputs metrics from the RDB must also be compatible with the redundant RDB. Previously, users had to thoroughly understand the infrastructure state that would be created by each template, select the appropriate template based on dependencies, and then deploy it.
これに対して、本発明においては、それぞれのテンプレートに対して、当該テンプレートをデプロイ可能な条件である事前条件と当該テンプレートのデプロイ後に満たすべき事後条件とをそれぞれプロジェクトがとり得る状態の論理式により定義しておく。例えば、図2Bの例でいえば、冗長化RDBsテンプレートをデプロイするには、「高可用コンテナ基盤テンプレートがデプロイされている」、「複数アベイラビリティゾーンである」、という2つのインフラ状態を満たしていることが条件である。このため、冗長化RDBsテンプレートが事前条件を満たすことをテストし、成功した場合に冗長化RDBsテンプレートのデプロイを実行する。また、冗長化RDBsテンプレートのデプロイ後には、事後条件のテストを行う。テストは、事前条件と事後条件とが状態の論理式で定義されていることにより、Pythonやgoなどの言語で作成されたテストスクリプトによって実行できる。 In contrast, in this invention, for each template, preconditions, which are the conditions under which the template can be deployed, and postconditions, which must be met after the template is deployed, are defined using logical expressions for the project's possible states. For example, in the example of Figure 2B, deploying the redundant RDBs template requires two infrastructure conditions: "The high-availability container infrastructure template is deployed" and "Multiple availability zones." Therefore, the redundant RDBs template is tested to ensure that it meets the preconditions, and if successful, the redundant RDBs template is deployed. In addition, after the redundant RDBs template is deployed, the postconditions are tested. Because the preconditions and postconditions are defined using logical state expressions, the test can be performed using a test script written in a language such as Python or Go.
さらに、図2Bの例では、「冗長化RDBsテンプレートがデプロイされている」というインフラ状態は、RDB Exporter(複数)テンプレートの事前条件の1つになっている。このように、テンプレートの満たすべき事前条件と事後条件をあらかじめプロジェクトがとり得る状態の論理式として定義しておき、事前条件と事後条件を満足するテンプレートの順列を選択し、順次デプロイすることにより、ユーザはテンプレート間の依存関係を意識することなく、テンプレートを用いたインフラ構築が行える。 Furthermore, in the example of Figure 2B, the infrastructure state "Redundant RDBs template deployed" is one of the preconditions for the RDB Exporter (multiple) templates. In this way, by defining the preconditions and postconditions that the template must satisfy in advance as logical expressions for the possible states of the project, selecting a permutation of templates that satisfy the preconditions and postconditions, and deploying them sequentially, users can build infrastructure using templates without being aware of the dependencies between templates.
本発明とは異なるアプローチとして、依存関係による条件分岐をテンプレートにハードコードするアプローチも考えられる。しかしながら、このアプローチは、テンプレート同士が密結合化することになり、テンプレートのメンテナンスや組み換えが困難になることから望ましくないものである。 An alternative approach to the present invention would be to hard-code conditional branching based on dependencies into templates. However, this approach is undesirable because it would result in tightly coupled templates, making maintenance and recombination of templates difficult.
以下、図面を参照しながら本発明の実施例について説明する。なお、実施例でのテンプレートはITリソースの構築をコード化したIaC(Infrastructure as Code)であり、この場合、後述するプロジェクト要件やテンプレートの事前条件、事後条件は、プロジェクトのとり得る状態、すなわちインフラ状態の論理式として表される。テンプレートはIaCに限られず、例えばミドルウェアの構築をコード化したものであってもよく、本実施例のIaCに限定されない。この場合、プロジェクト要件やテンプレートの事前条件、事後条件は、テンプレートがコード化した内容に応じてプロジェクトのとり得る状態の論理式として表される。 An embodiment of the present invention will now be described with reference to the drawings. The templates in the embodiment are IaC (Infrastructure as Code), which encodes the construction of IT resources. In this case, the project requirements and template pre-conditions and post-conditions, which will be described later, are expressed as logical expressions for the possible states of the project, i.e., the infrastructure state. The template is not limited to IaC and may, for example, be a coded version of the construction of middleware, and is not limited to the IaC of the embodiment. In this case, the project requirements and template pre-conditions and post-conditions are expressed as logical expressions for the possible states of the project according to the content coded in the template.
図1Aは、テンプレートデプロイシステムの主要な構成の一例を示すブロック図である。本実施例のテンプレートデプロイシステムは、共有データベース100、ユーザ環境(サーバ)200、デプロイ環境(クラウド)300がネットワークにより通信可能に接続されている。 Figure 1A is a block diagram showing an example of the main configuration of a template deployment system. In this embodiment, the template deployment system includes a shared database 100, a user environment (server) 200, and a deployment environment (cloud) 300, all of which are connected to each other via a network so that they can communicate with each other.
ユーザ環境200は具体的には、図1Bに示すようなプロセッサ(CPU)401、メモリ402、ストレージ装置403、入出力装置404、通信装置405、バス406を主要な構成として含む情報処理装置により実現される。プロセッサ401は、メモリ402にロードされたプログラムに従って処理を実行することによって、所定の機能を提供する機能部として機能する。例えば、プロセッサ401は、インフラ要件定義プログラムを実行することでインフラ要件定義部220として機能する。他のプログラムについても同様である。ストレージ装置403は、機能部で使用するデータやプログラムを格納する。入出力装置404は、キーボード、ポインティングデバイスなどの入力装置と、ディスプレイなどの出力装置とを含む。通信装置405は、ネットワークを介して他の情報処理装置と通信を可能にする。これらはバス406により互いに通信可能に接続されている。 Specifically, the user environment 200 is realized by an information processing device whose main components are a processor (CPU) 401, memory 402, storage device 403, input/output device 404, communication device 405, and bus 406, as shown in FIG. 1B. The processor 401 functions as a functional unit that provides specified functions by executing processes in accordance with programs loaded into memory 402. For example, the processor 401 functions as the infrastructure requirements definition unit 220 by executing an infrastructure requirements definition program. The same applies to other programs. The storage device 403 stores data and programs used by the functional units. The input/output device 404 includes input devices such as a keyboard and pointing device, and an output device such as a display. The communication device 405 enables communication with other information processing devices via a network. These are connected to each other via the bus 406 so that they can communicate with each other.
ユーザインタフェース210、インフラ要件定義部220、テンプレート探索部230、テンプレートバリデーション部240、テンプレートデプロイ部250の各機能部が実行される過程で、プロジェクトファイル260が作成され、ストレージ装置403に格納される。ユーザは、ユーザ環境200において各機能部を実行することによってテンプレートの順列を選択し、選択したテンプレートをデプロイ環境(クラウド)300に順次デプロイすることによってインフラ構築を行う。各機能部及びプロジェクトファイル260の詳細については後述する。 As each functional unit, the user interface 210, infrastructure requirements definition unit 220, template search unit 230, template validation unit 240, and template deployment unit 250, is executed, a project file 260 is created and stored in the storage device 403. The user selects a template sequence by executing each functional unit in the user environment 200, and builds infrastructure by sequentially deploying the selected templates to the deployment environment (cloud) 300. Details of each functional unit and the project file 260 will be described later.
共有データベース100には、上記過程で使用する、インフラ要件定義テーブル110、テンプレート定義テーブル120、インフラ状態定義テーブル130が格納されている。これらのテーブルの詳細についても後述する。 The shared database 100 stores the infrastructure requirements definition table 110, template definition table 120, and infrastructure status definition table 130 used in the above process. Details of these tables will be described later.
ユーザはユーザインタフェース210により、デプロイシステムとインタラクティブにインフラ要件の設定からテンプレートのデプロイまで実行する。その流れを図3に示す。以下、図3に沿って、本実施例のテンプレートデプロイ処理について説明する。 The user interacts with the deployment system via the user interface 210, performing tasks from configuring infrastructure requirements to deploying the template. This process is shown in Figure 3. The template deployment process of this embodiment will be explained below with reference to Figure 3.
最初に、構築するインフラの要件指定を行う(211)。本実施例はプロジェクトがインフラ構築であるので、プロジェクトの要件はインフラ要件によって定義される。インフラ要件の指定は、インフラ要件定義部220によって行われる。インフラ要件定義部220の処理フローを図4に示す。 First, the requirements for the infrastructure to be constructed are specified (211). In this embodiment, since the project is infrastructure construction, the project requirements are defined by the infrastructure requirements. The infrastructure requirements are specified by the infrastructure requirements definition unit 220. The processing flow of the infrastructure requirements definition unit 220 is shown in Figure 4.
インフラ要件定義部220は共有データベース100からインフラ要件定義テーブル110を読み込み、ユーザ環境200の入出力装置404であるティスプレイに要件名、要件詳細を表示することにより、ユーザに提示する(S01)。 The infrastructure requirements definition unit 220 reads the infrastructure requirements definition table 110 from the shared database 100 and presents it to the user by displaying the requirement name and requirement details on the display, which is the input/output device 404 of the user environment 200 (S01).
図10にインフラ要件定義テーブル110のデータ構造の一例を示す。要件ID111にはインフラ要件(プロジェクト要件)を一意に特定するIDが、要件名112にはインフラ要件の概要を表す名称が、インフラ要件詳細113にはインフラ要件の詳細内容が、インフラ要件条件式114にはインフラ状態の論理式による当該インフラ要件の表現が格納されている。インフラ要件条件式114について、例えば、要件R01は「NewProject」というインフラ状態を作り出すことである。この場合は、単一のインフラ状態であるが、要件R02は「NewProject」と「ResourceQuota」という2つのインフラ状態の論理和(組み合わせ)で示されるインフラ状態を作り出すことである。 Figure 10 shows an example of the data structure of the infrastructure requirements definition table 110. Requirement ID 111 stores an ID that uniquely identifies the infrastructure requirement (project requirement), requirement name 112 stores a name that outlines the infrastructure requirement, infrastructure requirement details 113 stores detailed content of the infrastructure requirement, and infrastructure requirement conditional expression 114 stores an expression of the infrastructure requirement using a logical expression for the infrastructure state. Regarding infrastructure requirement conditional expression 114, for example, requirement R01 is to create an infrastructure state called "NewProject". In this case, this is a single infrastructure state, but requirement R02 is to create an infrastructure state represented by the logical OR (combination) of two infrastructure states, "NewProject" and "ResourceQuota".
インフラ要件条件式114の論理式に使用されるインフラ状態は、インフラ状態定義テーブル130において定義されている。図12にインフラ状態定義テーブル130のデータ構造の一例を示す。インフラ状態ID131にはインフラ状態を一意に特定するIDが、状態説明132にはインフラ状態の定義が、状態パラメータ定義133にはインフラ状態の有するパラメータ(「状態パラメータ」という)の定義が、テストパラメータ定義134にはテンプレートのテストに使用するテストパラメータの定義が格納されている。 The infrastructure state used in the logical expression of the infrastructure requirement condition formula 114 is defined in the infrastructure state definition table 130. Figure 12 shows an example of the data structure of the infrastructure state definition table 130. The infrastructure state ID 131 stores an ID that uniquely identifies the infrastructure state, the state description 132 stores a definition of the infrastructure state, the state parameter definition 133 stores definitions of the parameters (referred to as "state parameters") that the infrastructure state has, and the test parameter definition 134 stores definitions of the test parameters used to test the template.
図4の説明に戻る。ユーザは、提示されたインフラ要件の中から、達成したいインフラ要件を1または複数選択する(S02)。インフラ要件定義部220は、選択されたインフラ要件に対応するインフラ要件条件式を組み合わせ(S03)、ユーザが選択したインフラ要件と組み合わせた条件式とをプロジェクトファイル260に出力する(S04)。図13に示すプロジェクトファイル260のデータ構造例において、ユーザ選択要件261にユーザが選択したインフラ要件の要件IDがリスト形式([要件ID,・・・])で格納されている例を示している。ユーザが構築するインフラのインフラ要件は、リストされたインフラ要件のインフラ要件条件式の論理和をとって得られるインフラ状態の論理式で表される。 Returning to the explanation of Figure 4, the user selects one or more infrastructure requirements they wish to achieve from the presented infrastructure requirements (S02). The infrastructure requirements definition unit 220 combines infrastructure requirement conditional expressions corresponding to the selected infrastructure requirements (S03), and outputs the infrastructure requirements selected by the user and the combined conditional expressions to the project file 260 (S04). In the example data structure of the project file 260 shown in Figure 13, the requirement IDs of the infrastructure requirements selected by the user are stored in list format ([requirement ID, ...]) in the user-selected requirements 261. The infrastructure requirements of the infrastructure to be constructed by the user are represented by a logical expression of the infrastructure state obtained by taking the logical sum of the infrastructure requirement conditional expressions of the listed infrastructure requirements.
以上でユーザがプロジェクトにおいて構築するインフラのインフラ要件条件式(以下、目的インフラ要件条件式という)が得られたので、デプロイパターンの選択を行う。デプロイパターンとは、目的インフラ要件条件式を実現するテンプレートのリストである。このため、図3に示すように、デプロイシステムは、目的インフラ要件条件式を得ることができる一連のテンプレート、すなわちデプロイパターンを探索し(212)、1または複数のデプロイパターン候補をユーザに提示し(212a)、ユーザはそのうちの1つのデプロイパターンを選択する(212b)。デプロイパターンの探索、選択は、テンプレート探索部230によって行われる。 Now that the infrastructure requirement conditional expression (hereinafter referred to as the target infrastructure requirement conditional expression) for the infrastructure the user will build in the project has been obtained, a deployment pattern can be selected. A deployment pattern is a list of templates that realize the target infrastructure requirement conditional expression. For this reason, as shown in Figure 3, the deployment system searches for a series of templates, i.e., deployment patterns, that can obtain the target infrastructure requirement conditional expression (212), and presents one or more deployment pattern candidates to the user (212a), from which the user selects one deployment pattern (212b). The search and selection of deployment patterns is performed by the template search unit 230.
図11Aにテンプレート定義テーブル120のデータ構造の一例を示す。テンプレートID121にはテンプレートを一意に特定するIDが、テンプレート名122にはテンプレートの名称が、テンプレート詳細123にはテンプレートの説明が、入力定義124にはテンプレートに入力されるパラメータの定義が、出力定義125にはテンプレートから出力されるパラメータの定義が、事前条件式126にはテンプレートをデプロイ可能な状態(事前状態)を示す条件式が、事後条件式127にはデプロイ後に満たすべき状態(事後状態)を示す条件式が格納されている。 Figure 11A shows an example of the data structure of the template definition table 120. Template ID 121 stores an ID that uniquely identifies the template, template name 122 stores the name of the template, template details 123 stores a description of the template, input definition 124 stores definitions of parameters input to the template, output definition 125 stores definitions of parameters output from the template, pre-condition expression 126 stores a condition expression indicating the state in which the template can be deployed (pre-state), and post-condition expression 127 stores a condition expression indicating the state that must be met after deployment (post-state).
なお、図11Aにおいて事前条件式126、事後条件式127としてインフラ状態ID(図12参照)と同じ名称が記載されているが、これはインフラ状態IDで示されるインフラ状態が成立していることを条件であることを意味しており、具体的なテスト内容が詳細に規定されている。例えば、事前条件式または事後条件式として「ResourceQuota」が参照されている場合、図11Bのような一群の論理式が定義されている。それぞれの論理式はテストパラメータに対する条件を規定するものである。 In Figure 11A, the pre-condition expression 126 and post-condition expression 127 are given the same names as the infrastructure state ID (see Figure 12). This means that the condition is that the infrastructure state indicated by the infrastructure state ID is met, and the specific test content is specified in detail. For example, if "ResourceQuota" is referenced as a pre-condition expression or post-condition expression, a group of logical expressions like those shown in Figure 11B is defined. Each logical expression specifies a condition for a test parameter.
テンプレート探索部230の処理フローを図5に示す。テンプレート探索部230は、プロジェクトファイル260から目的インフラ要件条件式を読み込み(S11)、テンプレート定義テーブル120に定義されているテンプレートの事前条件式126、事後条件式127から必要なテンプレートの選択肢を探索する(S12)。目的インフラ要件条件式はインフラ状態の論理式として表現されている。一方で、テンプレートの事後条件式にはテンプレートがデプロイされた後に満たすべきシステム状態についての情報が含まれているため、テンプレートの事後条件式に含まれるインフラ状態の論理式が、目的インフラ要件条件式を満たすテンプレートを候補として抽出する。 The processing flow of the template search unit 230 is shown in Figure 5. The template search unit 230 reads the target infrastructure requirement conditional expression from the project file 260 (S11), and searches for required template options from the template pre-condition expression 126 and post-condition expression 127 defined in the template definition table 120 (S12). The target infrastructure requirement conditional expression is expressed as a logical expression for the infrastructure state. On the other hand, the template post-condition expression contains information about the system state that must be satisfied after the template is deployed, so templates whose logical expression for the infrastructure state included in the template post-condition expression satisfies the target infrastructure requirement conditional expression are extracted as candidates.
図3の例を参照しながら、探索処理(S12)について説明する。この例では、目的インフラ要件条件式は論理式270(「インフラ状態A」と「インフラ状態B」との論理和)である。探索すべきデプロイパターンは、事前状態のないテンプレート0(図示せず)を実行して得られる「インフラ状態E」に始まり、「インフラ状態A」と「インフラ状態B」との論理和に至るテンプレートの順列である。「インフラ状態E」から「インフラ状態A」&「インフラ状態B」に至る途中の中間のインフラ状態に複数の可能性がある場合には、網羅的に抽出する。 The search process (S12) will be explained with reference to the example in Figure 3. In this example, the target infrastructure requirement condition expression is logical expression 270 (the logical sum of "infrastructure state A" and "infrastructure state B"). The deployment pattern to be searched for is a permutation of templates starting from "infrastructure state E" obtained by executing template 0 (not shown) with no prior state, and ending with the logical sum of "infrastructure state A" and "infrastructure state B". If there are multiple possibilities for the intermediate infrastructure states on the way from "infrastructure state E" to "infrastructure state A" and "infrastructure state B", they are comprehensively extracted.
この場合、「インフラ状態A」と「インフラ状態B」との論理和を事後条件式が満たすテンプレートとしてテンプレート3、テンプレート4を抽出する(S13)。続いてテンプレート3の事前状態である「インフラ状態C」を事後条件式が満たすテンプレート1、テンプレート1’を抽出し、テンプレート4の事前状態である「インフラ状態D」を事後条件式が満たすテンプレート2を抽出する(S14)。図3はテンプレート1、テンプレート1’、テンプレート2の事前状態が「インフラ状態E」である単純な例であるが、そうでなければ抽出されたテンプレートの事前状態が「インフラ状態E」に至るまで繰り返し実行する。その結果、デプロイパターン候補271が得られる。 In this case, Template 3 and Template 4 are extracted as templates whose post-condition expression satisfies the logical OR of "Infrastructure State A" and "Infrastructure State B" (S13). Next, Template 1 and Template 1' are extracted whose post-condition expression satisfies "Infrastructure State C," the pre-state of Template 3, and Template 2 is extracted whose post-condition expression satisfies "Infrastructure State D," the pre-state of Template 4 (S14). Figure 3 shows a simple example in which the pre-state of Template 1, Template 1', and Template 2 is "Infrastructure State E," but in other cases, the process is repeated until the pre-state of the extracted template becomes "Infrastructure State E." As a result, deployment pattern candidate 271 is obtained.
図5の説明に戻る。ユーザは、システムから提示されたデプロイパターン候補から、デプロイパターンを1つ選択し(S15)、選択したデプロイパターンをプロジェクトファイル260に格納する(S16)。図3の例では、テンプレート探索部230はデプロイパターン候補271をユーザに提示し(212a)、ユーザは候補のうちから1つのデプロイパターン272を選択する(212b)。図13に示すプロジェクトファイル260のデータ構造例において、デプロイパターン262にユーザが選択したデプロイパターンがリスト形式([テンプレートID,・・・])で格納されている例を示している。なお、この例では、後述するようにバリデーション、デプロイが成功したかどうかも情報として保持している。 Returning to the explanation of Figure 5, the user selects one deployment pattern from the deployment pattern candidates presented by the system (S15) and stores the selected deployment pattern in the project file 260 (S16). In the example of Figure 3, the template search unit 230 presents deployment pattern candidates 271 to the user (212a), and the user selects one deployment pattern 272 from the candidates (212b). In the example data structure of the project file 260 shown in Figure 13, the deployment pattern selected by the user is stored in list format ([template ID, ...]) in the deployment pattern 262. Note that in this example, information on whether validation and deployment were successful is also stored, as will be described later.
次に、選択したデプロイパターンを構成するテンプレートに対してパラメータ(図11Aの入力定義124のうち、当該テンプレートに対してユーザが定義するパラメータ)を設定し、整合性をチェックする。 Next, parameters (parameters defined by the user for the template in the input definition 124 in Figure 11A) are set for the template that makes up the selected deployment pattern, and consistency is checked.
テンプレートバリデーション部240の処理フローを図6に示す。テンプレートバリデーション部240は、プロジェクトファイル260から選択されたデプロイパターンを読み込み(S21)、ユーザはデプロイパターンを構成する各テンプレートについて、ユーザは必要なパラメータを入力する(S22)。テンプレートバリデーション部240は入力されたパラメータの整合性をチェックし(S23)、整合しない場合には、ユーザにパラメータの再入力を促す(S24)。例えば、入力されたパラメータが、そのテンプレートを参照する他のテンプレートの事前条件を満たさない場合には整合性を満たさない。矛盾なく、デプロイパターンを構成する各テンプレートの全てのパラメータが設定できれば、バリデーションの結果デプロイ可能であることをユーザに伝える(S25)。 The processing flow of the template validation unit 240 is shown in Figure 6. The template validation unit 240 reads the selected deployment pattern from the project file 260 (S21), and the user inputs the required parameters for each template that makes up the deployment pattern (S22). The template validation unit 240 checks the consistency of the input parameters (S23), and if there is a discrepancy, prompts the user to re-input the parameters (S24). For example, if the input parameters do not satisfy the preconditions of other templates that reference that template, consistency is not met. If all parameters for each template that makes up the deployment pattern can be set without contradiction, the validation results in notifying the user that deployment is possible (S25).
図3の例では、テンプレートバリデーション部240はユーザからのパラメータ入力を受け付け(213a)、制約条件との整合性をチェックした結果を返す(213b)。なお、この過程でユーザが選択したデプロイパターンでは非機能要件を満たさないと判断する場合には、再度デプロイパターン候補からの選択をやり直す(214)ことができるようにしておくとよい。 In the example of Figure 3, the template validation unit 240 accepts parameter input from the user (213a) and returns the results of checking consistency with the constraints (213b). Note that if the user determines during this process that the deployment pattern selected does not satisfy the non-functional requirements, it is advisable to allow the user to reselect from the deployment pattern candidates (214).
以上の処理により、デプロイパターンとデプロイパターンを構成する各テンプレートに対してユーザが設定するパラメータが決定されたので、デプロイパターンを構成するテンプレートのデプロイを行う。図3に、各テンプレートのパラメータが設定されたデプロイパターン273についてユーザがデプロイ指示を行う様子(215)を示している。 The above process determines the parameters to be set by the user for the deployment pattern and each template that makes up the deployment pattern, so the templates that make up the deployment pattern are deployed. Figure 3 shows the user issuing a deployment instruction (215) for the deployment pattern 273 in which the parameters for each template have been set.
デプロイパターンを構成するテンプレートのデプロイを行うテンプレートデプロイ部250の処理フローを図7に示す。テンプレートデプロイ部250はユーザからのデプロイ実行指示を受け(S31)、デプロイパターンを構成する各テンプレートの先頭から末尾に向けて、以下の繰り返し処理を実行する(S32)。 Figure 7 shows the processing flow of the template deployment unit 250, which deploys the templates that make up the deployment pattern. The template deployment unit 250 receives a deployment execution instruction from the user (S31), and then executes the following repeated process from the beginning to the end of each template that makes up the deployment pattern (S32).
ここで、デプロイ処理とテスト処理についてそれぞれ概要を説明する。 Here, we will provide an overview of the deployment and testing processes.
図8Aは事前状態がインフラ状態Xとインフラ状態Yの論理和であり、事後状態がインフラ状態Pとインフラ状態Qの論理和であるテンプレートAを示しており、図8Bにこの場合におけるテンプレートAのデプロイ処理における入出力を示している。 Figure 8A shows template A, whose pre-state is the logical sum of infrastructure state X and infrastructure state Y, and whose post-state is the logical sum of infrastructure state P and infrastructure state Q. Figure 8B shows the input and output during the deployment process of template A in this case.
テンプレートAのデプロイ処理は、テンプレート定義テーブル120(図1参照)に規定されているデプロイスクリプト501により行われる。入力変換部502はテンプレートAの入力定義124(図11A参照)を参照して、ユーザが設定したパラメータ511、インフラ状態Xの状態パラメータ512、インフラ状態Yの状態パラメータ513をデプロイスクリプト501に入力する。パラメータ511は、テンプレートのバリデーション処理において設定したものであり、状態パラメータ512,513はその定義がそれぞれインフラ状態定義テーブル130において定義されており、テンプレートAの前にデプロイされたテンプレートから出力されたパラメータである。デプロイスクリプト501がテンプレートAをデプロイすると、出力変換部503はテンプレートAの出力定義125(図11A参照)を参照して、デプロイスクリプト501から出力されるパラメータをインフラ状態Pの状態パラメータ521、インフラ状態Qの状態パラメータ522に振り分ける。状態パラメータ521,522の定義もそれぞれインフラ状態定義テーブル130において定義されている。 Deployment processing for template A is performed by a deploy script 501 defined in the template definition table 120 (see Figure 1). The input conversion unit 502 references the input definition 124 (see Figure 11A) for template A and inputs to the deploy script 501 a parameter 511 set by the user, a state parameter 512 for infrastructure status X, and a state parameter 513 for infrastructure status Y. Parameter 511 was set during the template validation processing, and state parameters 512 and 513 are defined in the infrastructure status definition table 130 and are parameters output from the template deployed before template A. When the deploy script 501 deploys template A, the output conversion unit 503 references the output definition 125 (see Figure 11A) for template A and assigns the parameters output from the deploy script 501 to a state parameter 521 for infrastructure status P and a state parameter 522 for infrastructure status Q. The definitions of state parameters 521 and 522 are also defined in the infrastructure status definition table 130.
図9AはテンプレートAの事後条件にインフラ状態Kを含んでおり、インフラ状態KはテンプレートBの事前条件に含まれていることを示しており、図9Bにこの場合におけるテンプレートAの事後条件のテストまたはテンプレートBの事前条件のテストにおける入出力を示している。 Figure 9A shows that the postcondition of template A includes infrastructure state K, and that infrastructure state K is included in the precondition of template B. Figure 9B shows the input and output for testing the postcondition of template A or the precondition of template B in this case.
テンプレートAの事後条件のテスト処理では、テストパラメータ変換部602がテンプレートAの事後条件式127(図11A,B参照)を参照して、テスト内容を特定する。この場合はインフラ状態Kのテストが含まれるから、テストパラメータ変換部602はインフラ状態Kについてのテストパラメータ定義134(図12参照)を参照して、テンプレートAの事後状態からテストパラメータ613を抽出し、状態パラメータ614とともにテストスクリプト601に入力する。状態パラメータ614はインフラ状態定義テーブル130において定義されたインフラ状態Kの状態パラメータである。 When testing the post-condition of template A, the test parameter conversion unit 602 references the post-condition expression 127 of template A (see Figures 11A and 11B) to identify the test content. In this case, since a test of infrastructure state K is included, the test parameter conversion unit 602 references the test parameter definition 134 for infrastructure state K (see Figure 12), extracts test parameter 613 from the post-state of template A, and inputs it together with state parameter 614 into the test script 601. State parameter 614 is the state parameter of infrastructure state K defined in the infrastructure state definition table 130.
同様に、テンプレートBの事前条件のテスト処理では、テストパラメータ変換部602がテンプレートBの事前条件式126(図11A,B参照)を参照して、テスト内容を特定する。この場合はインフラ状態Kのテストが含まれるから、テストパラメータ変換部602はインフラ状態Kについてのテストパラメータ定義134(図12参照)を参照して、テンプレートBの事前状態からテストパラメータ613を抽出し、状態パラメータ614とともにテストスクリプト601に入力する。状態パラメータ614はインフラ状態定義テーブル130において定義されたインフラ状態Kの状態パラメータである。 Similarly, in the test process for the preconditions of template B, the test parameter conversion unit 602 references the precondition expression 126 of template B (see Figures 11A and 11B) to identify the test content. In this case, since a test for infrastructure state K is included, the test parameter conversion unit 602 references the test parameter definition 134 for infrastructure state K (see Figure 12), extracts test parameter 613 from the precondition of template B, and inputs it together with state parameter 614 into the test script 601. State parameter 614 is a state parameter for infrastructure state K defined in the infrastructure state definition table 130.
図7の説明に戻る。繰り返し処理(S32)は、デプロイパターンの順列の先頭から末尾へと順番に実施する。まず、テンプレートデプロイ部250は、事前条件として定義されたインフラ状態のテストスクリプトを実行する(S41)。テンプレートが満たすべき事前条件は、事前条件式126(図11A参照)に定義されている。テストが正常に終了したかどうかを判定し(S42)、不正常に終了した場合には事前条件式を満たしていないので、デプロイを中断する(S43)。テストが正常に終了した場合には、テンプレートのデプロイを実行する(S44)。これにより、テンプレートの事後状態の状態パラメータが更新される。続いて、事後条件として定義されたインフラ状態のテストスクリプトを実行する(S45)。テンプレートが満たすべき事後条件は、事後条件式127(図11A参照)に定義されている。テストが正常に終了したかどうかを判定し(S46)、正常に終了した場合には、デプロイが正常に完了した(S47)ので、次のテンプレートの処理に移行する。 Returning to the explanation of Figure 7, the repetitive process (S32) is performed sequentially from the beginning to the end of the deployment pattern sequence. First, the template deployment unit 250 executes the infrastructure state test script defined as the precondition (S41). The precondition that the template must satisfy is defined in precondition expression 126 (see Figure 11A). It is determined whether the test completed successfully (S42). If the test completed unsuccessfully, the precondition expression is not satisfied, and the deployment is aborted (S43). If the test completed successfully, the template is deployed (S44). This updates the state parameters of the template's poststate. Next, the infrastructure state test script defined as the postcondition is executed (S45). The postcondition that the template must satisfy is defined in postcondition expression 127 (see Figure 11A). It is determined whether the test completed successfully (S46). If the test completed successfully, the deployment was completed successfully (S47), and the process moves on to processing the next template.
デプロイパターンを構成するすべてのテンプレートについてデプロイが正常に完了した場合、またはデプロイ中断(S43)または事後条件のテストが不正常に終了したことによりデプロイに失敗した場合(S49)には次のテンプレートの処理に移行することなく、デプロイ及びテストの結果をプロジェクトファイル260に格納し、ユーザに伝達する(S33)。なお、事後条件のテストが不正常に終了した場合には、ロールバックスクリプトを実行し、当該テンプレートのデプロイ前の状態に戻しておくとよい(S48)。 If the deployment of all templates that make up the deployment pattern is completed successfully, or if the deployment is interrupted (S43) or fails due to the post-condition test ending abnormally (S49), the process does not proceed to processing the next template, but instead stores the deployment and test results in the project file 260 and notifies the user (S33). Note that if the post-condition test ends abnormally, a rollback script should be executed to return the template to its state before deployment (S48).
デプロイ処理終了後のプロジェクトファイル260を図13に示す。プロジェクトファイル260のデプロイパターン262には、各テンプレートについて、バリデーション、デプロイが成功したかどうかの結果情報(true/false)を保持している。また、プロジェクトファイル260はインフラ状態263として、デプロイ処理終了後のインフラ状態を保持している。 Figure 13 shows the project file 260 after the deployment process is complete. The deployment pattern 262 of the project file 260 holds result information (true/false) for each template indicating whether validation and deployment were successful. The project file 260 also holds the infrastructure state after the deployment process is complete as infrastructure state 263.
(変形例1)
テンプレートが更新または削除される場合がある。この場合は、テンプレート探索部230は、テンプレート間の事前状態、事後状態の関係性から、デプロイパターンのうち見直しが必要なテンプレートを探索して、ユーザに提示する。例えば、デプロイパターン272(図3参照)のテンプレート3が更新されテンプレート3’となった場合、更新内容によっては、テンプレート1のままではテンプレート3’のデプロイが失敗となる可能性がある。このため、デプロイパターンのうち見直しが必要なテンプレートとして、更新または削除されたテンプレートの事前条件に含まれるインフラ状態を事後条件に含むテンプレートを抽出し、ユーザに提示する。ユーザは提示されたデプロイパターンの部分について、テンプレート探索部230にデプロイパターン候補を抽出させることにより、テンプレートの更新や削除に容易に対応することができる。
(Variation 1)
A template may be updated or deleted. In this case, the template search unit 230 searches for templates that need to be reviewed among the deployment patterns based on the relationships between pre-states and post-states between the templates, and presents the templates to the user. For example, if template 3 of the deployment pattern 272 (see FIG. 3 ) is updated to template 3', depending on the update content, deployment of template 3' may fail if template 1 remains. For this reason, templates that need to be reviewed among the deployment patterns and whose post-conditions include the infrastructure state included in the pre-conditions of the updated or deleted template are extracted and presented to the user. The user can easily handle template updates and deletions by having the template search unit 230 extract deployment pattern candidates for the presented deployment pattern portion.
(変形例2)
また、新規プロジェクトを複数作成することを可能にしてもよい。このためには、テンプレートデプロイ部250が、1種類のテンプレートに対して、入力するパラメータによって固有IDを割り当てればよい。これにより、複数の同一ITリソースに対するデプロイを管理することができる。このときインフラ状態についても同様にデプロイするテンプレートの固有IDに応じた固有のIDを割り当てることによって、複数のインフラ状態を管理することができる。
(Variation 2)
It may also be possible to create multiple new projects. To do this, the template deployment unit 250 simply assigns a unique ID to each template based on the input parameters. This makes it possible to manage deployments of multiple identical IT resources. Similarly, by assigning a unique ID to the infrastructure status based on the unique ID of the template to be deployed, multiple infrastructure statuses can be managed.
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The present invention is not limited to the above-described embodiments, and includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and are not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の計算機読み取り可能な不揮発性データ記憶媒体に格納することができる。 The above-mentioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole in hardware, for example by designing them as integrated circuits. The above-mentioned configurations, functions, etc. may also be realized in software by a processor interpreting and executing programs that realize the respective functions. Information such as programs, tables, and files that realize the respective functions can be stored in storage devices such as memory, hard disk drives, and solid-state drives (SSDs), or in computer-readable non-volatile data storage media such as IC cards, SD cards, and DVDs.
100:共有データベース、110:インフラ要件定義テーブル、111:要件ID、112:要件名、113:インフラ要件詳細、114:インフラ要件条件式、120:テンプレート定義テーブル、121:テンプレートID、122:テンプレート名、123:テンプレート詳細、124:入力定義、125:出力定義、126:事前条件式、127:事後条件式、130:インフラ状態定義テーブル、131:インフラ状態ID、132:状態説明、133:状態パラメータ定義、134:テストパラメータ定義、200:ユーザ環境(サーバ)、210:ユーザインタフェース、220:インフラ要件定義部、230:テンプレート探索部、240:テンプレートバリデーション部、250:テンプレートデプロイ部、260:プロジェクトファイル、261:ユーザ選択要件、262:デプロイパターン、263:インフラ状態、270:論理式、271:デプロイパターン候補、272,273:デプロイパターン、300:デプロイ環境(クラウド)、401:プロセッサ(CPU)、402:メモリ、403:ストレージ装置、404:入出力装置、405:通信装置、406:バス、501:デプロイスクリプト、502:入力変換部、503:出力変換部、511:パラメータ、512,513,521,522:状態パラメータ、601:テストスクリプト、602:テストパラメータ変換部、613:テストパラメータ、614:状態パラメータ。 100: Shared database, 110: Infrastructure requirements definition table, 111: Requirement ID, 112: Requirement name, 113: Infrastructure requirement details, 114: Infrastructure requirement condition expression, 120: Template definition table, 121: Template ID, 122: Template name, 123: Template details, 124: Input definition, 125: Output definition, 126: Pre-condition expression, 127: Post-condition expression, 130: Infrastructure state definition table, 131: Infrastructure state ID, 132: State description, 133: State parameter definition, 134: Test parameter definition, 200: User environment (server), 210: User interface, 220: Infrastructure requirements definition section, 230: Template search section, 240: Template validation deployment unit, 250: template deployment unit, 260: project file, 261: user-selected requirements, 262: deployment pattern, 263: infrastructure state, 270: logical formula, 271: deployment pattern candidate, 272, 273: deployment pattern, 300: deployment environment (cloud), 401: processor (CPU), 402: memory, 403: storage device, 404: input/output device, 405: communication device, 406: bus, 501: deployment script, 502: input conversion unit, 503: output conversion unit, 511: parameters, 512, 513, 521, 522: state parameters, 601: test script, 602: test parameter conversion unit, 613: test parameters, 614: state parameters.
Claims (14)
プロジェクトがとり得る複数種類の状態を定義する状態定義テーブルと、テンプレートがデプロイ可能な前記状態を示す事前条件とテンプレートのデプロイ後に満たすべき前記状態を示す事後条件とを定義するテンプレート定義テーブルと、を格納するデータベースと、
前記一連のテンプレートを前記デプロイ環境にデプロイするテンプレートデプロイ部と、を有し、
前記テンプレート定義テーブルにおいて事前条件及び事後条件は、前記状態定義テーブルにおいて定義された前記状態の論理式として定義され、
前記テンプレートデプロイ部は、前記一連のテンプレートを先頭から順にデプロイを行うにあたり、デプロイするテンプレートに定義された事前条件と事後条件とを満たすか否かをテストし、前記テストが正常に終了した場合に当該テンプレートを前記デプロイ環境にデプロイすることを特徴とするテンプレートデプロイシステム。 A template deployment system that deploys a series of templates selected according to a project to a deployment environment,
a database that stores a state definition table that defines multiple types of states that a project can be in, and a template definition table that defines preconditions that indicate the states in which a template can be deployed and postconditions that indicate the states that must be satisfied after the template is deployed;
a template deployment unit that deploys the series of templates to the deployment environment,
In the template definition table, preconditions and postconditions are defined as logical expressions of the states defined in the state definition table;
The template deployment system is characterized in that, when deploying the series of templates in order from the beginning, the template deployment unit tests whether the preconditions and postconditions defined in the template to be deployed are satisfied, and if the test is completed successfully, deploys the template to the deployment environment.
前記状態定義テーブルにおいて、前記状態ごとに、状態パラメータ、前記テストを行うためのテストスクリプト及びテストパラメータが定められており、
前記テンプレートデプロイ部は、テンプレートのデプロイを実行する前に、当該テンプレートに定義された事前条件に対応する前記状態の状態パラメータ及びテストパラメータを、当該テンプレートに定義された事前条件に対応する前記状態のテストスクリプトに入力することにより、当該テンプレートが事前条件を満たすか否かをテストし、当該テンプレートが事前条件を満たさない場合には、当該テンプレートのデプロイを行わないことを特徴とするテンプレートデプロイシステム。 In claim 1,
In the state definition table, state parameters, test scripts for performing the tests, and test parameters are defined for each of the states;
the template deployment unit tests whether the template satisfies the preconditions defined in the template by inputting state parameters and test parameters for the state corresponding to the preconditions defined in the template into a test script for the state corresponding to the preconditions defined in the template before deploying the template, and does not deploy the template if the template does not satisfy the preconditions.
前記テンプレートデプロイ部は、テンプレートのデプロイを実行した後に、当該テンプレートに定義された事後条件に対応する前記状態の状態パラメータ及びテストパラメータを、当該テンプレートに定義された事後条件に対応する前記状態のテストスクリプトに入力することにより、当該テンプレートが事後条件を満たすか否かをテストし、当該テンプレートが事後条件を満たさない場合には、次のテンプレートのデプロイを行わないことを特徴とするテンプレートデプロイシステム。 In claim 2,
the template deployment unit, after deploying a template, tests whether the template satisfies the postcondition by inputting state parameters and test parameters of the state corresponding to the postcondition defined in the template into a test script for the state corresponding to the postcondition defined in the template, and does not deploy a next template if the template does not satisfy the postcondition.
プロジェクトの要件定義を行う要件定義部と、
前記要件定義部により定義されたプロジェクトの要件を前記デプロイ環境に実現する前記一連のテンプレートを探索するテンプレート探索部と、を有し、
前記データベースは、選択可能なプロジェクト要件を定義する要件定義テーブルを格納しており、
前記要件定義テーブルは、プロジェクト要件の内容を前記状態の論理式により定義しており、
前記要件定義部は、ユーザにより選択された1または複数のプロジェクト要件に対応する前記状態の論理式の論理和として得られる目的要件条件を作成し、
前記テンプレート探索部は、末尾のテンプレートの事後条件が前記目的要件条件を満たす、1以上の一連のテンプレートをデプロイパターン候補として抽出することを特徴とするテンプレートデプロイシステム。 In claim 1,
A requirements definition department that defines project requirements,
a template search unit that searches for the series of templates that realize the project requirements defined by the requirements definition unit in the deployment environment,
the database stores a requirements definition table defining selectable project requirements;
the requirements definition table defines the content of the project requirements by a logical expression of the state;
the requirement definition unit creates a target requirement condition obtained as a logical sum of logical expressions of the states corresponding to one or more project requirements selected by a user;
The template deployment system is characterized in that the template search unit extracts, as deployment pattern candidates, a series of one or more templates whose final template post-conditions satisfy the target requirement conditions.
テンプレートのバリデーションを行うテンプレートバリデーション部を有し、
前記テンプレートバリデーション部は、前記デプロイパターン候補のうちユーザにより選択されたデプロイパターンを構成するテンプレートについてパラメータの入力を受け付け、テンプレートに入力されたパラメータが当該テンプレートを参照する他のテンプレートの事前条件を満たさない場合にはパラメータの再入力を促すことを特徴とするテンプレートデプロイシステム。 In claim 4,
A template validation unit is provided to validate templates.
the template validation unit accepts input of parameters for a template that constitutes a deployment pattern selected by a user from the deployment pattern candidates, and if the parameters input to a template do not satisfy preconditions of other templates that reference the selected template, the template validation unit prompts the user to re-input the parameters.
前記テンプレート探索部は、前記一連のテンプレートに含まされるテンプレートが更新または削除された場合に、更新または削除されたテンプレートの事前条件に含まれる前記状態を事後条件に含むテンプレートを、見直しが必要なテンプレートとして抽出することを特徴とするテンプレートデプロイシステム。 In claim 4,
when a template included in the set of templates is updated or deleted, the template search unit extracts, as a template that needs to be reviewed, a template whose post-condition includes the state included in the pre-condition of the updated or deleted template.
前記テンプレートデプロイ部は、テンプレートに入力するパラメータごとに固有IDを割り振ることを特徴とするテンプレートデプロイシステム。 In claim 4,
The template deployment system is characterized in that the template deployment unit assigns a unique ID to each parameter input to the template.
前記テンプレートデプロイシステムは、
プロジェクトがとり得る複数種類の状態を定義する状態定義テーブルと、テンプレートがデプロイ可能な前記状態を示す事前条件とテンプレートのデプロイ後に満たすべき前記状態を示す事後条件とを定義するテンプレート定義テーブルと、を格納するデータベースと、
前記一連のテンプレートを前記デプロイ環境にデプロイするテンプレートデプロイ部と、を備え、
前記テンプレート定義テーブルにおいて事前条件及び事後条件は、前記状態定義テーブルにおいて定義された前記状態の論理式として定義され、
前記テンプレートデプロイ部は、前記一連のテンプレートを先頭から順にデプロイを行うにあたり、デプロイするテンプレートに定義された事前条件と事後条件とを満たすか否かをテストし、前記テストが正常に終了した場合に当該テンプレートを前記デプロイ環境にデプロイすることを特徴とするテンプレートデプロイ方法。 A template deployment method for deploying a series of templates selected according to a project to a deployment environment using a template deployment system, comprising:
The template deployment system includes:
a database that stores a state definition table that defines multiple types of states that a project can be in, and a template definition table that defines preconditions that indicate the states in which a template can be deployed and postconditions that indicate the states that must be satisfied after the template is deployed;
a template deployment unit that deploys the set of templates to the deployment environment,
In the template definition table, preconditions and postconditions are defined as logical expressions of the states defined in the state definition table;
the template deployment unit tests whether preconditions and postconditions defined in the template to be deployed are satisfied when deploying the series of templates in order from the beginning, and deploys the template to the deployment environment if the test is successful.
前記状態定義テーブルにおいて、前記状態ごとに、状態パラメータ、前記テストを行うためのテストスクリプト及びテストパラメータが定められており、
前記テンプレートデプロイ部は、テンプレートのデプロイを実行する前に、当該テンプレートに定義された事前条件に対応する前記状態の状態パラメータ及びテストパラメータを、当該テンプレートに定義された事前条件に対応する前記状態のテストスクリプトに入力することにより、当該テンプレートが事前条件を満たすか否かをテストし、当該テンプレートが事前条件を満たさない場合には、当該テンプレートのデプロイを行わないことを特徴とするテンプレートデプロイ方法。 In claim 8,
In the state definition table, state parameters, test scripts for performing the tests, and test parameters are defined for each of the states;
the template deployment unit tests whether the template satisfies the preconditions defined in the template by inputting state parameters and test parameters for the state corresponding to the preconditions defined in the template into a test script for the state corresponding to the preconditions defined in the template before deploying the template, and does not deploy the template if the template does not satisfy the preconditions.
前記テンプレートデプロイ部は、テンプレートのデプロイを実行した後に、当該テンプレートに定義された事後条件に対応する前記状態の状態パラメータ及びテストパラメータを、当該テンプレートに定義された事後条件に対応する前記状態のテストスクリプトに入力することにより、当該テンプレートが事後条件を満たすか否かをテストし、当該テンプレートが事後条件を満たさない場合には、次のテンプレートのデプロイを行わないことを特徴とするテンプレートデプロイ方法。 In claim 9,
the template deployment unit, after deploying a template, tests whether the template satisfies the postcondition by inputting state parameters and test parameters of the state corresponding to the postcondition defined in the template into a test script for the state corresponding to the postcondition defined in the template, and does not deploy a next template if the template does not satisfy the postcondition.
前記テンプレートデプロイシステムは、
プロジェクトの要件定義を行う要件定義部と、
前記要件定義部により定義されたプロジェクトの要件を前記デプロイ環境に実現する前記一連のテンプレートを探索するテンプレート探索部と、を備え、
前記データベースは、選択可能なプロジェクト要件を定義する要件定義テーブルを格納しており、
前記要件定義テーブルは、プロジェクト要件の内容を前記状態の論理式により定義しており、
前記要件定義部は、ユーザにより選択された1または複数のプロジェクト要件に対応する前記状態の論理式の論理和として得られる目的要件条件を作成し、
前記テンプレート探索部は、末尾のテンプレートの事後条件が前記目的要件条件を満たす、1以上の一連のテンプレートをデプロイパターン候補として抽出することを特徴とするテンプレートデプロイ方法。 In claim 8,
The template deployment system includes:
A requirements definition department that defines project requirements,
a template search unit that searches for the set of templates that realize the project requirements defined by the requirements definition unit in the deployment environment,
the database stores a requirements definition table defining selectable project requirements;
the requirements definition table defines the content of the project requirements by a logical expression of the state;
the requirement definition unit creates a target requirement condition obtained as a logical sum of logical expressions of the states corresponding to one or more project requirements selected by a user;
The template deployment method is characterized in that the template search unit extracts, as deployment pattern candidates, a series of one or more templates whose final template post-condition satisfies the target requirement condition.
前記テンプレートデプロイシステムは、テンプレートのバリデーションを行うテンプレートバリデーション部を有し、
前記テンプレートバリデーション部は、前記デプロイパターン候補のうちユーザにより選択されたデプロイパターンを構成するテンプレートについてパラメータの入力を受け付け、テンプレートに入力されたパラメータが当該テンプレートを参照する他のテンプレートの事前条件を満たさない場合にはパラメータの再入力を促すことを特徴とするテンプレートデプロイ方法。 In claim 11,
the template deployment system includes a template validation unit that validates templates;
the template validation unit accepts input of parameters for a template that constitutes a deployment pattern selected by a user from the deployment pattern candidates, and if the parameters input to the template do not satisfy preconditions of other templates that reference the template, the template validation unit prompts the user to re-input the parameters.
前記テンプレート探索部は、前記一連のテンプレートに含まされるテンプレートが更新または削除された場合に、更新または削除されたテンプレートの事前条件に含まれる前記状態を事後条件に含むテンプレートを、見直しが必要なテンプレートとして抽出することを特徴とするテンプレートデプロイ方法。 In claim 11,
wherein, when a template included in the set of templates is updated or deleted, the template search unit extracts, as a template that needs to be reviewed, a template whose post-condition includes the state included in the pre-condition of the updated or deleted template.
前記テンプレートデプロイ部は、テンプレートに入力するパラメータごとに固有IDを割り振ることを特徴とするテンプレートデプロイ方法。 In claim 11,
The template deployment method is characterized in that the template deployment unit assigns a unique ID to each parameter input to the template.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022072215A JP7804520B2 (en) | 2022-04-26 | 2022-04-26 | Template deployment system and template deployment method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022072215A JP7804520B2 (en) | 2022-04-26 | 2022-04-26 | Template deployment system and template deployment method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023161709A JP2023161709A (en) | 2023-11-08 |
| JP7804520B2 true JP7804520B2 (en) | 2026-01-22 |
Family
ID=88650492
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022072215A Active JP7804520B2 (en) | 2022-04-26 | 2022-04-26 | Template deployment system and template deployment method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7804520B2 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170180459A1 (en) | 2015-12-21 | 2017-06-22 | Amazon Technologies, Inc. | Building deployment pipelines for a production computing service using live pipeline templates |
| WO2020161994A1 (en) | 2019-02-06 | 2020-08-13 | 日本電気株式会社 | Dependence relationship detection device and dependence relationship detection method |
| US10872029B1 (en) | 2018-11-21 | 2020-12-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
-
2022
- 2022-04-26 JP JP2022072215A patent/JP7804520B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170180459A1 (en) | 2015-12-21 | 2017-06-22 | Amazon Technologies, Inc. | Building deployment pipelines for a production computing service using live pipeline templates |
| US10872029B1 (en) | 2018-11-21 | 2020-12-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
| WO2020161994A1 (en) | 2019-02-06 | 2020-08-13 | 日本電気株式会社 | Dependence relationship detection device and dependence relationship detection method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023161709A (en) | 2023-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12204500B2 (en) | Upgrade of heterogeneous multi-instance database clusters | |
| EP3769223B1 (en) | Unified test automation system | |
| US20190188049A1 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
| US11481245B1 (en) | Program inference and execution for automated compilation, testing, and packaging of applications | |
| JP6673359B2 (en) | System construction support system, method and program | |
| US11055078B2 (en) | Systems and methods for deploying software products to environments | |
| JP2015204065A (en) | Test case generation device and test case generation method | |
| JP2018190261A (en) | Information processing apparatus, information processing method, and information processing program | |
| CN112711427A (en) | Method and device for acquiring mirror image file | |
| US11775291B2 (en) | Automated updates to code deployment pipelines | |
| Hidayat et al. | Analysis and Comparison of Micro Frontend and Monolithic Architecture for Web Applications | |
| Boyer et al. | Architecture-based automated updates of distributed microservices | |
| CN118259952A (en) | Application hot upgrade method, system, electronic device and storage medium | |
| JP7804520B2 (en) | Template deployment system and template deployment method | |
| CN113326049A (en) | Verification issuing method and device of rule engine, terminal equipment and medium | |
| Koyuncu et al. | Flexirepair: Transparent program repair with generic patches | |
| US10656922B2 (en) | Systems and methods for providing an application transformation tool | |
| WO2018083977A1 (en) | System construction assisting apparatus, method, and program | |
| Gorsky | Continuous integration, delivery, and deployment for scientific workflows in Orlando Tools. | |
| Larsen et al. | Taskblaster: A generic framework for automated computational workflows | |
| CN117785242A (en) | Method for constructing embedded software on multiprocessor platform | |
| JP2014164545A (en) | Deployment method and program | |
| CN117193800A (en) | A software installation method, device, electronic equipment and storage medium | |
| Antunes et al. | Test framework for jenkins shared libraries | |
| CN114968270B (en) | Deployment method and system for heterogeneous server clusters for hyperledger blockchain |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241206 |
|
| 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: 20260106 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260109 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7804520 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |