Software deployment method and device, equipment, medium and program product

By using artificial intelligence to analyze code data dependencies and adapt to environment configuration, the problem of lengthy software builds caused by complex multi-project dependencies in existing technologies is solved, achieving efficient and stable software deployment and resource utilization.

CN121704855APending Publication Date: 2026-03-20INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202511927639.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-19
Publication Date
2026-03-20

AI Technical Summary

Technical Problem

Existing technologies struggle to dynamically optimize the build order when dealing with complex multi-project dependencies, resulting in lengthy software build processes that impact system resource utilization and system performance stability.

Method used

By introducing artificial intelligence technology, using pre-trained dependency chain models and graph neural networks to parse dependencies in code data, determine priorities, and combine them with a pre-built knowledge base for adaptive environment configuration and deployment parameter extraction, intelligent software deployment is achieved.

Benefits of technology

It improves software build efficiency, reduces dependency conflicts and resource waste, ensures a high degree of matching between environment configuration and software characteristics, and enhances the optimal allocation of system resources and performance stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121704855A_ABST
    Figure CN121704855A_ABST
Patent Text Reader

Abstract

The invention provides a software deployment method which can be applied to the technical field of artificial intelligence. The software deployment method comprises the following steps: in response to received code data uploaded by a user, analyzing the code data to obtain a dependency relationship among software items in the code data, and determining a priority corresponding to the dependency relationship; according to the priorities, the software projects are constructed in sequence to generate target software; according to the deployment requirement of the target software, searching from a pre-constructed knowledge base to obtain configuration information matched with the deployment requirement, and configuring a target deployment environment according to the configuration information; and extracting deployment parameters from the target deployment environment, and deploying the target software to the target deployment environment according to the deployment parameters. The invention further provides a software deployment device and equipment, a medium and a program product.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of artificial intelligence, in particular to the application of artificial intelligence in the field of financial technology, and more particularly to a software deployment method, device, equipment, medium and program product. BACKGROUND

[0002] With the continuous development of software systems, especially the popularity of microservice architecture, automated deployment integrating software development, testing, and operation and maintenance processes has become increasingly important.

[0003] However, the prior art usually relies on preset rules or simple scripts when dealing with complex multi-project dependency relationships, making it difficult to dynamically optimize the build order, resulting in a lengthy software build process and affecting system resource utilization. In addition, the prior art lacks the ability to perceive the real-time state of the actual running requirements and environment of the software, resulting in environment configurations that are often generalized and unable to be adaptively optimized according to software characteristics, which can easily cause excessive allocation of resources and affect system performance and stability. SUMMARY

[0004] In view of the above problems, the present application provides a software deployment method, device, equipment, medium and program product for improving system resource utilization and stability.

[0005] According to a first aspect of the present application, a software deployment method is provided, comprising: in response to receiving user-uploaded code data, parsing the code data to obtain the dependency relationships between the software projects in the code data, and determining the priority corresponding to the dependency relationships; according to the priority, sequentially building each software project to generate a target software; according to the deployment requirements of the target software, retrieving configuration information matching the deployment requirements from a pre-built knowledge base, and configuring a target deployment environment according to the configuration information; extracting deployment parameters from the target deployment environment, and deploying the target software to the target deployment environment according to the deployment parameters.

[0006] According to an embodiment of the present application, in response to receiving user-uploaded code data, parsing the code data to obtain the dependency relationships between the software projects in the code data, comprises: in response to receiving user-uploaded code data, using a pre-trained dependency chain model to parse the code data to obtain the dependency relationships between the software projects in the code data.

[0007] According to an embodiment of the present application, in response to receiving user-uploaded code data, parsing the code data to obtain the dependency relationships between the software projects in the code data, comprises: in response to receiving user-uploaded code data, extracting a dependency list in the code data; parsing the dependency list to obtain the dependency relationships between the software projects in the code data.

[0008] According to an embodiment of the present application, in response to receiving the code data uploaded by the user, the code data is parsed to obtain the dependency relationship between each software item in the code data, and further comprising: according to the dependency relationship, a dependency graph is generated by using a pre-constructed graph neural network, wherein the nodes in the dependency graph represent software items, and the edges in the dependency graph represent the dependency relationship between software items.

[0009] According to an embodiment of the present application, according to the deployment requirement of the target software, the configuration information matching the deployment requirement is retrieved from the pre-constructed knowledge base, and the target deployment environment is configured according to the configuration information, comprising: according to the deployment requirement of the target software, the hardware resource information, software resource information and patch version matching the deployment requirement are retrieved from the pre-constructed knowledge base; according to the hardware resource information, software resource information and patch version, the environment parameters of the current deployment environment are updated to obtain the target deployment environment.

[0010] According to an embodiment of the present application, the deployment parameters are extracted from the target deployment environment, and the target software is deployed to the target deployment environment according to the deployment parameters, comprising: according to a pre-defined template, the deployment parameters are extracted from the target deployment environment, wherein the deployment parameters include server IP address, port, permission and deployment path; according to the deployment parameters and the type of the target deployment environment, the deployment instruction is generated; according to the deployment instruction, the target software is deployed to the target deployment environment.

[0011] According to an embodiment of the present application, the method further comprises: monitoring the deployment state of the target software in real time; in response to an abnormality in the deployment state, triggering a retry strategy or a rollback strategy.

[0012] According to an embodiment of the present application, the method further comprises: testing the target software after deployment to verify the running condition of the target software in the target deployment environment; obtaining the construction data, deployment data and test data of the target software, and performing aggregated analysis on the construction data, deployment data and test data to obtain an analysis result; according to the analysis result, the current deployment strategy is adjusted.

