Cloud native software delivery method and system and electronic equipment

Through the cloud-native software delivery method, the software products to be delivered are deployed and exported, solving the complex and cost-effective problems of traditional software delivery models, and achieving rapid, flexible and efficient software delivery.

CN119415106APending Publication Date: 2025-02-11广域铭岛数字科技有限公司 +1
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202411664648.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-20
Publication Date
2025-02-11

AI Technical Summary

Technical Problem

The traditional software delivery model is complex and lengthy, resulting in too high time and cost, making it difficult to adapt to the market demand of rapid iteration.

Method used

The cloud-native software delivery method is adopted to receive application deployment requests, parse and deploy the applications to be deployed and their dependencies into the preset container orchestration cluster, and standardize exports after the deployment is completed to generate the software products to be delivered.

Benefits of technology

Simplifies the software delivery process, shortens delivery time, improves delivery efficiency, reduces costs, and ensures consistency and portability of software products in different environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119415106A_ABST
    Figure CN119415106A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of software development, in particular to a cloud native software delivery method and system and electronic device.The method comprises the steps that an application deployment request is received, and a to-be-deployed application and middleware on which the to-be-deployed application depends are obtained by analyzing the application deployment request; deploying the to-be-deployed application and middleware on which the to-be-deployed application depends in a preset container arrangement cluster, wherein the container arrangement cluster comprises a plurality of node resources used for running the application or managing the cluster; if the application deployment is completed, performing standardized export on all contents of the container arrangement cluster to obtain a to-be-delivered software product; according to the method, the consistency of the to-be-delivered software product in different environments can be effectively ensured, better transportability is achieved, the software delivery time is effectively shortened, the software delivery efficiency is improved, and the cost is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of software development technology, and in particular to a cloud native software delivery method, system and electronic device. Background Art

[0002] In today's wave of digital transformation, software development companies are in urgent need of improving the efficiency and flexibility of software delivery to meet the evolving market demands and enhance their competitiveness. The traditional software delivery model usually requires processes including consulting, blueprint planning, hardware procurement, implementation, and software procurement and deployment.

[0003] However, the above traditional software delivery process is complex and lengthy, which not only consumes a lot of time and resources, but also often leads to project delays and cost overruns, and is difficult to adapt to the rapidly iterating market demands. Summary of the invention

[0004] The present invention provides a cloud-native software delivery method, system and electronic device to solve the technical problems that traditional software delivery methods require a long time and high cost.

[0005] The present invention provides a cloud native software delivery method, the method comprising: receiving an application deployment request, parsing the application deployment request, obtaining an application to be deployed, and middleware on which the application to be deployed depends;

[0006] Deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, where the container orchestration cluster includes a plurality of node resources for running applications or managing clusters;

[0007] If the application deployment is completed, all the contents of the container orchestration cluster are exported in a standardized manner to obtain the software product to be delivered.

[0008] In one embodiment of the present invention, before deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, the process further includes:

[0009] Obtain target namespace information carried in the application deployment request, and check the target namespace corresponding to the target namespace information to determine that the target namespace is available, wherein a namespace refers to a resource space composed of one or more node resources in a container orchestration cluster, and determining that the target namespace is available includes:

[0010] Obtaining permission information in the application deployment request, and performing permission verification based on the permission information;

[0011] If the permission verification passes, it is determined that the current application deployment request has permission to use the target namespace;

[0012] When it is determined that the application deployment request has the permission to use the target namespace, obtaining the status information of the target namespace;

[0013] If the status information is available, it is determined that the target namespace is available.

[0014] In one embodiment of the present invention, the step of deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster includes:

[0015] Generate a directed acyclic graph according to the application to be deployed and the middleware on which the application to be deployed depends, wherein the directed acyclic graph includes a plurality of task nodes, wherein the task nodes represent operations or tasks required to be performed for application deployment, and edges between the task nodes represent dependency relationships between the task nodes;

[0016] According to the directed acyclic graph, application deployment is performed. During the deployment process, the middleware is deployed in a standardized manner. The standardized deployment includes automatically deploying and configuring the middleware according to a custom specification.

[0017] In one embodiment of the present invention, the steps of deploying an application according to the directed acyclic graph include:

[0018] Monitoring changes in a target object, where the target object refers to a node that generates and manages the directed acyclic graph;

[0019] If a change in the target object is detected, a workflow execution instance is created or updated according to the current directed acyclic graph;

[0020] Executing the workflow execution instance;

[0021] The execution status of the workflow execution instance is tracked to update the process status of the directed acyclic graph until the task nodes of the directed acyclic graph are executed.

[0022] In one embodiment of the present invention, the step of creating or updating a workflow execution instance according to the current directed acyclic graph includes:

[0023] Get the current working mode;

[0024] If the working mode is the draft mode, simulating and generating a workflow execution instance according to the directed acyclic graph to determine whether the current directed acyclic graph satisfies the workflow generation condition;

[0025] When it is determined that the current directed acyclic graph meets the workflow generation condition, updating the workflow state to ready for deployment;

[0026] In the case where the simulation of generating a workflow execution instance fails, it is determined that the current directed acyclic graph does not meet the workflow generation condition, and a simulation failure prompt is issued, wherein the simulation failure prompt is used to instruct to adjust the current directed acyclic graph.

[0027] In one embodiment of the present invention, according to the current directed acyclic graph, the step of creating or updating the workflow execution instance further includes:

[0028] If the working mode is the execution mode, the workflow state is obtained;

[0029] When the workflow state is ready to deploy or the workflow execution instance creation fails, creating the workflow execution instance according to the current directed acyclic graph;

[0030] If the workflow execution instance is created successfully, the existing historical workflow execution instance is deleted, and the currently created workflow execution instance is determined as the new workflow execution instance;

[0031] When the workflow status is that the workflow execution instance is being executed, the workflow execution instance is suspended, or the workflow execution instance fails to run, the current workflow execution instance is directly obtained for subsequent task execution.

[0032] The present invention also provides a cloud native software delivery system, the system comprising: a deployment request receiving module, used to receive an application deployment request, and obtain an application to be deployed and middleware on which the application to be deployed depends by parsing the application deployment request;

[0033] A deployment module, used to deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, wherein the container orchestration cluster includes a plurality of node resources for running applications or managing clusters;

[0034] The delivery module is used to export all the contents of the container orchestration cluster in a standardized manner to obtain the software product to be delivered if the application deployment is completed.

[0035] In one embodiment of the present invention, the system further includes:

