Application release control method and device, electronic equipment and storage medium

Multiple services are solved by obtaining the first version of the target application's traffic processing results during the grayscale release of Internet products, and determining the target task batch and rolling back to the specified task batch in the directed acyclic graph. The problem of inconsistent versions during version rollback achieves normal business execution.

CN119440604APending Publication Date: 2025-02-14TENCENT TECH (BEIJING) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310975374.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-03
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

During the grayscale release of Internet products, if a new version of the application has multiple related services updated at the same time, the traffic synchronization of each service needs to be performed during the update process, resulting in multiple services processing of the same service when the version falls back. The version is inconsistent, causing the business to be unable to execute normally.

Method used

By obtaining the traffic processing results of the first version of the target application, determine the corresponding target task batch in the directed acyclic graph, and gradually roll back to the specified task batch based on the executed task batch to ensure that all traffic is allocated to the target application of the second version.

Benefits of technology

This avoids the problem that the traffic allocation corresponding to multiple services of the same version cannot be performed normally when publishing exceptions, and ensures the version consistency of each service in the target application during the version fallback process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440604A_ABST
    Figure CN119440604A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides an application release control method and device, electronic equipment and a storage medium. The method comprises the steps that a processing result of a target application of a first version for flow is obtained, the target application comprises multiple services, and if it is determined that abnormity exists according to the processing result of the target application of the first version for the flow, a current corresponding target task batch in a directed acyclic graph is determined; the directed acyclic graph comprises traffic distribution rules corresponding to a plurality of task batches respectively, and the traffic distribution rules are used for indicating the size of traffic distributed to the target application of the first version and the target application of the second version; and gradually rolling back to the specified task batch based on the executed task batch in the directed acyclic graph. According to the embodiment of the invention, when the target application of the second version is published abnormally, rollback is carried out according to the executed task batch of the directed acyclic graph, so that the problem that the business cannot be executed normally due to the fact that versions of a plurality of services for processing the same business are not the same version when the publishing is abnormal can be avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of Internet technology, and more specifically, to a method, device, electronic device, and storage medium for controlling the release of an application. Background Art

[0002] Internet products typically have large user bases and frequent version updates. Each time a new version of an internet product is released, it carries significant risk. Grayscale releases can effectively mitigate this risk. The literal meaning of grayscale is a smooth transition between black and white. For internet products, the distinction between being online and not yet released is black and white. Grayscale releases are a way to achieve a smooth transition between features that have not yet been released.

[0003] Taking Internet products as applications as an example, in the existing technology, during the grayscale release of a new version of an application, if the new version of the application has multiple related services that are updated at the same time, the traffic of each service needs to be synchronized during the update process to achieve grayscale release. If it is found during the release process that the new version of the application does not meet expectations and a version rollback is required, the rollback operation needs to be performed separately on the traffic corresponding to multiple services in the new version of the application. When the rollback operation is performed on the traffic corresponding to multiple services of the new version of the application, it is easy for the versions of multiple services processing the same business to be different, which will cause the business to fail to execute normally. Summary of the Invention

[0004] In view of this, the embodiments of the present application propose an application release control method, device, electronic device and storage medium, which can avoid the situation where the traffic distribution corresponding to multiple services of the same version is inconsistent when release is abnormal, resulting in the inability to execute the business corresponding to the target application normally.

[0005] In the first aspect, an embodiment of the present application provides a release control method for an application, the method comprising: obtaining a processing result of a first version of a target application for traffic; the target application includes a plurality of services with a related relationship; the traffic for the target application is allocated to a first version of a target application and a second version of a target application for processing; the first version is higher than the second version; if an abnormality is determined based on the processing result of the first version of the target application for traffic, determining the corresponding target task batch currently in a directed acyclic graph; the directed acyclic graph is generated based on the release deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to a plurality of task batches respectively; the traffic allocation rules are used to indicate the size of the traffic allocated to the first version of the target application and the second version of the target application; based on the executed task batches in the directed acyclic graph, the task batches are gradually rolled back to the specified task batch, and the traffic allocation rules corresponding to the specified task batch indicate that all traffic for the target application is allocated to the second version of the target application.

[0006] In the second aspect, an embodiment of the present application provides an application release control device, which includes: a processing result acquisition module, a batch determination module and a task rollback module, wherein the processing result acquisition module is used to obtain the processing result of the first version of the target application for traffic; the target application includes multiple services with a related relationship; the traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing; the first version is higher than the second version; the batch determination module is used to determine the corresponding target task batch in the directed acyclic graph when an abnormality is determined based on the processing result of the first version of the target application for traffic; the directed acyclic graph is generated based on the release deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches respectively; the traffic allocation rules are used to indicate the size of the traffic allocated to the first version of the target application and the second version of the target application; the task rollback module is used to gradually roll back to the specified task batch based on the executed task batches in the directed acyclic graph, and the traffic allocation rule corresponding to the specified task batch indicates that all traffic for the target application is allocated to the second version of the target application.

[0007] In one possible implementation, the target application of the first version in the target task batch is deployed in a grayscale environment, and the task rollback module includes a first update submodule and a first rollback submodule. The first update submodule is used to update the directed acyclic graph according to the executed task batches and the designated task batches in the directed acyclic graph to obtain an updated directed acyclic graph, wherein the updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch, and each executed task batch has the same resource deployment information as the rollback batch corresponding to the executed task batch, and the same traffic allocation rules, and each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric with respect to the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; the first update submodule is used to sequentially execute the rollback batches and designated task batches in the updated directed acyclic graph.

[0008] In one possible implementation, in the target task batch, the target application of the first version is deployed in the formal release environment, and is migrated from the grayscale environment to the formal release environment after the target application of the first version passes the traffic test; the rollback module includes a task creation submodule, a second update submodule and a second rollback submodule, the task creation submodule is used to create a version rollback task batch, the version rollback task batch is used to create a new grayscale environment, and redeploy the target application of the first version to the new grayscale environment, and deploy the target application of the second version to the formal release environment; the second update submodule is used to update the directed acyclic graph according to the executed task batches, the specified task batches and the version rollback task batches in the directed acyclic graph to obtain an updated directed acyclic graph ; The updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch, and the resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic distribution rules are the same, and each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric relative to the target center; the target center is the center of the target task batch and the version rollback task batch, and in the updated directed acyclic graph, the version rollback task batch is the next task batch of the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; the second rollback submodule is used to sequentially execute the version rollback task batch, rollback batch and designated task batch in the updated directed acyclic graph.

[0009] In one possible implementation, the device also includes: an initial environment acquisition module and a grayscale environment acquisition module, the initial environment acquisition module is used to copy the official release environment corresponding to the second version of the target application to obtain the initial release environment; the grayscale environment acquisition module is used to replace the configuration parameters used to control the release of the second version of the target application in the initial release environment with the configuration parameters used to control the release of the first version of the target application to obtain the grayscale environment.

[0010] In one possible implementation, the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; the traffic allocation rule corresponding to the target task batch indicates that the traffic proportion allocated to the first version of the target application does not reach the specified proportion; the device also includes: a task execution module, which is used to determine that there is no abnormality at the business verification node in the target task batch based on the processing result of the first version of the target application for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches a preset duration, and executes the next task batch of the target task batch.

[0011] In one possible implementation, the task batch in the directed acyclic graph also includes a resource allocation node, and the execution order of the resource allocation node in the same task batch is before the business verification node and the batch waiting node. The task execution module is also used to allocate computing resources to each service in the target application of the first version according to the resource allocation information in the resource allocation node corresponding to the next task batch of the target task batch.

[0012] In one possible implementation, the task batch also includes a traffic allocation node, and the execution order of the traffic allocation node in the same task batch is before the business verification node and the batch waiting node. The task processing module is also used to complete the computing resource allocation at the resource allocation node corresponding to the next task batch of the target task batch, and deploy the gateway according to the traffic allocation rule in the traffic allocation node corresponding to the next task batch of the target task batch, so that the gateway allocates traffic to the first version of the target application and the second version of the target application according to the traffic allocation rule.

[0013] In one possible implementation, the first version of the target application in the target task batch is deployed in a grayscale environment; the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application reaches a specified ratio; the device also includes a migration module, which is used to determine that there is no abnormality based on the processing result of the first version of the target application for the traffic at the business verification node in the target task batch, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches a preset duration, migrate the first version of the target application to the official release environment, and delete the grayscale environment.

[0014] In one possible implementation, the device also includes a detection result acquisition module and a batch determination module. The detection result acquisition module is used to obtain the operation detection results of the detection program corresponding to each service in the first version of the target application; the batch determination module is used to determine the corresponding target task batch currently in the directed acyclic graph when it is determined that there is a service with abnormal operation in the first version of the target application based on the detection results; the rollback module is also used to gradually roll back to the specified task batch based on the task batches that have been executed in the directed acyclic graph.