[0013] The second aspect of the present application provides a software deployment device, comprising: an analysis module, configured to parse the code data uploaded by the user in response to receiving the code data, to obtain the dependency relationship between each software item in the code data, and to determine the priority corresponding to the dependency relationship; a construction module, configured to construct each software item in turn according to the priority to generate a target software; a configuration module, configured to retrieve configuration information matching the deployment requirement from a pre-constructed knowledge base according to the deployment requirement of the target software, and to configure a target deployment environment according to the configuration information; and a deployment module, configured to extract deployment parameters from the target deployment environment, and to deploy the target software to the target deployment environment according to the deployment parameters.

[0014] The third aspect of the present application provides an electronic device, comprising: one or more processors; a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the method.

[0015] The fourth aspect of the present application also provides a computer readable storage medium having stored thereon a computer program or instructions, which, when executed by a processor, implement the steps of the method.

[0016] The fifth aspect of the present application also provides a computer program product comprising a computer program or instructions, which, when executed by a processor, implement the steps of the method. BRIEF DESCRIPTION OF DRAWINGS

[0017] The above and other objects, features and advantages of the present application will become more apparent from the following description when taken in conjunction with the accompanying drawings, in which:

[0018] Figure 1 An application scenario diagram of the software deployment method according to the embodiments of the present application is schematically shown;

[0019] Figure 2 A flowchart of the software deployment method according to the embodiments of the present application is schematically shown;

[0020] Figure 3 A dependency graph display diagram generated based on dependency relationships according to the embodiments of the present application is schematically shown;

[0021] Figure 4 A principle diagram of the software deployment method according to the embodiments of the present application is schematically shown;

[0022] Figure 5 A structure block diagram of the software deployment apparatus according to the embodiments of the present application is schematically shown; and

[0023] Figure 6 A block diagram of an electronic device suitable for implementing the software deployment method according to the embodiments of the present application is schematically shown. DETAILED DESCRIPTION

[0024] Hereinafter, embodiments of the present application will be described with reference to the accompanying drawings. However, it is to be understood that these descriptions are merely exemplary and are not intended to limit the scope of the present application. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the present application. However, it will be apparent to one skilled in the art that one or more embodiments can be practiced without these specific details. In other instances, well-known structures and techniques have been omitted in order not to unnecessarily obscure aspects of the present application.

[0025] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. As used herein, the terms "comprises", "comprising", "includes", "including" and the like are specifically intended to be open-ended and to mean that other features, steps, operations, and / or components can be added.

[0026] All terms used herein including technical and scientific terms have the meanings commonly understood by one of ordinary skill in the art unless otherwise defined. It should be noted that the terms used herein are defined as having meanings that are consistent with the context of the specification in which the terms are used and should not be interpreted in an overly idealized or overly formal way.

[0027] In situations where similar terminology is used, such as "at least one of A, B, and C is used in general to mean "A or B or C or any combination of these" (for example, "a system having at least one of A, B, and C" should include, but not be limited to, a system having A alone, a system having B alone, a system having C alone, a system having both A and B, a system having both A and C, a system having both B and C, and / or a system having A, B, and C, etc.).

[0028] It should be noted that the software deployment method and device of the present application can be used in the field of financial technology for software deployment, and can also be used in any field other than the field of financial technology for software deployment. The application field of the software deployment method and device of the present application is not limited.

