Software upgrading system gray release method, device, equipment and product

By building a user behavior data matrix and utilizing a microservice architecture, the precise grayscale release of the target software system is achieved, the stability and personalization of traditional software release methods are solved, and user satisfaction and system stability are improved.

CN119544495AActive Publication Date: 2025-02-28AGRICULTURAL BANK OF CHINA

Patent Information

Application Number
CN202411697079.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-25
Publication Date
2025-02-28
Estimated Expiration
2044-11-25

AI Technical Summary

Technical Problem

Traditional software publishing methods may cause system crashes or serious errors, and ordinary grayscale publishing methods lack consideration for user personalized characteristics, resulting in unsatisfactory push effects.

Method used

By constructing the first and second matrices based on user behavior data, determining the target user and grayscale release using the microservice architecture, the precise push of the target software system is achieved.

Benefits of technology

It improves the adoption rate of the target software system, provides better testing results, improves user satisfaction, reduces system risks, and ensures system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119544495A_ABST
    Figure CN119544495A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a gray release method and device for a software upgrading system, equipment and a product. The gray release method comprises the following steps: constructing a first matrix and a second matrix according to user behavior data; elements in the first matrix are used for representing actual operation executed by each user for the function of each initial software system; determining a first target user based on the first matrix, and determining a second target user based on the second matrix and the first target user; determining a pushing parameter and an actual target user according to the target software system and the initial software system; the target software system is a system after the initial software system is upgraded; and transmitting the access request of the actual target user to the target software system by using the micro-service architecture, so that the target software system completes gray release. According to the technical scheme, accurate pushing of the target software system is realized by utilizing the user behavior data, so that the adoption rate of the target software system is improved, and a better test effect is provided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present disclosure relate to the field of intelligent control technology, and in particular to a grayscale release method, device, equipment and product for a software upgrade system. Background Art

[0002] In today's rapidly developing digital age, continuous updates and iterations of software systems are essential to maintaining competitiveness and meeting user needs. Traditional software release methods push new features to all users at once, which may cause system crashes or serious errors, making it difficult to discover and solve problems in a timely manner; while ordinary grayscale release methods lack consideration of user personalized characteristics, and randomly selected users cannot cover the user groups that are truly interested in new features, resulting in unsatisfactory push results.

[0003] With the continuous development of the Internet and big data technology, personalized recommendation technology has gradually become a hot research direction in various industries. Personalized recommendation technology builds personalized portraits of users by analyzing their historical behavior data, thereby accurately predicting their personalized needs. As one of the core technologies for realizing personalized recommendations, machine learning algorithms have been widely used in various fields. Machine learning algorithms can learn and generate models from a large amount of data, and then predict or classify unknown data. In the personalized grayscale release system, machine learning algorithms can use users' historical behavior data to build personalized portraits of users, predict and screen out users who are more interested in new features, and provide support for grayscale release.

[0004] In today's digital age, the continuous updating and iteration of software systems is the key to maintaining competitiveness and meeting user needs. However, the traditional way of releasing software is usually to push new features to all users at once, or randomly select a part of users for grayscale release. However, there are some problems with this approach, such as system crashes, reduced user experience, or poor user feedback after the release of new features. The existing technology can randomly select a certain number of users or simply filter out users for grayscale release based on activity. In terms of the use of user portraits, it only analyzes them and it is difficult to organically combine them with grayscale release strategies. Therefore, the current technical solution needs to be improved in terms of personalized grayscale release. Summary of the invention

[0005] The embodiments of the present disclosure provide a method, device, equipment and product for grayscale release of a software upgrade system, so as to achieve accurate push to a target software system.

[0006] In a first aspect, a method for grayscale release of a software upgrade system is provided, the method comprising:

[0007] Constructing a first matrix and a second matrix according to the user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system; the elements in the second matrix are used to represent the similarity between each user;

[0008] determining a first target user based on the first matrix, and determining a second target user based on the second matrix and the first target user;

[0009] Determine push parameters and actual target users according to the target software system and the initial software system; the actual target users belong to the second target users; the target software system is the upgraded system of the initial software system;

[0010] The access request of the actual target user is transmitted to the target software system by using the microservice architecture, so that the target software system completes the grayscale release.

[0011] In a second aspect, a grayscale release device for a software upgrade system is provided, including:

[0012] A matrix construction module, used to construct a first matrix and a second matrix according to user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system; the elements in the second matrix are used to represent the similarity between each user;

[0013] a target user determining module, configured to determine a first target user based on the first matrix, and determine a second target user based on the second matrix and the first target user;

[0014] An actual target user determination module, used to determine push parameters and an actual target user according to a target software system and the initial software system; the actual target user belongs to the second target user; the target software system is an upgraded system of the initial software system;