[0015] In one possible implementation, the device also includes an information receiving module and a graphics generation module, wherein the information receiving module is used to receive the release deployment information sent by the terminal, and the release deployment information is configured in the deployment configuration interface; the graphics generation module is used to generate a directed acyclic graph based on the release deployment information.

[0016] In a third aspect, an embodiment of the present application provides an electronic device comprising a processor and a memory; one or more programs are stored in the memory and configured to be executed by the processor to implement the above method.

[0017] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, in which program code is stored, wherein the above method is executed when the program code is executed by a processor.

[0018] In a fifth aspect, embodiments of the present application provide a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device retrieves the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the above-described method.

[0019] An embodiment of the present application provides a release control method, device, electronic device and storage medium for an application, the method comprising: obtaining the processing result of the first version of the target application for traffic; if it is determined that there is an abnormality based on the processing result of the first version of the target application for traffic, determining the target task batch corresponding to the current directed acyclic graph; and gradually rolling back to the specified task batch based on the task batches that have been executed in the directed acyclic graph. Since each task batch in the directed acyclic graph corresponds to a traffic allocation rule, the traffic allocation rule is used to indicate the size of the traffic allocated to the first version of the target application and the second version of the target application, and the target application includes multiple services with a related relationship, therefore, when there is a task processing abnormality and the rollback is performed according to the directed acyclic graph, the traffic corresponding to different task batches in the rollback phase of each service in the target application of the same version is the same. Therefore, when the first version of the target application is released abnormally, the problem of the business not being able to execute normally due to the fact that the versions of multiple services processing the same business are not the same is avoided. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For those skilled in the art, other drawings can be obtained based on these drawings without creative work.

[0021] Figure 1 An application scenario diagram of an application release control method provided by an embodiment of the present application is shown;

[0022] Figure 2 A schematic diagram showing a flow chart of a method for controlling the release of an application provided in an embodiment of the present application is shown;

[0023] Figure 3 A schematic diagram of a deployment configuration interface provided by an embodiment of the present application is shown;

[0024] Figure 4 Another schematic diagram of a deployment configuration interface provided by an embodiment of the present application is shown;

[0025] Figure 5 Another flowchart of a method for controlling the release of an application provided by an embodiment of the present application is shown;

[0026] Figure 6 A schematic diagram of a directed acyclic graph provided in an embodiment of the present application is shown;

[0027] Figure 7 A schematic diagram of an updated directed acyclic graph provided by an embodiment of the present application is shown;

[0028] Figure 8 Another schematic diagram of an updated directed acyclic graph provided by an embodiment of the present application is shown;

[0029] Figure 9 Another flowchart of a method for controlling the release of an application provided by an embodiment of the present application is shown;

[0030] Figure 10 A schematic diagram of the deployment of a target application provided by an embodiment of the present application is shown;

[0031] Figure 11 Another deployment diagram of a target application provided by an embodiment of the present application is shown;

[0032] Figure 12 Another deployment diagram of a target application provided by an embodiment of the present application is shown;

[0033] Figure 13 Another schematic diagram of the process of a release control method of an application provided in an embodiment of the present application is shown;

[0034] Figure 14 A schematic diagram of an application of a detection program provided in an embodiment of the present application is shown;

[0035] Figure 15 A flowchart of a method for controlling the release of an application proposed in an embodiment of the present application is shown;

[0036] Figure 16 A connection block diagram of a release control device for an application proposed in an embodiment of the present application is shown;

[0037] Figure 17 A structural block diagram of an electronic device for executing the method according to an embodiment of the present application is shown. DETAILED DESCRIPTION

[0038] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be thorough and complete and will fully convey the concepts of the example embodiments to those skilled in the art.

[0039] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner.In the following description, many specific details are provided so as to provide a full understanding of the embodiments of the present application. However, it will be appreciated by those skilled in the art that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps etc. can be adopted. In other cases, known methods, devices, implementations or operations are not shown or described in detail to avoid blurring the various aspects of the application.

[0040] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically separate entities. That is, these functional entities may be implemented in software, in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0041] The flowcharts shown in the accompanying drawings are for illustrative purposes only and do not necessarily include all contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps may be decomposed, while others may be combined or partially combined. Therefore, the actual execution order may vary depending on the actual situation.

[0042] It should be noted that the term "plurality" used in this document refers to two or more. "And / or" describes a relationship between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A alone, A and B together, or B alone. The character " / " generally indicates an "or" relationship between the associated objects.

[0043] First, let’s introduce the key terms involved in this solution:

[0044] An application is a computer program designed to perform one or more specific tasks. It runs in user mode, can interact with users, and has a visual user interface. In this embodiment, the application consists of multiple containers and multiple services. Each service uses a container.

[0045] Services offer a different approach to application development and deployment, one that meets the flexibility, scale, and reliability requirements of modern cloud applications. Microservices applications are broken down into independent components that work together to provide the application's overall functionality. The term "service" emphasizes that applications should be composed of services small enough to reflect specific concerns, so each microservice implements a single function. Furthermore, each microservice has a well-defined contract with which other microservices communicate and share data. Typical examples of microservices include shopping carts, inventory handling, purchasing subsystems, and payment processing.

[0046] Containers are "encapsulated applications": An application isn't just a single executable file. A more complex application consists of code, executable files, configuration dependencies, external dependencies (dynamic link libraries), and more. Therefore, when packaging an application for distribution, factors such as the target operating system version, system architecture, and dependent modules need to be considered. The container itself contains all of the application's dependencies, allowing it to run on any infrastructure without unexpected issues caused by system versions or architectures.

[0047] A version is a snapshot of an application at a certain moment, including the image versions and configurations of all microservices of the application at that moment.

[0048] Rollback: A version rollback can refer to rolling back the application directly to the last successfully released version. It can also refer to rolling back to any available historical version.

[0049] The following describes an exemplary application for executing application release control provided by an embodiment of the present invention. The application release control method provided by an embodiment of the present invention can be applied to Figure 1 In the server in the application environment shown.

[0050] Figure 1 is a schematic diagram of an application scenario according to an embodiment of the present application, such as Figure 1 As shown, the application scenario includes a terminal device 10 and a server 20 that is communicatively connected to the terminal device 10 via a network.

[0051] The terminal device 10 can run a client for displaying target data (such as displaying the access page of the target application, or displaying the release and deployment page of the target application) so that the terminal device 10 can deploy the release and deployment information of the target application, or enable the terminal device 10 to access the target application to perform corresponding business.

[0052] The network may be a wide area network or a local area network, or a combination of the two. The terminal device 10 may be a smart phone, a smart TV, a tablet computer, a laptop computer, or a desktop computer.

[0053] Server 20 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.

[0054] If you use Figure 1 The terminal device 10 and the server 20 in the embodiment jointly implement the release of the first version of the target application. The user can input the release deployment information for the target application through the terminal device 10. Upon receiving the release deployment information, the terminal device 10 can send the release deployment information to the server 20. The release deployment information may include task batches and the traffic allocation rules corresponding to each task batch. The traffic allocation rules are used to indicate the traffic size allocated to the first version of the target application and the second version of the target application, with the first version being higher than the second version.

[0055] An application publishing engine can be installed on the server 20. Specifically, the application publishing engine in the server 20 can generate a directed acyclic graph based on the publishing deployment information, and perform the following steps during the publishing process: obtaining the processing results of the first version of the target application for traffic; the target application includes multiple services with related relationships; the traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing; if it is determined that there is an abnormality based on the processing results of the first version of the target application for traffic, determine the corresponding target task batch currently in the directed acyclic graph; the directed acyclic graph is generated based on the publishing deployment information of the target application; the directed acyclic graph includes traffic distribution rules corresponding to multiple task batches; based on the executed task batches in the directed acyclic graph, gradually roll back to the specified task batch. During the rollback process, since each task batch in the directed acyclic graph corresponds to a traffic allocation rule, the traffic allocation rule is used to indicate the amount of traffic allocated to the first version of the target application and the second version of the target application, and the target application includes multiple services with a related relationship. Therefore, when there is a task processing exception, when rolling back according to the directed acyclic graph, the traffic corresponding to different task batches of each service in the same version of the target application during the rollback phase is the same. Therefore, when the first version of the target application releases an exception, the problem of the business not being able to execute normally due to the different versions of multiple services processing the same business being different is avoided.

[0056] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0057] Please read Figure 2 , Figure 2 The present application also provides an application publishing control method, which can be applied to a server. The method includes:

[0058] Step S110: Obtain the processing result of the first version of the target application on the traffic.

[0059] Among them, the target application generally refers to the application of the new version to be released, and the target application includes multiple services with related relationships; the traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing; the first version is higher than the second version, that is, relative to the second version, the first version of the target application is a new version of the application.

[0060] The target application is any software program running on a computer or mobile device, such as any application with multiple services. Services within an application are the functionality provided to users by the software program. Services can provide various functions to the application, such as data storage, data analysis, and push notifications. These services can help the application better meet user needs and enhance the user experience. Typically, an application includes multiple services.

[0061] Multiple services with a related relationship can be multiple services with a dependency or association relationship. For example, if the target application is a shopping software program, the multiple services with a related relationship may include shopping cart, checkout, and return and after-sales services. For example, if the processing result of service A is the data basis for processing by service B, that is, service B depends on the processing result of service A for processing, then the two services are determined to have a related relationship.

[0062] Traffic for the target application may include request traffic and response traffic during business processing. Traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing. Specifically, based on traffic allocation rules, traffic may be allocated to the first version of the target application and the second version of the target application to perform business requests and return corresponding responses to the business requests. Accordingly, the processing results may include at least one of a request result and a response result.

[0063] The first version of a target application can refer to a new version of a target application that is upgraded from the second version of a target application to meet the varying requirements of different users, such as a product series suitable for different operating environments or platforms. It can also refer to a new version of a target application that is upgraded after a period of operation, requiring major revisions or bug fixes, functional enhancements, or performance improvements. In other words, the first version of a target application is an upgraded version of the second version of a target application. In other words, the first version is higher than the second version.

[0064] Step S120: If it is determined that an abnormality exists according to the processing result of the first version of the target application on the traffic, the corresponding target task batch in the directed acyclic graph is determined.

[0065] Among them, the directed acyclic graph is generated based on the release and deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches; the traffic allocation rules are used to indicate the traffic size or traffic ratio allocated to the first version of the target application and the second version of the target application.

[0066] The target application's release and deployment information can be pre-entered and stored, or it can be entered before the first version of the target application is released in batches. The specific input process can include: receiving the release and deployment information entered by the user through the deployment configuration interface corresponding to the target application, where the release and deployment information includes at least multiple task batches and the traffic distribution rules corresponding to each task batch; further, the release and deployment information may also include task waiting delays and the load ratio of each service in the first version of the target application corresponding to each task batch, etc.

[0067] In the present application, since the target application includes multiple services, the published deployment information may also include resource deployment information for each task batch. The resource deployment information for a task batch is used to indicate the computing resources allocated to each service in the first and second versions of the target application under the task batch, for example, the memory allocated to each service. In some embodiments, different services in the target application may be deployed in different containers. The resource deployment information for a task batch may indicate the computing resources allocated to the containers corresponding to each service in the target application under the task batch.

[0068] In one possible implementation, before executing the above step S110, the method further includes: receiving release deployment information sent by the terminal, where the release deployment information is configured in a deployment configuration interface; and generating a directed acyclic graph based on the release deployment information.

[0069] Among them, the multiple configuration information input areas and each information input area in the deployment configuration interface correspond to input prompt information, and the input prompt information is used to prompt the user to input the specific type of release deployment information into the corresponding information input area. Figure 3-Figure 4 As shown, Figure 3The schematic diagram of the deployment configuration interface corresponding to the target application created by the user using the release management platform is shown. When configuring the release deployment information of the target application, the deployment strategy of the first version of the target application can be named first. For example, the deployment strategy of the first version of the target application (i.e., the release deployment information in this application) can be named "Payment Service Dedicated Grayscale Deployment Strategy" based on the naming prompt information. After that, the user can fill in the specific release deployment information based on the specific prompt information, such as filling in the traffic rules, grayscale batch number, and workload ratio parameters. Specifically, the input prompt information includes: "Traffic rules" is used to prompt the user to allocate the traffic ratio for the first version of the target application, "Grayscale batch number" is used to prompt the user to enter the number of grayscale releases when the first version of the target should be released, "Workload ratio" is used to prompt the user to enter the workload ratio corresponding to each service in the first version of the target application under each task batch, wherein the information configured for the workload ratio is the resource deployment information of this application, "Batch waiting time" is used to prompt the user to enter the interval waiting time corresponding to each task batch, etc. The user can obtain the release deployment information of the target application by inputting the information corresponding to the corresponding information input box of each input prompt information in the deployment configuration interface.

[0070] After completing the configuration of the above release deployment information, the user can Figure 4 As shown in the deployment process - application deployment stage, turn on the switch to roll back all service and data changes after release to send the rollback control instructions corresponding to the above option and the release deployment information of the target application to the server, so that when the server receives the above rollback control instructions and the release deployment information of the target application, it generates a directed acyclic graph based on the release deployment information of the target application, and responds to the rollback control instructions to perform application release control according to the method provided in this application.

[0071] The directed acyclic graph generated based on the release and deployment information of the target application may include multiple task batches, and the multiple task batches include phased task batches and may also include task batches during official release.

[0072] In some embodiments, each task batch may include multiple task processing nodes, wherein each task processing node carries a processing task to be executed, such as a traffic allocation node for executing a traffic allocation task, a resource allocation node for executing a computing resource allocation task, a batch waiting node for executing a waiting delay determination task, etc. It should be understood that the traffic allocation rules corresponding to different task batches may be different, the loads corresponding to various services in the first version of the target application may be different in different task batches, and the deployment environments of the first version of the target application in different task batches may also be different.

[0073] The traffic processing result of the first version of the target application refers to the traffic allocated to the first version of the target application, so that the first version of the target application can be accessed and receive the user's business processing request to perform related business when the traffic is allocated. Accordingly, the traffic processing result of the first version of the target application can be specifically understood as the task processing result obtained by the first version of the target application when the traffic is allocated to the user's task processing. The task processing result includes at least one of a request result and a response result. When the request result and the response result are both normal, the traffic processing result is normal, and when the request result or the response result is abnormal, the traffic processing result is abnormal. It should be noted that the more traffic is allocated to the first version of the target application, the more users can access the first version of the target application. Accordingly, the more business processing requests executed by the first version of the target application are, the greater the possibility of abnormal traffic processing results. If the traffic ratio allocated to the first version of the target application is larger and the traffic processing results of the first version of the target application are all normal, the reliability verification result of the first version of the target application is more accurate.

[0074] Exemplarily, when the processing result of the first version of the target application for traffic is abnormal, it indicates that there is an abnormality in the processing process of at least one service in the first version of the target application.

[0075] The above-mentioned exception handling results can be automatically uploaded to the server by the target application side (for example, the client and the corresponding server corresponding to the target application) when the request result or response result of the exception is obtained, or it can be based on the client side generating a prompt message to prompt the user to upload the exception result when the request result or response result of the exception is obtained, and uploaded to the server when the exception reporting confirmation instruction input by the user based on the exception reporting prompt information is received. It can be set according to actual needs.

[0076] If the processing result is abnormal, the first version of the target application may have missing application files, missing operating system files, or inherent program errors. Accordingly, the first version of the target application is not perfect and requires further debugging and re-release. At this time, by determining the corresponding target task batch in the directed acyclic graph, the task rollback starting point can be determined based on the target task batch and the rollback operation can be performed. After the rollback is completed, the first version of the target application can be debugged and improved.

[0077] In this application, in order to ensure the smoothness of the traffic occupied during the release of the first version of the target application, the traffic proportion corresponding to the first version of the target application is larger in the later task batches, so as to gradually increase the traffic proportion corresponding to the first version of the target application to the specified proportion during the grayscale release process. The specified proportion can be, for example, 100%, 98%, 96%, 95%, etc., which is not specifically limited here.

[0078] It should be understood that in the process of releasing the first version of the target application, if each task batch is verified and passed during the release verification process of the first version of the target application, and the traffic ratio corresponding to the first version of the target application increases to occupy all the traffic corresponding to the target application or reaches the ratio of the first version of the target application occupying all the traffic corresponding to the target application reaches a specified ratio, and there are no abnormalities in the release verification process of the first version of the target application, the first version of the target application can be officially released, for example, the first version of the target application can be migrated from the grayscale environment to the formal release environment for release in the formal release environment.

[0079] Step S130: gradually rolling back the executed task batches to the designated task batches based on the directed acyclic graph.

[0080] The traffic distribution rule corresponding to the specified task batch indicates that all traffic for the target application is distributed to the second version of the target application.