[0029] In the technical solutions of the present application, the user information (including but not limited to user personal information, user image information, user equipment information such as location information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved are information and data authorized by the user or authorized by all parties, and the collection, storage, use, processing, transmission, provision, disclosure and application of related data comply with relevant laws, regulations and standards, necessary security measures are taken, do not violate public order and good customs, and provide corresponding operation portal for user to choose authorization or refusal.

[0030] In the scenario of using personal information for automated decision-making, the method, device and system provided by the embodiments of the present application all provide corresponding operation portal for the user to choose to agree or refuse the automated decision-making result; if the user chooses to refuse, the expert decision-making process is entered. The expression "automated decision-making" here refers to the activity of automatically analyzing, evaluating the behavior habits, interests and hobbies or economic, health, credit status of individuals, etc. by computer programs and making decisions. The expression "expert decision-making" here refers to the activity of making decisions by personnel who are engaged in a certain field of work, have special experience, knowledge and skills and reach a certain professional level.

[0031] Embodiments of the present application provide a software deployment method, comprising: in response to receiving user-uploaded code data, parsing the code data to obtain dependency relationships between software items in the code data, and determining priorities corresponding to the dependency relationships; according to the priorities, sequentially constructing the software items to generate target software; according to deployment requirements of the target software, retrieving configuration information matching the deployment requirements from a pre-constructed knowledge base, and configuring a target deployment environment according to the configuration information; extracting deployment parameters from the target deployment environment, and deploying the target software to the target deployment environment according to the deployment parameters.

[0032] Figure 1 An application scenario diagram of the software deployment method according to an embodiment of the present application is schematically shown.

[0033] As shown in Figure 1 The application scenario 100 according to this embodiment can include a first terminal device 101, a second terminal device 102, and a third terminal device 103. A network 104 is a medium for providing communication links between the first terminal device 101, the second terminal device 102, the third terminal device 103, and a server 105. The network 104 can include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.

[0034] A user can use the first terminal device 101, the second terminal device 102, and the third terminal device 103 to interact with the server 105 through the network 104 to receive or send messages, etc. Various communication client applications can be installed on the first terminal device 101, the second terminal device 102, and the third terminal device 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc. (only as examples).

[0035] The first terminal device 101, the second terminal device 102, and the third terminal device 103 can be various electronic devices with display screens and supporting web browsing, including but not limited to smartphones, tablet computers, laptop computers, desktop computers, etc.

[0036] The server 105 can be a server providing various services, such as a background management server supporting websites browsed by users using the first terminal device 101, the second terminal device 102, and the third terminal device 103 (only as an example). The background management server can analyze and process received user requests and other data, and feed back the processing results (such as web pages, information, or data generated according to user requests, etc.) to the terminal devices.

[0037] It should be noted that the software deployment method provided in the embodiments of the present application can be generally executed by the server 105. Correspondingly, the software deployment apparatus provided in the embodiments of the present application can be generally arranged in the server 105. The software deployment method provided in the embodiments of the present application can also be executed by a server or a server cluster different from the server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103 and / or the server 105. Correspondingly, the software deployment apparatus provided in the embodiments of the present application can also be arranged in a server or a server cluster different from the server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103 and / or the server 105.

[0038] It should be understood that Figure 1 The number of terminal devices, networks and servers in the above scenario is only illustrative. According to the implementation needs, there can be any number of terminal devices, networks and servers.

[0039] The software deployment method according to the embodiments of the present application will be described in detail below based on the scenario described above. Figure 1 Figures 2-4 The software deployment method according to the embodiments of the present application will be described in detail below based on the scenario described above.

[0040] Figure 2 The flowchart of the software deployment method according to the embodiments of the present application is schematically shown.

[0041] As shown in Figure 2 The software deployment method of this embodiment includes operations S210-S240, which can be executed by an intelligent agent.

[0042] At operation S210, in response to receiving the code data uploaded by the user, the code data is parsed to obtain the dependency relationship between each software item in the code data, and the priority corresponding to the dependency relationship is determined.

[0043] At operation S220, according to the priority, each software item is sequentially constructed to generate the target software.

[0044] At operation S230, according to the deployment requirement of the target software, the configuration information matching the deployment requirement is retrieved from the pre-constructed knowledge base, and the target deployment environment is configured according to the configuration information.

[0045] At operation S240, the deployment parameters are extracted from the target deployment environment, and the target software is deployed to the target deployment environment according to the deployment parameters.

[0046] ​In the embodiments of the present application, by introducing artificial intelligence technology, the complex multi-project dependency relationship in the code data is intelligently analyzed and the priority is determined, so as to improve the construction efficiency of the software, reduce dependency conflicts and resource waste. At the same time, combined with the pre-constructed knowledge base, the target deployment environment is intelligently searched and adaptively configured according to the deployment requirements of the target software, so as to ensure that the environment configuration is highly matched with the software characteristics, so as to realize the optimal allocation of system resources and stable operation of system performance.

[0047] For example, it is assumed that there is a micro-service architecture project (i.e. target software to be deployed), which specifically includes a "user service project", an "order service project", a "payment service project" and a shared "common library project".

[0048] When the developer submits the code modification data of the user service project and the common library project, the intelligent agent (artificial intelligence (AI) deployment system) first analyzes the dependency relationship between the projects by using the functions of static code analysis and natural language processing (NLP) technology integrated therein, such as identifying that the user service project depends on the common library project.

[0049] The intelligent agent determines the priority of the common library project to be the highest and the priority of the user service project to be the second by using the historical construction data and business importance evaluation. The intelligent agent further sorts the projects according to the priority of "no dependency → weak dependency → strong dependency".

[0050] Then, the intelligent agent constructs the common library project and then constructs the user service project in the isolated virtual machine environment according to the priority, until the target software is generated.

[0051] Next, the intelligent agent searches from the pre-constructed knowledge base according to the deployment requirements (such as estimated central processing unit (CPU) / memory usage, database connection requirements, etc.) of the target software.

[0052] The knowledge base, i.e. the environment configuration database, stores the cluster information of different environments (development, test, production), virtual machine parameter best practices, database connection pool configuration, etc. The intelligent agent selects a cluster of a test environment and configures the target deployment environment according to the characteristics of the user service project, including setting appropriate CPU / memory limits, virtual machine startup parameters, database connection strings, etc.

[0053] Finally, the intelligent agent extracts deployment parameters (such as cluster application programming interface (API) service addresses, namespaces, service account credentials, etc.) from the configured cluster, and according to the deployment parameters, deploys the image of the user service project to the specified namespace of the target cluster, thereby completing the deployment of the target software to the target deployment environment.

[0054] According to the embodiments of the present application, intelligent dependency analysis and priority optimization effectively avoid the build bottlenecks and resource idling caused by complex dependencies in traditional automated deployment, greatly shorten the software build time, and reduce the consumption of computing resources. In addition, environment adaptive configuration can accurately allocate and optimize the configuration of CPU, memory, storage, network and other resources according to the actual needs of the target software, avoid resource waste or deficiency, and thus significantly improve the running performance and stability of the system after deployment.

[0055] In the embodiments of the present application, operation S210 responds to the receipt of the user uploaded code data, parses the code data to obtain the dependency relationship between each software project in the code data, which may include, for example:

[0056] In response to receiving the user uploaded code data, the pre-trained dependency chain model is used to parse the code data to obtain the dependency relationship between each software project in the code data.

[0057] In the embodiments of the present application, by introducing a pre-trained dependency chain model, complex and non-explicit dependency relationships between software projects are identified from the code data at a deeper level to overcome the problems of omission or misjudgment that may occur in traditional configuration file-based parsing.

[0058] For example, in addition to the dependencies declared in the above embodiments, the user service project also calls the API of the "notification service project" through a remote calling framework, but such a call is not explicitly declared as a project dependency in the code.

[0059] After the intelligent agent receives the code data, its core dependency chain model (based on a deep learning model, trained on a large number of historical code libraries) not only parses the code data, but also analyzes the code through an abstract syntax tree (AST) to identify the calling mode of the notification service project interface in the user service project. This model can learn and identify API calls, service discovery mechanisms, etc. in different languages and frameworks, thereby inferring the runtime dependency between the user service project and the notification service project.

[0060] Finally, the intelligent agent not only identifies that the user service project depends on the general library project, but also identifies that the user service project depends on the notification service project at runtime.

[0061] According to the embodiments of the present application, the dependency chain model improves the accuracy and comprehensiveness of dependency analysis, especially when dealing with large, heterogeneous or implicit dependency projects, effectively avoiding build failures or runtime errors caused by incomplete dependency recognition, providing more reliable basic data for subsequent priority determination and build process.

[0062] In the embodiments of the present application, operation S210, in response to receiving the code data uploaded by the user, parses the code data to obtain the dependency relationship between each software project in the code data, for example, can also include:

[0063] In response to receiving the code data uploaded by the user, the dependency list in the code data is extracted; the dependency list is parsed to obtain the dependency relationship between each software project in the code data.

[0064] In the embodiments of the present application, in addition to the dependency chain model, the dependency relationship can also be parsed through the structured dependency list, ensuring the unified processing capability of different technology stack project dependency information.

[0065] For example, when the agent receives code data containing different programming language projects, different parsers can be called for different language code data. Different parsers will each output a standardized dependency list, which records the dependency relationship between each software project.

[0066] The agent further parses the standardized dependency list to identify the dependencies belonging to internal software projects and distinguishes external library dependencies, thereby obtaining the dependency relationship between each software project.

[0067] According to the embodiments of the present application, the dependency relationship is parsed through the structured dependency list, simplifying the acquisition process of multi-language, multi-framework project dependency information, improving the efficiency and maintainability of dependency analysis, and enabling the agent to process dependency data from different project types in a unified manner.

[0068] In the embodiments of the present application, after operation S210, in response to receiving the code data uploaded by the user, parses the code data to obtain the dependency relationship between each software project in the code data, for example, can also include:

[0069] According to the dependency relationship, a dependency graph is generated using a pre-constructed graph neural network, wherein the nodes in the dependency graph represent software projects, and the edges in the dependency graph represent the dependency relationship between software projects.

[0070] In the embodiments of the present application, the graph neural network is introduced to visualize and structure the complex software project dependency relationship into a dependency graph, so that the agent can use the powerful analysis capability of the graph structure data to more comprehensively and intuitively understand and process the correlation between projects. For details, see Figure 3

[0071] Figure 3 An example of a dependency graph display diagram generated based on dependency relationship according to an embodiment of the present application is shown.

[0072] As Figure 3 shown, in the embodiments of the present application, it is assumed that the agent has identified that the user service project depends on the general library project, and also depends on the notification service project at runtime. Next, the pre-constructed graph neural network model is used to construct the dependency graph:

[0073] Create nodes: create a node for each software project such as the user service project, the general library project, the notification service project, etc. The node can contain the metadata of the project (such as language, responsible person, business importance label, etc.).

[0074] Create edges: create an edge of "compile-time dependency" between the user service project node and the general library project node; create an edge of "runtime dependency" between the user service project node and the notification service project node. The edge can contain the dependency type, version range, etc.

[0075] The graph neural network can further learn the feature representation of the nodes and edges when constructing the graph, and capture the complex information such as the strength, direction and transitivity of the dependency.

[0076] According to the embodiments of the present application, the generation of the dependency graph provides an efficient and intuitive data structure for subsequent priority determination, impact analysis, resource scheduling, etc. The use of the graph neural network can capture deep dependency features, which helps to discover potential circular dependencies and critical paths, and provides more accurate input for intelligent decision-making.

[0077] In the embodiments of the present application, operation S230 retrieves configuration information matching the deployment requirement from the pre-constructed knowledge base according to the deployment requirement of the target software, and configures the target deployment environment according to the configuration information. For example, it can include:

[0078] According to the deployment requirement of the target software, hardware resource information, software resource information and patch version matching the deployment requirement are retrieved from the pre-constructed knowledge base; the environment parameters of the current deployment environment are updated according to the hardware resource information, the software resource information and the patch version, and the target deployment environment is obtained.

[0079] ​In this embodiment, intelligent retrieval and adaptive updates are used to automate and intelligently configure the deployment environment, ensuring that the environment configuration is highly matched with the actual operating requirements of the target software.

[0080] For example, when an intelligent agent needs to deploy a user service project to a production environment, it will first analyze the deployment requirements of the user service project, assuming that the deployment requirements include:

[0081] Language / Framework: xx language, xx framework integrating automatic configuration, standalone operation, embedded server, externalized configuration and monitoring management.

[0082] Resource estimates: Historical data and AI prediction models show that the service requires 4 CPU cores and 8GB of memory during peak periods.

[0083] Dependencies: xx database, message queue based on publish / subscribe pattern.

[0084] Security requirements: Requires an operating system with the latest security patches.

[0085] Then, the agent queries a knowledge base, which can be a database containing cluster configurations, virtual machine templates, image versions, middleware versions, and operating system patch lists.

[0086] For example, the agent retrieved and matched the following configuration information:

[0087] Hardware resource information: The types of nodes available in the production environment cluster (such as server nodes that can provide 4 vCPUs / 16GB of memory), and the recommended storage type.

[0088] Software resource information: recommended programming language version, the latest stable version of the xx cluster, connection pool configuration template for the xx database, and client configuration, etc.

[0089] Patch version: The latest security patch package for the operating system, and the latest security update version for the xx programming language version.

[0090] Finally, based on the retrieved configuration information, the agent automatically generates or updates the "format file for defining and configuring container orchestration platform resource objects" and related configurations for the production environment, thus obtaining the target deployment environment.

[0091] According to embodiments of this application, intelligent retrieval and adaptive updates significantly reduce manual intervention in environment configuration, improving deployment efficiency and accuracy. By matching hardware resources, software stacks, and the latest security patches, the optimization, security, and stability of the deployment environment are ensured, thereby improving the performance and reliability of the deployed application.

[0092] In this embodiment of the application, operation S240 extracts deployment parameters from the target deployment environment and deploys the target software to the target deployment environment according to the deployment parameters. For example, it may include:

[0093] Based on a predefined template, deployment parameters are extracted from the target deployment environment, including server IP address, port, permissions, and deployment path. Based on the deployment parameters and the type of the target deployment environment, deployment instructions are generated. Based on the deployment instructions, the target software is deployed to the target deployment environment.

[0094] In this embodiment, the deployment operation is standardized and automated by templated parameter extraction and instruction generation, ensuring the accuracy and repeatability of the deployment process, while taking into account the differences in different deployment environment types.

[0095] For example, assuming the agent has already configured the deployment environment, and now needs to actually execute the deployment, it can be done as follows:

[0096] First, extract deployment parameters: Based on the predefined deployment template, the agent extracts key deployment parameters from the "format file for defining and configuring container orchestration platform resource objects" generated in the previous step, including:

[0097] Server IP address: such as the API service address of a container orchestration platform.

[0098] Port: The service port exposed to the outside world by the user service item.

[0099] Permissions: Container orchestration platform service account credentials required for deployment operations.

[0100] Deployment path: In container orchestration platforms, it is usually "namespace + deployment name" (e.g., production environment + user service deployment).

[0101] Other parameters include image name, number of replicas, and environment variables.

[0102] Generate deployment instructions: The agent identifies the target deployment environment type as a container orchestration platform and, based on the extracted parameters, generates specific deployment instructions.

[0103] Then, the agent uses its container orchestration platform client to execute relevant instructions based on the extracted service account credentials, deploying the user service items to the container orchestration platform cluster in the production environment.

[0104] According to embodiments of this application, templated parameter extraction significantly improves deployment efficiency and reliability, reducing human error. Automated generation of deployment instructions enables the deployment process to adapt to different environments, reducing operational complexity.

[0105] In this embodiment of the application, the software deployment method may further include, for example:

[0106] Monitor the deployment status of the target software in real time; trigger retry or rollback strategies in response to deployment status anomalies.

[0107] In this embodiment, real-time deployment status monitoring and intelligent anomaly handling mechanisms are introduced to enable the deployment process to have self-healing capabilities, thereby automatically responding to deployment failures and improving the robustness and reliability of the deployment.

[0108] For example, the agent continuously monitors the deployment progress and Pod status of user service projects through the container orchestration platform API.

[0109] The items that an intelligent agent typically checks include:

[0110] Has the Pod been created successfully?

[0111] Check if the containers in the Pod have started successfully.

[0112] Whether the Pod's health checks (such as survival probes and lifecycle probes) pass.

[0113] Has the number of available replicas deployed reached the expected level?

[0114] Are there any startup-related error messages in the Pod's logs?

[0115] Then, the AI ​​will make timely and targeted decisions and responses based on any abnormal states that occur during the monitoring process, for example:

[0116] Scenario A (Pod startup failure, momentary network fluctuation): If the agent detects that the image fetching fails during the Pod startup process due to network fluctuations, it will determine it as a retryable momentary exception. The agent will trigger a retry policy, and the container orchestration controller will automatically attempt to fetch the image again and start the Pod.

[0117] Scenario B (Application Error, Health Check Failure): If the Pod starts successfully but the application's health check (e.g., the API returns a 500 error) continues to fail, the agent determines it to be a serious application-level problem. It will trigger a rollback strategy, automatically rolling back to the last successfully deployed version and notifying operations personnel to analyze the problem.

[0118] According to embodiments of this application, the exception handling mechanism significantly reduces the impact of deployment failures on business operations, and reduces manual intervention and fault recovery time. Through automatic retries or rollbacks, it ensures that the system remains in a known stable state at all times, improving system availability.

[0119] In this embodiment of the application, the software deployment method may further include, for example:

[0120] The target software is tested after deployment to verify its operation in the target deployment environment; the build data, deployment data, and test data of the target software are obtained, and the build data, deployment data, and test data are aggregated and analyzed to obtain the analysis results; based on the analysis results, the current deployment strategy is adjusted.

[0121] In this embodiment of the application, a closed-loop feedback mechanism for the deployment process is established. Through comprehensive data collection and intelligent aggregation analysis, the deployment strategy is continuously optimized and adaptively adjusted, enabling the entire deployment system to continuously learn and improve.

[0122] For example, assuming the target software has been deployed and is running in a production environment, the agent can perform post-deployment testing and verification.

[0123] The intelligent agent triggers automated end-to-end testing to simulate core business processes such as user login and query, and to verify whether the functions of user service items are normal.

[0124] The intelligent agent uses performance testing tools to perform load tests on user service items and collect performance metrics such as response time, throughput, and error rate.

[0125] After the test is completed, the agent can further acquire and aggregate data, such as construction data, deployment data, and test data.

[0126] Data build: The agent records data such as the build time, build resource consumption, and dependency versions of user service projects.

[0127] Deployment data: The agent records data such as deployment success rate, deployment time, number of rollbacks, and resource utilization during deployment.

[0128] Test data: The agent records data such as the pass rate of functional tests, response time, throughput, and error rate of performance tests.

[0129] The agent then aggregates this data and performs correlation analysis using machine learning and data mining algorithms. For example, it analyzes whether a version update of a specific dependency library leads to an increase in build time, or whether an adjustment to a certain virtual machine parameter significantly improves response time.

[0130] Finally, the agent adjusts its deployment strategy based on the analysis results, for example:

[0131] Scenario A (Resource Waste): Analysis shows that the CPU and memory utilization of user services in the production environment has consistently been below 20%, far below their preset resource limits. Based on this analysis, the agent decides to adjust its deployment strategy, automatically reducing the resource limits of user services to free up resources for other services or reduce costs.

[0132] Scenario B (Performance Bottleneck): Analysis shows that after upgrading a specific dependency library version, the response time of user service projects increased significantly, and the error rate rose. The agent decides to adjust the deployment strategy, suggesting that the version of the dependency library be rolled back to the previous stable version, or that a small-scale gray-scale test be prioritized in the next deployment, and that specific performance monitoring of the dependency library be increased.

[0133] Scenario C (Inefficient Build): Analysis shows that the build time for the general library project is too long, and it is a common dependency of multiple services. The agent decides to adjust the deployment strategy, suggesting that the build tasks of the general library project be prioritized for high-performance build agents, or to explore the use of a more efficient build caching mechanism.

[0134] According to the embodiments of this application, the closed-loop feedback mechanism improves the intelligence and adaptability of the deployment strategy, and can dynamically adjust resource allocation, deployment timing, rollback threshold, etc. according to the actual operation effect, thereby continuously optimizing resource utilization, improving system performance, reducing failure rate, and ultimately achieving more efficient and reliable software delivery.

[0135] Figure 4 A schematic diagram illustrating a software deployment method according to an embodiment of this application is shown.

[0136] like Figure 4 As shown in the embodiments of this application, the principle of the software deployment method is as follows:

[0137] (1) Code submission and intelligent parsing:

[0138] Developers input code data (including new features, fixes, or configuration changes) into the system by submitting code. Receiving the code data will automatically trigger the intelligent deployment process.

[0139] After receiving the code data, the agent begins dependency resolution. It uses a pre-trained dependency chain model to perform deep analysis of the code, identifying explicit and implicit dependencies between various software projects. Alternatively, it extracts the dependency list from the code data and standardizes the dependency information for different technology stacks.

[0140] The agent further generates a dependency graph based on the dependencies using a pre-built graph neural network. In this graph, nodes represent software projects, and edges represent the dependencies between software projects, providing a structured data foundation for subsequent intelligent decision-making.

[0141] Based on dependency graphs and historical data, the agent can determine the priority of dependencies; for example, basic library projects are prioritized over business service projects.

[0142] (2) Intelligent construction and target software generation:

[0143] Based on the determined priorities, the agent sequentially builds each software project to generate the target software, which includes processes such as compilation, packaging, and image generation.

[0144] Once the build is complete, the system will enter the automatic deployment phase.

[0145] (3) Intelligent environment configuration:

[0146] Before deploying the target software, intelligent deployment sends the deployment request for the target software to the intelligent agent.

[0147] The intelligent agent, as the core decision-making unit, provides basic data for intelligent deployment and retrieves configuration information that matches the deployment requirements from a pre-built knowledge base based on the deployment requirements of the target software.

[0148] The knowledge base contains a wealth of environment configuration information, such as cluster configuration, virtual machine templates, and image versions. These are maintained and updated by operations and maintenance personnel through integration with other management systems or manual intervention.

[0149] Specifically, the intelligent system can retrieve hardware resource information, software resource information, and patch versions that match the deployment requirements.

[0150] The intelligent deployment module updates the environment parameters of the current deployment environment based on the configuration information (hardware resource information, software resource information, and patch version) to obtain the target deployment environment and achieve adaptive configuration of the environment.

[0151] (4) Intelligent deployment and execution:

[0152] The agent extracts deployment parameters from the target deployment environment. These parameters are extracted based on predefined templates and include server IP address, port, permissions, and deployment path.

[0153] The intelligent agent generates deployment instructions based on deployment parameters and the type of the target deployment environment. Finally, the intelligent deployment module deploys the target software to the target deployment environment according to the deployment instructions.

[0154] (5) Post-deployment monitoring and anomaly handling:

[0155] After the target software is deployed, the AI ​​will monitor its deployment status in real time.

[0156] When an abnormal deployment occurs (such as a service failing to start or a health check failing), the system will automatically trigger a retry or rollback strategy to ensure that the system can quickly recover from the failure and maintain service availability.

[0157] (6) Continuous testing and feedback optimization:

[0158] Once the target software is deployed, it will enter the testing phase. Testers or automated test scripts will test the deployed target software to verify its performance in the target deployment environment.

[0159] The intelligent agent acquires build data, deployment data, and test data of the target software. This data includes build time, deployment success rate, test case pass rate, response time, and resource utilization.

[0160] Then, these construction data, deployment data, and test data are aggregated and analyzed to obtain the analysis results. These analysis results can be linked and fed back to other systems and to the intelligent agent.

[0161] Based on the analysis results, the agent makes decisions to adjust the current deployment strategy, such as optimizing the build order, adjusting environment configuration parameters, and updating the deployment timing, forming a closed loop of continuous learning and optimization.

[0162] Throughout the process, the operations and maintenance role is primarily responsible for maintaining and updating the knowledge base. Through integration with other management systems or manual intervention, it ensures that the basic data in the knowledge base, such as cluster configuration, virtual machine templates, and image versions, are up-to-date and accurate, thereby providing reliable decision-making support for the intelligent agent.

[0163] This software deployment method introduces an intelligent agent as the core decision engine, deeply integrating traditional processes with artificial intelligence technology. It achieves end-to-end intelligence from code parsing, dependency management, intelligent building, adaptive environment configuration, automated deployment, real-time monitoring to continuous feedback optimization, greatly improving the efficiency, quality and stability of software delivery.

[0164] Based on the above software deployment method, this application also provides a software deployment apparatus. The following will be combined with... Figure 5 The device is described in detail.

[0165] Figure 5 A schematic block diagram of a software deployment apparatus according to an embodiment of this application is shown.

[0166] like Figure 5As shown, the software deployment apparatus 500 of this embodiment includes: a parsing module 510, a building module 520, a configuration module 530, and a deployment module 540.

[0167] The parsing module 510 is used to parse the code data in response to receiving the code data uploaded by the user, obtain the dependencies between the software projects in the code data, and determine the priority of the dependencies. In one embodiment, the parsing module 510 can be used to perform the operation S210 described above, which will not be repeated here.

[0168] The build module 520 is used to sequentially build each software project according to priority to generate the target software. In one embodiment, the build module 520 can be used to perform the operation S220 described above, which will not be repeated here.

[0169] The configuration module 530 is used to retrieve configuration information matching the deployment requirements of the target software from a pre-built knowledge base, and configure the target deployment environment according to the configuration information. In one embodiment, the configuration module 530 can be used to perform the operation S230 described above, which will not be repeated here.

[0170] The deployment module 540 is used to extract deployment parameters from the target deployment environment and deploy the target software to the target deployment environment according to the deployment parameters. In one embodiment, the deployment module 540 can be used to perform the operation S240 described above, which will not be repeated here.

[0171] According to an embodiment of this application, the parsing module 510 includes a dependency chain module.

[0172] The dependency chain module is used to respond to the code data uploaded by the user, and to parse the code data using a pre-trained dependency chain model to obtain the dependency relationships between various software projects in the code data.

[0173] According to an embodiment of this application, the parsing module 510 further includes a first extraction module and a list parsing module.

[0174] The first extraction module is used to extract the dependency list from the code data when it receives the code data uploaded by the user.

[0175] The list parsing module is used to parse the dependency list and obtain the dependency relationships between various software projects in the code data.

[0176] According to an embodiment of this application, the parsing module 510 further includes a map generation module.

[0177] The graph generation module is used to generate a dependency graph based on dependencies using a pre-built graph neural network. In the dependency graph, nodes represent software projects, and edges represent the dependencies between software projects.

[0178] According to an embodiment of this application, the configuration module 530 includes a retrieval module and an update module.

[0179] The retrieval module is used to retrieve hardware resource information, software resource information, and patch versions that match the deployment requirements of the target software from a pre-built knowledge base.

[0180] The update module is used to update the environment parameters of the current deployment environment based on hardware resource information, software resource information, and patch versions, so as to obtain the target deployment environment.

[0181] According to an embodiment of this application, the deployment module 540 includes: a second extraction module, an instruction generation module, and a software deployment module.

[0182] The second extraction module is used to extract deployment parameters from the target deployment environment based on a predefined template. These deployment parameters include the server IP address, port, permissions, and deployment path.

[0183] The instruction generation module is used to generate deployment instructions based on deployment parameters and the type of the target deployment environment.

[0184] The software deployment module is used to deploy the target software to the target deployment environment according to the deployment instructions.

[0185] According to an embodiment of this application, the software deployment apparatus further includes a monitoring module and a triggering module.

[0186] The monitoring module is used to monitor the deployment status of the target software in real time.

[0187] The trigger module is used to respond to abnormal deployment status by triggering retry or rollback policies.

[0188] According to embodiments of this application, the software deployment apparatus further includes: a testing module, an aggregation analysis module, and a decision adjustment module.

[0189] The testing module is used to test the deployed target software and verify its operation in the target deployment environment.

[0190] The aggregation analysis module is used to acquire the build data, deployment data, and test data of the target software, and to perform aggregation analysis on the build data, deployment data, and test data to obtain the analysis results.

[0191] The decision adjustment module is used to make decisions and adjustments to the current deployment strategy based on the analysis results.

[0192] According to embodiments of this application, any multiple modules among the parsing module 510, building module 520, configuration module 530, and deployment module 540 can be merged into one module, or any one of these modules can be split into multiple modules. Alternatively, at least some of the functions of one or more of these modules can be combined with at least some of the functions of other modules and implemented in one module. According to embodiments of this application, at least one of the parsing module 510, building module 520, configuration module 530, and deployment module 540 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, at least one of the parsing module 510, building module 520, configuration module 530, and deployment module 540 can be at least partially implemented as a computer program module, which can perform corresponding functions when the computer program module is run.

[0193] Figure 6 A block diagram schematically illustrates an electronic device suitable for implementing a software deployment method according to an embodiment of this application.

[0194] like Figure 6 As shown, an electronic device 600 according to an embodiment of this application includes a processor 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage portion 608 into a random access memory (RAM) 603. The processor 601 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 601 may also include onboard memory for caching purposes. The processor 601 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of this application.

[0195] RAM 603 stores various programs and data required for the operation of electronic device 600. Processor 601, ROM 602, and RAM 603 are interconnected via bus 604. Processor 601 executes various operations of the method flow according to embodiments of this application by executing programs in ROM 602 and / or RAM 603. It should be noted that the programs may also be stored in one or more memories other than ROM 602 and RAM 603. Processor 601 may also execute various operations of the method flow according to embodiments of this application by executing programs stored in said one or more memories.

[0196] According to embodiments of this application, the electronic device 600 may further include an input / output (I / O) interface 605, which is also connected to a bus 604. The electronic device 600 may also include one or more of the following components connected to the input / output (I / O) interface 605: an input section 606 including a keyboard, mouse, etc.; an output section 607 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the input / output (I / O) interface 605 as needed. A removable medium 611, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 610 as needed so that computer programs read from it can be installed into the storage section 608 as needed.

[0197] This application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs, which, when executed, implement the method according to the embodiments of this application.

[0198] According to embodiments of this application, the computer-readable storage medium can be a non-volatile computer-readable storage medium, such as including but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, the computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this application, the computer-readable storage medium may include ROM 602 and / or RAM 603 and / or one or more memories other than ROM 602 and RAM 603 described above.

[0199] Embodiments of this application also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code is used to cause the computer system to implement the methods provided in the embodiments of this application.

[0200] When the computer program is executed by the processor 601, it performs the functions defined in the system / apparatus of this application embodiment. According to the embodiments of this application, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0201] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and installed via the communication section 609, and / or installed from the removable medium 611. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0202] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 609, and / or installed from the removable medium 611. When the computer program is executed by the processor 601, it performs the functions defined in the system of this application embodiment. According to the embodiments of this application, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0203] According to embodiments of this application, program code for executing the computer programs provided in the embodiments of this application can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C", or similar programming languages. The program code can be executed entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0204] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0205] Those skilled in the art will understand that the features described in the various embodiments of this application can be combined and / or combined in various ways, even if such combinations or combinations are not explicitly described in this application. In particular, the features described in the various embodiments of this application can be combined and / or combined in various ways without departing from the spirit and teachings of this application. All such combinations and / or combinations fall within the scope of this application.