[0036] An infrastructure module, wherein the infrastructure module includes a hardware resource unit and a hyper-convergence unit, wherein the hardware resource unit includes a plurality of hardware resources, and the hardware resources are computing resources, storage resources or network resources; the hyper-convergence unit is used to integrate the hardware resources to obtain a plurality of virtual nodes;

[0037] The container platform module is used to create the container orchestration cluster according to the virtual node, and the container orchestration cluster includes: a control plane cluster and a working node cluster, the control plane cluster includes multiple control planes, and the working node cluster includes multiple working node resources. The control plane is used to manage and schedule the working node resources, and the working node resources are used to execute application deployment tasks.

[0038] In one embodiment of the present invention, the network resources include a target switch and a wireless network communication device, and the computing resources and the storage resources are both connected to the target switch to complete internal communication;

[0039] The target switch has an external network interface and a device access point, the external network interface is used to access an external network, the device access point is used to connect to an external device, the target switch is connected to the wireless network communication device, and the wireless network communication device is used to establish a connection with a remote device.

[0040] The present invention also provides an electronic device, comprising a processor, a memory and a communication bus; the communication bus is used to connect the processor and the memory; the processor is used to execute a computer program stored in the memory to implement a method provided in any one of the above embodiments.

[0041] Beneficial effects of the present invention: The cloud native software delivery method, system and electronic device provided by the present invention receive an application deployment request, parse the application deployment request, obtain the application to be deployed, and the middleware on which the application to be deployed depends; deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, and the container orchestration cluster includes multiple node resources for running applications or managing clusters; if the application deployment is completed, the entire content of the container orchestration cluster is standardized and exported to obtain the software product to be delivered. It can be understood that when the application deployment is completed, the entire content of the container orchestration cluster includes software runtime, software running data, software running architecture status, and middleware, etc. The method integrates these contents into a whole and performs standardized export, effectively ensuring the consistency of the software product to be delivered in different environments, and has better portability. The software product to be delivered can be directly run on the client system, without the need to adjust the environmental parameters according to the client system, effectively shortening the software delivery time, improving the software delivery efficiency, and reducing the time cost. In addition, this method can realize the automated deployment of applications, that is, automatically deploy the application to be deployed and its dependent middleware in the container orchestration cluster, with a high degree of automation. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1A flowchart of a cloud native software delivery method provided by an embodiment of the present invention;

[0043] Figure 2 A schematic diagram of the structure of a directed acyclic graph in a cloud-native software delivery method provided by an embodiment of the present invention;

[0044] Figure 3 A schematic diagram of a process for application deployment in a cloud-native software delivery method provided by an embodiment of the present invention;

[0045] Figure 4 A timing flow chart of application deployment in a cloud native software delivery method provided by an embodiment of the present invention;

[0046] Figure 5 Another schematic diagram of a process for application deployment in a cloud-native software delivery method provided by an embodiment of the present invention;

[0047] Figure 6 An exemplary schematic diagram of a specific process of application deployment in a cloud-native software delivery method provided in an embodiment of the present invention;

[0048] Figure 7 A schematic diagram of a drawing interface of a directed acyclic graph in a cloud-native software delivery method provided in an embodiment of the present invention;

[0049] Figure 8 A schematic diagram of an interface of a deployment log of a workflow engine in a cloud-native software delivery method provided by an embodiment of the present invention;

[0050] Fig. 9 A schematic diagram of the structure of a cloud native software delivery system provided by an embodiment of the present invention;

[0051] Fig.10 Another structural diagram of a cloud-native software delivery system provided by an embodiment of the present invention;

[0052] Fig.11 An exemplary schematic diagram of an HCI hyper-convergence layer in a cloud-native software delivery system provided in one embodiment of the present invention;

[0053] Fig.12 An exemplary schematic diagram of a cloud-native software delivery system providing an embodiment of the present invention for non-invasively accessing a customer network;

[0054] Fig.13 An exemplary schematic diagram of a container platform layer in a cloud-native software delivery system provided by an embodiment of the present invention;

[0055] Fig.14 A schematic diagram of a cloud-native software delivery process integrating software and hardware provided in one embodiment of the present invention;

[0056] Fig.15 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0057] The following describes the embodiments of the present invention by specific examples, and those skilled in the art can easily understand other advantages and effects of the present invention from the contents disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict.

[0058] It should be noted that the illustrations provided in the following embodiments are only schematic illustrations of the basic concept of the present invention, and thus the drawings only show components related to the present invention rather than being drawn according to the number, shape and size of components in actual implementation. In actual implementation, the type, quantity and proportion of each component may be changed arbitrarily, and the component layout may also be more complicated.

[0059] In the following description, numerous details are discussed to provide a more thorough explanation of the embodiments of the present invention. However, it is obvious to those skilled in the art that the embodiments of the present invention can be implemented without these specific details. In other embodiments, well-known structures and devices are shown in the form of block diagrams rather than in detail to avoid making the embodiments of the present invention difficult to understand.

[0060] To facilitate understanding of the cloud-native software delivery method, system, and electronic device provided by the present invention, some technical terms involved in the present invention are explained below.

[0061] Cloud Native: A cloud computing-based software development and deployment methodology that emphasizes designing applications and services as native applications in a cloud environment to achieve high availability, scalability, and flexibility. Microservice architecture is a way to implement cloud native, which splits applications into a set of small, independent services, each of which can be independently deployed, expanded, and maintained.

[0062] Directed Acyclic Graph (DAG): A graph structure that is a set of nodes connected by a set of directed edges. It has the properties of directionality and acyclicity, that is, there is no path in a directed acyclic graph that starts from a node and returns to the node along the directed edges.

[0063] Kubernetes (K8s): An open source container orchestration platform for automating the deployment, scaling, and management of containerized applications.

[0064] Software runtime: The environment and resources required by a software application during execution.

[0065] Combine the following Figures 1 to 15 , the cloud-native software delivery method, system and electronic device provided by the present invention are explained.

[0066] See also Figure 1 , Figure 1 A flowchart of a cloud native software delivery method provided by an embodiment of the present invention is shown in FIG. Figure 1 As shown, the method includes:

[0067] S110: receiving an application deployment request, and obtaining an application to be deployed and middleware on which the application to be deployed depends by parsing the application deployment request.

[0068] S120: Deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster (Kubernetes cluster), where the container orchestration cluster includes a plurality of node resources for running applications or managing clusters.

[0069] It should be noted that by deploying the application to be deployed and the middleware on which the application to be deployed depends in the Kubernetes cluster, it is convenient to perform standardized export later. In addition, the above step S120 better realizes the automated deployment of the application to be deployed, that is, automatically deploying the application to be deployed and the middleware on which it depends in the Kubernetes cluster, avoiding errors caused by manual deployment.

[0070] S130: If the application deployment is completed, all the contents of the container orchestration cluster are exported in a standardized manner to obtain software products to be delivered.

[0071] It should be noted that when the application to be deployed and the corresponding middleware are successfully deployed in the Kubernetes cluster, the Kubernetes cluster includes software runtime, software operation data (data generated and used during the operation of the application (software)), software operation architecture status (the status and configuration of the system during the application operation), and middleware. Therefore, by integrating all the contents of the Kubernetes cluster and exporting them in a standardized manner, the software product to be delivered containing the above content can be obtained. The software product to be delivered is used to deliver to customers, and the software product to be delivered can be directly run on the customer system without adjusting the environmental parameters according to the customer system, effectively shortening the software delivery time, improving software delivery efficiency, and reducing costs.

[0072] It is worth mentioning that standardized export means exporting the software products to be delivered in a unified way. The export method, such as the export format, can be customized, which is highly flexible. In addition, by standardizing the export of all the contents of the container orchestration cluster, the portability of the software products to be delivered can be effectively improved, thereby shortening the software delivery time.

[0073] In some embodiments, before deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, the method further includes:

[0074] The target namespace information carried in the application deployment request is obtained, and the target namespace corresponding to the target namespace information is checked to determine whether the target namespace is available, wherein the namespace refers to a resource space composed of one or more node resources in a container orchestration cluster.

[0075] It should be noted that the container orchestration cluster, i.e., the Kubernetes cluster, includes multiple node resources. In this embodiment, Kubernetes is used to integrate multiple node resources into a resource pool, and, in order to facilitate resource management and utilization, the resource pool is divided into multiple small pools, each of which corresponds to a namespace, and each namespace is isolated from each other to improve security. The target namespace information may be the target namespace name, etc.

[0076] In some embodiments, determining that the target namespace is available includes:

[0077] 1. Obtain permission information in the application deployment request, and perform permission verification based on the permission information.

[0078] 2. If the permission verification is passed, it is determined that the current application deployment request has permission to use the target namespace.

[0079] It should be noted that through the above steps, permission verification can be completed well and the security of application deployment can be improved.

[0080] 3. When it is determined that the application deployment request has permission to use the target namespace, obtain status information of the target namespace.

[0081] 4. If the status information is available, determine that the target namespace is available.

[0082] It should be noted that the status information of the namespace includes available, occupied (such as being assigned to a task and causing the resource to be currently unavailable), faulty, and restricted (although the resource is available, it is restricted due to policy and other reasons). Through the above steps, the subsequent application deployment process can be guaranteed to proceed normally as much as possible to avoid deployment failures.

[0083] In some embodiments, the step of deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster includes:

[0084] 1. Generate a directed acyclic graph based on the application to be deployed and the middleware on which the application to be deployed depends. The directed acyclic graph includes multiple task nodes. The task nodes represent operations or tasks that need to be performed for application deployment. The edges between task nodes represent dependencies between task nodes.

[0085] It should be noted that the task nodes include: application deployment tasks (application component deployment tasks) and middleware deployment tasks, etc. By generating a directed acyclic graph, it is possible to facilitate subsequent automatic application deployment.

[0086] It should also be noted that, in this embodiment, a preset workflow engine is used to schedule and execute task nodes in a directed acyclic graph.

[0087] Figure 2 For a structural diagram of a directed acyclic graph in a cloud-native software delivery method provided by an embodiment of the present invention, please refer to Figure 2 , Figure 2 The oval box in the middle represents the task node, the edge between the task nodes represents the dependency relationship between the two, and the number in the box is an exemplary number of the task node. By constructing a directed acyclic graph, the dependency relationship between the application to be deployed and the middleware can be clarified, so as to facilitate subsequent automated deployment.

[0088] 2. According to the directed acyclic graph, application deployment is performed. During the deployment process, the middleware is deployed in a standardized manner. The standardized deployment includes automatically deploying and configuring the middleware according to custom specifications.

[0089] It should be noted that in this embodiment, the preset Operator controller is used to standardize the deployment of middleware, and the life cycle of the middleware is managed and monitored. The Operator controller is a type of controller in Kubernetes that can automatically manage the life cycle of the middleware, ensuring that each middleware is deployed according to the standardized process and maintains healthy operation.

[0090] Figure 3 A flowchart of application deployment in a cloud native software delivery method provided by an embodiment of the present invention is provided in FIG. Figure 3, when a directed acyclic graph (also called an application dependency graph in this embodiment) is generated, the workflow engine schedules and executes the tasks, that is, runs the tasks in the Kubernetes cluster. During the execution process, the Operator controller deploys the middleware, thereby deploying each load (core components of the application to be deployed, middleware, etc.) in the Kubernetes cluster. The workflow engine and the Operator controller run the corresponding tasks on different nodes in the Kubernetes cluster to complete the application deployment.

[0091] Figure 4 For a timing flow chart of application deployment in a cloud native software delivery method provided in an embodiment of the present invention, please refer to Figure 4 ,Application deployment involves four ends, namely the user end, the target object (generating and managing the nodes of the directed ,acyclic graph), the workflow engine, and the Operator controller. Figure 4 First, the user submits an application deployment request, and the target object parses the application deployment request to obtain the application to be deployed and the middleware on which the application to be deployed depends. After that, a directed acyclic graph is generated based on the application to be deployed and the middleware on which the application to be deployed depends. The workflow engine schedules and executes tasks based on the directed acyclic graph. During the execution process, the Operator controller is responsible for the middleware deployment, and the workflow engine is responsible for the application deployment. In addition, the Operator controller also monitors the status of the middleware. Finally, the workflow engine feeds back the deployment results to the user end. Through the above steps, it can be ensured that all tasks are executed smoothly according to the predetermined plan. It should be mentioned that the node where the target object is located is used to display the start time, execution order, dependency status, and completion status of each task node in the directed acyclic graph.

[0092] In some embodiments, according to the directed acyclic graph, the step of deploying the application includes:

[0093] 1. Monitor changes in the target object, where the target object refers to a node that generates and manages the directed acyclic graph.

[0094] 2. If it is detected that the target object has changed, a workflow execution instance is created or updated according to the current directed acyclic graph.

[0095] It should be noted that if a new directed acyclic graph is generated, a workflow execution instance is created based on the current directed acyclic graph. If the process state of the original directed acyclic graph changes, the workflow execution instance is updated. Updating the workflow execution instance means creating a new workflow execution instance to replace the original workflow execution instance.

[0096] 3. Execute the workflow execution instance.

[0097] 4. Tracking the execution status of the workflow execution instance to update the process status of the directed acyclic graph until the task nodes of the directed acyclic graph are executed.

[0098] It should be noted that, through the above steps, the sequential execution of the task nodes in the directed acyclic graph can be well guaranteed. One task node corresponds to one or more workflow execution instances.

[0099] In some embodiments, according to the current directed acyclic graph, the step of creating or updating a workflow execution instance includes:

[0100] 1. Get the current working mode.

[0101] 2. If the working mode is the draft mode, a workflow execution instance is simulated and generated according to the directed acyclic graph to determine whether the current directed acyclic graph meets the workflow generation condition.

[0102] 3. When it is determined that the current directed acyclic graph meets the workflow generation condition, the workflow state is updated to ready for deployment.

[0103] 4. In the case where the simulation of generating a workflow execution instance fails, it is determined that the current directed acyclic graph does not meet the workflow generation condition, and a simulation failure prompt is issued, wherein the simulation failure prompt is used to instruct to adjust the current directed acyclic graph.

[0104] For example, when there is a node loop in the directed acyclic graph (there is a path starting from a node and passing through several edges and then returning to the node), the workflow execution instance cannot be generated, resulting in the failure of workflow execution instance generation. In this case, the current directed acyclic graph does not meet the workflow generation conditions.

[0105] It should be noted that by setting different working modes, it is convenient for software developers to adjust the generated directed acyclic graph, etc. For example, in the draft mode, if a simulation failure prompt is issued, the software developer can make corresponding adjustments to the current directed acyclic graph to ensure that the generated directed acyclic graph is correct.

[0106] In some embodiments, according to the current directed acyclic graph, the step of creating or updating the workflow execution instance further includes:

[0107] 1. If the working mode is the execution mode, the workflow status is obtained.

[0108] 2. When the workflow status is ready to deploy or the workflow execution instance creation fails, the workflow execution instance is created according to the current directed acyclic graph.

[0109] 3. If the workflow execution instance is created successfully, the existing historical workflow execution instance is deleted, and the currently created workflow execution instance is determined as the new workflow execution instance.

[0110] 4. When the workflow status is that the workflow execution instance is being executed, the workflow execution instance is suspended, or the workflow execution instance fails to run, the current workflow execution instance is directly obtained for subsequent task execution.

[0111] It should be noted that, through the above steps, the smooth creation and execution of the workflow execution instance can be well guaranteed.

[0112] Figure 5 For another flowchart of application deployment in the cloud native software delivery method provided by one embodiment of the present invention, please refer to Figure 5 ,First, receive an application deployment request.

[0113] Secondly, check the target namespace to determine whether the target namespace is available. Specifically, obtain the target namespace information carried in the application deployment request, and check the target namespace corresponding to the target namespace information to determine whether the target namespace is available. If the target namespace is available, generate a directed acyclic graph based on the application to be deployed and the middleware that the application to be deployed depends on. If the target namespace is not available, return to recheck the target namespace.

[0114] Then, determine whether the current working mode is the draft mode. If so, simulate and generate a workflow execution instance to determine whether the current directed acyclic graph meets the workflow generation conditions, and if it is determined that the current directed acyclic graph meets the workflow generation conditions, update the workflow state to ready for deployment; if not, obtain the workflow state (the workflow state includes ready for deployment, workflow execution instance creation failure, workflow execution instance being executed, workflow execution instance suspended, and workflow execution instance failure, etc.), and create and execute the workflow execution instance according to the workflow state.

[0115] Finally, the execution status of the workflow execution instance is monitored and tracked until the execution of the task nodes in the directed acyclic graph is completed.

[0116] Figure 6 For an exemplary schematic diagram of a specific process of application deployment in a cloud native software delivery method provided in an embodiment of the present invention, please refer to Figure 6 ,First, receive an application deployment request.

[0117] Secondly, check the target namespace to determine whether it is available. If not, return to recheck the target namespace. If available, generate a directed acyclic graph based on the application to be deployed and the middleware that the application to be deployed depends on.

[0118] Then, determine whether the directed acyclic graph is generated successfully. If the generation fails, an error is returned. If the generation succeeds, determine whether the current working mode is the draft mode.

[0119] If the current working mode is draft mode, the workflow execution class is created to simulate the generation of a workflow execution instance to determine whether the simulation is successful. If the simulation is successful, the workflow status is updated to ready for deployment. If the simulation fails, the workflow status is updated to precondition check failure, that is, the directed acyclic graph is incorrect, and a simulation failure prompt is issued.

[0120] If the current working mode is not the draft mode, that is, the current working mode is the execution mode, the workflow status is obtained and the status is judged.

[0121] When the workflow status is ready to deploy or the workflow execution instance creation fails (please refer to Figure 6 In case 1), a workflow execution class is created according to the current directed acyclic graph to generate a workflow execution instance. It is determined whether the workflow instance is generated successfully. If it is generated successfully, the existing historical workflow execution instance is deleted, and the currently generated workflow execution instance is determined as a new workflow execution instance to complete the creation of the workflow instance. If the generation fails, the workflow status is updated to a failure of the precondition check. It should be mentioned that in some embodiments, after the currently generated workflow execution instance is determined as a new workflow execution instance, a new workflow task can also be created to execute the new workflow execution instance. If the creation is successful, the workflow status is updated to a successful creation. If the creation fails, the workflow status is updated to a failure of the workflow execution instance creation.

[0122] In the case where the workflow status is that the workflow execution instance is being executed, the workflow execution instance is suspended, or the workflow execution instance fails to run (please refer to Figure 6 In case 2), directly obtain the current workflow execution instance. Determine whether the acquisition is successful. If the acquisition is successful, the acquired workflow execution instance is used for subsequent task execution and the process state of the directed acyclic graph is updated. If the acquisition fails, an error is returned.

[0123] Figure 7 For a schematic diagram of a directed acyclic graph drawing interface in a cloud native software delivery method provided by an embodiment of the present invention, please refer to Figure 7The directed acyclic graph generated in the above embodiment includes multiple task nodes, such as application (see Figure 7 The edges between different task nodes represent the dependency relationship between business applications in the enterprise, middleware, and public services. Figure 7 The business applications, middleware, and their dependencies are explained in an exemplary manner, and can be adjusted accordingly according to needs in actual drawing.

[0124] Figure 7 The wms in it stands for Warehouse Management System, and its full name is Warehouse Management System. GUC (Grand Unified Configuration) is a centralized configuration management service. SPA is an exemplary public service. MGR-Instance (MySQL Group Replication Instance) is a middleware used to implement high availability and data redundancy of MySQL (an open source relational database management system). Redis-Cluster (abbreviated as Redis) is a distributed database middleware. RocketMQ is a distributed messaging middleware. Minio-Geega (abbreviated as Minio) is a high-performance, open source object storage middleware. In addition, Figure 7 Each task node is marked with its version (such as 0.0.1, 3.12.0, etc., which will not be repeated here) and repository (such as "public (public, Figure 7 Due to the limited space in the text, it is abbreviated as "publi...", "app(Application)-...", "charts(Charts)", etc.).

[0125] Figure 8 This is a schematic diagram of the interface of the deployment log of the workflow engine in the cloud native software delivery method provided by an embodiment of the present invention. Please refer to Figure 8 , Figure 8The deployment log of the workflow engine is shown in . The deployment log of the workflow engine includes deployment of middleware, public services, and business applications. The deployment of middleware includes: waiting for application Ready [middleware / mysql], waiting for application Ready [middleware / redis], waiting for application Ready [middleware / rocketmq], waiting for application Ready [middleware / minio], copy dependency configuration Ready [middleware / mysql], copy dependency configuration [middleware / redis], copy dependency configuration [middleware / rocketmq], copy dependency configuration [middleware / minio]. Although the deployment of the middleware is performed by the Operator controller, the workflow engine writes the deployment process of the middleware into the log by interacting with the Operator controller. The entire deployment process is scheduled and controlled by the workflow engine. That is, if a deployment task of a certain middleware needs to be executed, the workflow engine notifies the Operator controller, and the Operator controller executes the deployment task of this middleware and manages the life cycle of the middleware. Deployment public services include: creating dependency configuration public services [gomo (a platform for mobile application development and management) / guc], creating dependency configuration public services [middleware / spa2 (an exemplary public service)], waiting for application Ready public services [gomo / guc], and waiting for application Ready [public services middleware / spa2]. Service business applications include: creating dependency configuration [business application gomo / wms], and deploying business application gomo / wms. The content in [] is the execution object of its preceding action.

[0126] The cloud-native software delivery system provided by the present invention is described below. The cloud-native software delivery system described below and the cloud-native software delivery method described above can refer to each other.

[0127] Please refer to Fig. 9 , the cloud native software delivery system provided in this embodiment includes:

[0128] A deployment request receiving module 910 is used to receive an application deployment request, and obtain the application to be deployed and the middleware on which the application to be deployed depends by parsing the application deployment request;

[0129] A deployment module 920, configured to deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, wherein the container orchestration cluster includes a plurality of node resources for running applications or managing clusters;

[0130] The delivery module 930 is used to standardize and export all the contents of the container orchestration cluster to obtain the software products to be delivered if the application deployment is completed. The deployment request receiving module 910, the deployment module 920, and the delivery module 930 are connected. The cloud-native software delivery system in this embodiment can effectively ensure the consistency of the software products to be delivered in different environments, has better portability, effectively shortens the software delivery time, improves the software delivery efficiency, and reduces the cost.

[0131] In some embodiments, the system further comprises:

[0132] An infrastructure module, wherein the infrastructure module includes a hardware resource unit and a hyper-convergence unit, wherein the hardware resource unit includes a plurality of hardware resources, wherein the hardware resources are computing resources, storage resources or network resources; and the hyper-convergence unit is used to integrate the hardware resources to obtain a plurality of virtual nodes (computing virtual nodes, storage virtual nodes, and network virtual nodes);

[0133] The container platform module is used to create the container orchestration cluster according to the virtual node, and the container orchestration cluster includes: a control plane cluster (Kubernetes master) and a worker node cluster (Kubernetes worker), the control plane cluster includes multiple control planes, and the worker node cluster includes multiple worker node resources. The control plane is used to manage and schedule the worker node resources, and the worker node resources are used to execute application deployment tasks.

[0134] It should be noted that the hyper-convergence unit integrates hardware resources into multiple virtual nodes, thereby facilitating application deployment. In addition, by creating the above control plane cluster and working node cluster, it is more reasonable.

[0135] It should be mentioned that the existing software delivery systems often lead to tight coupling between system components, complex update and maintenance processes, and increased system vulnerability. However, this system builds computing virtual nodes, storage virtual nodes, and network virtual nodes to make the entire system completely autonomous, reducing the difficulty of system update and maintenance processes.

[0136] In some embodiments, the network resources include a target switch and a wireless network communication device, and the computing resources and the storage resources are both connected to the target switch to complete internal communication;

[0137] The target switch has an external network interface and a device access point, the external network interface is used to access an external network, the device access point is used to connect to an external device, the target switch is connected to the wireless network communication device, and the wireless network communication device is used to establish a connection with a remote device.

[0138] It should be noted that by setting up an external network interface on the target switch, the system (cloud-native software delivery system) can achieve non-invasive access to external networks (such as user networks), avoiding changes to the user's original basic settings and shortening the delivery time. In addition, by setting up device access points on the target switch, the connection between the system and external devices can also be achieved. By setting up wireless network communication equipment, the connection between the system and remote devices can be achieved.

[0139] This system adopts declarative infrastructure and storage-computing separation design to ensure the standardization of system configuration. In addition, this system can export the software products to be delivered in a unified way, which greatly improves the portability of the system and its flexibility in multi-cloud environments and reduces compatibility risks.

[0140] It should be noted that the cloud-native software delivery method and the cloud-native software delivery system provided in the above embodiment belong to the same concept, and the specific manner in which each module and unit performs operations has been described in detail in the method embodiment, which will not be repeated here. In actual applications, the cloud-native software delivery system provided in the above embodiment can allocate the above functions to different functional modules as needed, that is, divide the internal structure of the system into different functional modules to complete all or part of the functions described above, and this is not limited here.

[0141] The cloud-native software delivery system in the above embodiment is further explained below from the perspective of software and hardware layering.

[0142] Please refer to Fig.10 From the perspective of hardware and software functional layering, the cloud native software delivery system includes: a hardware resource layer (corresponding to the hardware resource unit in the above embodiment), an HCI (Hyper-Converged Infrastructure) hyper-convergence layer (corresponding to the hyper-convergence unit in the above embodiment), a container platform layer (corresponding to the container platform module in the above embodiment), and a business application layer (corresponding to the deployment module 920 in the above embodiment). In addition, the cloud native software delivery system also includes a deployment request receiving module 910 and a delivery module 930 ( Fig.10). The deployment request receiving module 910 receives the application deployment request and transmits the application to be deployed obtained by parsing, as well as the middleware on which the application to be deployed depends, to the business application layer (deployment module 920). The business application layer deploys the application to be deployed, as well as the middleware on which the application to be deployed depends, to the container orchestration cluster in the container platform layer. After the deployment is completed, the delivery module 930 exports all the contents of the container platform layer from the HCI hyper-convergence layer to obtain a standardized software product to be delivered.

[0143] The hardware resource layer includes multiple physical devices, such as physical computing devices (see Fig.10 x86 servers, ARM (a processor architecture based on RISC (reduced instruction set computing) design concept) servers, storage devices, and network devices. Multiple physical devices are connected through network devices to form an integrated infrastructure for easy deployment.

[0144] The HCI hyper-convergence layer is used to integrate the hardware resources in the hardware resource layer on a unified platform to form a virtualized resource pool, and manage and schedule the resource pool, so as to achieve unified management of multiple resources in a unified system. Through virtualization technology, computing virtualization (aSV), storage virtualization (aSAN), and network virtualization (aNET) are realized. The HCI hyper-convergence layer supports dynamic resource allocation to cope with different workloads (such as deployment tasks (application deployment tasks, middleware deployment tasks, etc.)).

[0145] The container platform layer uses Kubernetes to achieve automated orchestration, load balancing, fault recovery, and elastic expansion of Kubernetes clusters, and automatically manages the life cycle of Kubernetes clusters. In addition, based on container technologies (such as Docker (an open source containerization tool)), deployed applications and their dependencies are packaged into standardized container images. The technologies involved mainly include Kubernetes, microservice management, cluster management, and cloud native gateways.

[0146] The business application layer is used for the deployment of applications and their dependencies, and can realize the deployment of various key applications in the manufacturing industry, such as MySQL, advanced planning and scheduling system (APS), manufacturing execution system (MES), warehouse management system (WMS), etc. The business application layer can better achieve full coverage of production and manufacturing scenarios.

[0147] When the application deployment is completed, all the contents of the container platform layer can be exported from the HCI hyper-convergence layer to obtain a standardized software product to be delivered. The standardized software product to be delivered includes not only the configuration of the application, but also the software operation data, etc. Therefore, the software product to be delivered can be easily migrated to other systems or platforms, with strong portability, effectively improving the adaptability of the application and ensuring that the application can still run stably in different system environments or platform environments.

[0148] The hyper-fusion unit in the above embodiment is explained below. Fig.11 This is an exemplary schematic diagram of the HCI hyper-convergence layer in the cloud native software delivery system provided in one embodiment of the present invention. Please refer to Fig.11 , the HCI hyper-convergence layer mainly includes computing virtualization (aSV), storage virtualization (aSAN), and network virtualization (aNET) functions. Among them, network virtualization includes: management network (for information synchronization), business network (external network channel), data communication network (intranet channel), and storage private network (for distributed storage traffic, etc.), each network corresponds to the virtual resources of network devices, such as the virtual resources of 1GE (Gigabit Ethernet) switches, the virtual resources of 10GE switches, and the virtual resources of 10Gbpe (gigabits per second on each edge connection, that is, the data transmission rate on each edge connection) switches. Fig.11 HDD stands for hard disk and SSD stands for solid state drive, both of which are virtualized representations of storage devices. The rectangular plate above the SSD is a simplified representation of virtualized computing resources. The HCI hyper-convergence layer effectively simplifies the management and deployment of data centers, improving resource utilization efficiency and system flexibility.

[0149] The following explains computing virtualization, network virtualization, and storage virtualization respectively.

[0150] Computing virtualization: secondary development based on KVM (Kernel-based Virtual Machine) to provide a basic virtualization environment for the operation of virtual machines.

[0151] Fig.12 For an exemplary schematic diagram of a cloud-native software delivery system provided by an embodiment of the present invention for non-invasive access to a customer network, please refer to Fig.12 , Fig.12 Server 1, Server 2, and Server 3 are all physical computing devices, and the "wireless bridge" is a wireless network communication device. Server 1, Server 2, and Server 3 are respectively connected to Fig.12The target switch in the network is connected, where a single server is connected to the target switch to form a single node. Server 1, Server 2, and Server 3 are also connected to the storage switch respectively to realize internal storage communication. Server 1, Server 2, Server 3, the target switch, the storage switch, and the wireless network communication equipment are integrated into a unified whole to form an internal network in which the traffic can flow completely. The target switch provides an external network interface to access the customer network, thereby realizing seamless access to the customer network without any intrusion or modification to the user's infrastructure. The customer network can be connected to the public network. The target switch also provides a device access point to connect to external devices, such as Fig.12 Multiple devices around the user's production line (consisting of AP (access point) devices, switches, and IOT (Internet of Things) boxes). In addition, wireless network communication devices can also establish connections with long-distance access points, which include wireless network communication devices, switches, and IOT boxes.

[0152] In some embodiments, the HCI hyper-convergence layer isolates the traffic of each virtual machine in a virtualized network layer by creating a virtual network (Overlay network). This network layer supports the interconnection of physical networks and allows dynamic routing and load balancing at the upper layer. The physical exit of computing hardware (such as a server) can lead to multiple branches. Different servers can be connected to the target switch through a preset border router to achieve the effect of isolation and intercommunication between different servers. The border router can be integrated into Fig.12 Any one of Server 1, Server 2, and Server 3. By connecting Server 1, Server 2, and Server 3 to the target switch, a fixed number of hardware computing resources can be converted into multiple virtual machines, each of which is responsible for different functions.

[0153] Fig.13 For an exemplary schematic diagram of a container platform layer in a cloud native software delivery system provided by an embodiment of the present invention, please refer to Fig.13 The container platform layer uses Kubernetes to implement automated orchestration, load balancing, fault recovery, and elastic expansion of the Kubernetes cluster. The Kubernetes cluster includes: a control plane cluster (Kubernetes master) and a worker node cluster (Kubernetes worker). The control plane cluster includes multiple control planes (such as Fig.13 Master-0, Master-1, and Master-2 in ), the working node cluster includes multiple working node resources (such as Fig.13In the example, worker-0, worker-1, worker-2, and worker-N, where N represents the number of worker node resources, the control plane is used to manage and schedule the worker node resources, and the worker node resources are used to execute application deployment tasks. Fig.13 The "VIP" in the table represents the load balancing function, which is to achieve load balancing by switching the communication between the worker and the Master. Fig.13 The GMOM Local Cluster in the container platform layer represents the GMOM (cluster management and optimization) local cluster. The application load in the container platform layer is deployed in the Kubernetes cluster. The application load includes the application to be deployed (the application includes core components, such as gateway components, observable components, monitoring / alarm components, log components, inspection components, and audit components, etc.), middleware (such as Opensearch Cluster (a middleware used to search, analyze and process large-scale data), etc.), and built products (already built application images / Charts (Helm Charts, Helm (a package management tool) charts) / binary files, etc.). The deployed products can be referred to Fig.13 The core components in the above loads are the main functional parts of the application, which include key services and provide basic business logic and functions. When deploying, the core components need to obtain specific deployment units from the artifact area, such as application images, charts or binary files. It can be understood that the operation of the core components depends on the built artifacts provided by the artifact area. Fig.13 The data layer in the figure indicates that there is data interaction or dependency between the core components and the middleware, that is, the core components may request data from the middleware or store data. The existence of the data layer ensures the flow and consistency of data.

[0154] In some embodiments, cluster information of the container platform layer may be displayed, including: cluster name, status, tenant, type, creation time, version, environment code, Cluster CIDR, Service CIDR, Cluster Domain, oversold ratio, platform gateway component, and description, etc. In addition, information of the access host (virtual machine involved in the container platform layer) may also be displayed, including name, status, node, system, type, and survival time, etc.

[0155] In some embodiments, the container platform layer also provides a cluster monitoring function, which is integrated into a cluster monitoring module. The cluster monitoring module is explained below. The cluster monitoring module in this embodiment is Prometheus (an open source monitoring and alarm system), which has the following functions:

[0156] Data collection: HTTP (Hypertext Transfer Protocol) pull mode is used to regularly collect indicator data from the containers of the cluster, supporting multiple data sources and formats. Indicator data can include Cluster CPU Utilization (cluster CPU utilization) and Cluster Memory Utilization (cluster memory utilization).

[0157] Time series database: Use an efficient time series database to store monitoring data, supporting high-concurrency reading and writing.

[0158] Query language (PromQL): Provides a powerful query language that can flexibly query and analyze collected data to help identify performance bottlenecks and system anomalies.

[0159] Alarm mechanism: Through the Alertmanager module, it supports setting alarm rules for monitoring indicators and notifying operation and maintenance personnel of system failures or anomalies in a timely manner.

[0160] In some implementations, the container platform layer also includes a log management module, which uses FluentBit (a lightweight log management tool) to perform log management.

[0161] In some embodiments, the corresponding log data can be queried by querying the log. The query range can be set when querying, such as the query address, time, and keywords. The log display part includes the log printing time and log content. In addition, the operator can also browse the context of the corresponding log by clicking the context button in the log display interface.

[0162] In some embodiments, the container platform layer also includes an application monitoring module, which uses SkyWalking (an open source distributed application monitoring system) for application monitoring, and can implement distributed tracking (such as tracking the call relationship between different services, etc.) to help identify performance bottlenecks or sources of failure. In addition, the application monitoring module collects application performance indicators and operating status, performs transaction tracking, error analysis, and service health checks to provide comprehensive visual data for operation and maintenance personnel. The application monitoring module supports multiple protocols to facilitate monitoring by developers. In addition, the application monitoring module visualizes the monitored data to help developers quickly locate problems and optimize system performance.

[0163] In some embodiments, the container platform layer also includes a load balancing module. The load balancing module uses Traefik (a modern HTTP reverse proxy and load balancer) to complete load balancing control. The load balancing module is used to provide the following functions:

[0164] Dynamic routing: Automatically adjust request routing based on backend service status and configuration without manual intervention, and support service discovery.

[0165] SSL (Secure Sockets Layer) / TLS (Transport Layer Security) Management: Supports automated SSL certificate management and improves system security through HTTPS (Hypertext Transfer Protocol Security) encryption.

[0166] Middleware support: Provides a variety of middleware functions, such as request redirection, current limiting, and identity authentication, to enhance application availability and security.

[0167] Visualization panel: provides an intuitive management interface to facilitate operation and maintenance personnel to monitor traffic conditions and system status in real time.

[0168] This embodiment also provides a cloud-native software delivery method that integrates software and hardware. Please refer to Fig.14 First, hardware preparation, that is, preparing hardware resources, including computing resources, storage resources or network resources. Secondly, pre-install the HCI hyper-convergence platform (the platform where the HCI hyper-convergence layer is located). Then, pre-install the container platform (the platform where the container platform layer is located). Next, according to the application deployment request, the application is deployed. Finally, a reusable software product to be delivered is obtained. The software product to be delivered can be delivered to multiple customers. This method significantly improves the efficiency of application automation deployment and system stability, provides flexible and efficient support for complex business scenarios, and has non-invasive access and high reliability, which fully meets the needs of digital transformation in the manufacturing industry.

[0169] In some embodiments, an electronic device is also provided, which may be a server, and its internal structure is shown in FIG. Fig.15 As shown. The electronic device includes a processor, a memory, a network interface and a database connected via a system bus. The processor of the electronic device is used to provide computing and control capabilities. The memory of the electronic device includes a non-volatile and / or volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the electronic device is used to communicate with an external client via a network connection. When the computer program is executed by the processor, the functions or steps on the server side of the above method are implemented.

[0170] In some embodiments, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented: receiving an application deployment request, parsing the application deployment request, obtaining an application to be deployed, and middleware on which the application to be deployed depends; deploying the application to be deployed, and the middleware on which the application to be deployed depends in a preset container orchestration cluster, wherein the container orchestration cluster includes multiple node resources for running applications or managing clusters; if the application deployment is completed, exporting all the contents of the container orchestration cluster in a standardized manner to obtain a software product to be delivered.

[0171] In some embodiments, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented: receiving an application deployment request, parsing the application deployment request, obtaining the application to be deployed, and the middleware on which the application to be deployed depends; deploying the application to be deployed, and the middleware on which the application to be deployed depends in a preset container orchestration cluster, where the container orchestration cluster includes multiple node resources for running applications or managing clusters; if the application deployment is completed, exporting all the contents of the container orchestration cluster in a standardized manner to obtain the software product to be delivered.

[0172] It should be noted that the above functions or steps that can be implemented by the computer-readable storage medium or electronic device can refer to the relevant descriptions on the server side and the client side in the aforementioned method embodiment. To avoid repetition, they will not be described one by one here.

[0173] The flow chart and block diagram in the accompanying drawings illustrate the possible implementation architecture, function and operation of the method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0174] The above embodiments are merely illustrative of the principles and effects of the present invention, and are not intended to limit the present invention. Anyone familiar with the art may modify or alter the above embodiments without departing from the spirit and scope of the present invention. Therefore, all equivalent modifications or alterations made by a person of ordinary skill in the art without departing from the spirit and technical concept disclosed by the present invention shall still be covered by the claims of the present invention.

Claims

1. A cloud-native software delivery method, characterized in that: include: Receiving an application deployment request, and obtaining an application to be deployed and middleware on which the application to be deployed depends by parsing the application deployment request; Deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, where the container orchestration cluster includes a plurality of node resources for running applications or managing clusters; If the application deployment is completed, all the contents of the container orchestration cluster are exported in a standardized manner to obtain the software product to be delivered.

2. The cloud native software delivery method according to claim 1, characterized in that: Before deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, the method further includes: Obtain target namespace information carried in the application deployment request, and check the target namespace corresponding to the target namespace information to determine that the target namespace is available, wherein a namespace refers to a resource space composed of one or more node resources in a container orchestration cluster, and determining that the target namespace is available includes: Obtaining permission information in the application deployment request, and performing permission verification based on the permission information; If the permission verification passes, it is determined that the current application deployment request has permission to use the target namespace; When it is determined that the application deployment request has the permission to use the target namespace, obtaining the status information of the target namespace; If the status information is available, it is determined that the target namespace is available.

3. The cloud native software delivery method according to claim 1, characterized in that: The step of deploying the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster includes: Generate a directed acyclic graph according to the application to be deployed and the middleware on which the application to be deployed depends, wherein the directed acyclic graph includes a plurality of task nodes, wherein the task nodes represent operations or tasks required to be performed for application deployment, and edges between the task nodes represent dependency relationships between the task nodes; According to the directed acyclic graph, application deployment is performed. During the deployment process, the middleware is deployed in a standardized manner. The standardized deployment includes automatically deploying and configuring the middleware according to a custom specification.

4. The cloud native software delivery method according to claim 3, characterized in that: According to the directed acyclic graph, the steps of deploying the application include: Monitoring changes in a target object, where the target object refers to a node that generates and manages the directed acyclic graph; If a change in the target object is detected, a workflow execution instance is created or updated according to the current directed acyclic graph; Executing the workflow execution instance; The execution status of the workflow execution instance is tracked to update the process status of the directed acyclic graph until the task nodes of the directed acyclic graph are executed.

5. The cloud native software delivery method according to claim 4, characterized in that: According to the current directed acyclic graph, the steps of creating or updating a workflow execution instance include: Get the current working mode; If the working mode is the draft mode, simulating and generating a workflow execution instance according to the directed acyclic graph to determine whether the current directed acyclic graph satisfies the workflow generation condition; When it is determined that the current directed acyclic graph meets the workflow generation condition, updating the workflow state to ready for deployment; In the case where the simulation of generating a workflow execution instance fails, it is determined that the current directed acyclic graph does not meet the workflow generation condition, and a simulation failure prompt is issued, wherein the simulation failure prompt is used to instruct to adjust the current directed acyclic graph.

6. The cloud native software delivery method according to claim 5, characterized in that: According to the current directed acyclic graph, the step of creating or updating a workflow execution instance further includes: If the working mode is the execution mode, the workflow state is obtained; When the workflow state is ready to deploy or the workflow execution instance creation fails, creating the workflow execution instance according to the current directed acyclic graph; If the workflow execution instance is created successfully, the existing historical workflow execution instance is deleted, and the currently created workflow execution instance is determined as the new workflow execution instance; When the workflow status is that the workflow execution instance is being executed, the workflow execution instance is suspended, or the workflow execution instance fails to run, the current workflow execution instance is directly obtained for subsequent task execution.

7. A cloud-native software delivery system, characterized in that: include: A deployment request receiving module, used to receive an application deployment request, and obtain the application to be deployed and the middleware on which the application to be deployed depends by parsing the application deployment request; A deployment module, used to deploy the application to be deployed and the middleware on which the application to be deployed depends in a preset container orchestration cluster, wherein the container orchestration cluster includes a plurality of node resources for running applications or managing clusters; The delivery module is used to export all the contents of the container orchestration cluster in a standardized manner to obtain the software product to be delivered if the application deployment is completed.

8. The cloud-native software delivery system according to claim 7, characterized in that: Also includes: An infrastructure module, wherein the infrastructure module includes a hardware resource unit and a hyper-convergence unit, wherein the hardware resource unit includes a plurality of hardware resources, and the hardware resources are computing resources, storage resources or network resources; the hyper-convergence unit is used to integrate the hardware resources to obtain a plurality of virtual nodes; The container platform module is used to create the container orchestration cluster according to the virtual node, and the container orchestration cluster includes: a control plane cluster and a working node cluster, the control plane cluster includes multiple control planes, and the working node cluster includes multiple working node resources. The control plane is used to manage and schedule the working node resources, and the working node resources are used to execute application deployment tasks.

9. The cloud-native software delivery system according to claim 8, characterized in that: The network resources include a target switch and a wireless network communication device, and the computing resources and the storage resources are both connected to the target switch to complete internal communication; The target switch has an external network interface and a device access point, the external network interface is used to access an external network, the device access point is used to connect to an external device, the target switch is connected to the wireless network communication device, and the wireless network communication device is used to establish a connection with a remote device.

10. An electronic device, characterized in that: It includes a processor, a memory and a communication bus; the communication bus is used to connect the processor and the memory; the processor is used to execute a computer program stored in the memory to implement the cloud-native software delivery method as described in any one of claims 1 to 6.

Citation Information

Cited By

  • Execution plan generation method and device and computing equipment cluster

    CN119621021A

  • Container arrangement deployment package generation method, system and device and storage medium

    CN122507451A

  • A method, system and device for generating a container orchestration deployment package and a storage medium

    CN122507451B