[0081] In one possible implementation, the method of gradually rolling back the executed task batches to the designated task batches based on the directed acyclic graph can be to update the directed acyclic graph based on the executed task batches in the directed acyclic graph to obtain an updated directed acyclic graph, wherein the updated acyclic graph includes the rollback batches and designated task batches corresponding to the executed task batches, the designated task batch is the last batch in the updated directed acyclic graph, and the executed task batches can be centrally symmetrical with the corresponding task batches; the resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic allocation rules are the same. After obtaining the updated directed acyclic graph, the rollback batches and designated task batches after the target task batch can be executed sequentially according to the updated directed acyclic graph. If the designated task batch is completed, the corresponding rollback is completed.

[0082] In another possible implementation, the rollback can be carried out step by step according to the task batches that have been executed in the directed acyclic graph until the first task batch in the directed acyclic graph is completed, and then the specified task batch is executed to allocate all the traffic for the target application of the second version to complete the rollback.

[0083] By adopting the above-mentioned method of the present application, since each task batch in the directed acyclic graph corresponds to a traffic allocation rule, the traffic allocation rule is used to indicate the traffic size allocated to the first version of the target application and the second version of the target application, and the target application includes multiple services with related relationships. Therefore, when there is a task processing exception, the rollback is performed in the process of rolling back according to the directed acyclic graph, and the rollback is performed in units of the target application. In this way, it is ensured that after each rollback, multiple services in the target application are of the same version, and there will be no situation where different versions correspond to different services in the target application.

[0084] Since the rollback is performed according to the directed acyclic graph, it can effectively ensure that the versions of each service in the first version of the target application in different task batches and rollback batches are the same, and the versions of each service in the second version of the target application in different task batches are also the same, thereby avoiding the problem of business failure caused by the different versions of multiple services processing the same business during the execution of tasks using the target application.

[0085] See also Figure 5 FIG. 1 is a method for controlling the release of an application provided by another embodiment of the present application, the method comprising:

[0086] Step S210: Obtain the processing result of the first version of the target application on the traffic.

[0087] The target application includes multiple services with related relationships; traffic for the target application is distributed to a first version of the target application and a second version of the target application for processing; the first version is higher than the second version.

[0088] Step S220: If it is determined that an abnormality exists according to the processing result of the first version of the target application on the traffic, the corresponding target task batch in the directed acyclic graph is determined.

[0089] The directed acyclic graph is generated based on the release and deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches; the traffic allocation rules are used to indicate the traffic size allocated to the first version of the target application and the second version of the target application.

[0090] Step S230: Determine whether the deployment environment of the first version of the target application in the target task batch is a grayscale environment.

[0091] Among them, the first version of the target application in the target task batch can be deployed in a grayscale environment or in a formal release environment.

[0092] The official release environment, also known as the production environment, refers to the environment where external services are officially provided and is generally accessible via an internet connection. The grayscale environment in this application embodiment refers to a copy of the production environment used to test the application product before it goes live. It helps us verify the correct configuration of hardware, service servers, databases, and caches. It replicates all dependencies and configurations of the production environment, verifying that the entire product and each component function properly in a real-world environment, and accurately simulates real-world conditions.

[0093] It should be understood that before obtaining the processing results of the first version of the target application, a grayscale environment should be created and the first version of the target application should be deployed in the grayscale environment. Specifically, there are several ways to create a grayscale environment:

[0094] In one possible implementation, the official release environment corresponding to the target application can be obtained by namespace-based replication to obtain a new environment, and then the new environment can be adjusted to obtain a grayscale environment. This method can be applicable to most applications. When the first version of the target application is subsequently released and deployed, there is no need to configure or modify the specific resources of the first version of the target application. It is only necessary to provide the expected task batches, the traffic rules corresponding to each task batch, and the waiting time, etc.

[0095] Specifically, the process of creating the grayscale environment may include: duplicating the official release environment corresponding to the second version of the target application to obtain an initial release environment; and replacing the configuration parameters used to control the release of the second version of the target application in the initial release environment with the configuration parameters used to control the release of the first version of the target application to obtain the grayscale environment.

[0096] The aforementioned replication specifically refers to namespace-based replication, i.e., the official release environment corresponding to the second version of the target application is replicated in a namespace-based manner to obtain the initial release environment. The aforementioned configuration parameters for controlling the release of the first version of the target application include the traffic ratio corresponding to the first version of the target application.

[0097] In another possible implementation, a grayscale environment can be generated based on the Orbit open application model. In this way, the grayscale environment corresponding to the first version of the target application is set by defining the component resources that need to be controlled and their services and traffic gateways.

[0098] If the first version of the target application is deployed in a grayscale environment in the target task batch, step S240 is executed: the directed acyclic graph is updated according to the executed task batches and the designated task batches in the directed acyclic graph to obtain an updated directed acyclic graph.

[0099] Among them, the updated directed acyclic graph includes executed task batches and rollback batches corresponding to each executed task batch. The resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic allocation rules are the same. Each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric with respect to the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph.

[0100] Step S250: sequentially executing the rollback batches and the designated task batches in the updated directed acyclic graph.

[0101] By sequentially executing the rollback batches and specified task batches in the updated directed acyclic graph, the traffic proportion allocated to the first version of the target application can be gradually reduced during the rollback process until the traffic corresponding to the target application is all allocated to the second version of the target application. This allows the first version of the target application to be debugged or modified again so that the first version of the target application can be released again later.

[0102] If the first version of the target application in the target task batch is deployed in the formal release environment, the first version of the target application is migrated from the grayscale environment to the formal release environment after passing the traffic test; in this embodiment, after step S230, step S260 is executed: create a version rollback task batch.

[0103] The version rollback task batch is used to create a new grayscale environment, redeploy the first version of the target application to the new grayscale environment, and deploy the second version of the target application to the official release environment.

[0104] Among them, the specific process of creating a grayscale environment can be: copying the formal release environment to obtain an initial release environment; replacing the configuration parameters in the initial release environment for controlling the release of the target application with the configuration parameters for controlling the release of the first version of the target application to obtain a grayscale environment.

[0105] Step S270: updating the directed acyclic graph according to the executed task batches, designated task batches, and version rollback task batches in the directed acyclic graph to obtain an updated directed acyclic graph.

[0106] Among them, the updated directed acyclic graph includes executed task batches and rollback batches corresponding to each executed task batch. The resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic distribution rules are the same, and each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric relative to the target center; the target center is the center of the target task batch and the version rollback task batch. In the updated directed acyclic graph, the version rollback task batch is the next task batch of the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph.

[0107] Step S280: sequentially executing the version rollback task batches, rollback batches, and designated task batches in the updated directed acyclic graph.

[0108] By sequentially executing the version rollback task batches, version rollback task batches, rollback batches and specified task batches in the updated directed acyclic graph, it is possible to first deploy the first version of the target application to the grayscale environment for release during the rollback process, and gradually reduce the proportion of traffic allocated to the first version of the target application during the release process in the grayscale environment until the traffic corresponding to the target application is allocated to the second version of the target application, so that the first version of the target application can be debugged or modified again so that the first version of the target application can be released again later.

[0109] Please refer to Figure 6-Figure 8 ,like Figure 6 As shown, it is a schematic diagram of a directed acyclic graph generated based on the release deployment information of the target application provided by an embodiment of the present application, wherein the directed acyclic graph includes five task batches, the release environment corresponding to the first version of the target application in the first four task batches is a grayscale environment, and its corresponding release stage is a grayscale release stage, and the release environment corresponding to the first version of the target application in the fifth task batch is a formal release environment. The traffic ratio corresponding to the first task batch can be 10% (that is, the traffic corresponding to the first version of the target application in the first task batch is 10% of the total traffic corresponding to the target application), the traffic ratio corresponding to the second task batch is 30%, the traffic ratio corresponding to the third task batch is 50%, and the traffic ratio corresponding to the fourth task batch and the fifth task batch is 100%, and each task batch includes multiple task processing nodes.

[0110] Exemplarily, the task processing nodes include a preparation node, a resource allocation node, a traffic setting node, a duration waiting node, and a business verification node. For example, in the same task batch, the duration waiting node and the business verification node are peer nodes, and the preparation node is used to add the workflow objects needed in the deployment process to the apiserver (database) of the cluster and modify the status of the canary release. The traffic setting node is the previous task processing node of the duration waiting node and the business verification node, and the resource allocation node is the previous node of the traffic setting node. The resource allocation node is used to adjust the load of each service in the first version of the target application (that is, adjust the number of copies corresponding to each service in the first version of the target application), the traffic setting node is used to adjust the proportion of traffic allocated to the first version of the target application in the traffic corresponding to the target application, the duration waiting node is used to confirm whether the duration corresponding to the current task batch reaches the preset duration, and the business verification node is used to determine whether there is an abnormality in the traffic for the first version of the target application.