[0015] The publishing module is used to transmit the access request of the actual target user to the target software system by using the microservice architecture, so that the target software system can complete the grayscale release.

[0016] In a third aspect, an electronic device is provided, including:

[0017] at least one processor; and

[0018] a memory communicatively connected to the at least one processor; wherein,

[0019] The memory stores a computer program that can be executed by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the grayscale release method of the software upgrade system as described in the first aspect above.

[0020] In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, the grayscale release method of the software upgrade system as described in the first aspect above is implemented.

[0021] In a fifth aspect, a computer program product is provided, the computer program product comprising a computer program, and the computer program, when executed by a processor, implements the grayscale release method of the software upgrade system as described in the first aspect above.

[0022] The disclosed embodiment discloses a grayscale release method, device, equipment and product for a software upgrade system, including: constructing a first matrix and a second matrix according to user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for the functions of each initial software system; the elements in the second matrix are used to represent the similarity between each user; determining a first target user based on the first matrix, and determining a second target user based on the second matrix and the first target user; determining push parameters and actual target users according to the target software system and the initial software system; the actual target user belongs to the second target user; the target software system is the upgraded system of the initial software system; using a microservice architecture to transmit the access request of the actual target user to the target software system, so that the target software system completes the grayscale release. This technical solution uses user behavior data to achieve accurate push to the target software system, thereby improving the adoption rate of the target software system, providing better testing results, and improving user satisfaction.

[0023] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the embodiments of the present disclosure. Other features of the embodiments of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0025] Figure 1 This is a flowchart of a method for grayscale release of a software upgrade system provided in Embodiment 1 of the present disclosure;

[0026] Figure 2 It is a schematic diagram of the execution process of a grayscale release method of a software upgrade system provided in the first embodiment of the present disclosure;

[0027] Figure 3 It is a structural diagram of a grayscale release device of a software upgrade system provided in Embodiment 2 of the present disclosure;

[0028] Figure 4 It is a structural diagram of an electronic device provided in Embodiment 3 of the present disclosure. DETAILED DESCRIPTION

[0029] In order to enable those skilled in the art to better understand the solutions of the embodiments of the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only embodiments of a part of the embodiments of the present disclosure, rather than all of the embodiments. Based on the embodiments in the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the embodiments of the present disclosure.

[0030] It should be noted that the terms "first", "second", etc. in the specification and claims of the embodiments of the present disclosure and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product, or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products, or devices.

[0031] Embodiment 1

[0032] Figure 1 This is a flowchart of a grayscale release method for a software upgrade system provided in the first embodiment of the present disclosure. This embodiment is applicable to grayscale release of a software upgrade system. The method can be executed by a grayscale release device of the software upgrade system. The grayscale release device of the software upgrade system can be implemented in the form of hardware and / or software. The grayscale release device of the software upgrade system can be configured in an electronic device, including but not limited to computers, computers, terminals, servers and other devices with data processing capabilities. Figure 1 As shown, the method includes:

[0033] S110, constructing a first matrix and a second matrix according to user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system; the elements in the second matrix are used to represent the similarity between each user.

[0034] In this embodiment, the user behavior data may be behavior data generated by the user's history. Exemplarily, the user behavior data may include: the user's click record, the user's browsing history, the user's download behavior, and the user's collection behavior.

[0035] Specifically, the first matrix and the second matrix can be constructed according to the user behavior data. The elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system. The first matrix can be a user-function matrix, the rows can represent users, the columns can represent functions, and the elements represent the user's behavior on the corresponding functions (such as clicks, downloads, browsing, etc.). Exemplarily, the user behavior data can be converted into feature representations, such as click frequency, number of browsed pages, etc., and a collaborative filtering algorithm is used to construct a user-function matrix according to the user behavior data. The collaborative filtering algorithm can be a technology used in a recommendation system, which predicts the user's preference for items that have not yet interacted based on historical interaction information between users and items (such as products, articles, music, etc.). This algorithm does not rely on the content description or attributes of the item, but is mainly calculated based on the user's behavior pattern and the behavior pattern of other users. The similarity between users is a key factor in the collaborative filtering algorithm because it directly affects the performance of the recommendation system. By finding users with high similarity, the system can more accurately predict new functions that the target user may like.

[0036] Continuing with the above description, after the first matrix is ​​determined, the similarity between each user (each pair of users) can be calculated based on each user in the first matrix, and a second matrix can be obtained, and the elements in the second matrix are used to represent the similarity between each user. The similarity between each user can be calculated by cosine similarity, Pearson correlation coefficient and / or Euclidean distance.

[0037] S120: Determine a first target user based on the first matrix, and determine a second target user based on the second matrix and the first target user.