Claims

1. A software deployment method, characterized in that, Applied to intelligent agents, the method includes: In response to receiving code data uploaded by a user, the code data is parsed to obtain the dependency relationships between various software projects in the code data, and the priority of the dependency relationships is determined. Based on the stated priority, each software project is constructed sequentially to generate the target software; Based on the deployment requirements of the target software, configuration information matching the deployment requirements is retrieved from a pre-built knowledge base, and the target deployment environment is configured according to the configuration information; Deployment parameters are extracted from the target deployment environment, and the target software is deployed to the target deployment environment according to the deployment parameters.

2. The method according to claim 1, characterized in that, The step of responding to received code data uploaded by the user involves parsing the code data to obtain the dependencies between various software projects within the code data, including: In response to receiving code data uploaded by the user, the code data is parsed using a pre-trained dependency chain model to obtain the dependency relationships between various software projects in the code data.

3. The method according to claim 1, characterized in that, The step of responding to received code data uploaded by the user involves parsing the code data to obtain the dependencies between various software projects within the code data, including: In response to receiving code data uploaded by the user, the dependency list is extracted from the code data; The dependency list is parsed to obtain the dependency relationships between the software projects in the code data.

4. The method according to any one of claims 2 or 3, characterized in that, The step of responding to receiving user-uploaded code data, parsing the code data to obtain the dependencies between various software projects in the code data, further includes: Based on the dependencies, a dependency graph is generated using a pre-built graph neural network, wherein nodes in the dependency graph represent software projects, and edges in the dependency graph represent dependencies between software projects.

