Deployment method and device of software system, equipment, storage medium and program product
The method and device facilitate flexible and efficient deployment of complex software systems by using a visual orchestration interface to arrange components and configure environmental parameters, addressing the limitations of existing tools.
Patent Information
- Application Number
- CN202411161291.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-22
- Publication Date
- 2024-12-17
AI Technical Summary
Existing software system deployment tools face challenges in flexibility and efficiency, particularly for complex systems with diverse delivery environments, leading to high deployment complexity and user experience issues.
A method and device that utilize a visual orchestration interface to arrange software components, determine dependencies, and configure environmental parameters, enabling automated deployment across multiple environments while separating deployment scripts from the delivery tool.
Enhances deployment flexibility and efficiency by allowing intuitive orchestration and reuse of deployment scripts, improving user experience and reducing deployment difficulty for complex software systems.
Smart Images

Figure CN119149067A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method, device, equipment, storage medium and program product for deploying a software system. Background Art
[0002] During the software system delivery process, due to the high complexity of the system itself and the diversity of user delivery environments, system delivery is difficult, so it is necessary to develop software system delivery tools to assist in the rapid deployment of software systems.
[0003] The current software system delivery tools are mainly divided into two categories: one is customized software system delivery tools, which are customized for the software environment, delivery media, and deployment process of a specific software system. They are less flexible and need to be changed as long as the software environment, delivery media, and deployment process change. The other is general tools. When users want to deploy a software system, they can use these tools to write scripts for the software system more conveniently, thereby realizing the automated deployment of the software system. Although the flexibility of deployment is improved with the help of general tools, the problem of low deployment efficiency still exists. Summary of the invention
[0004] The present application provides a software system deployment method, apparatus, equipment, storage medium and program product to improve the efficiency and flexibility of automatic deployment of software systems and enhance user experience.
[0005] In a first aspect, the present application provides a method for deploying a software system, comprising:
[0006] Displaying a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in the software system;
[0007] Determine an orchestration result according to the user's orchestration operation, wherein the orchestration result is used to indicate multiple components included in the software system, dependencies between the multiple components, and deployment instructions corresponding to each component;
[0008] Determine an environmental parameter list corresponding to the multiple components, and configure environmental parameter information corresponding to multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in the multiple deployment environments;
[0009] After obtaining the multiple components and the deployment scripts corresponding to the components, determining the deployment environment corresponding to each component, and injecting the environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script;
[0010] The multiple components are deployed according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts.
[0011] In a possible design, the arrangement result is determined according to the arrangement operation of the user, including:
[0012] Determine, according to the user's arrangement operation, a plurality of stages corresponding to the deployment process of the software system and the execution order of the plurality of stages;
[0013] Determine the modules to be deployed corresponding to each stage; wherein each stage corresponds to at least one module, each module includes at least one component, and the components in the same module correspond to the same dependency relationship; the components covered by the multiple stages constitute multiple components of the software system;
[0014] Determine the deployment instructions for each component;
[0015] Store an orchestration mapping relationship, where the orchestration mapping relationship is used to indicate the modules corresponding to each stage in the multiple stages, the components corresponding to each module, the dependencies corresponding to each module, and the deployment instructions corresponding to each component, so that during the deployment process, the multiple components are deployed according to the orchestration mapping relationship.
[0016] In a possible design, deploying the multiple components according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts includes:
[0017] Determining the execution order of the multiple stages according to the orchestration mapping relationship;
[0018] For each stage, at least one component corresponding to the stage is determined according to the orchestration mapping relationship, and the execution order of each component is determined according to the dependency relationship corresponding to the module to which each component belongs; wherein components belonging to the same module correspond to the same execution order;
[0019] The multiple components are deployed in accordance with the determined execution order, the deployment instructions corresponding to the components and the updated deployment scripts.
[0020] In one possible design, the method further includes:
[0021] Obtain multiple upgraded components and the upgraded deployment scripts corresponding to each component;
[0022] Determine the deployment environment corresponding to each upgraded component, and inject the environment parameter information corresponding to the deployment environment into the corresponding deployment script to obtain an updated deployment script; wherein each component corresponds to the same deployment environment before and after the upgrade, or corresponds to different deployment environments;
[0023] The upgraded component is deployed according to the orchestration mapping relationship and the updated deployment script of the upgraded component.
[0024] In one possible design, the language corresponding to the deployment instructions of each component matches the language corresponding to the deployment script of the component;
[0025] The deployment instructions of the multiple components cover multiple types of languages;
[0026] The method further comprises:
[0027] After obtaining the upgraded components and the upgraded deployment scripts corresponding to the components, if the deployment script of any component corresponds to different languages before and after the upgrade, a prompt message is generated to prompt the user to modify the deployment instruction of the component.
[0028] In a possible design, determining an environmental parameter list corresponding to the multiple components, and configuring environmental parameter information corresponding to multiple deployment environments according to the environmental parameter list includes:
[0029] Obtaining an environmental parameter list input by a user in the visual arrangement interface; wherein the environmental parameter list is a union of environmental parameters corresponding to the multiple components, and the environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component;
[0030] According to the environment parameter list, environment parameter information corresponding to a plurality of deployment environments is configured, wherein the environment parameter information corresponding to each deployment environment is used to indicate parameter values of each environment parameter in the environment parameter list under the deployment environment.
[0031] In a possible design, deploying the multiple components according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts includes:
[0032] Determining a deployment order of the multiple components according to the dependency relationships between the multiple components, and deploying the multiple components according to the determined deployment order;
[0033] Among them, during the deployment process, the deployment instruction corresponding to the component currently to be deployed is used to call the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component in accordance with the environmental parameter information of the deployment environment corresponding to the component in a deployment method that matches the environmental parameter information, and configure the parameters of the component according to the environmental parameter information.
[0034] In a possible design, determining a deployment order of the multiple components according to the dependency relationship between the multiple components, and deploying the multiple components according to the determined deployment order includes:
[0035] Forming a directed graph according to the dependency relationships between the multiple components, wherein the directed graph is used to indicate the deployment order of the multiple components;
[0036] The multiple components are deployed through multiple threads according to the in-degree and the out-degree in the directed graph.
[0037] In one possible design, the method further includes:
[0038] The execution results are displayed in real time through the interactive interface, including the deployment status at the stage level, the deployment status at the module level, and the execution results corresponding to the deployment script of the currently deployed component;
[0039] In response to a pause instruction for a component initiated by a user through an interactive interface, pausing a deployment process after the deployment script of the component is executed;
[0040] In response to a pause instruction for a module or a stage initiated by a user through an interactive interface, the deployment process is paused after the deployment of the module or the stage is completed.
[0041] In a second aspect, the present application provides a software system deployment device, including:
[0042] A display module, used to display a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in the software system;
[0043] An orchestration module, used to determine an orchestration result according to an orchestration operation of a user, wherein the orchestration result is used to indicate a plurality of components included in the software system, dependencies between the plurality of components, and deployment instructions corresponding to each component;
[0044] A configuration module, used to determine the environmental parameter list corresponding to the multiple components, and configure the environmental parameter information corresponding to the multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in the multiple deployment environments;
[0045] A determination module, configured to determine the deployment environment corresponding to each component after acquiring the multiple components and the deployment scripts corresponding to the components, and inject the environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script;
[0046] The deployment module is used to deploy the multiple components according to the dependency relationship between the multiple components, the deployment instructions corresponding to each component and the updated deployment script.
[0047] In a third aspect, the present application provides an electronic device, comprising: a processor, and a memory communicatively connected to the processor;
[0048] The memory stores computer-executable instructions;
[0049] The processor executes the computer-executable instructions stored in the memory to implement the method described in any one of the first aspects.
[0050] In a fourth aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, they are used to implement the method described in any one of the first aspects.
[0051] In a fifth aspect, the present application provides a computer program product, including a computer program, which implements the method described in any one of the first aspects when executed by a processor.
[0052] The software system deployment method, apparatus, equipment, storage medium and program product provided in the present application can display a visual orchestration interface, wherein the visual orchestration interface is used for a user to orchestrate multiple components included in the software system, and determine the orchestration result according to the user's orchestration operation, wherein the orchestration result is used to indicate the multiple components included in the software system, the dependencies between the multiple components and the deployment instructions corresponding to each component, determine the environment parameter list corresponding to the multiple components, and configure the environment parameter information corresponding to multiple deployment environments according to the environment parameter list, wherein the software system is used to be deployed to the multiple deployment environments, and after obtaining the multiple components and the deployment scripts corresponding to the components, determine the deployment environment corresponding to each component, and inject the environment parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script, and deploy the multiple components according to the dependencies between the multiple components, the deployment instructions corresponding to the components and the updated deployment script. By adopting a visual orchestration interface and determining the deployment instructions of each component and the dependencies between multiple components based on the orchestration results, the deployment process of a complex software system can be built in an intuitive and simple way. The environmental parameter information can be configured for the environmental parameter list corresponding to the component, and the environmental parameter information corresponding to the deployment environment can be injected into the deployment script corresponding to the component to update the deployment script of the component. The deployment script can be developed according to the component characteristics and environmental requirements, which separates the deployment script from the delivery tool, reduces the difficulty of deployment, and improves deployment efficiency. When the component is updated, upgraded, the technology is replaced, or the scenario is expanded, the original orchestration results or deployment scripts can be reused, which effectively improves the overall deployment flexibility and efficiency and improves the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.
[0054] Figure 1 It is a flowchart of a method for deploying a software system provided in an embodiment of the present application;
[0055] Figure 2 It is a flowchart of determining an arrangement result according to an arrangement operation of a user provided in an embodiment of the present application;
[0056] Figure 3 is a schematic diagram of a delivery tool provided in an embodiment of the present application;
[0057] Figure 4 It is a schematic diagram of a component upgrade process provided by an embodiment of the present application;
[0058] Figure 5It is a schematic diagram of a process for configuring environmental parameter information provided by an embodiment of the present application;
[0059] Figure 6 It is a schematic diagram of a deployment process provided by an embodiment of the present application;
[0060] Figure 7 This is a schematic diagram of the principle of a workflow visualization orchestration module provided in an embodiment of the present application;
[0061] Figure 8 It is a schematic diagram of the principle of an environmental parameter management module provided in an embodiment of the present application;
[0062] Fig. 9 It is a schematic diagram of the cooperative relationship of each module provided in the embodiment of the present application;
[0063] Fig.10 It is a schematic diagram of the operating status corresponding to an instantiated deployment module provided in an embodiment of the present application;
[0064] Fig.11 It is a structural diagram of a deployment device of a software system provided in an embodiment of the present application;
[0065] Fig.12 It is a structural schematic diagram of an electronic device provided in an embodiment of the present application.
[0066] The above drawings have shown clear embodiments of the present application, which will be described in more detail later. These drawings and text descriptions are not intended to limit the scope of the present application in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION
[0067] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.
[0068] In the technical solution of this application, the collection, storage, use, processing, transmission, provision and disclosure of user data information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0069] It should be noted that in the embodiments of the present application, certain software, components, models and other existing solutions in the industry may be mentioned, and they should be regarded as exemplary. Their purpose is only to illustrate the feasibility of implementing the technical solution of the present application, but it does not mean that the applicant has or will necessarily use the solution.
[0070] With the continuous development of computer technology, various types of software are also increasing. The rapid deployment of software systems has become an important issue, especially since some software systems themselves are highly complex and have diverse delivery environments, resulting in high delivery difficulties. The delivery and implementation phase of the software system is very lengthy and consumes a lot of manpower.
[0071] In order to solve this problem, customized software delivery tools are used in the delivery process of complex software systems. Such delivery tools are customized for the deployment steps and processes of specific software systems. During the development process, it is necessary to consider the various differences in the production environment, which makes development difficult and requires high investment costs. In addition, although the developed delivery tools are highly targeted, they are not extensible and require regular updates and maintenance. As long as the software environment, delivery media, and deployment process change, the delivery tools need to be changed, which is less flexible. For example, as long as there is a difference between the production environment and the development environment, users are required to manually resolve script exceptions and manually deploy, which places strict requirements on the production environment.
[0072] In some technologies, delivery tools or scripts developed based on general tools can also be used. Although this improves flexibility, it is limited by the capabilities of general tools. The software system cannot choose a deployment technology stack that suits it and can only use the deployment technology stack that the general tools have. The script is separated from the software system. When the software system is updated, the technology is replaced, or the scenario is expanded, the delivery tool cannot be updated with the update of the software system, resulting in poor overall deployment efficiency and flexibility and poor user experience.
[0073] Therefore, the present application proposes a software system deployment method, which separates the deployment script from the software system through visual orchestration of the software system and parameter management of the deployment environment, reduces the deployment difficulty, and facilitates users to quickly deploy complex software systems.
[0074] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0075] Figure 11 is a flow chart of a method for deploying a software system provided in an embodiment of the present application. The method in this embodiment can be executed by a delivery tool, and the method includes:
[0076] S101. Display a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in a software system.
[0077] Optionally, the user in the embodiment of the present application may refer to an individual user or an enterprise customer. The software system may be any type of software system to be deployed, especially a complex software system.
[0078] The software system may be composed of components and dependencies between components. Optionally, the dependencies between components may be parallel or serial. Each component may be regarded as a unit, and the dependencies between components may be regarded as lines. Then the software system may be regarded as a system composed of units and lines.
[0079] The complex software system referred to in the embodiments of the present application, which may also be referred to as a complex system, refers to a software system with a huge number of units, close connections between each other, and intricate. Specifically, in a complex system, components may include business units, and may also include IaaS (Infrastructure as a Service) layer basic hardware, network environment, software operation middleware, storage database, container, PaaS (Platform as a Service) products and other units that the system operation depends on.
[0080] Optionally, the complex software system in the embodiments of the present application may be a distributed system, which is suitable for scenarios requiring collaboration among multiple components, such as scenarios where business components, back-end data processing components, and storage components collaborate, to meet actual deployment requirements in complex scenarios.
[0081] In order to ensure the normal operation of the software system, during the deployment of the software system, the components can be deployed in an orderly manner according to the dependencies of the internal components of the software system. The deployment of the components themselves can also be broken down into multiple steps. For example, before installing the specific software, you can first complete the initialization installation of the environment and mount the data disk.
[0082] In order to simplify the deployment of the software system, this embodiment may provide a visual arrangement interface for the user to arrange multiple components included in the software system.
[0083] For example, a graphical user interface (GUI) is used to display components and dependencies between components. Optionally, graphics such as blocks are used to represent components, and lines are used to connect blocks to represent dependencies between components. The combination of all blocks and lines constitutes the entire software system. Users can drag and drop blocks and lines in the visual arrangement interface to change the order of component deployment, thereby arranging multiple components included in the software system, or can add or delete blocks and lines to increase the components of the software system and the dependencies between components.
[0084] S102: Determine an orchestration result according to the user's orchestration operation, wherein the orchestration result is used to indicate multiple components included in the software system, dependencies between the multiple components, and deployment instructions corresponding to each component.
[0085] For example, the result of the user's editing in the visual orchestration interface is the orchestration result, which can indicate the overall deployment process of the software system. Deployment instructions refer to a series of commands or operations used to deploy the software system to a target environment such as a server or a virtual machine. Optionally, the deployment instructions can be operations such as environment preparation and software installation.
[0086] Optionally, in the graphical interface, the user can add deployment instructions corresponding to the component in a single block representing the component. The lines between multiple blocks can indicate the dependencies between the multiple components, so that based on all the blocks and lines, the multiple components included in the entire software system, the dependencies between the multiple components and the deployment instructions of the components can be determined.
[0087] In this embodiment, users are supported to form the entire deployment process by dragging and dropping during the orchestration process. They can add or delete components at will, and even replace components according to different environmental requirements. The script is responsible for the automatic deployment of components, and only needs to focus on the deployment logic of the components themselves, without having to worry about the dependencies between the components. This orchestration process can facilitate users to quickly orchestrate the deployment process according to different environments and requirements, thereby improving the efficiency of deployment.
[0088] S103, determining an environmental parameter list corresponding to the multiple components, and configuring environmental parameter information corresponding to the multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in multiple deployment environments.
[0089] The environmental parameter list may be a list of environmental parameters that the multiple components are concerned about, and may specifically include one or more environmental parameters.
[0090] Optionally, the environmental parameters of all components are unified and abstracted, for example, the environmental parameters of all components are unified and abstracted into: operating system, chip type, software development kit version, network access relationship, etc.
[0091] After determining the environment parameter list corresponding to all components, you can configure environment parameter information for multiple deployment environments. Different deployment environments can correspond to different environment parameter information.
[0092] Each environment parameter may have one or more parameter values. For example, the operating systems in the environment parameters include operating system A, operating system B, operating system C, etc.; the software development kit versions include version 8, version 11, and version 17, etc. The deployment environment corresponding to the environment parameter information of the operating system being operating system A and the software development kit version being version 11 is deployment environment 1, and the deployment environment corresponding to the environment parameter information of the operating system being operating system B and the software development kit version being version 17 is deployment environment 2.
[0093] S104: After obtaining multiple components and deployment scripts corresponding to each component, determine the deployment environment corresponding to each component, and inject environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script.
[0094] The component obtained in this step may specifically refer to the software medium corresponding to the component, such as program code.
[0095] It should be noted that the embodiment of the present application does not limit the order of orchestration operation and component development. Before developing the components, the components can be orchestrated using the component identifiers, or the orchestration operation can be performed after the development operation, or simultaneously.
[0096] Optionally, multiple components and deployment scripts corresponding to each component can be provided by the user. The deployment script is used to implement the deployment of the component. In order to ensure smooth deployment, the environment to which the component is actually deployed can be determined before deployment.
[0097] In one implementation, after obtaining multiple components and deployment scripts corresponding to each component, the user directly inputs the deployment environment corresponding to each component. The environmental parameter information corresponding to the deployment environment is injected into the deployment script corresponding to the component to obtain an updated deployment script. In another implementation, the user can input the deployment environment of all components only once, and inject the obtained environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script.
[0098] S105: Deploy the multiple components according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts.
[0099] Optionally, the components can be deployed sequentially according to the dependency relationship. For example, if component A depends on component B, component B can be deployed first, and then component A. During deployment, the deployment instruction can be used to call the corresponding deployment script.
[0100] Among them, the deployment script can support multiple deployment environments. After the environmental parameter information corresponding to different deployment environments is injected into the deployment script, the deployment script can execute different deployment processes according to different environmental differences, thereby realizing the deployment of the software system in multiple deployment environments.
[0101] The software system deployment method provided in the embodiment of the present application can display a visual orchestration interface, which is used for users to orchestrate multiple components included in the software system, and determine the orchestration results based on the user's orchestration operations, wherein the orchestration results are used to indicate the multiple components included in the software system, the dependencies between the multiple components, and the deployment instructions corresponding to each component, determine the environment parameter list corresponding to the multiple components, and configure the environment parameter information corresponding to the multiple deployment environments based on the environment parameter list, wherein the software system is used to be deployed to multiple deployment environments, and after obtaining multiple components and the deployment scripts corresponding to each component, determine the deployment environment corresponding to each component, and inject the environment parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script, and deploy the multiple components based on the dependencies between the multiple components, the deployment instructions corresponding to each component, and the updated deployment script. By adopting a visual orchestration interface and determining the deployment instructions of each component and the dependencies between multiple components based on the orchestration results, the deployment process of a complex software system can be built in an intuitive and simple way. The environmental parameter information can be configured for the environmental parameter list corresponding to the component, and the environmental parameter information corresponding to the deployment environment can be injected into the deployment script corresponding to the component to update the deployment script of the component. The deployment script can be developed according to the component characteristics and environmental requirements, which separates the deployment script from the delivery tool, reduces the difficulty of deployment, and improves deployment efficiency. When the component is updated, upgraded, the technology is replaced, or the scenario is expanded, the original orchestration results or deployment scripts can be reused, which effectively improves the overall deployment flexibility and efficiency and improves the user experience.
[0102] Based on the above embodiment, determining the arrangement result according to the arrangement operation of the user is further described. Figure 2 This is a flow chart of determining an arrangement result according to an arrangement operation of a user provided in an embodiment of the present application, including:
[0103] S201. Determine, according to the user's arrangement operation, multiple stages corresponding to the deployment process of the software system and the execution order of the multiple stages.
[0104] In order to simplify the operation of complex systems, the deployment process of complex systems is divided into multiple stages, and the internal components of the system are divided into modules, thereby forming an automated deployment of the entire system. Figure 3 Schematic diagram of a delivery tool provided by an embodiment of the present application. The content delivered by the user software may include multiple components and their corresponding deployment scripts. The automated delivery tool is the delivery tool mentioned above, including three modules: workflow visualization orchestration, workflow instance deployment, and environment parameter management.
[0105] Before or after the user provides components and deployment scripts, the deployment process can be orchestrated using the workflow visual orchestration module. As shown in the figure, the deployment process of the software system can be divided into phase A, phase B, and phase C. During the orchestration operation, the software system is determined to be in multiple phases of the deployment process, namely phase A, phase B, and phase C, and the execution order of the multiple phases is determined, for example, phase A, phase B, and phase C occur in sequence. The same phase can be deployed to multiple environments, for example, phase A can be deployed to both environment A and environment B.
[0106] After the workflow visualization orchestration module completes the orchestration operation, the orchestration result can be sent to the workflow instance deployment module, and the workflow instance deployment module performs the deployment operation according to the orchestration result.
[0107] In addition, the environment parameters management module can be used to manage environment parameters and assist in the deployment process, for example, by injecting environment parameter information into corresponding scripts.
[0108] Specifically, environmental parameter information can be injected into the running environment of the deployment script. The deployment script has the ability to deploy in one or more environments. After the environmental parameter information of the current deployment environment is injected into the running environment of the deployment script, the components can be deployed in a manner suitable for the current deployment environment.
[0109] S202. Determine the modules to be deployed corresponding to each stage; wherein each stage corresponds to at least one module, each module includes at least one component, and the components in the same module correspond to the same dependency relationship; the components covered by multiple stages constitute multiple components of the software system.
[0110] For example, determine the modules to be deployed corresponding to each stage. Figure 3 It is a schematic diagram of the delivery tool provided by the embodiment of the present application. For each stage, multiple modules to be deployed in the stage can be arranged. Stage A can be divided into module 1, module 2 and module 3, stage B can be divided into module 4, module 5 and module 6, and stage C can be divided into module 7, module 8 and module 9. Each module can include one or more components.
[0111] Optionally, components in the same module correspond to the same dependency relationship. For example, module 2 includes component a and component b. Both component a and component b depend on components in module 1. After the components in module 1 are deployed, components a and component b in module 2 are deployed. That is, component a and component b have the same dependency relationship.
[0112] Optionally, the components covered by multiple stages constitute multiple components of the software system, that is, the multiple components included in the software system mentioned above are the components covered by multiple stages input by the user in the interface. The component deployment process covered by the multiple stages constitutes the deployment process of the software system.
[0113] S203: Determine the deployment instructions corresponding to each component.
[0114] Optionally, the user may input a deployment instruction corresponding to the component in the visual orchestration interface.
[0115] S204. Store an orchestration mapping relationship, where the orchestration mapping relationship is used to indicate the modules corresponding to each stage in the multiple stages, the components corresponding to each module, the dependencies corresponding to each module, and the deployment instructions corresponding to each component, so that during the deployment process, multiple components are deployed according to the orchestration mapping relationship.
[0116] Optionally, the orchestration mapping relationship corresponding to the orchestration result of the visual orchestration interface is stored, and the orchestration mapping relationship indicates the modules corresponding to each stage in multiple stages, the components corresponding to each module, the dependencies corresponding to each module, and the deployment instructions corresponding to each component, so that the software system can deploy multiple components according to the orchestration mapping relationship during the deployment process.
[0117] On the basis of the above embodiment, the multiple components are deployed according to the dependency relationship between the multiple components, the deployment instructions corresponding to each component, and the updated deployment script, including:
[0118] According to the orchestration mapping relationship, the execution order of multiple stages is determined. For each stage, at least one component corresponding to the stage is determined according to the orchestration mapping relationship, and the execution order of each component is determined according to the dependency relationship corresponding to the module to which each component belongs; wherein components belonging to the same module correspond to the same execution order; according to the determined execution order, multiple components are deployed according to the deployment instructions corresponding to each component and the updated deployment script.
[0119] Optionally, according to the orchestration mapping relationship, phase A, phase B and phase C are executed in sequence. Phase A includes module 1, module 2 and module 3, phase B includes module 4, module 5 and module 6, and phase C includes module 7, module 8 and module 9. Optionally, in phase A, the dependency relationship between module 1, module 2 and module 3 can be the dependency relationship of the components respectively included in module 1, module 2 and module 3. After determining the execution order, multiple components are deployed according to the deployment instructions corresponding to each component and the updated deployment script.
[0120] The embodiment of the present application divides the deployment process of the software system into multiple stages and the execution order of multiple stages through orchestration operations and orchestration mapping relationships, and divides each stage into multiple modules, each module containing multiple components. During the orchestration process, the system forms the entire deployment process by dragging and dropping, and can arbitrarily add and delete stages, modules, and components. After the orchestration is completed, the orchestration mapping relationship is stored, which is convenient for subsequent direct implementation of the staged and modular deployment process based on the orchestration mapping relationship, further improving the efficiency of deployment.
[0121] Based on the above embodiment, the component upgrade process is further described. Figure 4 This is a schematic diagram of a component upgrade process provided by an embodiment of the present application, including:
[0122] S401: Obtain multiple upgraded components and upgraded deployment scripts corresponding to each component.
[0123] Optionally, when upgrading components, since the components are combined with deployment scripts, the components can choose different deployment technology stacks for upgrading according to their own characteristics, without being limited by the capabilities of the delivery tools. The upgraded deployment scripts corresponding to each component are selected according to the component upgrade. The language corresponding to the deployment instructions of each component matches the language corresponding to the deployment script of the component. The deployment instructions of multiple components cover a variety of languages, such as Shell, ansible, python, etc.
[0124] On this basis, after obtaining multiple upgraded components and the upgraded deployment scripts corresponding to each component, if the deployment script of any component corresponds to different languages before and after the upgrade, a prompt message is generated to prompt the user to modify the deployment instructions of the component.
[0125] S402. Determine the deployment environment corresponding to each upgraded component, and inject the environmental parameter information corresponding to the deployment environment into the corresponding deployment script to obtain an updated deployment script; wherein each component corresponds to the same deployment environment before and after the upgrade, or corresponds to different deployment environments.
[0126] Optionally, the system determines the deployment environment corresponding to each upgraded component. For example, the deployment environment of the upgraded component is deployment environment 1, and the specific environment parameter information is that the operating system is operating system A and the software development kit version is version 11. The environment parameter information corresponding to the deployment environment is injected into the deployment script of the component to obtain an updated deployment script. Each component corresponds to the same deployment environment before and after the upgrade, or to different deployment environments. For example, the deployment environment of the component before the upgrade is deployment environment 1, and the deployment environment after the upgrade is deployment environment 2, or the deployment environment of the component before and after the upgrade is deployment environment 1.
[0127] S403: Deploy the upgraded component according to the orchestration mapping relationship and the updated deployment script of the upgraded component.
[0128] The embodiment of the present application obtains multiple upgraded components and the upgraded deployment scripts corresponding to each component, determines the deployment environment corresponding to the upgraded component, and deploys the upgraded component according to the orchestration mapping relationship, thereby facilitating the deployment of component updates and upgrades, technology replacements or scenario expansions, and improving the flexibility of software system deployment.
[0129] The following is an explanation of the configuration process of the parameter environment information in the embodiment of the present application. Figure 5 The present invention provides a flowchart of configuring environment parameter information provided by an embodiment of the present invention. Determine the environment parameter list corresponding to the multiple components, and configure the environment parameter information corresponding to the multiple deployment environments according to the environment parameter list, including:
[0130] S501. Obtain a list of environmental parameters input by a user in the visual orchestration interface; wherein the list of environmental parameters is a union of environmental parameters corresponding to the multiple components, and the environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component.
[0131] Optionally, the user can input environmental parameters in the visual orchestration interface. The environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component. For example, the environmental parameter that affects the operation of component 1 is the operating system. Among them, the environmental parameters that affect the operation of the component are the environmental parameters that the component is concerned about. For example, the environmental parameters corresponding to multiple components are combined to obtain an environmental parameter list. For example, the environmental parameter that affects the operation of component 1 is the operating system, and the environmental parameter that affects the operation of component 2 is the software development kit version. All environmental parameters that affect the operation of components are combined to obtain an environmental parameter list, that is, the environmental parameter lists of component 1 and component 2 are the operating system and the software development kit version.
[0132] Alternatively, the user can also input the environment parameters corresponding to multiple components at one time to directly obtain the environment parameter list.
[0133] S502. Configure environment parameter information corresponding to multiple deployment environments according to the environment parameter list, wherein the environment parameter information corresponding to each deployment environment is used to indicate the parameter value of each environment parameter in the environment parameter list under the deployment environment.
[0134] For example, according to the environment parameter list, the environment parameter information corresponding to multiple deployment environments is configured. Optionally, when deploying components to a computer, the computer's identifier can be used to refer to the deployment environment, and the parameter values of the environment parameters of multiple computers are determined and the correspondence between the computer identifier and the environment parameter information is stored. For example, the environment parameter information of deployment environment (computer) 1 is configured as follows: the operating system is operating system A, and the software development kit version is version 11.
[0135] In this embodiment, the environmental parameters corresponding to the multiple components can be unioned to obtain an environmental parameter list. The environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component, so that a list of environmental parameters that the software system as a whole is concerned about can be obtained, and the environmental parameter information corresponding to multiple deployment environments can be configured accordingly, thereby efficiently realizing the abstraction of environmental parameters and the extraction of parameter values, and improving the efficiency and accuracy of deployment.
[0136] Optionally, multiple components are deployed according to the dependencies between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts, including:
[0137] The deployment order of the multiple components is determined according to the dependency relationship between the multiple components, and the multiple components are deployed according to the determined deployment order.
[0138] Among them, during the deployment process, the deployment instruction corresponding to the component currently to be deployed is used to call the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component according to the environmental parameter information of the deployment environment corresponding to the component in a deployment method that matches the environmental parameter information, and configure the parameters of the component according to the environmental parameter information.
[0139] In one implementation, during the deployment process, the deployment instruction corresponding to the component to be currently deployed calls the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component in accordance with the environmental parameter information of the deployment environment corresponding to the component and in accordance with the deployment method that matches the environmental parameter information. In another implementation, during the deployment process, the deployment instruction corresponding to the component to be currently deployed calls the updated deployment script corresponding to the component, so that the updated deployment script is used to configure the parameters of the component in accordance with the environmental parameter information of the deployment environment corresponding to the component. Alternatively, during the deployment process, the deployment instruction corresponding to the component to be currently deployed calls the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component in accordance with the environmental parameter information of the deployment environment corresponding to the component and in accordance with the deployment method that matches the environmental parameter information and configure the parameters of the component in accordance with the environmental parameter information.
[0140] Optionally, determining a deployment order of the multiple components according to the dependency relationship between the multiple components, and deploying the multiple components according to the determined deployment order includes:
[0141] Forming a directed graph according to the dependency relationships between the multiple components, wherein the directed graph is used to indicate the deployment order of the multiple components;
[0142] The multiple components are deployed through multiple threads according to the in-degree and the out-degree in the directed graph.
[0143] Among them, the number of threads can be adjusted according to the in-degree and out-degree.
[0144] Specifically, in a directed graph, nodes can represent components, and edges between nodes can be used to represent dependencies between components. For example, for a component A, it depends on component B, so it is deployed after component B, and components C and D depend on A. Then for the node corresponding to component A, its in-degree is 1 and its out-degree is 2. During the deployment process, a thread is used to execute the deployment of component B. After component B is deployed, the thread can be used to deploy component A. After component A is deployed, a thread is added, and the deployment of components C and D is implemented through two threads.
[0145] In this way, the multiple components are deployed through multiple threads according to the in-degree and out-degree in the directed graph, which can effectively improve the efficiency of deployment. In addition, during deployment, the components can be deployed or the parameters of the components can be configured according to the matching deployment method based on the dependency relationship and the updated deployment script to ensure the normal execution of the deployment.
[0146] The above is a detailed explanation of the deployment process from the component dimension. As mentioned above, the software system can also be staged and modularized during the orchestration process. When the components are divided into modules, the deployment process can be implemented in the module dimension. Specifically, the components in the above deployment process can be replaced with modules to obtain the deployment process in the module dimension. For example, the deployment order can be determined according to the dependencies between modules.
[0147] Optionally, the embodiment of the present application may further manage the deployment process, including:
[0148] The execution results are displayed in real time through the interactive interface. The execution results include the deployment status at the stage level, the deployment status at the module level, and the execution results corresponding to the deployment script of the currently deployed component.
[0149] Optionally, during the deployment process, users can select operations such as stage start and stop, task start and stop, retry on failure, and result backtracking in the interactive interface. Stage start and stop means that during the deployment process, users can choose to start or end the deployment of any stage; task start and stop means that during the deployment process, users can choose to start or end the entire deployment process; retry on failure means that during the deployment process, users can choose to re-execute failed operations. Result backtracking means that the delivery tool can record the results of component script execution, and users can troubleshoot and backtrack the results.
[0150] In response to a pause instruction for a component initiated by a user through an interactive interface, the deployment process is paused after the deployment script of the component is executed.
[0151] In response to a pause instruction for a module or a stage initiated by a user through an interactive interface, the deployment process is paused after the module or the stage is deployed.
[0152] For example, when a user initiates a pause command for a component in the interactive interface, the delivery tool responds to the pause command and, in order to ensure the atomicity of deployment, pauses the deployment process after the deployment script of the component is executed. When a user initiates a pause command for a module or stage in the interactive interface, the delivery tool responds to the pause command and pauses the deployment process after the deployment scripts of all components corresponding to the module or stage are executed.
[0153] The technology of further managing the deployment process in the embodiment of the present application provides more powerful deployment capabilities.
[0154] In the actual deployment process, Figure 6It is a schematic diagram of a deployment process provided by an embodiment of the present application. The delivery tool is mainly divided into three steps: system deployment process orchestration, system deployment environment parameter management and system automated deployment. These three steps correspond to three core modules: workflow visualization orchestration module, environment parameter management module and workflow instance deployment module. The component delivery medium provided by the user includes component delivery products and component deployment scripts, wherein the component delivery product can be the software code corresponding to the component. After the start, the delivery tool first completes the orchestration of the system deployment process according to the component deployment script, divides the deployment process into multiple stages and multiple modules, each module contains at least one component, and then manages the deployment environment parameters of the system according to the deployment script. The same stage can be deployed to different environments. Finally, according to the system deployment process arrangement and the system deployment environment parameter management, the system is automatically deployed until the deployment is completed.
[0155] Figure 7 This is a schematic diagram of the principle of a workflow visualization orchestration module provided in an embodiment of the present application. The processing process of the workflow visualization orchestration module may include: after starting, first stage the deployment process, orchestrate the deployment process of the software system into multiple stages, then modularize the deployment component tasks of each stage and agree on their deployment instructions to facilitate users to perform deployment instruction operations, and finally establish the front-to-back dependency relationship of each deployment task to make the deployment task coherent.
[0156] The specific processing process of the workflow visualization orchestration module can refer to S101, S102 and S201-S204 in the aforementioned embodiment, which will not be repeated here.
[0157] Figure 8 This is a schematic diagram of the principle of an environment parameter management module provided by an embodiment of the present application. The processing process of the environment parameter management module may include: firstly, abstracting all environment parameters to form an environment parameter list, then configuring the environment parameters in the environment parameter list, and finally, in the instance process of the workflow, injecting the environment parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script.
[0158] Among them, the specific processing of the environmental parameter management module can refer to the operations of S103, S104 and S401-403, S501, and S502 in the aforementioned embodiments, which will not be repeated here.
[0159] Fig. 9 It is a schematic diagram of the collaborative relationship of each module provided in the embodiment of the present application. After obtaining the components and their deployment scripts, the workflow is first visually arranged and the environmental parameters are managed. On this basis, the workflow is instantiated and deployed, and finally the components are deployed to the production environment.
[0160] Among them, the specific processing process of workflow visualization orchestration can refer to S101, S102 and S201-S204 in the aforementioned embodiment, the specific processing of environmental parameter management can refer to the operations of S103, S104 and S401-403, S501, S502 in the aforementioned embodiment, and the specific processing of workflow instantiation deployment can refer to the operation of S105 in the aforementioned embodiment, which will not be repeated here.
[0161] Fig.10 It is a schematic diagram of the operating status corresponding to an instantiated deployment module provided in an embodiment of the present application. The figure shows the operating status of the machine during the actual deployment process. According to the deployment script, there will be multiple states in the deployment process, which may include: new, running, suspended, suspended, waiting, abnormal, and ended. For example, a new workflow is created, deployed when a deployment instruction is received, and enters the running state. When receiving a pending suspension instruction, it enters the suspended state through a suspension operation, and then enters the suspended state through a successful suspension callback. For the suspended state, receiving a deployment instruction can re-enter the running state, or enter the ended state through a termination operation. For the running state, you can also enter the waiting, abnormal or ended state through a callback operation. For the waiting state, you can return to the running state through deployment, or enter the ended state through a termination operation. For the abnormal state, you can return to the running state through deployment, or enter the ended state through termination.
[0162] Corresponding to the above method, the embodiment of the present application also provides a deployment device of a software system, Fig.11 600 is a schematic diagram of a software system deployment device provided in an embodiment of the present application. The device 600 includes:
[0163] The display module 601 is used to display a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in the software system;
[0164] The orchestration module 602 is used to determine the orchestration result according to the user's orchestration operation, wherein the orchestration result is used to indicate multiple components included in the software system, the dependencies between the multiple components, and the deployment instructions corresponding to each component;
[0165] Configuration module 603, used to determine the environmental parameter list corresponding to the multiple components, and configure the environmental parameter information corresponding to the multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in the multiple deployment environments;
[0166] The determination module 604 is used to determine the deployment environment corresponding to each component after obtaining multiple components and the deployment scripts corresponding to each component, and inject the environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script;
[0167] The deployment module 605 is used to deploy multiple components according to the dependency relationship between the multiple components, the deployment instructions corresponding to each component, and the updated deployment script.
[0168] Optionally, the arrangement module 602 is specifically used for:
[0169] According to the user's orchestration operation, determine the multiple stages corresponding to the software system in the deployment process and the execution order of the multiple stages;
[0170] Determine the modules to be deployed corresponding to each stage; each stage corresponds to at least one module, each module includes at least one component, and the components in the same module correspond to the same dependency relationship; the components covered by multiple stages constitute multiple components of the software system;
[0171] Determine the deployment instructions for each component;
[0172] The orchestration mapping relationship is stored, and the orchestration mapping relationship is used to indicate the modules corresponding to each stage in multiple stages, the components corresponding to each module, the dependencies corresponding to each module, and the deployment instructions corresponding to each component, so that multiple components can be deployed according to the orchestration mapping relationship during the deployment process.
[0173] Optionally, the deployment module 605 is specifically used for:
[0174] Determine the execution order of multiple stages based on the orchestration mapping relationship;
[0175] For each stage, at least one component corresponding to the stage is determined according to the orchestration mapping relationship, and the execution order of each component is determined according to the dependency relationship corresponding to the module to which each component belongs; wherein components belonging to the same module correspond to the same execution order;
[0176] In accordance with the determined execution order, multiple components are deployed according to the deployment instructions corresponding to each component and the updated deployment script.
[0177] Optionally, the deployment module 605 is further used for:
[0178] Obtain multiple upgraded components and the upgraded deployment scripts corresponding to each component;
[0179] Determine the deployment environment corresponding to each upgraded component, and inject the environment parameter information corresponding to the deployment environment into the corresponding deployment script to obtain an updated deployment script; wherein each component corresponds to the same deployment environment before and after the upgrade, or corresponds to different deployment environments;
[0180] The upgraded components are deployed according to the orchestration mapping relationship and the updated deployment scripts of the upgraded components.
[0181] Optionally, the language corresponding to the deployment instructions of each component matches the language corresponding to the deployment script of the component;
[0182] Among them, the deployment instructions of multiple components cover multiple types of languages;
[0183] The deployment device is also used to: after obtaining multiple upgraded components and the upgraded deployment scripts corresponding to each component, if the deployment script of any component corresponds to different languages before and after the upgrade, generate prompt information to prompt the user to modify the deployment instructions of the component.
[0184] Optionally, when determining the environmental parameter list corresponding to the multiple components and configuring the environmental parameter information corresponding to the multiple deployment environments according to the environmental parameter list, the configuration module 603 is specifically used to:
[0185] Obtaining an environmental parameter list input by a user in the visual arrangement interface; wherein the environmental parameter list is a union of environmental parameters corresponding to the multiple components, and the environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component;
[0186] According to the environment parameter list, environment parameter information corresponding to multiple deployment environments is configured, wherein the environment parameter information corresponding to each deployment environment is used to indicate the parameter value of each environment parameter in the environment parameter list under the deployment environment.
[0187] Optionally, the deployment module 605 is specifically used for:
[0188] Determine the deployment order of multiple components according to the dependency relationship between the multiple components, and deploy the multiple components according to the determined deployment order;
[0189] Among them, during the deployment process, the deployment instruction corresponding to the component currently to be deployed is used to call the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component according to the environmental parameter information of the deployment environment corresponding to the component in a deployment method that matches the environmental parameter information, and configure the parameters of the component according to the environmental parameter information.
[0190] Optionally, the deployment module 605 is specifically used for:
[0191] A directed graph is formed according to the dependency relationship between the multiple components, wherein the directed graph is used to indicate the deployment order of the multiple components;
[0192] Multiple components are deployed through multiple threads according to the in-degree and out-degree in the directed graph.
[0193] Optionally, the deployment module 605 is further used for:
[0194] The execution results are displayed in real time through the interactive interface. The execution results include the deployment status at the stage level, the deployment status at the module level, and the execution results corresponding to the deployment script of the currently deployed component.
[0195] In response to a pause instruction for a component initiated by a user through an interactive interface, after the deployment script of the component is executed, the deployment process is paused;
[0196] In response to a pause instruction for a module or a stage initiated by a user through an interactive interface, the deployment process is paused after the module or the stage is deployed.
[0197] The specific implementation principles, processes and beneficial effects of the deployment device of the software system provided in the embodiments of the present application can be found in the aforementioned embodiments and will not be repeated here.
[0198] Fig.12 7 is a schematic diagram of the structure of an electronic device provided in an embodiment of the present application. The electronic device 700 includes: a memory 701 and a processor 702, wherein the memory 701 stores computer-executable instructions; the processor 702 executes the computer-executable instructions stored in the memory 701 to implement the method in any of the above method embodiments. Optionally, the electronic device 700 may also include a transceiver 703. Exemplarily, the memory 701, the processor 702 and the transceiver 703 may communicate via a communication bus 704, the memory 701 stores computer-executable instructions, and the processor 702 executes the computer-executable instructions stored in the memory 701.
[0199] Optionally, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or the processor may be any conventional processor, etc. The steps in the method embodiments disclosed in the present application may be directly implemented as being executed by a hardware processor, or may be implemented by a combination of hardware and software modules in the processor.
[0200] An embodiment of the present application further provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement a method in any of the above method embodiments.
[0201] An embodiment of the present application also provides a computer program product, including a computer program, which implements the method in any of the above method embodiments when the computer program is executed by a processor.
[0202] All or part of the steps of the above-mentioned method embodiments can be completed by hardware related to program instructions. The above-mentioned program can be stored in a readable memory. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the above-mentioned memory (storage medium) includes: read-only memory (ROM), RAM, flash memory, hard disk, solid state drive, magnetic tape, floppy disk, optical disc and any combination thereof.
[0203] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processing unit of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0204] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0205] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0206] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of modules is only a logical function division, and there may be other division methods in actual implementation, such as multiple modules can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, which can be electrical, mechanical or other forms.
[0207] The modules described as separate components may or may not be physically separated, and the components shown as modules may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the modules may be selected according to actual needs to implement the solution of this embodiment.
[0208] In addition, each functional module in each embodiment of the present application can be integrated into one processing unit, or each module can exist physically separately, or two or more modules can be integrated into one unit. The above-mentioned module-composed unit can be implemented in the form of hardware or in the form of hardware plus software functional units.
[0209] The above-mentioned integrated module implemented in the form of a software function module can be stored in a computer-readable storage medium. The above-mentioned software function module is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to perform some steps of the methods of each embodiment of the present application. Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the spirit and scope of the present application. In this way, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these changes and variations.
[0210] In the present application, the term "include" and its variations may refer to non-restrictive inclusion; the term "or" and its variations may refer to "and / or". The terms "first", "second", etc. in the present application are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. In the present application, "plurality" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may mean: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the previously associated objects are in an "or" relationship.
[0211] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A method for deploying a software system, characterized in that: The method comprises: Displaying a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in the software system; Determine an orchestration result according to the user's orchestration operation, wherein the orchestration result is used to indicate multiple components included in the software system, dependencies between the multiple components, and deployment instructions corresponding to each component; Determine an environmental parameter list corresponding to the multiple components, and configure environmental parameter information corresponding to multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in the multiple deployment environments; After obtaining the multiple components and the deployment scripts corresponding to the components, determining the deployment environment corresponding to each component, and injecting the environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script; The multiple components are deployed according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts.
2. The method according to claim 1, characterized in that: Determine the orchestration results based on the user's orchestration operations, including: Determine, according to the user's arrangement operation, a plurality of stages corresponding to the deployment process of the software system and the execution order of the plurality of stages; Determine the modules to be deployed corresponding to each stage; wherein each stage corresponds to at least one module, each module includes at least one component, and the components in the same module correspond to the same dependency relationship; the components covered by the multiple stages constitute multiple components of the software system; Determine the deployment instructions for each component; Store an orchestration mapping relationship, where the orchestration mapping relationship is used to indicate the modules corresponding to each stage in the multiple stages, the components corresponding to each module, the dependencies corresponding to each module, and the deployment instructions corresponding to each component, so that during the deployment process, the multiple components are deployed according to the orchestration mapping relationship.
3. The method according to claim 2, characterized in that Deploying the multiple components according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts includes: Determining the execution order of the multiple stages according to the orchestration mapping relationship; For each stage, at least one component corresponding to the stage is determined according to the orchestration mapping relationship, and the execution order of each component is determined according to the dependency relationship corresponding to the module to which each component belongs; wherein components belonging to the same module correspond to the same execution order; The multiple components are deployed in accordance with the determined execution order, the deployment instructions corresponding to the components and the updated deployment scripts.
4. The method according to claim 2, characterized in that: The method further comprises: Obtain multiple upgraded components and the upgraded deployment scripts corresponding to each component; Determine the deployment environment corresponding to each upgraded component, and inject the environment parameter information corresponding to the deployment environment into the corresponding deployment script to obtain an updated deployment script; wherein each component corresponds to the same deployment environment before and after the upgrade, or corresponds to different deployment environments; The upgraded component is deployed according to the orchestration mapping relationship and the updated deployment script of the upgraded component.
5. The method according to claim 4, characterized in that The language corresponding to the deployment instructions of each component matches the language corresponding to the deployment script of the component; The deployment instructions of the multiple components cover multiple types of languages; The method further comprises: After obtaining the upgraded components and the upgraded deployment scripts corresponding to the components, if the deployment script of any component corresponds to different languages before and after the upgrade, a prompt message is generated to prompt the user to modify the deployment instruction of the component.
6. The method according to claim 1, characterized in that Determining an environmental parameter list corresponding to the multiple components, and configuring environmental parameter information corresponding to multiple deployment environments according to the environmental parameter list, including: Obtaining an environmental parameter list input by a user in the visual arrangement interface; wherein the environmental parameter list is a union of environmental parameters corresponding to the multiple components, and the environmental parameters corresponding to each component include at least one environmental parameter that affects the operation of the component; According to the environment parameter list, environment parameter information corresponding to a plurality of deployment environments is configured, wherein the environment parameter information corresponding to each deployment environment is used to indicate parameter values of each environment parameter in the environment parameter list under the deployment environment.
7. The method according to any one of claims 1 to 6, characterized in that: Deploying the multiple components according to the dependency relationships between the multiple components, the deployment instructions corresponding to the components, and the updated deployment scripts includes: Determining a deployment order of the multiple components according to the dependency relationships between the multiple components, and deploying the multiple components according to the determined deployment order; Among them, during the deployment process, the deployment instruction corresponding to the component currently to be deployed is used to call the updated deployment script corresponding to the component, so that the updated deployment script is used to deploy the component in accordance with the environmental parameter information of the deployment environment corresponding to the component in a deployment method that matches the environmental parameter information, and configure the parameters of the component according to the environmental parameter information.
8. The method according to claim 7, characterized in that Determining a deployment order of the multiple components according to the dependency relationships between the multiple components, and deploying the multiple components according to the determined deployment order, including: Forming a directed graph according to the dependency relationships between the multiple components, wherein the directed graph is used to indicate the deployment order of the multiple components; The multiple components are deployed through multiple threads according to the in-degree and the out-degree in the directed graph.
9. The method according to any one of claims 2 to 4, characterized in that: The method further comprises: The execution results are displayed in real time through the interactive interface, including the deployment status at the stage level, the deployment status at the module level, and the execution results corresponding to the deployment script of the currently deployed component; In response to a pause instruction for a component initiated by a user through an interactive interface, after the deployment script of the component is executed, pausing the deployment process; In response to a pause instruction for a module or a stage initiated by a user through an interactive interface, the deployment process is paused after the deployment of the module or the stage is completed.
10. A software system deployment device, characterized in that: The device comprises: A display module, used to display a visual arrangement interface, wherein the visual arrangement interface is used for a user to arrange multiple components included in the software system; An orchestration module, used to determine an orchestration result according to an orchestration operation of a user, wherein the orchestration result is used to indicate a plurality of components included in the software system, dependencies between the plurality of components, and deployment instructions corresponding to each component; A configuration module, used to determine the environmental parameter list corresponding to the multiple components, and configure the environmental parameter information corresponding to the multiple deployment environments according to the environmental parameter list; wherein the software system is used to be deployed in the multiple deployment environments; A determination module, configured to determine the deployment environment corresponding to each component after acquiring the multiple components and the deployment scripts corresponding to the components, and inject the environmental parameter information corresponding to the deployment environment into the deployment script corresponding to the component to obtain an updated deployment script; The deployment module is used to deploy the multiple components according to the dependency relationship between the multiple components, the deployment instructions corresponding to each component and the updated deployment script.
11. An electronic device, characterized in that: include: a processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the method according to any one of claims 1 to 9.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the method according to any one of claims 1 to 9 when executed by a processor.
13. A computer program product, characterized in that The invention comprises a computer program, which implements the method according to any one of claims 1 to 9 when being executed by a processor.
