CN117149216A - Automatic deployment system, method and device for software system supporting incremental deployment and storage medium - Google Patents
Automatic deployment system, method and device for software system supporting incremental deployment and storage medium Download PDFInfo
- Publication number
- CN117149216A CN117149216A CN202311098022.1A CN202311098022A CN117149216A CN 117149216 A CN117149216 A CN 117149216A CN 202311098022 A CN202311098022 A CN 202311098022A CN 117149216 A CN117149216 A CN 117149216A
- Authority
- CN
- China
- Prior art keywords
- deployment
- application
- path
- automatic
- automated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 34
- 238000004891 communication Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 22
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 10
- 230000036541 health Effects 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000013515 script Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
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)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
The invention discloses a software system automation deployment system, method, device and storage medium supporting incremental deployment, comprising a main control server and a plurality of controlled servers; the method comprises the steps that a main control server receives a path of a medium to be deployed, which is input by a user, converts the path into an application product file, and loads a medium file required by deployment; then resolving the deployment parameters and the deployment topology information provided by the user; and finally, generating a deployment command based on an automatic deployment algorithm and the analyzed content, issuing the deployment command to a controlled server, carrying out backup operation and downloading the started application by the automatic deployment algorithm when the application increment is updated, transmitting the application product file to a designated product path, then deploying the application product to the designated deployment path, and starting the application. The invention does not distinguish increment deployment and full deployment, and when the user deploys, the system can automatically judge whether increment deployment is carried out or not only by putting all media to be deployed under one path.
Description
Technical Field
The present invention relates to the field of computers, and in particular, to a software system automation deployment system, method, apparatus and storage medium for supporting incremental deployment.
Background
In the prior art, there is a method based on templated deployment and automation scripts for implementing automated deployment and configuration of software systems. This approach enables automated deployment by defining templates for deployment environments and configuration requirements, and writing automation scripts. The following is a detailed description of the technical scheme:
1. determining deployment environment and requirements: first, the environment and requirements required to deploy the software system, including the number of servers, operating system type and version, hardware configuration, etc., need to be determined.
2. Writing a deployment template: and writing a deployment template file according to the deployment environment and requirements. The template file describes information such as components, dependencies, configuration options, and the like of the software system.
3. Writing an automation script: and writing an automation script according to the deployment template file, and realizing the automatic installation, configuration and starting processes of the software system. These scripts are typically written using a scripting or configuration language, such as Shell script, powerShell script, YAML, JSON, and the like.
4. Executing an automation script: and running an automation script, and automatically deploying the software system into the target environment according to the deployment template and the configuration information. The automation script will perform the corresponding installation, configuration and start operations according to the components and configuration requirements defined in the templates.
5. Verification and debugging: and performing verification and debugging after deployment, ensuring that the software system can normally operate, and processing possible errors and abnormal conditions.
Such methods based on templated deployment and automation scripts have found widespread use in the prior art. The method can improve the deployment efficiency, reduce the risks of configuration errors and inconsistency, and provide a certain degree of customization and flexibility. However, the above prior art lacks incremental deployment support, and prior art solutions often do not support or are not friendly to support multiple incremental deployments after the first full deployment. However, a complex application system often requires repeated code adjustments to complete the final landing work, and rework is often unavoidable, and not supporting incremental deployment directly results in a subsequent large amount of incremental deployment work still requiring manual completion.
Disclosure of Invention
The invention aims to overcome the defects of the prior art and provides an automatic deployment system, method and device for a software system supporting incremental deployment and a storage medium.
The aim of the invention is realized by the following technical scheme: in a first aspect, the present invention provides an automated deployment system for a software system supporting incremental deployment, the system comprising a master server and a plurality of controlled servers connected to the master server; the main control server comprises a front-end packaging device, a configuration analysis device and an automatic deployment control device; the controlled server comprises an automatic deployment executor;
the front-end packaging device is used for establishing communication between a user and the main control server, and the main control server decomposes the user instruction and establishes communication with an automatic deployment executor on the controlled server; the front-end packaging device receives a path of a medium to be deployed, which is input by a user, and converts the path into an application product file; installing a configuration analysis device and an automatic deployment control device on a main control server, and loading application product files required by deployment;
the configuration analysis device is used for analyzing the deployment parameters and the deployment topology information provided by the user and synchronizing the analyzed content to the automatic deployment control device;
the automatic deployment control device is used for generating a deployment command based on the content analyzed by the automatic deployment algorithm and the configuration analysis device and issuing the deployment command to the automatic deployment executor, the automatic deployment algorithm performs backup operation and downloads the started application when the application increment is updated, the application product file is transmitted to the designated product path, then the application product is deployed to the designated deployment path, and the application is restarted.
Further, the master control server and the controlled server both comprise communication devices, and the communication devices are used for transmitting the automatic deployment command, converting the command into an instruction which can be actually executed by the automatic deployment executor, entering an execution state after the automatic deployment executor receives the instruction of automatic deployment, and returning an execution result to the master control server through the communication devices after the instruction execution is finished.
Furthermore, the communication device is realized by adopting a secure shell protocol SSH, and secure shell protocol SSH software is installed on the master control server and the controlled server and a communication interface provided by the software is adopted.
Further, the front-end packaging device comprises an initialization installation device for installing an automation related suite, a product processing device for packaging media to be deployed provided by a user, and a front-end task distribution device for loading the products to be deployed and issuing deployment tasks to an automation deployment control device;
the initialization installation device installs the deployment product processing device, the front-end task distribution device, the configuration analysis device and the automatic deployment control device on a main control server by loading an installation package prepared in advance;
the product processing device converts the path of the medium to be deployed, which is transmitted by a user, into a product file which can be identified by the front-end task distribution device and the automatic deployment control device;
and the front-end task distribution device calls the configuration analysis device through the product file and the product file path generated by the product processing device and issues the deployment task to the automatic deployment control device.
Further, the configuration analysis device comprises a structured decoding device for structuring loading configuration file information and a variable mapping device for converting a structured object into a variable according to a self-defined structure rule;
the structured decoding device loads a configuration file written by a user in advance, loads different decoders according to different structured types, and dumps the content of the configuration file into an object form in a memory;
the variable mapping device analyzes the object dumped in the memory by the structural decoding device into variables which can be identified by the automatic deployment control device according to a set of self-defined structural rules which are defined in advance, and transmits all the analyzed variables to the automatic deployment control device.
Further, the automated deployment control device comprises a scheduling algorithm for directing a specified command to a specified controlled server and an automated deployment algorithm for dynamically generating a deployment command; the scheduling algorithm decides which controlled servers the deployment command is to be routed to by analyzing the hosts variables configured in the configuration file; the automatic deployment algorithm generates specific deployment commands under the routing of the scheduling algorithm through the product files and the deployment tasks transmitted by the front-end packaging device and the variables transmitted by the configuration analysis device.
Further, the automated deployment algorithm comprises backup means for implementing application backup, pre-hooks for execution before application distribution, application offline means for application shutdown offline, application distribution means for distributing application artifact files, in-process hooks for execution before deployment, application online means for application online, health check means for health check after application online, and post-hooks for final execution
The backup device can automatically perform backup operation when incremental update is applied, so that long-time service offline caused by update failure is avoided;
the pre-hook for executing before application distribution allows a user to execute a custom command before application product file distribution;
the application offline device is used for stopping the started application when the application increment is updated, so that the application to be updated is ensured to be in an offline state;
the application distribution device is responsible for transmitting the application product file to the designated product path;
the in-process hooks for pre-deployment execution allow a user to execute custom commands prior to deploying an application artifact under a specified deployment path;
the application online device is used for deploying application products to a specified deployment path, starting the application and ensuring that the application is successfully started;
the health checking device is used for initiating a request to a designated interface after the application is successfully started, expecting a return code, and indicating that the application is healthy if the return code is successful, otherwise, indicating that the application is unhealthy;
the last executed post hook allows the user to execute the custom command after all command executions are completed.
In a second aspect, the present invention also provides a software system automation deployment method supporting incremental deployment, the method comprising the steps of:
(1) The method comprises the steps that a main control server receives a path of a medium to be deployed, which is input by a user, converts the path into an application product file, and loads a medium file required by deployment;
(2) Analyzing deployment parameters and deployment topology information provided by a user;
(3) Generating a deployment command based on an automatic deployment algorithm and the content analyzed in the step (2) and issuing the deployment command to a controlled server, wherein the automatic deployment algorithm performs backup operation and downloads the started application when the application increment is updated, transmits an application product file to a specified product path, deploys the application product to the specified deployment path, and then starts the application.
In a third aspect, the present invention further provides an automatic deployment device for a software system supporting incremental deployment, including a memory and one or more processors, where the memory stores executable codes, and when the processors execute the executable codes, the automatic deployment method for a software system supporting incremental deployment is implemented.
In a fourth aspect, the present invention further provides a computer readable storage medium having a program stored thereon, where the program, when executed by a processor, implements the method for automatically deploying a software system supporting incremental deployment.
The technical scheme of the invention has the beneficial effects that:
1) The incremental deployment and the full deployment are not distinguished, and when a user deploys, the user only needs to put all media to be deployed under one path and transmit the media to the system, and the system can automatically judge whether to perform the incremental deployment.
2) The complete automatic deployment algorithm can ensure that deployment results are idempotent under any condition, a user can execute the deployment process for any time, and the same output result can be obtained no matter how many times the same input is executed.
3) The universal communication interface is adopted, and the universal communication interface is not dependent on a specific communication tool, so that any communication tool realizing the function of the communication interface can be used.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings that are required in the embodiments or the description of the prior art will be briefly described, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a diagram of an automated deployment system architecture.
Fig. 2 is a master server architecture diagram.
Fig. 3 is a diagram of a controlled server architecture.
Fig. 4 is a front-end package device rack pattern.
Fig. 5 is a configuration analysis device frame pattern.
FIG. 6 is an automated deployment control device architecture diagram.
FIG. 7 is a finite step flow diagram of an automated deployment algorithm.
FIG. 8 is a block diagram of an automated deployment apparatus for a software system supporting incremental deployment in accordance with the present invention.
Detailed Description
The following describes the embodiments of the present invention in further detail with reference to the drawings.
In order to solve the problem that most of the existing automatic deployment is designed for one-time deployment, so that a user cannot finish subsequent large-amount incremental deployment work in a clear and visual mode without any external tool, the invention provides a system and a method for realizing primary compatibility of full-amount deployment and incremental deployment and loose coupling with a system to be deployed by utilizing an abstract technology.
Referring to fig. 1, the automated deployment system of the present invention includes a master server 10 and a controlled server 20 connected to the master server 10.
Referring to fig. 2, the master server 10 includes a front-end wrapper device 30 for establishing communication between a user and an automation deployment executor, a configuration analyzing device 40 for analyzing deployment parameters and deployment topology, an automation deployment control device 50 for generating deployment commands and issuing the deployment commands to the automation deployment executor, and a communication device 60 for establishing connection with the controlled server 20. Wherein the pre-packaging device 30 installs the configuration parsing device 40 and the automated deployment control device 50 on the main control server 10 by receiving user input while being responsible for loading the media files required for deployment; the configuration analyzing device 40 analyzes the deployment parameters and the deployment topology information provided by the user, and synchronizes the analyzed content to the automatic deployment control device 50; the automatic deployment control device 50 dynamically generates an automatic deployment command according to the content input by the automatic algorithm and configuration analysis device 40, and issues the command to the controlled server 20 in a multithreaded parallel manner through the communication device 60.
The communication device 60 may be implemented by using SSH (secure shell protocol), and secure shell software may be installed on the master server 10 and the controlled server 20, and a communication interface provided by the software may be used.
Referring to fig. 3, the controlled server 20 includes a communication device 60 for receiving an automatic deployment command sent from the master server 10, and an automatic deployment executor 22 for executing the automatic deployment command. The communication device 60 receives the automatic deployment command sent by the main control server 10, converts the command into an instruction which can be actually executed by the automatic deployment executor 22, and sends the instruction to the automatic deployment executor 22; after receiving the instruction from the communication device 60, the automatic deployment executor 22 enters an execution state, and returns an execution result to the main control server 10 through the communication device 60 after the instruction execution is finished.
Referring to fig. 4, the front-end packaging device 30 includes an initialization mounting device 31 for mounting an automation related kit, an article handling device 32 for packaging a user-supplied medium to be deployed, and a front-end task distributing device 33 for loading articles to be deployed and issuing deployment tasks to the automation deployment control device 50. Wherein the initialization installing means 31 installs the deployment article handling means 32, the pre-task distributing means 33, the configuration analyzing means 40, and the automated deployment control means 50 to the main control server 10 by loading an installation package prepared in advance; the product processing device 32 converts the path of the medium to be deployed, which is input by the user, into a product file which can be identified by the front-end task distributing device 33 and the automatic deployment control device 50; the pre-task distributing device 33 calls the configuration analyzing device 40 through the product file and the product file path generated by the product processing device 32, and issues the deployment task to the automated deployment control device 50.
Referring to fig. 5, the configuration parsing apparatus 40 includes a structure decoding apparatus 41 for structuring loading configuration file information and a variable mapping apparatus 42 for converting structured objects into variables according to a custom structure rule. The structural decoding device 41 loads a configuration file written by a user in advance, loads different decoders according to different structural types, and dumps the content of the configuration file into an object form in a memory; the variable mapping device 42 analyzes the object dumped in the memory by the structural decoding device 41 into variables identifiable by the automatic deployment control device 50 according to a set of custom structure rules defined in advance, and transmits all the analyzed variables to the automatic deployment control device 50.
The custom structure rules are written in code, the decoder parses the configuration file into objects, and the variable mapping means 42 need to identify the objects as one variable according to the defined rules, e.g. the user writes such a configuration in ini format:
[mysql]
10.0.0.2
10.0.0.3
it simply marks the object value of key mysql as [ "10.0.0.2", "10.0.0.3" ] array for the decoder, but it needs to understand the meaning of this section of configuration according to rules for the variable mapping means 42, in that mysql array contains two servers 10.0.0.2 and 10.0.0.3, so the variables are to be mapped as groups. Mysql= [ "10.0.0.2", "10.0.0.3" ].
In effect, the custom structure rules are through the content of the code configuration file, and although the variable mapping device 42 does not directly load the configuration file, the decoder will save the object in a format recognizable by the variable mapping device 42 after loading the parse configuration file.
The types of the structuring configuration files commonly used at present are ini type and yaml type, and the corresponding structuring decoding device 41 is also implemented by the corresponding language and command, which are known in the field of computer and software engineering and are not described herein.
Referring also to fig. 6, the automated deployment control apparatus 50 includes a scheduling algorithm 51 that directs specified commands to the specified controlled servers 20 and an automated deployment algorithm 80 that dynamically generates deployment commands. Wherein the scheduling algorithm 51 decides which controlled servers 20 the deployment command is to be routed to by parsing the hosts variables configured in the configuration file; the automated deployment algorithm 80 generates specific deployment commands under the routing of the scheduling algorithm 51 through the artifact files and deployment tasks delivered by the pre-wrapper device 30 and the variables delivered by the configuration parsing device 40.
Referring also to fig. 7, the automated deployment algorithm 80 comprises backup means 81 for implementing application backup, pre-hook 82 for executing before application distribution, application drop-off means 83 for application shutdown drop-off, application distribution means 84 for distributing application product files, in-process hook 85 for executing before deployment, application on-line means 86 for application on-line, health check means 87 for health check after application on-line, and post-hook 88 for final execution. The backup device 81 automatically performs backup operation when incremental update is applied, so that long-time service offline caused by update failure is avoided; the pre-hook 82 allows the user to execute custom commands prior to application artifact file distribution; the application offline device 83 is configured to stop an already started application when the application increment is updated, so as to ensure that the application to be updated is in an offline state; the application distribution device 84 is responsible for transferring application artifact files under a designated artifact path; the in-process hooks 85 allow the user to execute custom commands before deploying the application artifact under the specified deployment path; the application online device 86 is used for deploying the application product to a specified deployment path, starting the application and ensuring that the application is successfully started; the health checking device 87 is configured to initiate a request to the designated interface after the application is successfully started, and expect to obtain a 200 return code, where the success of the return indicates that the application is healthy, and otherwise indicates that the application is unhealthy; post hook 88 allows the user to execute custom commands after all command executions are completed. Note that these operations are performed on the target controlled server 20 after the target controlled server 20 is selected based on the scheduling algorithm 51.
The main control server 10 detects the command execution state of the controlled server 20, and the implementation principle is that when the communication device 60 executes the command, different codes are returned according to the return value after the command is executed to judge the command execution state of the current controlled server 20.
Taking the example of a controller available commonly used for automated deployment, several typical states include:
(1)ok
this means that the instruction has been successfully executed without any modification.
(2)changed
Indicating that the instruction has been successfully executed and that some changes have been made, such as certain file rights changes, creating and deleting files, etc.
(3)failed
Indicating that the instruction has failed to execute and also returning the cause of the failure.
(4)unreachable
Indicating that it is not possible to connect to the target host, this return state is not returned from the communication device 60, but is returned directly from the communication device 60, since this error indicates that it is not possible to connect to the communication device 60.
(5)skipping
Indicating that the instruction is skipped because the condition is not met or the instruction has completed in a previous execution.
(6)ignored
Meaning that for some reason, the automated deployment executor 22 ignores the execution of the instruction.
In performing delta/full deployment for a user, the system of the present invention employs the following procedure:
(1) The initialization installing means 31 deploys the application of the present invention to the main control server 10 and the controlled server 20;
(2) After detecting the user input, the product processing device 32 finds the medium to be deployed in the path of the user input, loads the configuration file, and converts the medium to be deployed into a product file identifiable by the front task distribution device 33 and the automatic deployment control device 50 according to the rule defined by the configuration file.
(3) The pre-job distributing apparatus 33 detects the path of the product file transferred from the product processing apparatus 32, generates a deployment job for each product file, and sends the path of the product file and the deployment job to the automated deployment control apparatus 50.
(4) The pre-task distribution device 33 calls the configuration analysis device 40 and transmits topology information and variable information to the automated deployment control device 50.
(5) The scheduling algorithm 51 in the automated deployment control 50 assigns deployment tasks to the designated controlled servers 20 via topology information.
(6) The automated deployment algorithm 80 in the automated deployment control device 50 dynamically generates deployment commands via the artifact file path and variable information.
(7) The automated deployment control apparatus 50 transmits the dynamically generated deployment commands one by one to the designated controlled server 20 through the communication apparatus 60.
(8) After the communication device 61 on the controlled server monitors the deployment command issued by the communication device 60, the automatic deployment execution device 70 is notified to start execution, and the automatic deployment execution device 70 returns a command execution state and a command execution result for each executed deployment command one by one through the communication device 61.
(9) After the communication device 60 monitors the command execution status issued from the communication device 61, it notifies the automatic deployment control device 50, and the automatic deployment control device 50 displays information on the terminal interface according to the command execution status and the command execution result. The various command execution states may be represented in different colors, where ok indicates that the command has been successfully executed, may be displayed as green, failed indicates that the command has failed to execute, and may be displayed as red.
Corresponding to the embodiment of the software system automation deployment method supporting incremental deployment, the invention also provides an embodiment of the software system automation deployment device supporting incremental deployment.
Referring to fig. 8, an apparatus for automatically deploying a software system supporting incremental deployment according to an embodiment of the present invention includes a memory and one or more processors, where the memory stores executable codes, and the processors are configured to implement an automatic deploying method for a software system supporting incremental deployment according to the above embodiment when executing the executable codes.
The embodiment of the software system automation deployment device supporting incremental deployment can be applied to any device with data processing capability, and the device with data processing capability can be a device or a device such as a computer. The apparatus embodiments may be implemented by software, or may be implemented by hardware or a combination of hardware and software. Taking software implementation as an example, the device in a logic sense is formed by reading corresponding computer program instructions in a nonvolatile memory into a memory by a processor of any device with data processing capability. In terms of hardware, as shown in fig. 8, a hardware structure diagram of an arbitrary device with data processing capability, where the software system automation deployment device supporting incremental deployment is located, provided by the present invention, is shown in fig. 8, and in addition to a processor, a memory, a network interface, and a nonvolatile memory, any device with data processing capability in the embodiment is generally according to an actual function of the arbitrary device with data processing capability, and may further include other hardware, which is not described herein.
The implementation process of the functions and roles of each unit in the above device is specifically shown in the implementation process of the corresponding steps in the above method, and will not be described herein again.
For the device embodiments, reference is made to the description of the method embodiments for the relevant points, since they essentially correspond to the method embodiments. The apparatus embodiments described above are merely illustrative, wherein the elements illustrated as separate elements may or may not be physically separate, and the elements shown as elements may or may not be physical elements, may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules may be selected according to actual needs to achieve the purposes of the present invention. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
The embodiment of the invention also provides a computer readable storage medium, on which a program is stored, which when executed by a processor, implements a software system automation deployment method supporting incremental deployment in the above embodiment.
The computer readable storage medium may be an internal storage unit, such as a hard disk or a memory, of any of the data processing enabled devices described in any of the previous embodiments. The computer readable storage medium may be any external storage device that has data processing capability, such as a plug-in hard disk, a Smart Media Card (SMC), an SD Card, a Flash memory Card (Flash Card), or the like, which are provided on the device. Further, the computer readable storage medium may include both internal storage units and external storage devices of any data processing device. The computer readable storage medium is used for storing the computer program and other programs and data required by the arbitrary data processing apparatus, and may also be used for temporarily storing data that has been output or is to be output.
The above-described embodiments are intended to illustrate the present invention, not to limit it, and any modifications and variations made thereto are within the spirit of the invention and the scope of the appended claims.
Claims (10)
1. An automatic deployment system of a software system supporting incremental deployment is characterized by comprising a main control server and a plurality of controlled servers connected with the main control server; the main control server comprises a front-end packaging device, a configuration analysis device and an automatic deployment control device; the controlled server comprises an automatic deployment executor;
the front-end packaging device is used for establishing communication between a user and the main control server, and the main control server decomposes the user instruction and establishes communication with an automatic deployment executor on the controlled server; the front-end packaging device receives a path of a medium to be deployed, which is input by a user, and converts the path into an application product file; installing a configuration analysis device and an automatic deployment control device on a main control server, and loading application product files required by deployment;
the configuration analysis device is used for analyzing the deployment parameters and the deployment topology information provided by the user and synchronizing the analyzed content to the automatic deployment control device;
the automatic deployment control device is used for generating a deployment command based on the content analyzed by the automatic deployment algorithm and the configuration analysis device and issuing the deployment command to the automatic deployment executor, the automatic deployment algorithm performs backup operation and downloads the started application when the application increment is updated, the application product file is transmitted to the designated product path, then the application product is deployed to the designated deployment path, and the application is restarted.
2. The automated deployment system supporting incremental deployment of software systems according to claim 1, wherein the master server and the controlled server each comprise a communication device for transmitting an automated deployment command and converting the command into an instruction that can be actually executed by the automated deployment executor, the automated deployment executor entering an execution state after receiving the instruction for automated deployment, and returning an execution result to the master server through the communication device after the instruction execution is finished.
3. The automated deployment system of software systems supporting incremental deployment of claim 2 wherein the communication means is implemented using a secure shell protocol SSH, and wherein the secure shell protocol SSH software is installed on the master server and the controlled server and a communication interface provided by the software is used.
4. The automated deployment system of software systems supporting incremental deployment of claim 1, wherein the pre-wrapping means comprises an initial installation means for installing an automated dependent suite, an article handling means for packaging a user-provided medium to be deployed, a pre-task distribution means for loading an article to be deployed and issuing a deployment task to an automated deployment control means;
the initialization installation device installs the deployment product processing device, the front-end task distribution device, the configuration analysis device and the automatic deployment control device on a main control server by loading an installation package prepared in advance;
the product processing device converts the path of the medium to be deployed, which is transmitted by a user, into a product file which can be identified by the front-end task distribution device and the automatic deployment control device;
and the front-end task distribution device calls the configuration analysis device through the product file and the product file path generated by the product processing device and issues the deployment task to the automatic deployment control device.
5. The automated deployment system of software systems supporting incremental deployment of claim 1, wherein the configuration parsing means comprises structural decoding means for structuring the load profile information and variable mapping means for converting structured objects into variables according to custom structural rules;
the structured decoding device loads a configuration file written by a user in advance, loads different decoders according to different structured types, and dumps the content of the configuration file into an object form in a memory;
the variable mapping device analyzes the object dumped in the memory by the structural decoding device into variables which can be identified by the automatic deployment control device according to a set of self-defined structural rules which are defined in advance, and transmits all the analyzed variables to the automatic deployment control device.
6. The incremental deployment-enabled software system automated deployment system of claim 4 wherein the automated deployment control comprises a scheduling algorithm that directs specified commands to specified controlled servers and an automated deployment algorithm that dynamically generates deployment commands; the scheduling algorithm decides which controlled servers the deployment command is to be routed to by analyzing the hosts variables configured in the configuration file; the automatic deployment algorithm generates specific deployment commands under the routing of the scheduling algorithm through the product files and the deployment tasks transmitted by the front-end packaging device and the variables transmitted by the configuration analysis device.
7. The incremental deployment-enabled software system automated deployment system of claim 6 wherein the automated deployment algorithm comprises backup means for implementing an application backup, pre-hooks for execution prior to application distribution, application off-line means for application shutdown off-line, application distribution means for distributing application artifact files, in-process hooks for execution prior to deployment, application on-line means for application on-line, health check means for health check after application on-line, and post-hooks for final execution
The backup device can automatically perform backup operation when incremental update is applied, so that long-time service offline caused by update failure is avoided;
the pre-hook for executing before application distribution allows a user to execute a custom command before application product file distribution;
the application offline device is used for stopping the started application when the application increment is updated, so that the application to be updated is ensured to be in an offline state;
the application distribution device is responsible for transmitting the application product file to the designated product path;
the in-process hooks for pre-deployment execution allow a user to execute custom commands prior to deploying an application artifact under a specified deployment path;
the application online device is used for deploying application products to a specified deployment path, starting the application and ensuring that the application is successfully started;
the health checking device is used for initiating a request to a designated interface after the application is successfully started, expecting a return code, and indicating that the application is healthy if the return code is successful, otherwise, indicating that the application is unhealthy;
the last executed post hook allows the user to execute the custom command after all command executions are completed.
8. A software system automation deployment method supporting incremental deployment based on the software system automation deployment system supporting incremental deployment of any one of claims 1-7, the method comprising the steps of:
(1) The method comprises the steps that a main control server receives a path of a medium to be deployed, which is input by a user, converts the path into an application product file, and loads a medium file required by deployment;
(2) Analyzing deployment parameters and deployment topology information provided by a user;
(3) Generating a deployment command based on an automatic deployment algorithm and the content analyzed in the step (2) and issuing the deployment command to a controlled server, wherein the automatic deployment algorithm performs backup operation and downloads the started application when the application increment is updated, transmits an application product file to a specified product path, deploys the application product to the specified deployment path, and then starts the application.
9. An automated deployment device for a software system supporting incremental deployment, comprising a memory and one or more processors, wherein the memory stores executable code, and wherein the processor, when executing the executable code, implements a method for automated deployment of a software system supporting incremental deployment as set forth in claim 8.
10. A computer-readable storage medium having a program stored thereon, which when executed by a processor, implements a software system automation deployment method supporting incremental deployment as claimed in claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311098022.1A CN117149216A (en) | 2023-08-29 | 2023-08-29 | Automatic deployment system, method and device for software system supporting incremental deployment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311098022.1A CN117149216A (en) | 2023-08-29 | 2023-08-29 | Automatic deployment system, method and device for software system supporting incremental deployment and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149216A true CN117149216A (en) | 2023-12-01 |
Family
ID=88883646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311098022.1A Pending CN117149216A (en) | 2023-08-29 | 2023-08-29 | Automatic deployment system, method and device for software system supporting incremental deployment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149216A (en) |
-
2023
- 2023-08-29 CN CN202311098022.1A patent/CN117149216A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016177124A1 (en) | Method and device for implementing continuous integration test | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
KR102166753B1 (en) | Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing | |
US9696692B2 (en) | Industrial automation control system | |
CN110663006B (en) | Method for performing failover of programmable logic controller and controlling physical system | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
WO2009150788A1 (en) | Api evaluation system in embedded device | |
CN108804109B (en) | Industrial deployment and control method based on multi-path functional equivalent module redundancy arbitration | |
WO2017162058A1 (en) | Software test method and device | |
KR102141287B1 (en) | Fault injection test method and system for vehicle software based on autosar | |
CN111611157B (en) | GMS continuous integration construction automatic test method and system | |
CN112363731A (en) | Application automation deployment method and device and computer readable storage medium | |
CN110795125A (en) | Software updating method, system, device and readable storage medium based on DevOps framework | |
US20100180157A1 (en) | Remote hardware inspection system and method | |
CN117149216A (en) | Automatic deployment system, method and device for software system supporting incremental deployment and storage medium | |
JP2008135008A (en) | Program module verification method | |
US9189370B2 (en) | Smart terminal fuzzing apparatus and method using multi-node structure | |
CN112596751B (en) | Compiling method, terminal, server and storage medium of application program installation package | |
CN111673747B (en) | Remote testing method and device for robot agent end | |
US11958511B2 (en) | Train signal system and linkage method therefor | |
US20100146337A1 (en) | Method and device for detecting non-regression of an input/output system in a simulation environment | |
CN112732290B (en) | Equipment upgrading method and device, storage medium and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |