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 PDF

Info

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
Application number
CN202311098022.1A
Other languages
Chinese (zh)
Inventor
徐阳
余建浪
杨运平
王新根
余海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Bangsheng Technology Co ltd
Original Assignee
Zhejiang Bangsheng Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Bangsheng Technology Co ltd filed Critical Zhejiang Bangsheng Technology Co ltd
Priority to CN202311098022.1A priority Critical patent/CN117149216A/en
Publication of CN117149216A publication Critical patent/CN117149216A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram 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

Automatic deployment system, method and device for software system supporting incremental deployment and storage medium
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.
CN202311098022.1A 2023-08-29 2023-08-29 Automatic deployment system, method and device for software system supporting incremental deployment and storage medium Pending CN117149216A (en)

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)

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