WO2017017937A1 - 配備装置、配備方法、及び、記録媒体 - Google Patents
配備装置、配備方法、及び、記録媒体 Download PDFInfo
- Publication number
- WO2017017937A1 WO2017017937A1 PCT/JP2016/003407 JP2016003407W WO2017017937A1 WO 2017017937 A1 WO2017017937 A1 WO 2017017937A1 JP 2016003407 W JP2016003407 W JP 2016003407W WO 2017017937 A1 WO2017017937 A1 WO 2017017937A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- deployment
- components
- component
- tool
- tools
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Definitions
- the present invention relates to a deployment device, a deployment method, and a recording medium, and more particularly, to a deployment device, a deployment method, and a recording medium for constructing an information system.
- the configuration is managed by describing the configuration information as a structured document.
- configuration information related to system components such as a VM (virtual machine) and a network is described as a structured document and managed as a configuration definition file. It has been broken.
- the configuration information is collectively written in a description syntax or format such as XML (Extensible Markup Language) or JSON (JavaScript (registered trademark) Object Notation).
- the configuration definition file further includes a description related to a deployment tool for deploying each component.
- the description related to the deployment tool include a description related to the activation order of the deployment tool in accordance with the activation of the deployment tool, the exchange of data between the deployment tools, and the dependency between the components.
- Non-Patent Document 1 An example of such a deployment tool is disclosed in Non-Patent Document 1, for example.
- AWS Amazon Web Service
- the deployment order between components is determined by the attribute DependsOn described in the configuration definition file. Be controlled.
- other deployment tools such as Puppet and Chef can similarly control the dependency and setting order, and these tools are widely used in the deployment of various systems.
- the VM configuration information is described in a Cloud Formation format and the software configuration information is described in a Cookbook format.
- the Cookbook format is a description format used in the above-described deployment tool Chef.
- Azure environment Azure environment
- AWS CloudFormation Amazon Web Services, Inc., [online], [July 16, 2015 search], Internet ⁇ URL: http://aws.amazon.com/jp/cloudformation/>
- Non-Patent Document 1 when a system is deployed in accordance with a configuration definition file that depends on a deployment tool as described in Non-Patent Document 1, a configuration definition file generated for one environment is used as a system for another environment. There was a problem that it was difficult to apply to deployment.
- An object of the present invention is to solve the above-described problems and to easily apply a system configuration definition file generated for a certain environment to system deployment for another environment, a deployment method, and a record. To provide a medium.
- the deployment apparatus includes setting information that does not depend on a deployment tool for each of a plurality of components constituting the system, and a plurality of deployment tools that can be used to deploy each of the plurality of components and the components.
- Component information storage means for storing component information including a deployment process for deploying the component with the deployment tool for each pair with each of the plurality of components based on the component information Identifying a deployment process corresponding to a designated deployment tool among the plurality of deployment tools, and identifying each of the plurality of components based on a dependency relationship between the plurality of components
- An order determining means for determining an execution order of the deployed processing, and each of the plurality of components according to the determined execution order. It was the installation process and executes the application setting information of the components, to deploy the plurality of components, and a deployment execution unit.
- the deployment method includes setting information that does not depend on a deployment tool for each of a plurality of components constituting the system, and a plurality of deployment tools that can be used to deploy each of the plurality of components and the components.
- the designated deployment of the plurality of deployment tools based on component information including a deployment process for deploying the component with the deployment tool for each pair
- a deployment process corresponding to the tool is identified, and an execution order of the deployment process identified for each of the plurality of constituent elements is determined based on the dependency relationship between the plurality of constituent elements, and according to the determined execution order Deploying the plurality of components by executing the deployment process specified for each of the plurality of components by applying the setting information of the components .
- the computer-readable recording medium includes a setting information that does not depend on a deployment tool for each of a plurality of components constituting the system, and each of the plurality of components and the deployment of the components.
- the plurality of deployments for each of the plurality of components based on component information including a deployment process for deploying the component by the deployment tool for each pair with a plurality of deployment tools that can be used for
- a deployment process corresponding to a designated deployment tool is specified, and an execution order of the specified deployment process is determined for each of the plurality of components based on the dependency relationship between the plurality of components.
- the deployment process specified for each of the plurality of components is executed by applying the setting information of the components. By, deploying a plurality of components, and stores a program for executing the process.
- the effect of the present invention is that a system configuration definition file generated for a certain environment can be easily applied to system deployment for another environment.
- FIG. 2 is a block diagram showing a configuration of the deployment system in the first exemplary embodiment of the present invention.
- the deployment system includes a deployment device 100, a deployment environment 200, and an input device 300.
- the deployment device 100 is connected to the deployment environment 200 and the input device 300 via a network or the like.
- a plurality of deployment environments 200 may be connected.
- the deployment device 100 deploys the information system to be constructed in the deployment environment 200 according to the system configuration definition file (system definition) received from the input device 300.
- system configuration definition file system definition
- the deployment environment 200 is an execution environment provided in the above-described AWS, for example, and includes one or more computers.
- the deployment environment 200 executes processing of software modules such as a virtual machine (VM), which is a component of the system, and an OS (Operating System), middleware, and application on the VM on a computer.
- VM virtual machine
- OS Operating System
- middleware middleware
- application application on the VM on a computer.
- the input device 300 receives an input of the system definition from the user and transmits it to the deployment device 100.
- the deployment device 100 includes a component information storage unit 110, a component identification unit 120 (or identification unit), an order determination unit 130, a parameter collection unit 140, and task generation. Unit 150 and deployment execution unit 160.
- the component information storage unit 110 stores component information 111.
- system component setting information, deployment processing for deploying each component using a deployment tool, deployment tool setting information, and descriptions related to preprocessing are described. Treat as a component.
- tools for deploying components software modules
- operation groups and scripts for preparing and setting for using the deployment environment 200 are also deployed. Treat as a tool.
- FIG. 6 is a diagram showing an example of the component information 111 in the first embodiment of the present invention.
- an abstract component, a concrete component, and a deployment component are used as components.
- the abstract component is a component obtained by abstracting a system component (software module), and includes a parameter (or setting information) (“parameter” in FIG. 6) that does not depend on the deployment tool of the component.
- the deployment component is a component corresponding to the deployment tool, the parameter of the deployment tool (“parameter” in FIG. 6), and the identifier of the concrete component that can execute the deployment process by the deployment tool (“component” in FIG. 6). )including. Further, the deployment component may include a description (not shown) of preprocessing necessary for using the deployment tool, such as a deployment tool activation process and a health check.
- a concrete component is a component that embodies an abstract component and inherits the parameters of the abstract component.
- the concrete component includes a parameter depending on the deployment tool (“parameter” in FIG. 6) and a description of a deployment process using the deployment tool (“deployment process” in FIG. 6).
- a concrete component is generated for each available deployment tool for each abstract component.
- solid arrows indicate inheritance relationships, and the concrete component that is the original of the arrow inherits the parameter value of the previous abstract component.
- abstract components “C_Linux” and “C_Apache” are components obtained by abstracting the constituent elements OS “Linux (registered trademark)” and middleware “Apache (registered trademark)”, respectively.
- Deployment components “C_AWS” and “C_Ansible” are components corresponding to the deployment tools “AWS” and “Ansible”, respectively.
- a concrete component “C_AWS_Linux” that can execute the deployment process by the deployment tool “AWS” is set.
- a concrete component “C_Ansible_Apache” that can be deployed by the deployment tool “Ansible” is set.
- Concrete components “C_AWS_Linux” and “C_Ansible_Apache” are components that embody the abstract components “C_Linux” and “C_Apache”, respectively.
- the concrete component “C_AWS_Linux” is a component for deploying the component “Linux” using the deployment tool “AWS”.
- An inheritance relationship in which “C_AWS_Linux” inherits “C_Linux” exists between the concrete component “C_AWS_Linux” and the abstract component “C_Linux”. This inheritance relationship indicates that the concrete component “C_AWS_Linux” inherits the value of the parameter of the abstract component “C_Linux”.
- the concrete component “C_Ansible_Apache” indicates that the component “Apache” is deployed using the deployment tool “Ansible”.
- An inheritance relationship in which “C_Ansible_Apache” inherits “C_Apache” exists between the concrete component “C_Ansible_Apache” and the abstract component “C_Apache”. This inheritance relationship indicates that the concrete component “C_Ansible_Apache” inherits the value of the parameter of the abstract component “C_Apache”.
- these components are generated in advance by a deployment system administrator, a user, or the like in accordance with components that can be used for system construction or a deployment tool, and registered in the component information 111 in advance.
- the user designates, as a system definition, an abstract component corresponding to a system component among components registered in the component information 111, and a deployment component corresponding to a deployment tool for deploying the abstract component.
- the user also specifies the abstract component, the dependency relationship between the deployment components, and the parameter values of the abstract component and the deployment component in the system definition.
- FIG. 7 is an example of a system definition in the first embodiment of the present invention.
- dotted arrows indicate dependency relationships between components, and the original component of the arrow depends on the previous component.
- the component identification unit 120 identifies concrete components corresponding to the abstract component and the deployment component specified as the system definition among the concrete components included in the component information 111.
- the parameter collection unit 140 determines the parameter value of the concrete component based on the parameter value of the inheritance destination abstract component and the parameter value of the deployment component corresponding to the concrete component.
- the task generation unit 150 generates a task for performing a deployment process described in each deployment component and a pre-process described in the concrete component.
- the order determining unit 130 determines the execution order of tasks generated for the deployment component and the concrete component based on the dependency between the abstract component and the deployment component.
- the deployment execution unit 160 executes the generated task according to the determined execution order, thereby deploying system components and constructing the system.
- the deployment device 100 may be a computer that includes a CPU (Central Processing Unit) and a storage medium that stores a program, and that operates by control based on the program.
- a CPU Central Processing Unit
- a storage medium that stores a program, and that operates by control based on the program.
- FIG. 3 is a block diagram showing a configuration of the deployment device 100 realized by a computer according to the first embodiment of the present invention.
- the deployment apparatus 100 includes a CPU 101, a storage device 102 (storage medium) such as a hard disk and a memory, a communication device 103 that communicates with other apparatuses, and an input / output device 104 such as a keyboard and a display.
- the CPU 101 executes computer programs for realizing the component identification unit 120, the order determination unit 130, the parameter collection unit 140, the task generation unit 150, and the deployment execution unit 160.
- the storage device 102 stores data in the component information storage unit 110.
- the communication device 103 receives the system definition from the input device 300. Further, the communication device 103 transmits a deployment request to the deployment environment 200.
- the input / output device 104 performs input from the administrator, the user, etc., and the output to the administrator, the user, etc., such as various settings related to the component information 111 and the deployment apparatus 100.
- each component of the deployment device 100 may be an independent logic circuit.
- each component of the deployment device 100 may be distributed and arranged in different devices connected by wire or wirelessly.
- FIG. 4 is a flowchart showing the operation of the deployment device 100 in the first exemplary embodiment of the present invention.
- component information 111 as shown in FIG. 6 is stored in the component information storage unit 110, and the system definition as shown in FIG. 7 is input by the user as the system definition of the system to be constructed.
- the component identification unit 120 identifies a concrete component corresponding to an abstract component and a deployment component specified in the system definition (step S1).
- the component identification unit 120 inherits the designated abstract component from the component information 111, and identifies the concrete component in which the identifier is set for the deployed component on which the abstract component depends.
- FIG. 8 is a diagram showing a specific example of concrete components in the first embodiment of the present invention.
- the component identification unit 120 inherits the abstract component “C_Linux” and identifies the concrete component “C_AWS_Linux” set in the deployment component “C_AWS” on which “C_Linux” depends.
- the component identification unit 120 inherits the abstract component “C_Apache” and identifies the concrete component “C_Ansible_Apache” set in the deployment component “C_Ansible” on which “C_Apache” depends.
- the parameter collection unit 140 determines the parameter value of the identified concrete component (step S2).
- FIG. 9 is a diagram showing details of concrete components in the first embodiment of the present invention.
- a character string of an operation defined by the deployment tool for deploying the component is described.
- an HTTP Hypertext Transfer Protocol
- FTP File Transfer Protocol
- the command character string includes a variable character string indicating the parameter name.
- the variable character string “ ⁇ hostIp ⁇ ” is included in the command of the concrete component “C_Ansible_Apache”.
- a variable character string may be included in the external file referred to in the command.
- the external file “playbook.yml” referenced in the command includes variable character strings “ ⁇ rootDir ⁇ ” and “ ⁇ port ⁇ ”.
- a variable character string may be included in a structured file such as a JSON format attached to the HTTP request.
- a parameter designated as a variable character string is indicated as a parameter.
- parameters “hostIp”, “rootDir”, and “port” specified by the command and the external file are shown.
- the parameter collection unit 140 acquires the value of each parameter based on the parameter value of the same name (character string) of the abstract component inherited by the concrete component and other components to which the abstract component depends. Then, the parameter collection unit 140 replaces the acquired value with the corresponding variable character string of the command or the external file.
- FIG. 10 is a diagram showing details of concrete components after collecting parameters in the first embodiment of the present invention.
- the parameter collection unit 140 sets the variable character string “ ⁇ hostIp ⁇ ” of the command of the concrete component “C_Ansible_Apache” to the value of the parameter “hostIp” specified by the abstract component “C_Linux”. Replace with “192.168.0.1”. Further, the parameter collection unit 140 converts the variable character strings “ ⁇ rootDir ⁇ ” and “ ⁇ port ⁇ ” of the external file “playbook.yml” to the parameter “rootDir” specified by the abstract component “C_Apache”, respectively. ”Value“ / var / lib / www ”and“ port ”value“ 80 ”.
- the parameter collection unit 140 acquires the value of the parameter specified as the variable character string from the parameter value of the abstract component “C_Linux” or other components.
- the parameter collection unit 140 may similarly define a parameter as a variable character string of a command for pre-processing of a deployment component, and acquire a parameter value from another component.
- the task generation unit 150 generates a task for executing preprocessing described by each deployment component and deployment processing described by each concrete component (step S3).
- the task generation unit 150 generates a task for executing a command in which a parameter value is embedded for the preprocessing described in each deployment component and the deployment processing described in each concrete component.
- the task generation unit 150 transfers the generated task list (task list) to the deployment execution unit 160.
- the task generation unit 150 generates a task for executing the command of FIG. 10 for the concrete component “C_Ansible_Apache”. Similarly, the task generation unit 150 generates tasks for the concrete component “C_AWS_Linux” and the deployment components “C_Ansible” and “C_AWS”.
- the order determining unit 130 determines the execution order of the tasks generated for the deployment component and the concrete component (step S4).
- the order determining unit 130 determines the task execution order for the deployment component and the concrete component based on the dependency relationship between the deployment component and the abstract component inherited by the concrete component.
- the system definition can be considered as a directed acyclic graph in which components are nodes and dependencies are edges.
- the directed acyclic graph can be ordered by performing topological sort, and the determined order can be used as the execution order of each task.
- topological sorting of a directed acyclic graph have been proposed, but the algorithm to be used is not limited in the embodiment of the present invention.
- the order determination unit 130 transfers the topological sort result to the deployment execution unit 160.
- FIG. 11 is a diagram showing an example of the result of topological sorting in the first embodiment of the present invention.
- the order determining unit 130 performs topological sorting as illustrated in FIG. 11 according to the dependency relationship for the deployment component and the abstract component specified in the system definition in FIG. Since the result of the topological sort follows the dependency relationship, the actual task execution order is the reverse of the result of the topological sort.
- the deployment execution unit 160 deploys system components by executing tasks in accordance with the determined execution order (step S5).
- the deployment execution unit 160 executes the task generated for the deployment component and the task generated for the concrete component corresponding to the abstract component in order in the reverse order of the topological sort result.
- FIG. 5 is a flowchart showing details of the task execution process (step S5) in the first embodiment of the present invention.
- the deployment executing unit 160 extracts one component (node) in order from the tail of the topological sort result acquired from the order determining unit 130 (step S51).
- the deployment execution unit 160 acquires a task corresponding to the extracted component from the task list acquired from the task generation unit 150 (step S52).
- the deployment execution unit 160 executes the acquired task and checks the deployment result from the deployment tool (step S53). When the deployment result is unsuccessful (step S54 / N), the deployment execution unit 160 outputs an error log (step S56) and ends the task execution process. If the deployment result is successful (step S54 / Y), the deployment execution unit 160 repeats steps S51 to S54 until the processing for all components (nodes) included in the topological sort result is performed (step S55). .
- the deployment execution unit 160 executes the task generated for the deployment component “C_AWS” according to the result of the topological sort as shown in FIG. 11, and is the deployment environment 200 as preprocessing of the deployment tool “AWS”. Log in to the AWS service.
- the deployment execution unit 160 executes a task for the concrete component “C_AWS_Linux”, and deploys a virtual machine of the OS “Linux” as a deployment process using the deployment tool “AWS”.
- Parameters “hostname” “HOST1” and “hostIp” “192.168.0.1” are set in the OS “Linux”.
- the deployment execution unit 160 executes a task for the deployment component “C_Ansible” and activates the deployment tool “Ansible” on the OS “Linux” as preprocessing of the deployment tool “Ansible”. Finally, the deployment execution unit 160 executes a task for the concrete component “C_Ansible_Apache”, and deploys the middleware “Apache” as a deployment process using the deployment tool “Ansible”. In the middleware “Apache”, parameters hostIp “192.168.0.1”, rootDir “/ var / lib / www”, and port “80” are set.
- FIG. 1 is a block diagram showing a characteristic configuration of the first embodiment of the present invention.
- the deployment device 100 includes a component information storage unit 110, a component identification unit 120 (specification unit), an order determination unit 130, and a deployment execution unit 160.
- the component information storage unit 110 stores component information 111.
- the component information 111 includes setting information that does not depend on the deployment tool for each of a plurality of constituent elements constituting the system.
- the component information 111 further includes, for each of a plurality of component elements constituting the system, the component element corresponding to the combination of the component element and each of a plurality of deployment tools that can be used to deploy the component element. Includes a deployment process to deploy.
- the component identification unit 120 identifies, for each of the plurality of components, the deployment process corresponding to the designated deployment tool among the plurality of deployment tools based on the component information 111.
- the order determination unit 130 determines the execution order of the deployment process specified for each of the plurality of components based on the dependency relationships between the plurality of components.
- the deployment execution unit 160 deploys a plurality of components by executing the deployment process specified for each of the plurality of components by applying the setting information of the components according to the determined execution order.
- a system configuration definition file generated for a certain environment can be easily Applicable to system deployment for environment.
- the reason is that the deployment apparatus 100 identifies the deployment process corresponding to the designated deployment tool, determines the execution order of the identified deployment process based on the dependency between the components, and determines the determined execution order This is because the specified deployment process is executed by applying the setting information of the component.
- the description related to the deployment tool includes the activation order between the deployment tools ( Dependencies) and data linkage are included. Therefore, even if the deployment destination environment and components of the system do not change, if the combination of deployment tools is changed, the description of the changed deployment tool and the deployment tool that has a dependency relationship with the deployment tool will be corrected. There was a need to do.
- the order determination unit 130 determines the execution order of the deployment process specified for each component based on the dependency relationship between the components, and the deployment execution unit 160 deploys according to the determined execution order. This is because the process is executed. Thereby, it is not necessary to describe the activation order (dependency relationship) between the deployment tools in the description related to the deployment tool, and it is not necessary to modify the description even when the combination of the deployment tools is changed.
- FIG. 12 is a block diagram showing a configuration of the deployment system in the second exemplary embodiment of the present invention.
- the deployment execution unit 160 of the deployment device 100 is replaced with the deployment execution unit 165, and the output device 400 is added.
- the deployment execution unit 165 outputs (displays) the deployment execution plan to the user via the output device 400 before executing the deployment process.
- FIG. 13 is a flowchart showing details of the task execution process (step S5) in the second embodiment of the present invention.
- the deployment execution unit 165 extracts one component (node) in order from the tail of the topological sort result acquired from the order determination unit 130 (step S61).
- the deployment execution unit 165 extracts tasks corresponding to the extracted components from the task list acquired from the task generation unit 150, and sequentially registers them in the deployment execution plan (step S62).
- the deployment execution unit 165 repeats steps S61 and S62 until the processing for all components (nodes) included in the result of the topological sort is performed (step S63).
- the deployment execution unit 165 outputs (displays) the deployment execution plan to the user via the output device 400 (step S64).
- FIG. 14 is a diagram showing an example of an output screen of the deployment execution plan in the second exemplary embodiment of the present invention.
- the deployment component and the abstract component corresponding to the concrete component are displayed as the deployment execution plan in the execution order of the corresponding tasks.
- the deployment execution unit 165 displays the output screen of FIG.
- the deployment execution unit 165 may display a concrete component instead of the abstract component.
- the deployment execution unit 165 may further display the values of the parameters of each component, the contents of the deployment process, and the preprocess as the deployment execution plan.
- the user determines that there is no problem with the output deployment execution plan
- the user instructs deployment execution.
- the deployment execution unit 165 receives a deployment execution instruction from the user via the input device 300 (step S65).
- the deployment execution unit 165 extracts one task from the beginning of the deployment execution plan (step S66).
- the deployment execution unit 165 executes the extracted task and checks the deployment result from the deployment tool (step S67). When the deployment result is unsuccessful (step S68 / N), the deployment execution unit 165 outputs an error log (step S70) and ends the task execution process. If the deployment result is successful (step S68 / Y), the deployment execution unit 165 repeats steps S66 to S68 until all tasks included in the deployment execution plan are executed (step S69).
- the deployment execution unit 165 outputs a deployment execution plan indicating the execution order of the deployment processing of each component, and a deployment execution instruction is input to the output of the deployment execution plan. This is because the deployment process is executed according to the execution order.
- the present invention can be widely applied to editing tools for editing the configuration definition file of the information system.
- the present invention can be widely applied to a system deployment tool that deploys an execution environment by combining components of an information system such as an application and a server.
- Deployment device 101 CPU DESCRIPTION OF SYMBOLS 102 Storage device 103 Communication device 104 Input / output device 110 Component information storage part 111 Component information 120 Component specification part 130 Order determination part 140 Parameter collection part 150 Task generation part 160 Deployment execution part 165 Deployment execution part 200 Deployment environment 300 Input device
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明の第1の実施の形態について説明する。
次に、本発明の第2の実施の形態について説明する。本発明の第2の実施の形態では、システム定義の入力後、即座にシステムの配備を行わず、配備に必要な情報を利用者へ提供し、対話的に配備を実行する点において、第1の実施の形態と異なる。
101 CPU
102 記憶デバイス
103 通信デバイス
104 入出力デバイス
110 コンポーネント情報記憶部
111 コンポーネント情報
120 コンポーネント特定部
130 順序決定部
140 パラメータ収集部
150 タスク生成部
160 配備実行部
165 配備実行部
200 配備環境
300 入力装置
Claims (10)
- システムを構成する複数の構成要素の各々に対する、配備ツールに依存しない設定情報、及び、前記複数の構成要素の各々と当該構成要素の配備に利用可能な複数の配備ツールの各々との組に対する、当該構成要素を当該配備ツールにより配備する配備処理、を含むコンポーネント情報を記憶する、コンポーネント情報記憶手段と、
前記複数の構成要素の各々について、前記コンポーネント情報をもとに、前記複数の配備ツールの内の指定された配備ツールに対応する配備処理を特定する、特定手段と、
前記複数の構成要素間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理の実行順序を決定する、順序決定手段と、
前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理を、当該構成要素の設定情報を適用して実行することにより、前記複数の構成要素を配備する、配備実行手段と、
を備えた配備装置。 - さらに、前記コンポーネント情報は、前記複数の配備ツールの各々の前処理を含み、
前記順序決定手段は、前記複数の構成要素、及び、前記複数の配備ツールの間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理の実行順序を決定し、
前記配備実行手段は、前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理を実行する、
請求項1に記載の配備装置。 - 前記コンポーネント情報は、前記複数の構成要素の各々に対する、前記設定情報を示す抽象コンポーネント、前記複数の構成要素の各々と前記複数の配備ツールの各々との組に対する、前記配備処理を示す具象コンポーネント、及び、前記複数の配備ツールの各々の前処理を示す配備コンポーネントを含み、
前記構成要素と当該構成要素を配備するための配備処理は、前記抽象コンポーネントと前記具象コンポーネントとの間の継承関係で示され、前記複数の構成要素、及び、前記複数の配備ツールの間の依存関係は、複数の前記抽象コンポーネント、及び、複数の前記配備コンポーネントの間の依存関係で示され、
前記特定手段は、前記抽象コンポーネントと前記具象コンポーネントとの間の継承関係をもとに、前記複数の配備ツールの内の指定された配備ツールに対応する配備処理を特定し、
前記順序決定手段は、前記複数の抽象コンポーネント、及び、前記複数の配備コンポーネントの間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理の実行順序を決定する、
請求項2に記載の配備装置。 - 前記配備実行手段は、前記決定された実行順序を出力し、当該実行順序の出力に対して配備実行の指示が入力された場合、前記決定した実行順序に従って、前記複数の構成要素の各々について特定した配備処理を実行する、
請求項1または2に記載の配備装置。 - システムを構成する複数の構成要素の各々に対する、配備ツールに依存しない設定情報、及び、前記複数の構成要素の各々と当該構成要素の配備に利用可能な複数の配備ツールの各々との組に対する、当該構成要素を当該配備ツールにより配備する配備処理、を含むコンポーネント情報をもとに、前記複数の構成要素の各々について、前記複数の配備ツールの内の指定された配備ツールに対応する配備処理を特定し、
前記複数の構成要素間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理の実行順序を決定し、
前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理を、当該構成要素の設定情報を適用して実行することにより、前記複数の構成要素を配備する、
配備方法。 - さらに、前記コンポーネント情報は、前記複数の配備ツールの各々の前処理を含み、
前記実行順序を決定する場合、前記複数の構成要素、及び、前記複数の配備ツールの間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理の実行順序を決定し、
前記複数の構成要素を配備する場合、前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理を実行する、
請求項5に記載の配備方法。 - 前記コンポーネント情報は、前記複数の構成要素の各々に対する、前記設定情報を示す抽象コンポーネント、前記複数の構成要素の各々と前記複数の配備ツールの各々との組に対する、前記配備処理を示す具象コンポーネント、及び、前記複数の配備ツールの各々の前処理を示す配備コンポーネントを含み、
前記構成要素と当該構成要素を配備するための配備処理は、前記抽象コンポーネントと前記具象コンポーネントとの間の継承関係で示され、前記複数の構成要素、及び、前記複数の配備ツールの間の依存関係は、複数の前記抽象コンポーネント、及び、複数の前記配備コンポーネントの間の依存関係で示され、
前記配備処理を特定する場合、前記抽象コンポーネントと前記具象コンポーネントとの間の継承関係をもとに、前記複数の配備ツールの内の指定された配備ツールに対応する配備処理を特定し、
前記実行順序を決定する場合、前記複数の抽象コンポーネント、及び、前記複数の配備コンポーネントの間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理の実行順序を決定する、
請求項6に記載の配備方法。 - さらに、前記決定された実行順序を出力し、当該実行順序の出力に対して配備実行の指示が入力された場合、前記決定した実行順序に従って、前記複数の構成要素の各々について特定した配備処理を実行する、
請求項5または6に記載の配備方法。 - コンピュータに、
システムを構成する複数の構成要素の各々に対する、配備ツールに依存しない設定情報、及び、前記複数の構成要素の各々と当該構成要素の配備に利用可能な複数の配備ツールの各々との組に対する、当該構成要素を当該配備ツールにより配備する配備処理、を含むコンポーネント情報をもとに、前記複数の構成要素の各々について、前記複数の配備ツールの内の指定された配備ツールに対応する配備処理を特定し、
前記複数の構成要素間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理の実行順序を決定し、
前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理を、当該構成要素の設定情報を適用して実行することにより、前記複数の構成要素を配備する、
処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。 - さらに、前記コンポーネント情報は、前記複数の配備ツールの各々の前処理を含み、
前記実行順序を決定する場合、前記複数の構成要素、及び、前記複数の配備ツールの間の依存関係をもとに、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理の実行順序を決定し、
前記複数の構成要素を配備する場合、前記決定された実行順序に従って、前記複数の構成要素の各々について特定した配備処理、及び、指定された配備ツールの前処理を実行する、
処理を実行させる請求項9に記載のプログラムを格納する、コンピュータが読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/743,315 US10416976B2 (en) | 2015-07-27 | 2016-07-21 | Deployment device, deployment method, and recording medium |
JP2017531012A JP6673355B2 (ja) | 2015-07-27 | 2016-07-21 | 配備装置、配備方法、及び、プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015147408 | 2015-07-27 | ||
JP2015-147408 | 2015-07-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017017937A1 true WO2017017937A1 (ja) | 2017-02-02 |
Family
ID=57884178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/003407 WO2017017937A1 (ja) | 2015-07-27 | 2016-07-21 | 配備装置、配備方法、及び、記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10416976B2 (ja) |
JP (1) | JP6673355B2 (ja) |
WO (1) | WO2017017937A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020174412A (ja) * | 2017-03-31 | 2020-10-22 | 日本電気株式会社 | ネットワーク構築装置、ネットワーク構築方法、及びプログラム |
JPWO2019216082A1 (ja) * | 2018-05-07 | 2021-05-13 | 日本電気株式会社 | システム構成導出装置およびシステム構成導出方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10809989B2 (en) * | 2017-05-05 | 2020-10-20 | Servicenow, Inc. | Service release tool |
US11513864B2 (en) * | 2018-03-22 | 2022-11-29 | Amazon Technologies, Inc. | Adoption of existing virtual computing resources into logical containers for management operations |
US10884732B1 (en) * | 2019-08-29 | 2021-01-05 | International Business Machines Corporation | Automation utilizing infrastructure as code modules |
CN113032006B (zh) * | 2021-04-16 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 插件构建方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120240135A1 (en) * | 2011-03-16 | 2012-09-20 | Google Inc. | High-level language for specifying configurations of cloud-based deployments |
JP2013080275A (ja) * | 2011-09-30 | 2013-05-02 | Fujitsu Ltd | 設定制御装置、設定制御方法および設定制御プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6536037B1 (en) * | 1999-05-27 | 2003-03-18 | Accenture Llp | Identification of redundancies and omissions among components of a web based architecture |
US7171646B2 (en) * | 1999-10-05 | 2007-01-30 | Borland Software Corporation | Generating source code for object oriented elements with language neutral transient meta model and correlating display of names, symbols and code |
US9582268B2 (en) * | 2015-05-27 | 2017-02-28 | Runnable Inc. | Automatic communications graphing for a source application |
-
2016
- 2016-07-21 WO PCT/JP2016/003407 patent/WO2017017937A1/ja active Application Filing
- 2016-07-21 JP JP2017531012A patent/JP6673355B2/ja active Active
- 2016-07-21 US US15/743,315 patent/US10416976B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120240135A1 (en) * | 2011-03-16 | 2012-09-20 | Google Inc. | High-level language for specifying configurations of cloud-based deployments |
JP2013080275A (ja) * | 2011-09-30 | 2013-05-02 | Fujitsu Ltd | 設定制御装置、設定制御方法および設定制御プログラム |
Non-Patent Citations (3)
Title |
---|
GOSUKE MIYASHITA ET AL.: "serverspec: A Versatile Test Framework for Testing States of Servers by Delarative Description", IEICE TECHNICAL REPORT, vol. 113, no. 442, 20 February 2014 (2014-02-20), pages 81 - 86, XP055351075, ISSN: 0913-5685 * |
HISASHI SHIMAMURA ET AL.: "Model Base deno Sizing to Kosei Kanri ni yori Cloud-jo no SI o Koritsuka suru Cloud-gata SI", NEC TECHNICAL JOURNAL, vol. 67, no. 2, 20 March 2015 (2015-03-20), pages 79 - 82, ISSN: 0285-4139 * |
MANABU NAKANOYA ET AL.: "Model Base Provisioning ni yoru Application Shiko Network Kosei Kanri", SYMPOSIUM ON MULTIMEDIA, DISTRIBUTED, COOPERATIVE AND MOBILE SYSTEMS (DICOM02015) RONBUNSHU [ CD-ROM, vol. 2015, no. 1, 1 July 2015 (2015-07-01), pages 1121 - 1128, ISSN: 1882-0840 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020174412A (ja) * | 2017-03-31 | 2020-10-22 | 日本電気株式会社 | ネットワーク構築装置、ネットワーク構築方法、及びプログラム |
JP6992854B2 (ja) | 2017-03-31 | 2022-01-13 | 日本電気株式会社 | ネットワーク構築装置、ネットワーク構築方法、及びプログラム |
JPWO2019216082A1 (ja) * | 2018-05-07 | 2021-05-13 | 日本電気株式会社 | システム構成導出装置およびシステム構成導出方法 |
JP7036205B2 (ja) | 2018-05-07 | 2022-03-15 | 日本電気株式会社 | システム構成導出装置およびシステム構成導出方法 |
US11561770B2 (en) | 2018-05-07 | 2023-01-24 | Nec Corporation | System configuration derivation device and system configuration derivation method |
Also Published As
Publication number | Publication date |
---|---|
JP6673355B2 (ja) | 2020-03-25 |
US20180203680A1 (en) | 2018-07-19 |
US10416976B2 (en) | 2019-09-17 |
JPWO2017017937A1 (ja) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6673355B2 (ja) | 配備装置、配備方法、及び、プログラム | |
US11593084B2 (en) | Code development for deployment on a cloud platform | |
US10574523B2 (en) | Systems and methods for cloud-deployments with imperatives | |
US9652211B2 (en) | Policy management of deployment plans | |
US11698780B2 (en) | Deployment and configuration of an edge site based on declarative intents indicative of a use case | |
US9690558B2 (en) | Orchestrating the lifecycle of multiple-target applications | |
US9424112B1 (en) | Execution plan generator and execution engine for interfacing with application programming interfaces | |
US20190394113A1 (en) | Systems and methods to automatically evaluate blockchain-based solution performance | |
US9329858B2 (en) | Managing access to resource versions in shared computing environments | |
US11086662B2 (en) | Method and system of migrating applications to a cloud-computing environment | |
US20090077090A1 (en) | Method and apparatus for specifying an order for changing an operational state of software application components | |
Lu et al. | Pattern-based deployment service for next generation clouds | |
JP6673359B2 (ja) | システム構築支援システム、方法およびプログラム | |
US10521201B2 (en) | Information processing apparatus and method | |
WO2019181860A1 (ja) | アプリケーション実行装置、アプリケーション実行方法、および記録媒体 | |
JP2023541896A (ja) | トランスクラウドアプリケーションテンプレートを実装するためのシステムおよび方法 | |
US10491674B2 (en) | Network topology templates for internal states of management and control planes | |
US20170017471A1 (en) | Multi-flavored software execution from a singular code base | |
JP2013122655A (ja) | ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム | |
JP6705482B2 (ja) | システム構築パラメータ管理装置、システム構築パラメータ管理システム、システム構築パラメータ管理方法、及び、システム構築パラメータ管理プログラム | |
JP6398456B2 (ja) | ソフトウェア生成装置 | |
Caballer et al. | TOSCA-based orchestration of complex clusters at the IaaS level | |
Telang | Containerizing Microservices Using Kubernetes | |
US20210311843A1 (en) | System verification program generation device, system verification program generation method, and recording medium storing system verification program generation program | |
Modrzyk | Write a Tested HTTP Image Generator API |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16830043 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017531012 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15743315 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16830043 Country of ref document: EP Kind code of ref document: A1 |