[0038] Specifically, after the first matrix is ​​determined, the first target user can be determined based on the first matrix, and the first target user can be a user who is willing to use the target software system. Exemplarily, the target software system upgrades the download function, and the user who has used the download function multiple times can be determined through the elements in the first matrix and determined as the first target user.

[0039] Continuing with the above description, after the first target user is determined, the second target user can be determined based on the second matrix and the first target user. The second target user can be a user in the second matrix whose similarity with the first target user is higher than a preset threshold. The preset threshold can be a pre-set similarity threshold.

[0040] S130, determining push parameters and actual target users according to the target software system and the initial software system; the actual target users belong to the second target users; the target software system is the system after the initial software system is upgraded.

[0041] In this embodiment, after the second target user is determined, the push parameters and the actual target user can be determined according to the business requirements of the target software system and the actual situation of the initial software system. The target software system is the upgraded system of the initial software system. Among them, the business requirements can be the target requirements of the target software system and the rules that must be followed. For example, the business requirements can include: product goals: product development goals and strategic planning, including short-term and long-term goals; user needs: users' specific needs and expectations for product functions; market trends: market development trends and changes in user behavior; competition analysis: competitors' product functions and market performance; revenue goals: revenue expectations and growth goals related to new functions or services; user experience: the need to improve user experience and satisfaction; regulatory compliance: laws, regulations and industry standards that the business must comply with; brand strategy: brand image and market positioning requirements; key performance indicators: key metrics for business success; product iteration speed: product update and iteration speed requirements.

[0042] Continuing with the above description, the actual situation may be the technical conditions and result feedback when the initial software system is executed, etc. By way of example, the actual situation may include: technical capabilities: the technical strength and development capabilities of the team; resource constraints: available human, financial and time resources; infrastructure: the status of existing hardware and software infrastructure; system stability: the stability and reliability of the system; security: the security and data protection requirements of the system; maintenance costs: the maintenance and support costs of new features or services; historical data: historical data and lessons learned from previous releases; user feedback: user feedback and complaints about existing products or services; test results: the performance and problems of new features in the test environment; risk assessment: the risks and impacts that new features may bring; urgency: the urgency of new features or fixes; team collaboration: the efficiency of collaboration and communication between different teams; project management: the maturity of project management and the efficiency of processes.

[0043] Continuing with the above description, the push parameters may be parameters when pushing the user's access request to the target software system. For example, the push parameters may include a time node for pushing new functions adapted to business needs, and a push ratio. The actual target user may be the user to whom the access request is actually pushed, and the actual target user may be adjusted according to business needs and actual conditions.

[0044] S140. Utilize the microservice architecture to transmit the actual target user's access request to the target software system, so that the target software system completes the grayscale release.

[0045] Specifically, after the actual target users are determined, the microservice architecture can be used to transmit the access requests of the actual target users to the target software system, so that the target software system can complete the grayscale release. Grayscale release can also be called canary release, which refers to a release method with a smooth transition between black and white, allowing some users to continue to use product feature A, and some users to start using product feature B. If the user experience is good with B, the use scope of B will be gradually expanded until all users are migrated to B.

[0046] Continuing with the above description, Microservices Architecture can be a software development architecture that builds an application as a collection of small services, each of which runs in its own independent process and is usually built around specific business capabilities.

[0047] The present embodiment provides a grayscale release method for a software upgrade system, including: constructing a first matrix and a second matrix according to user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for the functions of each initial software system; the elements in the second matrix are used to represent the similarity between the users; determining a first target user based on the first matrix, and determining a second target user based on the second matrix and the first target user; determining push parameters and an actual target user according to a target software system and the initial software system; the actual target user belongs to the second target user; the target software system is an upgraded system of the initial software system; using a microservice architecture to transmit the access request of the actual target user to the target software system, so that the target software system completes the grayscale release, thereby realizing the screening results according to the actual target users, dynamically adjusting the release progress and scope of new functions, reducing system risks, ensuring system stability, and improving user experience and satisfaction.

[0048] As an optional implementation of this embodiment, the grayscale release method of the software upgrade system provided in this embodiment, before constructing the first matrix and the second matrix according to the user behavior data, the method also includes:

[0049] 1) Acquiring initial user behavior data; the initial user behavior data includes actual operations performed by the user on different functions of the software system;

[0050] Specifically, the initial user behavior data may be obtained using front-end tracking technology and log records, and the initial user behavior data includes the actual operations performed by the user on the different functions of the software system. For example, the initial user behavior data includes the actual operations performed by the user on the attachment function of the mailbox of the software system, such as downloading attachments or previewing attachments online.

[0051] For example, you can select a suitable tracking tool or technology based on your needs and application scenarios, embed the code in the application, track user behavior and send initial user behavior data to the backend server, design a tracking plan, and determine the events, pages, and attributes that need tracking. Finally, insert the tracking code into the key pages, functions, or events of the application to record the initial user behavior data.

[0052] 2) performing data cleaning and / or data conversion on the initial user behavior data to determine the user behavior data.

[0053] Specifically, after obtaining the initial user behavior data, the initial user behavior data may be cleaned and / or converted to determine the user behavior data. Data cleaning may refer to the process of identifying, correcting or deleting errors and inconsistencies in the data, which may improve the quality of the data and ensure the accuracy and reliability of the data. Exemplarily, data cleaning may include: removing duplicate records, processing missing values, processing outliers, etc.

[0054] Continuing with the above description, after data cleaning is completed, data conversion can be performed on the cleaned data. Data conversion can refer to the process of converting raw data into a form that is more suitable for analysis, so that the data can be more suitable for subsequent analysis and modeling. Exemplarily, data conversion can include: converting timestamps to date formats, encoding text data, etc.; finally, integrating data from different data sources for subsequent analysis and mining.

[0055] As an optional implementation of this embodiment, the grayscale release method of the software upgrade system provided in this embodiment further includes:

[0056] 1) Monitoring the actual target user corresponding to the access request to be transmitted to obtain monitoring information.

[0057] It is known that the actual target user corresponding to the access request may also be monitored to obtain monitoring information, wherein the monitoring information may be the usage of the target software system by the actual target user.

[0058] 2) Determining whether the target software system is stable based on the monitoring information and preset stability conditions.

[0059] In this embodiment, the preset stability condition can be used to determine whether the user can stably use the target software system. For example, the preset stability condition can be that the actual target user does not experience system freezes, freezes, etc. Specifically, whether the target software system is stable can be determined based on the monitoring information and the preset stability condition.

[0060] 3) If the target software system is unstable, the routing forwarding rule and the grayscale marking information are modified so that the actual target user can access the initial software system according to the modified routing forwarding rule and grayscale marking information.

[0061] Continuing with the above description, if the target software system is unstable, the routing forwarding rules and grayscale marking information are modified so that the actual target user can access the initial software system according to the modified routing forwarding rules and grayscale marking information. For example:

[0062] For example, the usage of the target software system by actual target users is monitored in real time. Once serious problems occur during the use of the actual target users, the release of the new version should be stopped immediately by stopping the grayscale release strategy or revoking the grayscale release tag to ensure that user requests are no longer forwarded to the new version. The routing forwarding rules are switched in the gateway layer or load balancer to reroute the traffic to the original initial software system.

[0063] As an optional implementation of this embodiment, the grayscale release method of the software upgrade system provided in this embodiment further includes:

[0064] If the configuration of the target software system is different from the configuration of the initial software system, the configuration of the target software system is updated to the initial configuration.

[0065] Specifically, if the configuration of the target software system is modified in the configuration center, it is necessary to restore it to the original configuration in a timely manner to ensure that the system uses the configuration information of the original initial software system;

[0066] As an optional implementation of this embodiment, the grayscale release method of the software upgrade system provided in this embodiment further includes:

[0067] If the database of the target software system is different from the database of the initial software system, data rollback is performed on the database of the target software system; the database is a database that performs data interaction with the target software system.

[0068] Specifically, if the target software system modifies the database, these changes need to be rolled back in a timely manner to restore the database to the same state as the database of the initial software system.

[0069] It should be noted that in order to prevent the error state of the target software system from affecting the normal operation of the overall system, the status information that may be caused by the target software system should be cleaned up, such as cached data, temporary files, etc.; during the rollback process, it is necessary to monitor the status and performance indicators of the overall system in a timely manner. If an abnormal situation occurs, it is necessary to notify the relevant personnel in a timely manner and take measures to deal with it; after confirming that the problem has been resolved and the system has returned to normal, it can be re-released. At this time, the target software system can be further tested and verified to ensure that the target software system can run stably after re-release.

[0070] This technical solution adds personalized recommendation technology to the traditional grayscale release. It screens users who are flexible in adjusting the test of new functions according to their personalized characteristics, and pushes new software functions or new software to these users in a grayscale release manner, thereby increasing the user adoption and usage rate of new functions or new software of the target software system. In addition, when problems arise, emergency plans are taken to roll back the release version, and re-release it after the problems with the new functions are resolved. This can not only improve the work efficiency of new function testing, but also minimize the impact on user experience.

[0071] As an optional implementation of this embodiment, the using of a microservice architecture to transmit the access request of the actual target user to the target software system includes:

[0072] 1) Using the global filter of the gateway layer, the access request to be transmitted is determined based on the business rules of the target software system; the access request to be transmitted is the request in the access request of the actual target user that needs to be transmitted to the target software system.

[0073] It can be known that the microservice architecture can include a service registry, a gateway layer, and downstream microservices. In the microservice architecture, the service registry is used for service discovery. Each microservice will register its own information (such as service address, port, etc.) with the registry when it starts, and log out when it stops; the gateway layer is used to handle request routing, load balancing, authentication, authorization, current limiting, monitoring, logging, etc., simplify the interaction between the client and the backend service, provide a unified application programming interface (Application Programming Interface, API) management, and protect the backend service from being directly exposed to the client; in the microservice architecture, downstream microservices refer to those services that are called by other services. They are small, independent business units that make up the entire application. Downstream microservices can discover each other through the service registry and communicate through defined APIs.

[0074] Specifically, in actual production, the release of new functions will not directly update online services, but a small part of online traffic will be cut out for functional trials, and the full launch can be carried out after the test is problem-free. The global filter at the gateway layer can be used to determine the access requests to be transmitted based on the business rules of the target software system; wherein the access requests to be transmitted are the access requests of the actual target users that need to be transmitted to the target software system.

[0075] It should be noted that the business rules of the target software system can be a series of standards or conditions formulated according to specific business logic and requirements to guide decision-making and operations. In the scenario of grayscale release, business rules may include but are not limited to: User grouping: users are divided into different groups according to their behavior, geographic location, device type and other attributes; Function switch: set switches for new functions to control which users can see or use new functions; Traffic distribution: determine the distribution ratio of traffic between the new and old versions of services; Performance indicators: dynamically adjust traffic distribution based on performance monitoring data (such as response time, error rate); User feedback: adjust the scope and speed of grayscale release based on user feedback; Version compatibility: ensure compatibility between the new and old versions to avoid data inconsistency or functional conflicts; Security and compliance: ensure that the new version meets security and compliance requirements; Business goals: rules associated with business goals and KPIs (key performance indicators), such as improving conversion rates or reducing user churn; Fault recovery: rules for automatically rolling back to the old version when a problem is detected.

[0076] 2) using the gateway layer to determine the grayscale mark information of the access request to be transmitted, and adding the grayscale mark information to the request header; the grayscale mark information is used to indicate whether the access request to be transmitted belongs to the grayscale release range of the software system to be pushed;

[0077] Specifically, after the access request to be transmitted is determined, the gateway layer can be used to determine the grayscale marking information of the access request to be transmitted. The grayscale marking information can be used to indicate whether the access request to be transmitted belongs to the grayscale release range of the software system to be pushed. The grayscale marking information may include the version number of the software system (which can be specified according to user needs), the user identity (ID), and the user Internet Protocol (IP) address. It should be noted that the version number in the grayscale marking information of the access request to be transmitted can be the version number of the target software system, and the version number in the grayscale marking information of the access request not to be transmitted can be the version number of the initial software system.

[0078] It can be known that after the grayscale mark information is determined, the grayscale mark information can be added to the request header.

[0079] 3) Utilizing the downstream microservice to obtain the request header, and adjusting the load balancing rule according to the request header, the load balancing rule including each access request to be transmitted and its corresponding server of the target software system.

[0080] Specifically, the request header of the gateway layer can be passed to the downstream microservice through an HTTP request. The downstream microservice can obtain the request header and adjust the load balancing rules according to the request header. The load balancing rules include each access request to be transmitted and its corresponding server of the target software system. In the microservice architecture, load balancing refers to the process of distributing requests to multiple service instances to avoid overloading a single instance, thereby improving the availability and performance of the system. Exemplarily, the load balancing rule can be a Ribbon load balancing strategy. In the Ribbon load balancing strategy, it is necessary to modify it to support the acquisition of grayscale services from the registration center according to traffic tags. This can be achieved through custom load balancing rules or interceptors. The modified load balancing strategy needs to be able to select the corresponding version of the server from the service registration center for load balancing according to the grayscale tag information in the request header.

[0081] 4) Based on the load balancing rule, selecting a server of the target software system corresponding to the access request to be transmitted from the service registration center;

[0082] It can be known that after the load balancing rule is determined, a server of the target software system corresponding to the access request to be transmitted can be selected from the service registration center based on the load balancing rule.

[0083] 5) Utilizing the routing forwarding rules of the gateway layer, each of the access requests to be transmitted is transmitted to a server of the target software system corresponding to the access request to be transmitted.

[0084] Specifically, after the server of the target software system corresponding to the access request to be transmitted is determined, each access request to be transmitted can be transmitted to the server of the target software system corresponding to the access request to be transmitted using the routing forwarding rules of the gateway layer.

[0085] Figure 2 A schematic diagram of the execution process of a grayscale release method for a software upgrade system provided in this embodiment is shown in FIG. Figure 2 As shown, the technical solution as a whole can be divided into four steps: user data collection, user data processing, target user screening, and personalized grayscale release. Among them, the user behavior data can be collected and recorded by inserting the embedding code in the front section, and the collected user behavior data can be cleaned and converted. The user-function matrix (first matrix) is constructed by data integration, and then the user similarity matrix (second matrix) is calculated, and the target user (first target user) is constructed based on the user-function matrix, and the neighbor users (second target users) are screened out through the second matrix. First of all, the grayscale release plan should be determined. For the push user group, adjustments can be made based on the above-screened user group according to business needs and actual conditions, such as the time node for pushing new functions that adapt to business needs, and the push ratio. This technical solution adopts a full-link grayscale release implementation method: the service registration center and the service registration and discovery components ensure the automatic registration and discovery of microservices, so that microservices can discover each other and establish communication; in the global filter of the gateway layer, the access request to be transmitted can be judged according to the business rules and the above-screened users to decide whether grayscale release is required. If grayscale release is required, the request can be marked with a grayscale mark and added to the request header. The grayscale mark can be a version number (specified according to the requirements, for user differentiation), user ID, IP address and other information to identify whether the request belongs to the grayscale release range; the grayscale mark added by the gateway is placed in the request header and passed to the downstream microservice through a Hypertext Transfer Protocol (HTTP) request. HTTP request is a way for a client (such as a browser) to request data from a server. In this way, the downstream service can obtain the grayscale tag information of the request; in the Ribbon load balancing strategy, it is necessary to modify it to support obtaining grayscale services from the registration center based on traffic tags. This can be achieved through custom load balancing rules or interceptors. The modified load balancing strategy needs to be able to select the corresponding version of the microservice instance from the service registration center for load balancing based on the grayscale tag information in the request header; configure routing rules in the gateway to forward the received requests to the corresponding grayscale service instance based on the grayscale tag information. During the routing forwarding process, the gateway will select the instance of the target microservice for request forwarding based on the grayscale tag information in the request header, thereby achieving access to the grayscale service.

[0086] Through the above method, we can dynamically adjust the release progress and scope of new functions according to the actual target user screening results, realize the full-link grayscale release, effectively control the scope of grayscale release, and ensure that new functions or versions are gradually launched in the production environment to users who are more willing to test new functions. This not only tests new functions more efficiently, but also reduces the impact on the system, ensures system stability, and improves user experience and satisfaction.

[0087] Embodiment 2

[0088] Figure 3 is a structural diagram of a grayscale release device of a software upgrade system provided in the second embodiment of the present disclosure; Figure 3 As shown, the device includes: a matrix construction module 210 , a target user determination module 220 , an actual target user determination module 230 , and a publishing module 240 .

[0089] The matrix construction module 210 is used to construct a first matrix and a second matrix according to the user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system; the elements in the second matrix are used to represent the similarity between each user;

[0090] A target user determining module 220, configured to determine a first target user based on the first matrix, and determine a second target user based on the second matrix and the first target user;

[0091] The actual target user determination module 230 is used to determine the push parameters and the actual target user according to the target software system and the initial software system; the actual target user belongs to the second target user; the target software system is the upgraded system of the initial software system;

[0092] The publishing module 240 is used to transmit the access request of the actual target user to the target software system by using the microservice architecture, so that the target software system completes the grayscale release.

[0093] Embodiment 2 of the present disclosure provides a grayscale release device for a software upgrade system, which realizes dynamic adjustment of the release progress and scope of new functions according to the screening results of actual target users, reduces system risks, ensures system stability, and improves user experience and satisfaction.

[0094] Furthermore, the device also includes:

[0095] A data acquisition module, used to acquire initial user behavior data; the initial user behavior data includes actual operations performed by the user on different functions of the software system;

[0096] A data conversion module is used to perform data cleaning and / or data conversion on the initial user behavior data to determine the user behavior data.

[0097] Furthermore, the microservice architecture includes a service registration center, a gateway layer, and downstream microservices;

[0098] The publishing module 240 is further used for:

[0099] Determine the access request to be transmitted based on the business rules of the target software system by using the global filter of the gateway layer; the access request to be transmitted is the request that needs to be transmitted to the target software system among the access requests of the actual target user;

[0100] Determine the grayscale mark information of the access request to be transmitted by using the gateway layer, and add the grayscale mark information to the request header; the grayscale mark information is used to indicate whether the access request to be transmitted belongs to the grayscale release range of the software system to be pushed;

[0101] Utilize the downstream microservice to obtain the request header, and adjust the load balancing rule according to the request header, wherein the load balancing rule includes each access request to be transmitted and its corresponding server of the target software system;

[0102] Based on the load balancing rule, selecting a server of the target software system corresponding to the access request to be transmitted from the service registration center;

[0103] Each of the access requests to be transmitted is transmitted to a server of the target software system corresponding to the access request to be transmitted by utilizing the routing forwarding rules of the gateway layer.

[0104] Furthermore, the device also includes:

[0105] A monitoring module, used to monitor the actual target user corresponding to the access request to be transmitted and obtain monitoring information;

[0106] A determination module, used to determine whether the target software system is stable based on the monitoring information and a preset stability condition;

[0107] The modification module is used to modify the routing forwarding rules and the grayscale marking information if the target software system is unstable, so that the actual target user can access the initial software system according to the modified routing forwarding rules and grayscale marking information.

[0108] Furthermore, the device also includes:

[0109] The configuration updating module is used to update the configuration of the target software system to the initial configuration if the configuration of the target software system is different from the configuration of the initial software system.

[0110] Furthermore, the device also includes:

[0111] The rollback module is used to roll back the database of the target software system if the database of the target software system is different from the database of the initial software system; the database is a database that interacts with the target software system.

[0112] The grayscale release device of the software upgrade system provided in the embodiments of the present disclosure can execute the grayscale release method of the software upgrade system provided in any embodiment of the embodiments of the present disclosure, and has the corresponding functional modules and beneficial effects of the execution method.

[0113] Embodiment 3

[0114] Figure 4 A schematic diagram of the structure of an electronic device 10 that can be used to implement an embodiment of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the embodiments of the present disclosure described and / or claimed herein.

[0115] like Figure 4 As shown, the electronic device 10 includes at least one processor 11, and a memory connected to the at least one processor 11, such as a read-only memory (ROM) 12, a random access memory (RAM) 13, etc., wherein the memory stores a computer program that can be executed by at least one processor, and the processor 11 can perform various appropriate actions and processes according to the computer program stored in the read-only memory (ROM) 12 or the computer program loaded from the storage unit 18 to the random access memory (RAM) 13. In the RAM 13, various programs and data required for the operation of the electronic device 10 can also be stored. The processor 11, the ROM 12, and the RAM 13 are connected to each other through a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.

[0116] A number of components in the electronic device 10 are connected to the I / O interface 15, including: an input unit 16, such as a keyboard, a mouse, etc.; an output unit 17, such as various types of displays, speakers, etc.; a storage unit 18, such as a disk, an optical disk, etc.; and a communication unit 19, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 19 allows the electronic device 10 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0117] The processor 11 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microprocessors, etc. The processor 11 executes the various methods and processes described above, such as a grayscale release method for a software upgrade system.

[0118] In some embodiments, the grayscale release method of the software upgrade system may be implemented as a computer program, which is tangibly contained in a computer-readable storage medium, such as a storage unit 18. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 10 via the ROM 12 and / or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the grayscale release method of the software upgrade system described above may be performed. Alternatively, in other embodiments, the processor 11 may be configured to execute the grayscale release method of the software upgrade system in any other appropriate manner (e.g., by means of firmware).

[0119] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0120] The computer programs for implementing the methods of the embodiments of the present disclosure may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that when the computer program is executed by the processor, the functions / operations specified in the flow chart and / or block diagram are implemented. The computer program may be executed entirely on the machine, partially on the machine, partially on the machine as a stand-alone software package and partially on a remote machine, or entirely on a remote machine or server.

[0121] In the context of the disclosed embodiments, a computer-readable storage medium may be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, device, or equipment. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or equipment, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0122] To provide interaction with a user, the systems and techniques described herein may be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the electronic device. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form (including acoustic input, voice input, or tactile input).

[0123] The systems and techniques described herein may be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.

[0124] A computing system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The client and server relationship is generated by computer programs running on the corresponding computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and VPS services.

[0125] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in the embodiments of the present disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions of the embodiments of the present disclosure can be achieved, and this document does not limit this.

[0126] The above specific implementations do not constitute a limitation on the protection scope of the embodiments of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the embodiments of the present disclosure shall be included in the protection scope of the embodiments of the present disclosure.

[0127] The embodiments of the present disclosure also provide a computer program product, including a computer program and / or instructions, which, when executed by a processor, implements the grayscale release method of the software upgrade system provided in any embodiment of the present application.

[0128] In the process of implementation, the computer program product can be written in one or more programming languages ​​or a combination thereof to write computer program codes for performing the operation of the disclosed embodiments, the programming languages ​​including object-oriented programming languages, such as Java, Smalltalk, C++, and also including conventional procedural programming languages, such as "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider to connect through the Internet).

[0129] Note that the above are only preferred embodiments of the embodiments of the present disclosure and the technical principles used. Those skilled in the art will understand that the embodiments of the present disclosure are not limited to the specific embodiments herein, and that various obvious changes, readjustments and substitutions can be made by those skilled in the art without departing from the protection scope of the embodiments of the present disclosure. Therefore, although the embodiments of the present disclosure are described in more detail through the above embodiments, the embodiments of the present disclosure are not limited to the above embodiments, and may include more other equivalent embodiments without departing from the concept of the embodiments of the present disclosure, and the scope of the embodiments of the present disclosure is determined by the scope of the attached claims.

Claims

1. A grayscale release method for a software upgrade system, characterized in that: The method comprises: Constructing a first matrix and a second matrix according to the user behavior data; the elements in the first matrix are used to represent the actual operations performed by each user for each function of the initial software system; the elements in the second matrix are used to represent the similarity between each user; determining a first target user based on the first matrix, and determining a second target user based on the second matrix and the first target user; Determine push parameters and actual target users according to the target software system and the initial software system; the actual target users belong to the second target users; the target software system is the upgraded system of the initial software system; The access request of the actual target user is transmitted to the target software system by using the microservice architecture, so that the target software system completes the grayscale release.

2. The method according to claim 1, characterized in that Before constructing the first matrix and the second matrix according to the user behavior data, the method further includes: Acquire initial user behavior data; the initial user behavior data includes actual operations performed by the user on different functions of the software system; The initial user behavior data is cleansed and / or converted to determine the user behavior data.

3. The method according to claim 1, characterized in that The microservice architecture includes a service registration center, a gateway layer, and downstream microservices; The using of the microservice architecture to transmit the access request of the actual target user to the target software system includes: Determine the access request to be transmitted based on the business rules of the target software system by using the global filter of the gateway layer; the access request to be transmitted is the request that needs to be transmitted to the target software system among the access requests of the actual target user; Determine the grayscale mark information of the access request to be transmitted by using the gateway layer, and add the grayscale mark information to the request header; the grayscale mark information is used to indicate whether the access request to be transmitted belongs to the grayscale release range of the software system to be pushed; Utilize the downstream microservice to obtain the request header, and adjust the load balancing rule according to the request header, wherein the load balancing rule includes each access request to be transmitted and its corresponding server of the target software system; Based on the load balancing rule, selecting a server of the target software system corresponding to the access request to be transmitted from the service registration center; Each of the access requests to be transmitted is transmitted to a server of the target software system corresponding to the access request to be transmitted by utilizing the routing forwarding rules of the gateway layer.

4. The method according to claim 3, characterized in that: The method further comprises: Monitoring the actual target user corresponding to the access request to be transmitted to obtain monitoring information; Determining whether the target software system is stable based on the monitoring information and a preset stability condition; If the target software system is unstable, the routing forwarding rule and the grayscale marking information are modified so that the actual target user can access the initial software system according to the modified routing forwarding rule and grayscale marking information.

5. The method according to claim 4, characterized in that The method further comprises: If the configuration of the target software system is different from the configuration of the initial software system, the configuration of the target software system is updated to the initial configuration.

6. The method according to claim 4, characterized in that The method further comprises: If the database of the target software system is different from the database of the initial software system, data rollback is performed on the database of the target software system; the database is a database that performs data interaction with the target software system.

7. A grayscale release device for a software upgrade system, characterized in that: include: A matrix construction module, used to construct a first matrix and a second matrix according to user behavior data; The elements in the first matrix are used to represent the actual operations performed by each user on the functions of each initial software system; The elements in the second matrix are used to represent the similarity between each user; a target user determining module, configured to determine a first target user based on the first matrix, and determine a second target user based on the second matrix and the first target user; An actual target user determination module, used to determine push parameters and actual target users according to the target software system and the initial software system; The actual target user belongs to the second target user; The target software system is an upgraded system of the initial software system; The publishing module is used to transmit the access request of the actual target user to the target software system by using the microservice architecture, so that the target software system can complete the grayscale release.

8. An electronic device, characterized in that: include: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the grayscale release method of the software upgrade system as described in any one of claims 1-6.

9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the grayscale release method of the software upgrade system as described in any one of claims 1 to 6 is implemented.

10. A computer program product, characterized in that The computer program product includes a computer program, and when the computer program is executed by a processor, the grayscale release method of the software upgrade system according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • User tag identification method and device, electronic equipment and computer readable storage medium

    CN114548242A

  • Software service gray release method and device, equipment and medium

    CN116775107A

  • Application gray scale updating method, electronic equipment and storage medium

    CN117908928A

  • Gray scale test processing method

    CN118227501A

  • Audio generating method and device

    WO2022179264A1

Cited By

  • Gray release device and method thereof

    CN120849235A

  • System updating method and device, electronic equipment, storage medium and program product

    CN121807346A

  • System update methods, devices, electronic equipment, storage media, and program products

    CN121807346B