[0111] Among them, the abnormality of the traffic of the target application of the first version can be triggered by the user through the business processing interface of the terminal device. When the target application of the first version is released according to the directed acyclic graph, the processing process corresponding to each task processing node in the task batch can be executed in sequence for each task batch, so as to verify whether there is an abnormality in the release of each task batch. In this embodiment, it is mainly described how to use the business verification node to verify whether there is a traffic abnormality. It should be understood that when the existence of an abnormality is confirmed in the execution of the corresponding task processing process by other task processing nodes, it is also necessary to update the directed acyclic graph and roll back according to the updated directed acyclic graph, which will not be repeated one by one in this embodiment.

[0112] Figure 7 Shown in Figure 6 A schematic diagram of an updated directed acyclic graph obtained by updating the directed acyclic graph based on the executed task batches and the specified task batches when the business verification node in the target task batch is abnormal in the third task batch.

[0113] Figure 8 Shown is shown in Figure 6 On the basis of this, when the target task batch is the fifth task batch in the directed acyclic graph (the batch corresponding to the target application of the first version released in the formal environment), when the business verification node is abnormal, the directed acyclic graph is updated based on the executed task batches and the specified task batches to obtain a schematic diagram of the updated directed acyclic graph.

[0114] from Figure 7 and Figure 8It can be seen that when the rollback batches and designated task batches in the updated directed acyclic graph are executed sequentially, the proportion of traffic allocated to the first version of the target application gradually decreases, thereby ensuring the smoothness of the traffic and resources of the first version in the release and rollback stages. In addition, during the release and rollback process, the application is used as the control granularity, which can ensure that at any stage, the versions of multiple services that handle the same business in the target application are the same version, effectively avoiding the problem that the business cannot be executed normally due to the different versions of multiple services that handle the same business. In addition, during the target release process, since each task batch is controlled by the control granularity of multiple services, correspondingly, during the configuration process, it is also configured at the granularity of multiple services. There is no need to configure traffic allocation rules and resource deployment information for each service, which can effectively improve the configuration efficiency of deployment information.

[0115] By adopting the above-mentioned application release control method, it is possible to implement a traffic and resource rollback operation when the first version of the target application fails to be released in a grayscale environment, and when the first version of the target application fails to be released in a formal release environment, a version rollback can be performed first, that is, the first version of the target application is deployed to the newly created grayscale environment, and the second version of the target application is deployed to the formal release environment. Afterwards, a traffic and resource rollback operation is performed, wherein, when performing the traffic and resource rollback operation, since the resource deployment information of each executed task batch is the same as the resource deployment information (traffic and computing resources) of the rollback batch corresponding to the executed task batch, and the executed task batch and the corresponding rollback batch are symmetrical relative to the target center. As a result, the execution order of the rollback batch is opposite to the execution order of the executed task batch, thereby ensuring the smoothness of the traffic and resources corresponding to the first version of the target application in the release stage and the rollback stage.

[0116] See also Figure 9 As shown, another embodiment of the present application further provides a method for controlling the release of an application, the method comprising:

[0117] Step S310: Obtain the processing result of the first version of the target application on the traffic.

[0118] The target application includes multiple services with related relationships; traffic for the target application is distributed to a first version of the target application and a second version of the target application for processing; the first version is higher than the second version.

[0119] Step S320: Determine the target task batch corresponding to the current directed acyclic graph.

[0120] The directed acyclic graph is generated based on the release and deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches; the traffic allocation rules are used to indicate the traffic size allocated to the first version of the target application and the second version of the target application; the task batches in the directed acyclic graph include business verification nodes and batch waiting nodes.

[0121] Step S330: Determine whether the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application reaches a specified ratio.

[0122] Among them, if the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application reaches the specified ratio, then it indicates that the grayscale release verification is successful, and the first version of the target application can be deployed to the formal release environment to release the first version of the target application in the formal release environment. If the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application does not reach the specified ratio, it is necessary to continue the grayscale release verification, and the traffic ratio corresponding to the first version of the target application needs to be increased to verify again whether the first version of the target application can perform tasks normally and run stably when a larger traffic ratio is allocated to the first version of the target application.

[0123] The specified ratio can be 100%, 98%, 95% or 90%, etc., which can be set according to actual needs and is not specifically limited in the embodiments of this application.

[0124] If the traffic allocation rule corresponding to the target task batch indicates that the traffic proportion allocated to the first version of the target application does not reach the specified proportion; execute step S340: when the business verification node in the target task batch determines that there is no abnormality based on the processing result of the traffic of the first version of the target application, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration, execute the next task batch of the target task batch.

[0125] Among them, if the task batch in the directed acyclic graph also includes a resource allocation node, and the execution order of the resource allocation node in the same task batch is before the business verification node and the batch waiting node; then the above step S340 may include: allocating computing resources to each service in the first version of the target application according to the resource allocation information in the resource allocation node corresponding to the next task batch of the target task batch.

[0126] In one possible implementation, the task batch also includes a traffic allocation node, and the execution order of the traffic allocation node in the same task batch is before the business verification node and the batch waiting node. The above step S340 may also include: if the resource allocation node corresponding to the next task batch of the target task batch completes the computing resource allocation, the gateway is deployed according to the traffic allocation rule in the traffic allocation node corresponding to the next task batch of the target task batch, so that the gateway allocates traffic to the first version of the target application and the second version of the target application according to the traffic allocation rule.

[0127] The first version of the target application in the target task batch is deployed in the grayscale environment; the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; when the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application reaches the specified ratio, step S350 is executed: if the business verification node in the target task batch determines that there is no abnormality based on the processing result of the first version of the target application for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration, the first version of the target application is migrated to the formal release environment, and the grayscale environment is deleted. It should be noted that, as in the aforementioned embodiment, when the first version of the target application encounters an abnormality in the formal release environment and needs to be rolled back, a grayscale environment can also be created so that the grayscale environment does not have to exist continuously and is created or saved according to actual release needs.

[0128] like Figure 10 As shown, a schematic diagram of deploying the first version of the target application in the grayscale release and deploying the second version of the target application in the formal release environment is shown. The first version of the target application includes three related services (service A, service B and service C), wherein Version1 represents the first version, Version2 represents the second version, deployment A and service A together constitute service A, deployment B and service B together constitute service B, deployment C and service C together constitute service C, and Ingress represents the gateway, which is used to distribute traffic for different versions of the target application deployed in the formal release environment and the grayscale environment respectively. Figure 11 As shown in the figure, it is a schematic diagram of migrating the first version of the target application to the formal release environment. Figure 12 As shown, it is a schematic diagram showing the deletion of the grayscale release environment after the first version of the target application is migrated to the formal environment.

[0129] It should also be noted that the business verification node in the target task batch determines that there is no abnormality based on the processing results of the first version of the target application for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration. It can automatically execute the next task batch corresponding to the target task batch, or it can execute the next task batch corresponding to the target task batch when receiving the next task batch release confirmation instruction sent by the user who executes the application release control through the client.

[0130] By adopting the above-mentioned application release control method, the business verification node in the target task batch determines that there is no abnormality based on the processing result of the target application of the first version for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration, and executes the next task batch of the target task batch in the directed acyclic graph, so as to realize the gradual release of the target application according to the task batches in the directed acyclic graph, and the release process is based on multiple services as the control granularity, which can ensure that at any release stage, the traffic corresponding to each service in the target application is the same, effectively avoiding the problem of inconsistent traffic corresponding to multiple services of the same version causing the business to fail to execute normally. In the target release process, since each task batch is controlled by the control granularity of multiple services, correspondingly, in the configuration process, it is also configured with the granularity of multiple services, and there is no need to configure traffic allocation rules and resource deployment information for each service, which can effectively improve the configuration efficiency of deployment information.

[0131] like Figure 13 As shown, another embodiment of the present application further provides a method for controlling the release of an application, the method comprising:

[0132] Step S410: Obtain the running detection result of the detection program corresponding to each service in the first version of the target application.

[0133] The probe program is a program used to detect the normal operation of each service in the target application. Each service can be associated with a probe program, and the service operation detection result can be normal or abnormal. During the detection process, the probe program runs in an infinite loop, which can monitor the operation status of the service in real time.

[0134] Step S420: If it is determined according to the detection result that there is a service with abnormal operation in the first version of the target application, the corresponding target task batch in the directed acyclic graph is determined.

[0135] The directed acyclic graph is generated based on the release and deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches; the traffic allocation rules are used to indicate the traffic size allocated to the first version of the target application and the second version of the target application.

[0136] The specific description of the generation process of the directed acyclic graph and the traffic rules can be found in the specific description of step S120 above, and will not be repeated in detail in the embodiment.

[0137] Step S430: gradually rolling back the executed task batches to the designated task batches based on the directed acyclic graph.

[0138] Among them, the process of gradually rolling back the task batches to the specified task batches based on the consistency in the directed acyclic graph can refer to the specific description of step S130 and the specific description of steps S230-S280 above, which will not be repeated in this embodiment.

[0139] like Figure 14 As shown, the exemplary detection program can be executed during the entire release phase of the first version of the target application. The figure exemplarily shows the addition of a specific detection node in the target task batch. The detection node is used to run the detection program, and the detection program is used to perform operation detection on each service in the first version of the target application. The content in the control plane is used to represent the execution process of the task batch, that is: if the detection program fails to be verified, the entire release process will be rolled back, otherwise it will be paused and wait for the API callback to be triggered. When the API callback is triggered, the release process will continue to execute. The content in the data plane is used to represent the data results obtained by processing subsequent task batches or rollback batches based on the verification and operation detection results. The data processing results include the traffic ratio allocated to the first version, and the configuration of the ApiServer obtained by parsing to generate a lua script, and the gateway configuration results obtained by dynamically modifying and reloading the gateway based on the generated lua script.

[0140] It should be noted that the execution process of the above steps S410-S430 is executed in parallel with the various steps in the release control method applied in the aforementioned embodiment. That is, by adopting the method steps in this embodiment, during the execution of the overall release process, if the detection program fails to be verified, the entire release process will be rolled back, otherwise it will be paused and wait for the API callback to trigger the detection program, so as to realize the use of the detection program to detect whether the corresponding service is operating normally at intervals of a certain period of time. When the API callback is triggered, the release process will continue to execute, that is, the various steps in the aforementioned embodiment will continue to execute. In this way, the release process based on the directed acyclic graph can meet the personalized needs of users in the deployment process and improve the degree of automation and stability of the deployment.

[0141] An embodiment of the present application provides a release control method for an application, which detects the running status of each service in the first version of the target application in real time during the release process of the application by using a detection program, and when there is a service with abnormal operation, determines the target task batch corresponding to the current directed acyclic graph; based on the task batches that have been executed in the directed acyclic graph, gradually rolls back to the specified task batch. Since each task batch in the directed acyclic graph corresponds to a traffic allocation rule, the traffic allocation rule is used to indicate the size of the traffic allocated to the first version of the target application and the second version of the target application, and the target application includes multiple services with a related relationship, when there is a service operation abnormality in the first version of the target application, when rolling back according to the directed acyclic graph, the traffic corresponding to different task batches of each service in the same version of the target application during the rollback phase is the same. Therefore, when the first version of the target application is released abnormally, the problem of inconsistent traffic allocated to multiple services of the same version causing the business to fail to execute normally is avoided.

[0142] See also Figure 15 As shown, this is an application release control method provided by the present application. The release process includes the application deployment stage, the canary stage, the upgrade stage, the traffic reset stage, and the resource cleanup stage:

[0143] (1) Deployment phase

[0144] Among them, the deployment phase is also the preparation phase, which is mainly responsible for processing and snapshotting the modified resources.

[0145] In this embodiment, the deployment phase may specifically include: processing and snapshotting the modified resources, which means taking a snapshot of the first version of the target application, creating a grayscale environment based on the official release environment, deploying the snapshot data corresponding to the first version of the target application in the grayscale environment, deploying the second version of the target application in the official release environment, and configuring release deployment information for the first version of the target application.

[0146] (2) Canary Stage

[0147] The canary phase is the phase where the grayscale release is performed (for example, the canary phase can be Figure 6) The stage of executing the grayscale release specifically refers to the deployment of the first version of the target application in the grayscale environment and the deployment of the second version of the target application in the formal release environment, and the scaling and traffic adjustment of canary copies based on eventual consistency for all resources that need to be operated (traffic and computing resources corresponding to the target application) are carried out in batches. Specifically, according to the directed acyclic graph, the traffic allocation rules and resource allocation information corresponding to each task batch allocate traffic ratios for the first version of the target application and the second version of the target application, and allocate computing resources for each service in the first version of the target application. Verify whether there are any abnormalities in the processing results of each task batch for traffic. When the execution of each task batch is completed and there are no abnormalities in the results for traffic, it can be confirmed that the grayscale release is completed. It should be understood that the deployment / capacity expansion in the canary stage specifically refers to the resource allocation node in the task batch in the aforementioned embodiment adding computing resources for each service, and the capacity reduction specifically refers to the resource allocation node in the rollback batch in the aforementioned embodiment reducing computing resources for each service.

[0148] (3) Upgrade stage

[0149] Among them, the upgrade phase, also known as the release environment update phase, refers to migrating the first version of the target application to the formal release environment after the grayscale release verification of the first version of the target application is completed (for example, the traffic allocation rule corresponding to the current task batch indicates that the traffic ratio allocated to the first version of the target application reaches a specified ratio, such as 100%, and the processing result of the traffic of the first version of the target application in the current task batch is determined to have no abnormality, and the duration of the current task batch reaches the preset duration), so as to release the first version of the target application in the formal release environment. Specifically, the above-mentioned upgrade phase can be Figure 6 Corresponding to the fifth task batch in .

[0150] (4) Flow reset stage

[0151] The traffic reset phase, also known as the rollback phase, refers to the situation where an exception occurs during the execution of a task batch. For example, when the traffic processing result of the first version of the target application in the canary phase or the upgrade phase is abnormal, a first-in-last-out (FILO) reverse operation can be performed based on the operation stack generated by the traffic change in the canary phase. (For example, when an exception occurs in the canary phase (gray release phase), a directed acyclic graph can be updated based on the executed task batches and the designated task batches. The updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch. The resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic allocation rules are the same. Each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric with respect to the target task batch. The designated task batch is the last task batch in the updated directed acyclic graph.) This ensures that the traffic is as smooth as possible when the rollback batches and the designated task batches in the updated directed acyclic graph are executed sequentially.

[0152] (5) Resource cleanup stage

[0153] Among them, the resource cleaning stage is also a Finalize stage (where the design purpose of finalize is to ensure that the object completes the recycling of specific resources before being garbage collected). In this stage, the additional resources generated during the operation will be cleaned up, that is, the gray environment related resources described above in this application will be cleaned up.

[0154] It should be noted that if any exception occurs in any of the first three of the five phases, the next two phases, especially the last phase (resource cleanup), will handle it to ensure that the entire grayscale release process of the application is as smooth as possible and avoid affecting the business operations required by users during the release process. For example, in canary verification, if the first version of the application has been verified at a ratio of 10% and 30% of the total traffic, and verification is currently being performed at a ratio of 50% of the total traffic, then after an exception occurs, it is necessary to roll back to the first version of the application in the ratio of 30%, 10%, and 0% of the total traffic (cutting off the canary traffic is a necessary operation after executing the traffic operation stack), and the fifth phase will clean up the extra resources generated during the canary process; the same applies to normal release promotions.

[0155] Specifically, for example, a target application includes related services A, B, and C, with service C dependent on service B, which in turn depends on service A. When releasing the target application, the first version of the target application performs a progressive release process based on Orbit's Open Application Model (OAM) or other application management tools such as Helm and Kustomize. Users can define the resources included in the target application in the open application model, allowing them to identify the resources requiring progressive release with zero configuration.

[0156] For example, in this embodiment, when the first version of the target application is released, the process of executing the grayscale release of the first version of the target application relies on Orbit's development application model (OAM). Orbit performs application modeling based on the open application model OAM (Open Application Model) and adopts the principle of separation of R&D and operation and maintenance perspectives.

[0157] It's important to note that Orbit, like Argo Rollout or Flux Canary, requires the configuration of a gateway (such as Istio or Ingress), as well as specific resources for each service (such as a Deployment) and an upper-layer traffic entry point (a Service). However, unlike the aforementioned two release-enhancing resources, OAM-based modeling and configuration significantly reduces configuration and maintenance effort, and also resolves the issue of inconsistent progressive release processes for multiple resources.

[0158] Before releasing the target application, you can first use the namespace replication method to obtain a grayscale environment, and deploy the first version of the target application in the grayscale environment and the second version of the target application in the official release environment. During the grayscale release verification process, the number of copies of the first version of the target application in different task batches (that is, the load ratio) and the traffic ratio increase as the number of task batch executions gradually increases, and the traffic ratio included in the second version of the target application decreases as the number of task batch executions gradually increases. It should be understood that the above-mentioned traffic ratio is used to configure the gateway so that the gateway allocates traffic to the first version of the target application and the second version of the target application based on the configured traffic ratio. It should be understood that in addition to configuring the gateway based on the traffic ratio, the gateway can also be configured based on characteristic traffic, such as traffic with a specific header (traffic access data header), so that the gateway can allocate traffic to the first version of the target application and the second version of the target application based on a specific header.

[0159] If the results for each task batch corresponding to the grayscale release phase are normal, that is, if the aforementioned canary phase verification is successful, the first version of the target application is migrated to the official release environment for release in the official release environment. After the migration of the first version of the target application to the official release environment is completed, the grayscale environment can be deleted. If anomalies occur during the release of the first version of the target application in the official release environment, the processes described in the traffic reset phase and resource cleanup phase can be performed.

[0160] It should be understood that, although the steps in the flowcharts of the above embodiments are shown in sequence as indicated by the arrows, these steps are not necessarily performed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the flowcharts of the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times. The execution order of these steps or stages is not necessarily to be performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of steps or stages in other steps.

[0161] See also Figure 16 Another embodiment of the present application provides an application release control device 500, which includes: a processing result acquisition module 510, a batch determination module 520, and a task rollback module 530, wherein the processing result acquisition module 510 is used to obtain the processing result of the first version of the target application for traffic; the target application includes multiple services with a related relationship; the traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing; the first version is higher than the second version; the batch determination module 520 is used to determine the corresponding target task batch in the directed acyclic graph when an abnormality is determined based on the processing result of the traffic for the first version of the target application; the directed acyclic graph is generated based on the release deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to multiple task batches respectively; the traffic allocation rules are used to indicate the amount of traffic allocated to the first version of the target application and the second version of the target application; the task rollback module 530 is used to gradually roll back to a specified task batch based on the executed task batches in the directed acyclic graph, and the traffic allocation rule corresponding to the specified task batch indicates that all traffic for the target application is allocated to the second version of the target application.

[0162] In one possible implementation, the first version of the target application in the target task batch is deployed in a grayscale environment, and the task rollback module 530 includes a first update submodule and a first rollback submodule. The first update submodule is used to update the directed acyclic graph according to the executed task batches and the designated task batches in the directed acyclic graph to obtain an updated directed acyclic graph. The updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch. The resource deployment information of each executed task batch and the rollback batch corresponding to the executed task batch are the same, and the traffic allocation rules are the same. Each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric with respect to the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; the first update submodule is used to sequentially execute the rollback batches and the designated task batches in the updated directed acyclic graph.

[0163] In one possible implementation, the first version of the target application in the target task batch is deployed in the formal release environment, and the first version of the target application is migrated from the gray environment to the formal release environment after passing the traffic test; the task rollback module 530 includes a task creation submodule, a second update submodule and a second rollback submodule, the task creation submodule is used to create a version rollback task batch, the version rollback task batch is used to create a new gray environment, and redeploy the first version of the target application to the new gray environment, and deploy the second version of the target application to the formal release environment; the second update submodule is used to update the directed acyclic graph according to the executed task batches, specified task batches and version rollback task batches in the directed acyclic graph, and obtain an updated directed acyclic graph. Figure; the updated directed acyclic graph includes executed task batches and rollback batches corresponding to each executed task batch, each executed task batch has the same resource deployment information as the rollback batch corresponding to the executed task batch, and the same traffic allocation rules, and each rollback batch is centrally symmetric with the task batch corresponding to the rollback batch relative to the target center; the target center is the center of the target task batch and the version rollback task batch, and in the updated directed acyclic graph, the version rollback task batch is the next task batch of the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; the second rollback sub-module is used to sequentially execute the version rollback task batch, rollback batch and designated task batch in the updated directed acyclic graph.

[0164] In one possible implementation, the device 500 also includes: an initial environment acquisition module and a grayscale environment acquisition module. The initial environment acquisition module is used to copy the official release environment corresponding to the second version of the target application to obtain the initial release environment; the grayscale environment acquisition module is used to replace the configuration parameters used to control the release of the second version of the target application in the initial release environment with the configuration parameters used to control the release of the first version of the target application to obtain the grayscale environment.

[0165] In one possible implementation, the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; the traffic allocation rule corresponding to the target task batch indicates that the traffic proportion allocated to the first version of the target application does not reach the specified proportion; the device 500 also includes: a task execution module, which is used to determine that there is no abnormality at the business verification node in the target task batch based on the processing result of the first version of the target application for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches a preset duration, and executes the next task batch of the target task batch.

[0166] In one possible implementation, the task batch in the directed acyclic graph also includes a resource allocation node. The execution order of the resource allocation node in the same task batch is before the business verification node and the batch waiting node. The task execution module is also used to allocate computing resources to each service in the first version of the target application according to the resource allocation information in the resource allocation node corresponding to the next task batch of the target task batch.

[0167] In one possible implementation, the task batch also includes a traffic allocation node, and the execution order of the traffic allocation node in the same task batch is before the business verification node and the batch waiting node. The task processing module is also used to complete the computing resource allocation at the resource allocation node corresponding to the next task batch of the target task batch, and deploy the gateway according to the traffic allocation rule in the traffic allocation node corresponding to the next task batch of the target task batch, so that the gateway allocates traffic to the first version of the target application and the second version of the target application according to the traffic allocation rule.

[0168] In one possible implementation, the first version of the target application in the target task batch is deployed in a grayscale environment; the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; the traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the first version of the target application reaches a specified ratio; the device also includes a migration module, the migration module is used to determine that there is no abnormality based on the processing result of the first version of the target application for the traffic at the business verification node in the target task batch, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches a preset duration, migrate the first version of the target application to the official release environment, and delete the grayscale environment.

[0169] In one possible implementation, the device 500 also includes a detection result acquisition module and a batch determination module. The detection result acquisition module is used to obtain the running detection results of the detection program corresponding to each service in the first version of the target application; the batch determination module is used to determine the corresponding target task batch currently in the directed acyclic graph when it is determined that there is a service with abnormal operation in the first version of the target application based on the detection results; the rollback module is also used to gradually roll back to the specified task batch based on the task batches that have been executed in the directed acyclic graph.

[0170] In one possible implementation, the device 500 also includes an information receiving module and a graphics generation module. The information receiving module is used to receive the release deployment information sent by the terminal, and the release deployment information is configured in the deployment configuration interface; the graphics generation module is used to generate a directed acyclic graph based on the release deployment information.

[0171] Each module in the above-mentioned device can be implemented in whole or in part by software, hardware, or a combination thereof. Each of the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules. It should be noted that the device embodiment in this application corresponds to the aforementioned method embodiment. The specific principles in the device embodiment can be found in the contents of the aforementioned method embodiment, which will not be repeated here.

[0172] The following will be combined Figure 17 An electronic device provided by this application is described.

[0173] See also Figure 17 Based on the application release control method provided in the above embodiment, the embodiment of the present application also provides another electronic device 100 including a processor 102 that can execute the above method. The electronic device 100 can be a server.

[0174] The electronic device 100 further includes a memory 104 . The memory 104 stores a program capable of executing the contents of the aforementioned embodiments, and the processor 102 can execute the program stored in the memory 104 .

[0175] The processor 102 may include one or more cores for processing data and a message matrix unit. The processor 102 utilizes various interfaces and circuits to connect various components within the electronic device 100. It executes instructions, programs, code sets, or instruction sets stored in the memory 104, and accesses data stored in the memory 104 to perform various functions and process data within the electronic device 100. Optionally, the processor 102 may be implemented using at least one of the following hardware forms: a digital signal processing (DSP), a field-programmable gate array (FPGA), or a programmable logic array (PLA). The processor 102 may integrate one or a combination of a central processing unit (CPU), a graphics processing unit (GPU), and a modem. The CPU primarily processes the operating system, user interface, and application programs; the GPU is responsible for rendering and drawing display content; and the modem handles wireless communications. It is understood that the modem may not be integrated into the processor 102 and may be implemented separately via a communication chip.

[0176] The memory 104 may include a random access memory (RAM) or a read-only memory (ROM). The memory 104 may be used to store instructions, programs, codes, code sets, or instruction sets. The memory 104 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for implementing at least one function, instructions for implementing the various method embodiments described below, and the like. The data storage area may also store data obtained by the electronic device 100 during use (e.g., processing results for traffic, release deployment information), and the like.

[0177] The electronic device 100 may also include a network module and a screen. The network module is used to receive and transmit electromagnetic waves, realize the mutual conversion between electromagnetic waves and electrical signals, and thus communicate with a communication network or other devices, such as communicating with an audio playback device. The network module may include various existing circuit components for performing these functions, such as an antenna, a radio frequency transceiver, a digital signal processor, an encryption / decryption chip, a user identity module (SIM) card, a memory, and the like. The network module can communicate with various networks such as the Internet, an intranet, a wireless network, or communicate with other devices via a wireless network. The above-mentioned wireless network may include a cellular telephone network, a wireless local area network, or a metropolitan area network.

