Software deployment method, device, electronic device and computer program product

By using the LSTM model to identify software package information and terminal operation stability, the optimal installation and upgrade workflow is determined, which solves the problem of low software installation efficiency in existing technologies and realizes automated software deployment and upgrades in large-scale distributed environments.

CN120255911BActive Publication Date: 2025-09-19ANTUTE (BEIJING) TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510327624.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-19
Publication Date
2025-09-19
Estimated Expiration
2045-03-19

AI Technical Summary

Technical Problem

In the existing technology, software version management relies on manual operations or semi-automated tools, which is inefficient and prone to errors. There is a lack of solutions that can autonomously identify software package information and automatically install and deploy according to environmental characteristics.

Method used

An LSTM model is used to identify software package information, obtain terminal lists and authentication information, predict terminal operation stability, determine the installation checklist, and determine the optimal installation workflow by evaluating the performance indicators of the installation task workflow to achieve automated software package installation and upgrades.

Benefits of technology

It achieves safe and smooth installation and upgrade of software packages in a large-scale distributed environment, avoids task interruptions, dynamically optimizes upgrade sequences, and avoids resource bottlenecks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120255911B_ABST
    Figure CN120255911B_ABST
Patent Text Reader

Abstract

The present invention discloses a software deployment method, device, electronic device and computer program product, which relate to the technical field of software installation and deployment. The method includes identifying the software version corresponding to the installation software package and the dependency relationship between the software version and the terminal type; obtaining a terminal list, the terminal type of each terminal in the terminal list and the authentication information of each terminal in the terminal list; predicting the operating stability of each terminal in the terminal list through an LSTM model based on the historical operating status information of each terminal; determining the software package installation version, and determining an installation list from the terminal list based on the dependency relationship between the software version and the terminal type; generating installation tasks for each terminal in the installation list based on the configured software installation strategy, and determining the optimal installation workflow corresponding to each installation task in the installation list. The software deployment method, device, electronic device and computer program product disclosed in the present invention are suitable for software installation, deployment and upgrading in large-scale distributed environments.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of software installation and deployment, and specifically relates to a software deployment method, device, electronic equipment and computer program product. Background Art

[0002] In existing large-scale deployment environments, software version management often relies on manual operations or semi-automated tools, which is not only inefficient but also prone to errors. With the continuous expansion of data centers and the rapid iteration of technology, higher requirements are placed on efficient, secure, and intelligent software installation and deployment. Currently, there is a lack of a solution that can autonomously identify software package information and automatically install and deploy it based on the environment's characteristics. Summary of the Invention

[0003] The purpose of the present invention is to provide a software deployment method, device, electronic device and computer program product to solve the above-mentioned problems existing in the prior art.

[0004] In order to achieve the above object, the present invention adopts the following technical solutions:

[0005] In a first aspect, the present invention provides a software deployment method, comprising:

[0006] Identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and terminal types;

[0007] Obtaining a terminal list, a terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list;

[0008] Predicting the operational stability of each terminal in the terminal list using a pre-trained LSTM model based on historical operational status information of each terminal in the terminal list, the historical operational status information including historical CPU usage and / or historical memory usage;

[0009] Determining the software package installation version, and determining an installation list from the terminal list based on a dependency relationship between the software version and the terminal type;

[0010] Based on the configured software installation strategy, the installation tasks for each terminal in the installation list are generated, and the optimal installation workflow corresponding to each installation task in the installation list is determined by evaluating the performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list.

[0011] Based on the above-disclosed content, the present invention discloses a software deployment solution that can autonomously identify software package information and automatically install according to environmental characteristics, namely, identifying all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software version and the terminal type; obtaining a terminal list, the terminal type of each terminal in the terminal list, and the authentication information of each terminal in the terminal list; based on the historical operating status information of each terminal in the terminal list, predicting the operating stability of each terminal in the terminal list through a pre-trained LSTM model, the historical operating status information including the historical CPU usage and / or the historical memory usage; determining the software package installation version, and determining the installation list from the terminal list based on the dependency relationship between the software version and the terminal type; generating installation tasks for each terminal in the installation list based on the configured software installation strategy, and determining the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list. In this way, it can automatically identify software package information and determine the installation list that meets the installation requirements for software package installation and deployment. It is suitable for software installation and deployment in large-scale distributed environments. At the same time, during installation and deployment, it can automatically evaluate the performance indicators of the workflow corresponding to the installation task, and determine the optimal installation workflow corresponding to each installation task for software package installation and deployment, ensuring that the software package can be installed and deployed safely and smoothly, avoiding task interruptions.

[0012] In one possible design, after obtaining the terminal list, the terminal type of each terminal in the terminal list, and the authentication information of each terminal in the terminal list, the method further includes:

[0013] Performing a legitimacy check on the authentication information of each terminal in the terminal list;

[0014] The predicting the operation stability of each terminal in the terminal list by using a pre-trained LSTM model based on the historical operation status information of each terminal in the terminal list includes:

[0015] After the authentication information of each terminal in the terminal list passes the legality verification, the operation stability of each terminal in the terminal list is predicted by a pre-trained LSTM model based on the historical operation status information of each terminal in the terminal list.

[0016] In one possible design, after generating the installation tasks for each terminal in the installation list based on the configured software installation policy and determining the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflows corresponding to the installation tasks, the method further includes:

[0017] Based on the historical operation status information of each terminal in the installation list, the operation stability of each terminal in the installation list is predicted by a pre-trained LSTM model.

[0018] In one possible design, determining the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task includes:

[0019] generating a candidate workflow for each installation task in the installation list;

[0020] Establishing an MCTS search tree with the candidate workflow of each installation task in the installation list as the root node, wherein each stage in the MCTS search tree represents a software package deployment path;

[0021] Simulating the execution of the candidate workflow of each installation task in the installation checklist in an actual deployment environment, and evaluating the performance indicators of the candidate workflow of each installation task in the installation checklist;

[0022] Based on the evaluation results, an optimal installation workflow corresponding to each installation task in the installation checklist is determined.

[0023] In one possible design, the authentication information includes a login account, password, and port number.

[0024] In one possible design, the method further includes:

[0025] Obtain metadata information of the upgrade software package uploaded by the user;

[0026] Matching the metadata information of the upgrade software package with the metadata information of each terminal in the terminal list to determine a list of candidate terminals that need to be upgraded;

[0027] Filtering upgradeable terminals from the candidate terminal list based on a set upgrade policy to obtain an upgradeable terminal list;

[0028] Generating an upgrade task for each terminal in the upgradeable terminal list, and determining an optimal upgrade workflow corresponding to the upgrade task for each terminal in the upgradeable terminal list by evaluating performance indicators of the workflow corresponding to the upgrade task;

[0029] The optimal upgrade workflow is sent to the corresponding terminal in the upgradeable terminal list, so that the terminal in the upgradeable terminal list performs software version upgrade based on the received optimal upgrade workflow.

[0030] In one possible design, the upgrade time corresponding to the upgrade task of the terminal with a low load in the upgradeable terminal list is earlier than the upgrade time corresponding to the upgrade task of the terminal with a high load.

[0031] In a second aspect, the present invention provides a software deployment device, comprising:

[0032] An identification unit, used to identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and the terminal type;

[0033] an acquiring unit, configured to acquire a terminal list, a terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list;

[0034] a prediction unit, configured to predict the operation stability of each terminal in the terminal list by using a pre-trained LSTM model based on historical operation status information of each terminal in the terminal list, wherein the historical operation status information includes historical CPU usage and / or historical memory usage;

[0035] a determining unit, configured to determine an installation version of the software package, and determine an installation list from the terminal list based on a dependency relationship between the software version and the terminal type;

[0036] A generating unit, configured to generate an installation task for each terminal in the installation list based on a configured software installation policy;

[0037] The determining unit is further configured to determine the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list.

[0038] In a third aspect, the present invention provides an electronic device comprising a memory, a processor and a transceiver that are communicatively connected in sequence, wherein the memory is used to store computer programs, the transceiver is used to send and receive messages, and the processor is used to read the computer program and execute the software deployment method as described in the first aspect or any possible design of the first aspect.

[0039] In a fourth aspect, the present invention provides a computer-readable storage medium having instructions stored thereon. When the instructions are run on a computer, the software deployment method described in the first aspect or any possible design of the first aspect is executed.

[0040] In a fifth aspect, the present invention provides a computer program product comprising instructions, which, when executed on a computer, causes the computer to execute the software deployment method as described in the first aspect or any possible design of the first aspect.

[0041] Beneficial effects:

[0042] The software deployment method, device, electronic device, and computer program product provided by the present invention can automatically identify software package information and determine an installation list that meets installation requirements to install and deploy the software package. They are applicable to software installation and deployment in large-scale distributed environments. At the same time, during installation and deployment, they can automatically evaluate the performance indicators of the workflow corresponding to the installation task and determine the optimal installation workflow corresponding to each installation task to install and deploy the software package, ensuring that the software package can be installed and deployed safely and smoothly, avoiding task interruptions.

[0043] Furthermore, it can automatically select a terminal suitable for software upgrade and execute the upgrade task according to the environmental characteristics, facilitating software upgrades in large-scale distributed environments. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] Figure 1 A flowchart of the software deployment method provided in an embodiment of the present application;

[0045] Figure 2 A schematic block diagram of a software deployment device provided in an embodiment of the present application;

[0046] Figure 3 A block diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0047] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the present invention will be briefly introduced below in conjunction with the drawings and the description of the embodiments or the prior art. Obviously, the following description of the structure of the drawings is only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative work. It should be noted that the description of these embodiments is used to help understand the present invention, but does not constitute a limitation of the present invention.

[0048] It should be understood that although the terms "first," "second," etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element can be referred to as a second element, and similarly, a second element can be referred to as a first element without departing from the scope of the exemplary embodiments of the present invention.

[0049] It should be understood that the term "and / or" that may appear in this document is merely a description of the association relationship between associated objects, indicating that three relationships may exist. For example, A and / or B may indicate three situations: A exists alone, B exists alone, and A and B exist at the same time. The term " / and" that may appear in this document describes another type of association object relationship, indicating that two relationships may exist. For example, A / and B may indicate two situations: A exists alone, and A and B exist alone. In addition, the character " / " that may appear in this document generally indicates that the previous and subsequent associated objects are in an "or" relationship.

[0050] To facilitate the installation and deployment of software packages, embodiments of the present application provide a software deployment method, apparatus, electronic device, and computer program product, which are applicable to software installation, deployment, and upgrades in large-scale distributed environments.

[0051] The software deployment method provided in the embodiment of the present application can be applied to a server in a distributed environment to perform software installation, deployment and upgrade for a large number of terminals in the distributed environment. It is understood that the execution subject does not constitute a limitation on the embodiment of the present application.

[0052] The software deployment method provided in the embodiment of the present application will be described in detail below.

[0053] like Figure 1 , which is a flowchart of a software deployment method provided in the first aspect of an embodiment of the present application. The software deployment method may include, but is not limited to, the following steps S101-S105.

[0054] Step S101: Identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and the terminal types.

[0055] Users can upload the installation software package they want to install. At this time, all software versions corresponding to the installation software package uploaded by the user and the dependency relationships between software versions and terminal types can be identified. The software versions and the dependency relationships between software versions and terminal types can be stored in the Neo4j graph database to facilitate subsequent version matching and dependency analysis.

[0056] Step S102: Acquire a terminal list, the terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list.

[0057] When a batch installation and deployment software package is required, the user can open the batch deployment page, enter the IP addresses of all terminals that need to be installed and deployed, select the terminal type, and enter the authentication information of each terminal, where the authentication information may include but is not limited to the login account, password, and port number.

[0058] In one or more embodiments, after obtaining the authentication information of each terminal, the authentication information of each terminal in the terminal list may be verified for legitimacy, so that the authentication information can be used to subsequently log in and execute remote installation instructions.

[0059] In one or more embodiments, the authentication information of each terminal may also be imported via a csv (Comma-Separated Values, sometimes also referred to as character-separated values) file, and the integrity and validity of the information may be verified.

[0060] Step S103: Based on the historical operation status information of each terminal in the terminal list, the operation stability of each terminal in the terminal list is predicted by a pre-trained LSTM model.

[0061] The historical operating status information may include, but is not limited to, historical CPU usage and / or historical memory usage.

[0062] In an embodiment of the present application, an LSTM model for predicting the operating stability of each terminal is pre-established. The LSTM model can be trained with the historical operating status information of the sample terminal as input and the operating stability of the sample terminal as output. The operating stability of the sample terminal can be the health score of the sample terminal.

[0063] After the authentication information of each terminal in the terminal list has been verified, a pre-trained LSTM model can be used to predict the operational stability of each terminal in the terminal list based on its historical operational status. This can prevent subsequent software installation and deployment failures caused by network fluctuations or terminal anomalies.

[0064] Step S104: Determine the software package installation version, and determine an installation list from the terminal list based on the dependency relationship between the software version and the terminal type.

[0065] In an embodiment of the present application, all available installation versions can be automatically listed based on the uploaded installation software package, and the most stable version can be recommended based on the version evolution relationship recorded in the Neo4j graph database. The user can also select a specific version. At this time, the server can determine the installation list from the terminal list based on the dependency relationship between the software version and the terminal type.

[0066] The version evolution relationships in the Neo4j graph database record the historical operation data of software packages installed on various types of terminals. This historical operation data can include software error messages. Based on the amount of error messages, the most stable installation version corresponding to each type of terminal can be determined.

[0067] Step S105. Generate installation tasks for each terminal in the installation list based on the configured software installation strategy, and determine the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list.

[0068] In embodiments of the present application, a software installation policy can be preconfigured, which may include a software installation deployment time. The server can automatically generate installation tasks for each terminal in the installation list based on the configured software installation policy. The server can also determine the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, so that the software package can be installed based on the optimal installation workflow corresponding to each installation task in the installation list.

[0069] Determining the optimal installation workflow corresponding to each installation task in the installation list may include, but is not limited to, the following steps S1051 - S1054 .

[0070] Step S1051: Generate candidate workflows for each installation task in the installation list.

[0071] Step S1052: Establish an MCTS search tree with the candidate workflows of each installation task in the installation list as root nodes, wherein each stage in the MCTS search tree represents a software package deployment path.

[0072] Step S1053: Simulate the execution of the candidate workflow of each installation task in the installation list in the actual deployment environment, and evaluate the performance indicators of the candidate workflow of each installation task in the installation list.

[0073] The performance indicators of the candidate workflow may include, but are not limited to, data such as the installation and deployment time, resource utilization, and deployment success rate of the candidate workflow.

[0074] Step S1054: Based on the evaluation results, determine the optimal installation workflow corresponding to each installation task in the installation list.

[0075] In one or more embodiments, after generating installation tasks for each terminal in the installation list based on the configured software installation policy and determining the optimal installation workflow for each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, the operating stability of each terminal in the installation list can be predicted using a pre-trained LSTM model based on the historical operating status information of each terminal in the installation list. This allows for the prediction of potential problems during the software package installation and deployment process, providing early warnings and avoiding task interruptions.

[0076] After all installation tasks are completed, the server can automatically generate a job report, which may include but is not limited to installation success rate, identification cause analysis, terminal resource usage (such as CPU, memory, and network usage), installation time, and the specific performance of each terminal.

[0077] Based on the above embodiments, the present application embodiment further provides a possible design 1 for software upgrade, which may include but is not limited to the following steps S201-S205.

[0078] Step S201: Obtain metadata information of the upgrade software package uploaded by the user.

[0079] The metadata of the upgrade package may include, but is not limited to, the terminal type for which the upgrade package is applicable, the major version number, minor version number, version attributes, compilation summary number, and applicable terminal architecture type. The metadata of the upgrade package may also be stored in a Neo4j graph database for subsequent matching and querying.

[0080] Step S202: Match the metadata information of the upgrade software package with the metadata information of each terminal in the terminal list to determine a list of candidate terminals that need to be upgraded.

[0081] In this embodiment of the present application, the server records metadata information for each terminal. This terminal metadata information may include, but is not limited to, the terminal type, terminal architecture type, major and minor version numbers of the installed software package, etc. The server can then match the metadata information of the upgrade software package with the metadata information of each terminal in the terminal list to determine a list of candidate terminals that require upgrade.

[0082] In one or more embodiments, after determining the list of candidate terminals that need to be upgraded, the historical status of the terminals (such as CPU and memory usage) can be analyzed through the LSTM model to predict the upgrade success rate of the terminals and eliminate high-risk terminals.

[0083] Step S203: Screen out upgradeable terminals from the candidate terminal list based on the set upgrade policy to obtain an upgradeable terminal list.

[0084] The upgrade policy that is set may include, but is not limited to, whether to upgrade to the latest version, whether to accept the test version, the time period for upgrade (such as 2:00-4:00 am), etc.

[0085] In one or more embodiments, after obtaining a list of upgradeable terminals, the upgrade order of the terminals can be dynamically optimized. After optimization, terminals with lower loads are upgraded first. That is, the upgrade time corresponding to the upgrade tasks of terminals with lower loads in the upgradeable terminal list is earlier than the upgrade time corresponding to the upgrade tasks of terminals with higher loads. This can avoid resource bottlenecks caused by centralized upgrades.

[0086] Step S204: Generate an upgrade task for each terminal in the upgradeable terminal list, and determine the optimal upgrade workflow corresponding to the upgrade task of each terminal in the upgradeable terminal list by evaluating the performance indicators of the workflow corresponding to the upgrade task.

[0087] The upgrade task of each terminal may include, but is not limited to, upgrade time, hardware architecture version, download address, verification information, etc. The upgrade task of each terminal can be stored in a database to facilitate subsequent task distribution and status tracking.

[0088] Step S205: Send the optimal upgrade workflow to the corresponding terminal in the upgradeable terminal list, so that the terminal in the upgradeable terminal list performs software version upgrade based on the received optimal upgrade workflow.

[0089] After the optimal upgrade workflow is sent to the corresponding terminal in the upgradeable terminal list, the terminal can perform the following pre-check tasks before upgrading:

[0090] Check whether the current host status is normal (for example, whether the CPU usage exceeds 60% and the memory usage exceeds 80%), whether there are any running tasks, and whether the software version of the assigned tasks matches the current host hardware and operating system. Use the LSTM model to predict the stability of the host to ensure a safe upgrade environment.

[0091] If the current host status is normal, there are no running tasks, the software version of the task issued matches the current host hardware and operating system, and the host is stable, the terminal will upgrade the software version.

[0092] In one or more embodiments, after waiting for all upgrade tasks to be completed, the server may summarize the execution results to generate an upgrade report and feedback it on the front-end page. The upgrade report may include, but is not limited to, the upgrade success rate, failure cause analysis, upgrade time for each terminal, resource usage, detailed logs and recovery status of abnormal terminals, etc. The report supports exporting to PDF or CSV format to facilitate subsequent analysis and archiving, and the upgrade report can be displayed on the front-end page and provide visual charts.

[0093] The software deployment method provided by the present invention can automatically identify software package information and determine an installation list that meets installation requirements for software package installation and deployment. At the same time, during installation and deployment, it can automatically evaluate the performance indicators of the workflow corresponding to the installation task and determine the optimal installation workflow corresponding to each installation task for software package installation and deployment, ensuring that the software package can be installed and deployed safely and smoothly, avoiding task interruptions. It can automatically select terminals suitable for software upgrades and execute upgrade tasks based on environmental characteristics, facilitating software upgrades in large-scale distributed environments. The upgrade success rate of terminals can be predicted using an LSTM model to eliminate high-risk terminals. It can also dynamically optimize the upgrade sequence of terminals to avoid resource bottlenecks caused by centralized upgrades. The method is suitable for software installation, deployment, and upgrades in large-scale distributed environments.

[0094] See last Figure 2 , an embodiment of the present application provides a software deployment device, the software deployment device comprising:

[0095] An identification unit, used to identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and the terminal type;

[0096] an acquiring unit, configured to acquire a terminal list, a terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list;

[0097] a prediction unit, configured to predict the operation stability of each terminal in the terminal list by using a pre-trained LSTM model based on historical operation status information of each terminal in the terminal list, wherein the historical operation status information includes historical CPU usage and / or historical memory usage;

[0098] a determining unit, configured to determine an installation version of the software package, and determine an installation list from the terminal list based on a dependency relationship between the software version and the terminal type;

[0099] A generating unit, configured to generate an installation task for each terminal in the installation list based on a configured software installation policy;

[0100] The determining unit is further configured to determine the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list.

[0101] The working process, working details and technical effects of the software deployment device provided in the second aspect of this embodiment can be found in the first aspect of the embodiment and will not be repeated here.

[0102] like Figure 3As shown, the third aspect of an embodiment of the present application provides an electronic device, comprising a memory, a processor and a transceiver that are communicatively connected in sequence, wherein the memory is used to store computer programs, the transceiver is used to send and receive messages, and the processor is used to read the computer program and execute the software deployment method as described in the first aspect of the embodiment.

[0103] For example, the memory may include, but is not limited to, random access memory (RAM), read-only memory (ROM), flash memory, first-in-first-out memory (FIFO) and / or first-in-last-out memory (FILO), etc.; the processor may be but is not limited to a microprocessor of the STM32F105 series, an ARM (Advanced RISC Machines), an X86 or other architecture processor, or a processor with an integrated NPU (neural-network processing units); the transceiver may be, but is not limited to, a WiFi (Wireless Fidelity) wireless transceiver, a Bluetooth wireless transceiver, a General Packet Radio Service (GPRS) wireless transceiver, a ZigBee protocol (a low-power local area network protocol based on the IEEE802.15.4 standard, ZigBee) wireless transceiver, a 3G transceiver, a 4G transceiver and / or a 5G transceiver, etc.

[0104] A fourth aspect of this embodiment provides a computer-readable storage medium storing instructions containing the software deployment method described in the first aspect of the embodiment, that is, the computer-readable storage medium stores instructions that, when executed on a computer, execute the software deployment method described in the first aspect. The computer-readable storage medium refers to a data storage medium, which may include, but is not limited to, a floppy disk, an optical disk, a hard disk, a flash memory, a USB flash drive, and / or a memory stick. The computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable device.

[0105] The fifth aspect of this embodiment provides a computer program product containing instructions, which, when executed on a computer, causes the computer to execute the software deployment method as described in the first aspect of the embodiment, wherein the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.

[0106] It should be understood that certain details are provided in the following description to facilitate a thorough understanding of the example embodiments. However, one of ordinary skill in the art will appreciate that the example embodiments can be practiced without these specific details. For example, a system may be shown in block diagrams to avoid obscuring the example with unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail to avoid obscuring the example embodiments.

[0107] It should be noted that the above description is only a preferred embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the scope of protection of the present invention.

Claims

1. A software deployment method, characterized in that: include: Identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and terminal types; Obtaining a terminal list, a terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list; Predicting the operational stability of each terminal in the terminal list using a pre-trained LSTM model based on historical operational status information of each terminal in the terminal list, the historical operational status information including historical CPU usage and / or historical memory usage; Determining the software package installation version, and determining an installation list from the terminal list based on a dependency relationship between the software version and the terminal type; generating an installation task for each terminal in the installation list based on the configured software installation policy, and determining an optimal installation workflow corresponding to each installation task in the installation list by evaluating performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list; Determining the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task includes: generating a candidate workflow for each installation task in the installation list; Establishing an MCTS search tree with the candidate workflow of each installation task in the installation list as the root node, wherein each stage in the MCTS search tree represents a software package deployment path; Simulating the execution of the candidate workflow of each installation task in the installation checklist in an actual deployment environment, and evaluating the performance indicators of the candidate workflow of each installation task in the installation checklist; Based on the evaluation results, an optimal installation workflow corresponding to each installation task in the installation checklist is determined.