5. The method according to claim 1, characterized in that, The step of retrieving configuration information matching the deployment requirements of the target software from a pre-built knowledge base and configuring the target deployment environment according to the configuration information includes: Based on the deployment requirements of the target software, hardware resource information, software resource information, and patch versions that match the deployment requirements are retrieved from a pre-built knowledge base; Based on the hardware resource information, the software resource information, and the patch version, update the environment parameters of the current deployment environment to obtain the target deployment environment.

6. The method according to claim 5, characterized in that, The step of extracting deployment parameters from the target deployment environment and deploying the target software to the target deployment environment according to the deployment parameters includes: Based on a predefined template, deployment parameters are extracted from the target deployment environment, including server IP address, port, permissions, and deployment path. Based on the deployment parameters and the type of the target deployment environment, a deployment instruction is generated; According to the deployment instructions, the target software is deployed to the target deployment environment.

7. The method according to claim 6, characterized in that, The method further includes: Real-time monitoring of the deployment status of the target software; In response to an abnormal deployment status, a retry policy or a rollback policy is triggered.

8. The method according to claim 1, characterized in that, The method further includes: The deployed target software is tested to verify its operation in the target deployment environment; The build data, deployment data, and test data of the target software are obtained, and the build data, deployment data, and test data are aggregated and analyzed to obtain the analysis results. Based on the analysis results, adjustments will be made to the current deployment strategy.

9. A software deployment apparatus, characterized in that, The device includes: The parsing module is used to respond to received code data uploaded by the user, parse the code data, obtain the dependency relationships between various software projects in the code data, and determine the priority of the dependency relationships. A build module is used to sequentially build each software project according to the priority to generate the target software; The configuration module is used to retrieve configuration information matching the deployment requirements of the target software from a pre-built knowledge base, and configure the target deployment environment according to the configuration information. The deployment module is used to extract deployment parameters from the target deployment environment and deploy the target software to the target deployment environment according to the deployment parameters.

10. An electronic device, comprising: One or more processors; Memory, used to store one or more computer programs. The characteristic feature is that the one or more processors execute the one or more computer programs to implement the steps of the method according to any one of claims 1 to 8.

11. A computer-readable storage medium having a computer program or instructions stored thereon, characterized in that, When the computer program or instructions are executed by a processor, they implement the steps of the method according to any one of claims 1 to 8.

12. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instructions are executed by a processor, they implement the steps of the method according to any one of claims 1 to 8.

Citation Information

Cited By

  • Automatic delivery method, automatic delivery platform, equipment, medium and product

    CN121900773A

  • Automated delivery methods, automated delivery platforms, equipment, media and products

    CN121900773B