[0178] In some embodiments, the electronic device 100 may further include a peripheral interface 106 and at least one peripheral device. The processor 102, the memory 104, and the peripheral interface 106 may be connected via a bus or signal lines. Each peripheral device may be connected to the peripheral interface via a bus, signal lines, or circuit boards.

[0179] The peripheral interface 106 can be used to connect at least one I / O (Input / Output)-related peripheral device to the processor 102 and the memory 104. In some embodiments, the processor 102, the memory 104, and the peripheral interface 106 are integrated on the same chip or circuit board; in some other embodiments, any one or two of the processor 102, the memory 104, and the peripheral interface 106 can be implemented on separate chips or circuit boards, which is not limited in this embodiment of the present application.

[0180] For example, in this embodiment, the peripheral device may include a network module 108, which is used to receive and transmit electromagnetic waves, realize the mutual conversion between electromagnetic waves and electrical signals, and thus communicate with a communication network or other devices, such as a terminal device. The network module 108 may include various existing circuit components for performing these functions, such as an antenna, a radio frequency transceiver, a digital signal processor, an encryption / decryption chip, a subscriber identity module (SIM) card, a memory, etc. The network module 108 can communicate with various networks such as the Internet, an intranet, a wireless network, or communicate with other devices via a wireless network. The above-mentioned wireless network may include a cellular telephone network, a wireless local area network, or a metropolitan area network.

[0181] The embodiment of the present application also provides a structural block diagram of a computer-readable storage medium. The computer-readable storage medium stores program code, which can be called by a processor to execute the method described in the above method embodiment.

[0182] The computer-readable storage medium may be an electronic memory such as a flash memory, an EEPROM (Electrically Erasable Programmable Read-Only Memory), an EPROM, a hard disk, or a ROM. Alternatively, the computer-readable storage medium includes a non-transitory computer-readable storage medium. The computer-readable storage medium has storage space for program codes for executing any of the method steps described above. These program codes can be read from or written to one or more computer program products. The program codes can be compressed, for example, in an appropriate form.

[0183] The present application also provides a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods described in the various optional implementations described above.

[0184] 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 them. 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 make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for controlling the release of an application, characterized in that: The method comprises: Obtaining a processing result of a first version of a target application for traffic; the target application includes a plurality of services having a correlation relationship; the traffic for the target application is allocated to the first version of the target application and the second version of the target application for processing; the first version is higher than the second version; If an abnormality is determined according to the processing result of the target application of the first version for the traffic, a target task batch corresponding to the current directed acyclic graph is determined; the directed acyclic graph is generated based on the release deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to a plurality of task batches respectively; the traffic allocation rules are used to indicate the traffic size allocated to the target application of the first version and the target application of the second version; Based on the executed task batches in the directed acyclic graph, the task batches are gradually rolled back to the designated task batches, and the traffic allocation rule corresponding to the designated task batch indicates that all the traffic for the target application is allocated to the target application of the second version.

2. The method according to claim 1, characterized in that The first version of the target application is deployed in a grayscale environment in the target task batch; The step of gradually rolling back the executed task batches in the directed acyclic graph to the designated task batches includes: The directed acyclic graph is updated according to the executed task batches and the designated task batches in the directed acyclic graph to obtain an updated directed acyclic graph, wherein the updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch, and each executed task batch has the same resource deployment information as the rollback batch corresponding to the executed task batch, and has the same traffic allocation rule, and each rollback batch and the task batch corresponding to the rollback batch are centrally symmetric with respect to the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; The rollback batches and the designated task batches in the updated directed acyclic graph are executed sequentially.

3. The method according to claim 1 or 2, characterized in that: The target application of the first version in the target task batch is deployed in the formal release environment, and is migrated from the grayscale environment to the formal release environment after the target application of the first version passes the traffic test; The stepwise rolling back of the executed task batches in the directed acyclic graph to the designated task batches includes: Creating a version rollback task batch, the version rollback task batch is used to create a new grayscale environment, and redeploy the first version of the target application to the new grayscale environment, and deploy the second version of the target application to the formal release environment; According to the executed task batches, the designated task batches and the version rollback task batches in the directed acyclic graph, the directed acyclic graph is updated to obtain an updated directed acyclic graph; the updated directed acyclic graph includes the executed task batches and the rollback batches corresponding to each executed task batch, each executed task batch has the same resource deployment information as the rollback batch corresponding to the executed task batch, and has the same traffic allocation rule, and each rollback batch is centrally symmetric with the task batch corresponding to the rollback batch relative to a target center; the target center is the center of the target task batch and the version rollback task batch, and in the updated directed acyclic graph, the version rollback task batch is the next task batch of the target task batch; the designated task batch is the last task batch in the updated directed acyclic graph; The version rollback task batch, the rollback batch and the specified task batch in the updated directed acyclic graph are executed sequentially.

4. The method according to claim 3, characterized in that Before obtaining the processing result of the first version of the target application on the traffic, the method further includes: Copying the official release environment corresponding to the target application of the second version to obtain an initial release environment; The configuration parameters for controlling the release of the second version of the target application in the initial release environment are replaced with the configuration parameters for controlling the release of the first version of the target application to obtain a grayscale environment.

5. The method according to claim 1, characterized in that The task batch in the directed acyclic graph includes a business verification node and a batch waiting node; The traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the target application of the first version does not reach the specified ratio; The method further comprises: If the business verification node in the target task batch determines that there is no abnormality based on the processing results of the target application of the first version for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration, the next task batch of the target task batch is executed.

6. The method according to claim 5, characterized in that The task batch in the directed acyclic graph further includes a resource allocation node, and the execution order of the resource allocation node in the same task batch is before the service verification node and the batch waiting node; The next task batch of executing the target task batch includes: Allocate computing resources to each service in the target application of the first version according to the resource allocation information in the resource allocation node corresponding to the next task batch of the target task batch.

7. The method according to claim 6, characterized in that The task batch also includes a flow distribution node. The execution order of the flow distribution node in the same task batch is before the business verification node and the batch waiting node. The next task batch of the target task batch also includes: If the resource allocation node corresponding to the next task batch of the target task batch completes the computing resource allocation, the gateway is deployed according to the traffic allocation rule in the traffic allocation node corresponding to the next task batch of the target task batch, so that the gateway allocates traffic to the first version of the target application and the second version of the target application according to the traffic allocation rule.

8. The method according to claim 1, characterized in that The target application of the first version in the target task batch is deployed in a grayscale environment; the task batch in the directed acyclic graph includes a business verification node and a batch waiting node; The traffic allocation rule corresponding to the target task batch indicates that the traffic ratio allocated to the target application of the first version reaches a specified ratio; The method further comprises: If the business verification node in the target task batch determines that there is no abnormality based on the processing result of the first version of the target application for the traffic, and the batch waiting node in the target task batch determines that the duration of the target task batch reaches the preset duration, the first version of the target application is migrated to the formal release environment, and the grayscale environment is deleted.

9. The method according to claim 1, characterized in that: The method further comprises: Obtain the running detection result of the detection program corresponding to each service in the target application of the first version on the service; If it is determined according to the detection result that there is a service with abnormal operation in the target application of the first version, determine the corresponding target task batch in the directed acyclic graph; The executed task batches in the directed acyclic graph are gradually rolled back to the designated task batches.

10. The method according to claim 1, characterized in that The method also includes: Receiving release deployment information sent by a terminal, wherein the release deployment information is configured on a deployment configuration interface; A directed acyclic graph is generated based on the release deployment information.

11. A device for controlling the release of an application, characterized in that: The device comprises: a processing result acquisition module, used to acquire a processing result of a target application of a first version for traffic; the target application includes a plurality of services having a correlation; the traffic of the target application is allocated to the target application of the first version and the target application of the second version for processing; the first version is higher than the second version; A batch determination module, for determining a target task batch corresponding to the current directed acyclic graph when an abnormality is determined according to the processing result of the target application of the first version for the traffic; the directed acyclic graph is generated based on the release deployment information of the target application; the directed acyclic graph includes traffic allocation rules corresponding to a plurality of task batches respectively; the traffic allocation rules are used to indicate the traffic size allocated to the target application of the first version and the target application of the second version; The task rollback module is used to gradually roll back to the specified task batch based on the executed task batches in the directed acyclic graph, and the traffic allocation rule corresponding to the specified task batch indicates that all traffic for the target application is allocated to the target application of the second version.

12. An electronic device, characterized in that: include: one or more processors; Memory; One or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs are configured to execute the method according to any one of claims 1-10.

13. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores program codes, and the program codes can be called by a processor to execute the method according to any one of claims 1 to 10.

14. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the method described in any one of claims 1 to 10 are implemented.