2. The software deployment method according to claim 1, characterized in that: After obtaining the terminal list, the terminal type of each terminal in the terminal list, and the authentication information of each terminal in the terminal list, the method further includes: Performing a legitimacy check on the authentication information of each terminal in the terminal list; The predicting the operation stability of each terminal in the terminal list by using a pre-trained LSTM model based on the historical operation status information of each terminal in the terminal list includes: After the authentication information of each terminal in the terminal list passes the legality verification, the operation stability of each terminal in the terminal list is predicted by a pre-trained LSTM model based on the historical operation status information of each terminal in the terminal list.

3. The software deployment method according to claim 1, wherein: After generating the installation tasks for each terminal in the installation list based on the configured software installation policy, and determining the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance indicators of the workflow corresponding to the installation task, the method further includes: Based on the historical operation status information of each terminal in the installation list, the operation stability of each terminal in the installation list is predicted by a pre-trained LSTM model.

4. The software deployment method according to claim 1, wherein: The authentication information includes a login account, password and port number.

5. The software deployment method according to claim 1, wherein: The method further comprises: Obtain metadata information of the upgrade software package uploaded by the user; Matching the metadata information of the upgrade software package with the metadata information of each terminal in the terminal list to determine a list of candidate terminals that need to be upgraded; Filtering upgradeable terminals from the candidate terminal list based on a set upgrade policy to obtain an upgradeable terminal list; Generating an upgrade task for each terminal in the upgradeable terminal list, and determining an optimal upgrade workflow corresponding to the upgrade task for each terminal in the upgradeable terminal list by evaluating performance indicators of the workflow corresponding to the upgrade task; The optimal upgrade workflow is sent to the corresponding terminal in the upgradeable terminal list, so that the terminal in the upgradeable terminal list performs software version upgrade based on the received optimal upgrade workflow.

6. The software deployment method according to claim 5, characterized in that: The upgrade time corresponding to the upgrade task of the terminal with low load in the upgradeable terminal list is earlier than the upgrade time corresponding to the upgrade task of the terminal with high load.

7. A software deployment device, characterized in that: include: An identification unit, used to identify all software versions corresponding to the installation software package uploaded by the user and the dependency relationship between the software versions and the terminal type; an acquiring unit, configured to acquire a terminal list, a terminal type of each terminal in the terminal list, and authentication information of each terminal in the terminal list; a prediction unit, configured to predict the operation stability of each terminal in the terminal list by using a pre-trained LSTM model based on historical operation status information of each terminal in the terminal list, wherein the historical operation status information includes historical CPU usage and / or historical memory usage; a determining unit, configured to determine an installation version of the software package, and determine an installation list from the terminal list based on a dependency relationship between the software version and the terminal type; A generating unit, configured to generate an installation task for each terminal in the installation list based on a configured software installation policy; The determining unit is further configured to determine an optimal installation workflow corresponding to each installation task in the installation list by evaluating performance indicators of the workflow corresponding to the installation task, so as to install the software package based on the optimal installation workflow corresponding to each installation task in the installation list; When the determining unit is used to determine the optimal installation workflow corresponding to each installation task in the installation list by evaluating the performance index of the workflow corresponding to the installation task, it is specifically used to: generating a candidate workflow for each installation task in the installation list; Establishing an MCTS search tree with the candidate workflow of each installation task in the installation list as the root node, wherein each stage in the MCTS search tree represents a software package deployment path; Simulating the execution of the candidate workflow of each installation task in the installation checklist in an actual deployment environment, and evaluating the performance indicators of the candidate workflow of each installation task in the installation checklist; Based on the evaluation results, an optimal installation workflow corresponding to each installation task in the installation checklist is determined.

8. An electronic device, characterized in that: The system comprises a memory, a processor and a transceiver which are communicatively connected in sequence, wherein the memory is used to store a computer program, the transceiver is used to send and receive messages, and the processor is used to read the computer program and execute the software deployment method according to any one of claims 1 to 6.

9. A computer program product comprising a computer program or instructions, characterized in that When the computer program or the instruction is executed by a computer, the software deployment method according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Software recommending method and server

    CN104765793A

  • Software deployment method and device, electronic equipment and storage medium

    CN115033251A