Application configuration publishing system, method, device and apparatus
By centrally managing device information on the application server through configuration and publishing, the problem of application server-side device information uploading affecting service availability is solved, thereby improving the stability and availability of application services.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA INNOVATION PRIVATE LIMITED
- Filing Date
- 2021-06-30
- Publication Date
- 2026-04-21
AI Technical Summary
In existing technologies, uploading device information to the application server requires modification of the application code, which can cause the service to fail and affect the availability and stability of the application service.
By configuring and publishing the server, the corresponding set of Internet Protocol IP addresses and device information of multiple application servers is determined. Based on this set of relationships and the application configuration request, the device information of the target application server is determined, and the application configuration is published. This avoids the application server from uploading device information and allows changes to be made directly in the unified center.
It improves the availability and stability of application services, avoids service interruptions caused by changes in device information, and simplifies the process of modifying application code.
Smart Images

Figure CN115543411B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of Internet application service technology, specifically to application configuration and publishing systems, methods and apparatus, and electronic devices. Background Technology
[0002] Upgrading internet application services always comes with risks, such as compatibility issues between new and old versions, user churn due to sudden changes in user habits, and system downtime. To avoid these risks, many applications adopt strategies such as gradual release of application configuration information to expand the user base, including canary release rules and rolling release rules.
[0003] The application configuration method based on release rules is as follows: application version configuration information is managed in the configuration center, and the application server retrieves the corresponding application configuration information from the configuration center. Currently, for complex release rules, the application server needs to upload device information related to the release rule, and the configuration center processes the application configuration and release based on the device information uploaded by the application server. For example, a complex canary release rule is "50% canary release in the same region," in which case the application server needs to upload the region information of the devices.
[0004] However, in the process of implementing this invention, the inventors found that the above technical solutions all have at least the following problems: Uploading device information to the application server will intrude on the application code. When setting complex publishing rules, it is necessary to modify the device information upload code in the application code and restart the service. During the restart, the service cannot be provided to the outside world. Summary of the Invention
[0005] This application provides an application configuration publishing system to address the problem in existing technologies where modifying device information leads to a loss of service. This application also provides an application configuration publishing method and apparatus, as well as an electronic device.
[0006] This application provides an application configuration and publishing system, including:
[0007] The configuration publishing module is used to determine the correspondence set between Internet Protocol IP addresses and device information of multiple application servers; for an application configuration request, it determines the device information of the target application server based on the correspondence set and the IP address information of the target application server carried in the request; and performs application configuration publishing processing on the target application server according to the device information and application configuration publishing rules.
[0008] The application service module is used to send the request and provide application services based on the received application configuration information.
[0009] This application also provides an application configuration and publishing system, including:
[0010] The device information database is used to store the mapping relationship between the Internet Protocol IP addresses of multiple application servers and device information;
[0011] The configuration publishing service module is used to receive application configuration requests sent by the application server; based on the IP address information of the target application server carried in the request, it calls the device information extension module to determine the device information of the target application server; based on the device information of the target application server, it calls the configuration publishing decision module to perform application configuration publishing processing on the target application server.
[0012] The device information extension module is used to determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server.
[0013] Configure the deployment rule engine to set application deployment rules and parse application deployment rules.
[0014] The configuration and release decision module is used to perform application configuration and release processing on the target application server based on the device information of the target application server and the parsed release rules.
[0015] Optional, also includes:
[0016] The device information cache center is used to store device information for the target application server.
[0017] This application also provides an application configuration and publishing method, including:
[0018] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0019] For an application configuration request, the device information of the target application server is determined based on the corresponding relationship set and the IP address information of the target application server carried in the request.
[0020] Based on the device information and application configuration publishing rules, the target application server is processed for application configuration publishing.
[0021] Optionally, determining the set of correspondences between the Internet Protocol IP addresses and device information of multiple application servers includes:
[0022] Receive device information setting request;
[0023] The corresponding relationship is determined based on the setting request.
[0024] This application also provides an application configuration and publishing method, including:
[0025] Send an application configuration request, the request including the Internet Protocol (IP) address information of the application server;
[0026] Receive application configuration information;
[0027] Provide application services based on application configuration information;
[0028] The application service configuration information is determined by the configuration publishing server using the following steps:
[0029] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0030] Based on the corresponding relationship set and the IP address information included in the request, determine the device information of the target application server;
[0031] Based on the device information and application configuration publishing rules, the target application server is processed for application configuration publishing.
[0032] This application also provides an application configuration and publishing method, including:
[0033] Determine the device information of the application server;
[0034] Send a device information setting request to the configuration publishing server;
[0035] The configuration publishing server processes the request using the following steps:
[0036] The system stores the mapping relationship between the IP address of the application server and device information, and the mapping relationship is used to expand the device information of the application server when publishing application configuration.
[0037] This application also provides an application configuration and publishing method, including:
[0038] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0039] For an application configuration request, the device information of the target application server is determined based on the corresponding relationship set and the IP address information of the target application server carried in the request.
[0040] Based on the device information and application configuration canary release rules, the target application server is subjected to application configuration canary release processing.
[0041] Optionally, the step of performing application configuration canary release processing on the target application server based on the device information and application configuration canary release rules includes:
[0042] Parse the grayscale release rules;
[0043] Based on the device information and the parsed canary release rules, determine whether the target application server meets the canary release rules;
[0044] If the above judgment result is yes, then the application configuration information of the target application server is the grayscale version configuration information.
[0045] Optional, also includes:
[0046] Store application configuration version information for the application server;
[0047] Determining whether the target application server meets the canary release rules includes:
[0048] Based on the application configuration version information, determine whether the canary release ratio has reached the ratio threshold.
[0049] Optionally, the step of performing application configuration canary release processing on the target application server based on the device information and application configuration canary release rules further includes:
[0050] If the target application server does not meet the canary release rules, then the application configuration information of the target application server is the main version configuration information.
[0051] Optional, also includes:
[0052] Based on the device information and application configuration rolling release rules, determine the threshold number of rolling release devices and the number of devices currently updating the configuration to the target application server's release scope;
[0053] If the application configuration information of the target application server is a gray-scale version configuration information and the number of devices has not reached the device number threshold, then the gray-scale version configuration information is sent to the target application server.
[0054] This application also provides an application configuration and publishing method, including:
[0055] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0056] For an application configuration request, the device information of the target application server is determined based on the corresponding relationship set and the IP address information of the target application server carried in the request.
[0057] Based on the device information and application configuration rolling release rules, the target application server is processed for application configuration rolling release.
[0058] Optionally, the step of performing application configuration rolling release processing on the target application server based on the device information and application configuration rolling release rules includes:
[0059] Based on the device information and the rolling release rules, determine the threshold number of rolling release devices and the number of devices currently updating the configuration within the release scope of the target application server;
[0060] If the number of devices does not reach the device number threshold, the target application configuration information is sent to the target application server.
[0061] Optionally, if the number of devices does not reach the device number threshold, target application configuration information is sent to the target application server, including:
[0062] If the number of devices does not reach the device number threshold, a configuration release token is allocated to the target application server, and a first update notification is sent to the target application server, the first update notification including the token;
[0063] Receive an update request from the target application server;
[0064] If the flag bit included in the update request is yes, a second update notification is sent to the target application server. The second update notification includes target application configuration information, so that the target application server can provide application services based on the target application configuration information.
[0065] Optional, also includes:
[0066] Receive an update request from the target application server;
[0067] If the flag included in the update request is not specified, the token is revoked.
[0068] Optional, also includes:
[0069] The process ends when the number of devices reaches the device number threshold.
[0070] Optional, also includes:
[0071] If the target application server has updated its configuration, then the process ends.
[0072] This application also provides an application configuration publishing device, including:
[0073] The device information setting unit is used to determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0074] The device information extension unit is used to determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server carried in the request, in response to the application configuration request.
[0075] The application configuration publishing unit is used to perform application configuration publishing processing on the target application server according to the device information and application configuration publishing rules.
[0076] This application also provides an application configuration publishing device, including:
[0077] A request sending unit is used to send an application configuration request, the request including the Internet Protocol IP address information of the application server;
[0078] The information receiving unit is used to receive application configuration information;
[0079] The application service unit is used to provide application services based on application configuration information.
[0080] The application service configuration information is determined by the configuration publishing server using the following steps:
[0081] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0082] Based on the corresponding relationship set and the IP address information included in the request, determine the device information of the target application server;
[0083] Based on the device information and application configuration publishing rules, the target application server is processed for application configuration publishing.
[0084] This application also provides an application configuration publishing device, including:
[0085] The information determination unit is used to determine the device information of the application server.
[0086] The request sending unit is used to send a device information setting request to the configuration publishing server.
[0087] The configuration publishing server processes the request using the following steps:
[0088] The system stores the mapping relationship between the IP address of the application server and device information, and the mapping relationship is used to expand the device information of the application server when publishing application configuration.
[0089] This application also provides an electronic device, including:
[0090] Processor and memory;
[0091] A memory is used to store a program that implements the application configuration publishing method described above, the program of which is executed by the processor when the device is powered on.
[0092] This application also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the various methods described above.
[0093] This application also provides a computer program product including instructions that, when run on a computer, cause the computer to perform the various methods described above.
[0094] Compared with the prior art, this application has the following advantages:
[0095] The application configuration publishing system provided in this application embodiment determines a set of correspondences between the Internet Protocol (IP) addresses and device information of multiple application servers at the configuration publishing server end. For application configuration requests sent by application servers, the configuration publishing server determines the device information of the target application server based on the correspondence set and the IP address information of the target application server carried in the request. Based on the device information and application configuration publishing rules, the system performs application configuration publishing processing on the target application server. This approach ensures that changes to application server device information are handled centrally, eliminating the need for application servers to upload device information. Changing device information does not affect application code or require service restarts; therefore, it effectively improves the availability and stability of application services.
[0096] The application configuration publishing method provided in this application embodiment determines a set of correspondences between the Internet Protocol (IP) addresses and device information of multiple application servers at the configuration publishing server end. For application configuration requests sent by application servers, the configuration publishing server determines the device information of the target application server based on the correspondence set and the IP address information of the target application server carried in the request. Based on the device information and application configuration canary release rules, the target application server undergoes application configuration canary release processing. This approach ensures that changes to application server device information are handled centrally, eliminating the need for application servers to upload device information. Changing device information does not affect application code and does not require service restart; therefore, it effectively improves the availability and stability of application services.
[0097] The application configuration publishing method provided in this application embodiment determines a set of correspondences between the Internet Protocol (IP) addresses and device information of multiple application servers at the configuration publishing server end. For application configuration requests sent by application servers, the configuration publishing server determines the device information of the target application server based on the correspondence set and the IP address information of the target application server carried in the request. Based on the device information and application configuration rolling publishing rules, the application server performs rolling application configuration publishing processing. This approach ensures that changes to application server device information are handled centrally, eliminating the need for application servers to upload device information. Changing device information does not affect application code or require service restarts; therefore, it effectively improves the availability and stability of application services. Attached Figure Description
[0098] Figure 1 This application provides a schematic diagram of the structure of an embodiment of the application configuration publishing system;
[0099] Figure 2 This application provides a schematic diagram of the configuration center of an embodiment of the application configuration publishing system;
[0100] Figure 3 This application provides a flowchart of the canary release process for an embodiment of the application configuration release system;
[0101] Figure 4 This application provides a detailed flowchart of the canary release process for an embodiment of the application configuration release system.
[0102] Figure 5 This application provides a schematic diagram of the rolling release license center of an embodiment of the application configuration release system;
[0103] Figure 6 The rolling release flowchart of an embodiment of the application configuration release system provided in this application;
[0104] Figure 7 This application provides a detailed flowchart of the rolling release process for an embodiment of the application configuration release system.
[0105] Figure 8 This application provides a flowchart illustrating an embodiment of the application configuration publishing method. Detailed Implementation
[0106] Many specific details are set forth in the following description to provide a full understanding of this application. However, this application can be implemented in many other ways different from those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this application; therefore, this application is not limited to the specific embodiments disclosed below.
[0107] This application provides an application configuration publishing system, method, and apparatus, as well as an electronic device. The various solutions are described in detail in the following embodiments.
[0108] First Embodiment
[0109] Please refer to Figure 1 This is a structural diagram of an embodiment of the application configuration publishing system of this application. The system provided in this embodiment may include: a configuration publishing module 1 and an application service module 2. The configuration publishing module 1 may be deployed on a configuration publishing server (i.e., a configuration center), and the application service module 2 may be deployed on an application server.
[0110] The application service can be a monolithic application service or a microservice. A microservice is a concept relative to a monolithic application, where all functionality is packaged into a single, independent application unit. A microservice architecture distributes a monolithic application into multiple services. In a microservice architecture, a user's request often involves multiple internal service calls. For example, an online supermarket includes microservices such as user service, product service, order service, promotion service, and data analysis service. When a user places an order on the online supermarket, these microservices generate service calls.
[0111] Application configuration refers to the configuration information of an application service. For example, an order management service is deployed on the application server. Order users can open the order viewing page provided by the order management service through their clients (such as smartphones). The configuration items for the order viewing page may include language, page background color, database, and new function operation options. Specifically, the configuration information for the main version of the order management service may be language "Chinese", page background color "light blue", database "ORACLE", etc.; the configuration information for the first gray-scale version of the order management service may be language "English", page background color "dark blue", database "MySQL", and new function "view logistics", etc.; the configuration information for the second gray-scale version of the order management service may be language "French", page background color "navy blue", database "DB2", and new function "return application", etc.
[0112] Table 1 shows the application version configuration information provided in this embodiment.
[0113]
[0114] Table 1. Application Version Configuration Information
[0115] As shown in Table 1, the configuration and publishing server can store application configuration information for multiple versions of multiple applications. In practice, configuration information administrators can modify, delete, and publish application version configuration information via a webpage. The application configuration information can include dynamic or static configuration information. Since setting application configuration information is a relatively mature existing technology, it will not be elaborated upon here.
[0116] Please refer to Figure 2 This is a schematic diagram illustrating a scenario of an embodiment of the application configuration publishing system of this application. The system is located in the configuration center ( Figure 2 The server-side, i.e., the configuration and release server, manages application version configuration information. The application server ( Figure 2 The client (in the application server) retrieves the corresponding application configuration information from the configuration center. The application version configuration information is stored in the configuration information database of the configuration center, and configuration administrators can modify, delete, and publish the application version configuration information via a web page. The configuration center retrieves configuration items from the database and sends them to the application server. The application server provides application services based on the received application configuration information.
[0117] In a distributed application system, the application service can be deployed across multiple devices (i.e., multiple application servers) to provide services to a specific range of users. For example, an e-commerce platform's order management service can be deployed on 100 servers in a Beijing data center to provide services to users in the Beijing area; it can also be deployed on 150 servers in a Hangzhou data center to provide services to users in the Zhejiang area, and so on.
[0118] The configuration publishing module is used to determine a set of correspondences between Internet Protocol (IP) addresses and device information of multiple application servers; for an application configuration request, it determines the device information of the target application server based on the set of correspondences and the IP address information of the target application server carried in the request; and performs application configuration publishing processing on the target application server according to the device information and application configuration publishing rules. Correspondingly, the application service module is used to send the request and provide application services based on the received application configuration information.
[0119] The system provided in this application embodiment allows for changes to device information on the application server in a unified center. The application server does not need to upload device information, and changes to device information do not affect the application code or require a service restart. The device information includes, but is not limited to, region, data center, project, etc. Table 1 shows the correspondence between the IP addresses and device information of multiple application servers stored on the configuration publishing server.
[0120]
[0121]
[0122] Table 1. Correspondence between application server IP addresses and device information
[0123] As shown in Table 1, the device information of the application server is pre-stored on the configuration publishing server. After receiving the application configuration request sent by the application server, the configuration publishing server can determine the device information of the target application server according to the corresponding relationship set and the IP address information of the target application server carried in the request, so as to perform application configuration publishing processing on the target application server according to the device information and application configuration publishing rules.
[0124] The application server is the main user of configuration information, and is... Figure 2 As can be seen, the application server can periodically query configuration information from the configuration publishing server, or it can query configuration information from the configuration publishing server based on the configuration update notification sent by the configuration publishing server.
[0125] The application configuration release rules include, but are not limited to, application configuration canary release rules and application configuration rolling release rules. The configuration release server, based on the device information and the application configuration release rules, performs application configuration release processing on the target application server and sends the determined application configuration information to the application server; the application server provides application services to the user based on the received application configuration information.
[0126] In practice, the configuration publishing server can cache the configuration information retrieved from the configuration information database in memory to speed up the determination of configuration information when processing requests submitted by other application servers.
[0127] like Figure 2 As shown, in one example, configuring the publishing server includes: a device information database (such as...) Figure 2 The configuration management database (CMDB) in the system, the configuration publishing service module, and the device information extension module (i.e. Figure 2 In the data extension center), configure the publishing rules engine (i.e. Figure 2 The rules engine in the system configures the release decision module (i.e., Figure 2 (The decision-making center in China).
[0128] The Configuration Management Database (CMDB) is a logical database that contains information about the entire lifecycle of configuration items and the relationships between them (including physical relationships, real-time communication relationships, non-real-time communication relationships, and dependencies). The CMDB stores and manages various configuration information (such as region, data center, project, owner, etc.) for devices within an enterprise's IT architecture. It is closely linked to all service support and service delivery processes, supporting the operation of these processes, maximizing the value of configuration information, and ensuring data accuracy through these processes.
[0129] The system includes: a device information database for storing a set of correspondences between the Internet Protocol (IP) addresses of multiple application servers and their corresponding device information; a configuration publishing service module for receiving application configuration requests from application servers; invoking a device information extension module based on the target application server's IP address information carried in the request to determine the target application server's device information; invoking a configuration publishing decision module based on the target application server's device information to perform application configuration publishing processing on the target application server; a device information extension module for determining the target application server's device information based on the correspondence set and the target application server's IP address information; a configuration publishing rule engine for setting application configuration publishing rules; parsing the application configuration publishing rules; and a configuration publishing decision module for performing application configuration publishing processing on the target application server based on the target application server's device information and the parsed publishing rules.
[0130] In one example, the configuration publishing server may also include: a device information cache center (i.e. Figure 2 The cache center (in the system) stores device information of the target application server. It can also store the application configuration version information of the target application server after the application configuration release process is completed, for later use, thus improving subsequent processing speed. Table 3 shows the cached application server information in this embodiment.
[0131]
[0132] Table 3. Application Server Information
[0133] like Figure 2 As shown, in this embodiment, the Device Information Database (CMDB) is used to store device information, and the Intelligent Decision Center is used to provide the ability to issue complex configuration decisions. The Intelligent Decision Center consists of four parts:
[0134] 1) Data Extension Center (i.e., Device Information Extension Module)
[0135] The application server uploads the IP address, while the CMDB stores more detailed device information. The Data Expansion Center queries the CMDB to expand simple IP information into multi-dimensional, structured application server information. For example, 10.10.10.10 -> {ip:10.10.10.10,host:10.11.11.11,idc:bj-1,region:bj,project:myProject,owner:zhangsan}. A simple IP address, after passing through the Data Expansion Center, yields rich information, facilitating the subsequent configuration of complex rules.
[0136] 2) Device information cache center: stores application server information;
[0137] 3) Configuration and Release Rule Engine: Used to configure and parse canary release rules. Since application server information has been transformed into multi-dimensional, structured information, relatively complex configuration and release rules can be defined on this basis. For example, the rule "region in(bj,hz)and project not in(myProject,myProject1)and 0.2" indicates that if the region is bj or hz, and the client (i.e., the application server) does not belong to either project myProject or myProject1, a 20% canary release will be performed on machines that meet the first two rules.
[0138] It should be noted that since multiple application servers pull application configuration information from a unified configuration publishing server, this embodiment refers to the application server as the client and the configuration publishing server as the server.
[0139] 4) Configuration Release Decision Center: Determines whether the application server obtains the main version configuration or the canary version configuration, depending on the cache center and the rule engine.
[0140] In one example, the configuration publishing server is also used to receive device information setting requests; and to determine the corresponding relationships based on the setting requests. In specific implementation, device administrators can send device information setting requests through their clients, and the requests may include multiple corresponding relationships; the configuration publishing server stores the corresponding relationships in a device information database (e.g., ...). Figure 2 In the CMDB database.
[0141] In one example, the application configuration release rule is an application configuration canary release rule. Canary release is a gradual expansion of the user base for a product release, also known as canary rollout. The purpose of canary release is to obtain user feedback early, improve product functionality and quality, allow users to participate in product testing, strengthen user interaction, and reduce the user scope affected by product upgrades. For example, a canary release rule like "region in(bj,hz)and project not in(myProject,myProject1)and 0.2" means that the region is Beijing or Hangzhou, and the application server does not belong to the two projects myProject and myProject1. A 20% canary release will be performed on application server machines that meet the first two rules.
[0142] Figure 3 The application configuration acquisition process is illustrated as follows: The application server requests configuration; the application server's IP address is expanded into multi-dimensional, structured device data, such as region, project, and host, through the data expansion center; the application server's device information is cached for later use; it is determined whether the target application has a canary release configuration; if not, the main version configuration is directly returned to the application server, and the application server does not change its configuration; if the determination result is yes, the application server list is queried from the cache center; if a canary release configuration exists, the decision center determines whether the application server meets the canary release rules; if not, the main version configuration is directly returned to the application server, and the application server does not change its configuration; if the canary release rules are met, the canary version configuration is returned to the application server, and the cache center information is updated to mark the application server as having obtained the canary release configuration.
[0143] For example, a bank launches a pilot program with two different configurations. Unsure which configuration is superior, they decide to conduct a 50% phased rollout test in both Beijing and Shanghai, observing the actual performance over time. In this scenario, a phased rollout rule can be configured in the configuration center: `region in(bj,sh)and 0.5`. Figure 2 In the application scenario shown, the application configuration canary release process in this case is as follows: Figure 4As shown: The application server requests configuration; the application server's IP address is expanded into multi-dimensional, structured device data, such as region, project, and host, through the data expansion center; the application server's device information is cached for later use; it is determined whether the application server's region is Shanghai or Beijing. If the result is no, the main version configuration is directly returned to the application server, and the application server does not change its configuration; if the result is yes, the application server list is queried from the cache center to determine whether more than 50% of the application servers have obtained the configuration. If more than 50% of the application servers have obtained the gray-scale configuration, the main version configuration is returned to the application server; otherwise, it is considered that the gray-scale release rules are met, the gray-scale version configuration is returned to the application server, and the cache center information is updated to mark the application server as having obtained the gray-scale configuration.
[0144] This concludes the explanation of the application configuration canary release method.
[0145] In another example, the application configuration deployment rule is an application configuration rolling deployment rule. The application scenarios for rolling deployment rules are briefly explained below.
[0146] In practical applications, certain configuration changes may cause application services to restart, during which time services are unavailable. For example, a new version might require switching databases, such as from Oracle to MySQL. In distributed application systems, application services can be deployed across multiple regions. Each region must ensure that the proportion of application server devices in an unavailable state is less than a certain percentage to guarantee overall service availability. Therefore, application configuration changes should be handled as quickly as possible.
[0147] Traditional configuration centers have relatively simple functions, with common deployment schemes including full deployment, proportional deployment, and proportional rolling deployment. Full deployment updates the application service's configuration simultaneously on all devices across all regions, but this method cannot guarantee overall service availability. Proportional deployment updates the application service's configuration in batches across all devices across all regions; because this method processes all devices in batches, it cannot guarantee rapid deployment. Rolling deployment upgrades only one or more application servers at a time, adds them to the production environment after the upgrade, and continuously executes this process until all old versions in the application service cluster are upgraded to the new version. In traditional configuration centers, proportional rolling deployment automatically and gradually updates the application service's configuration in batches across all devices across all regions, but this method cannot guarantee service availability across different partitions. In summary, traditional configuration centers cannot handle situations where application servers cannot be updated simultaneously, or complex situations where upgrade priorities differ across regions.
[0148] The system provided in this application embodiment proposes a rolling deployment method based on a complex decision center to meet more diverse deployment needs, addressing complex application configuration deployment requirements. In this embodiment, rolling deployment allows for batch deployment of application configurations across different deployment scopes, enabling rapid rolling deployment by region and avoiding service unavailability issues caused by traditional deployment methods. For example, the complex rolling deployment rule "region in(bj,hz)and 0.2" in this embodiment indicates that the region is Beijing or Hangzhou, and a maximum of 20% of the application server machines can be updated at a time.
[0149] In one example, the configuration distribution server can be specifically used to determine the number threshold of rolling release devices and the number of devices currently updating the configuration within the release scope of the target application server, based on the device information and the rolling release rules; if the number of devices does not reach the device number threshold, the target application configuration information is sent to the target application server.
[0150] The distribution scope of the target application server can be determined based on the device information and rolling distribution rules of the target application server. For example, if the target application server is a server in Beijing, and the rolling distribution rule is "region in(bj,hz)and 0.2", then the distribution scope of this target application server includes application servers in both Beijing and Hangzhou. As another example, if the target application server is a server in the myProject project in Beijing, and the rolling distribution rule is "region in(bj,hz)and project not in(myProject,myProject1)and 0.2", then the distribution scope of this target application server includes application servers in both Beijing and Hangzhou that do not belong to the myProject and myProject1 projects.
[0151] The threshold for the number of devices to be deployed in a rolling deployment can be determined according to the rolling deployment rules. For example, if the rolling deployment rule is "region in(bj,hz)and 0.2", and there are a total of 300 servers in Beijing and Hangzhou, then the threshold for the number of devices to be deployed in a rolling deployment is 300 * 0.2 = 60.
[0152] The number of devices currently updating their configuration can be the number of devices within the publishing scope of the target application server that are currently updating their configuration. This number can be determined based on information recorded in the cache center.
[0153] After determining the target application server's release scope, the corresponding rolling release device number threshold, and the number of devices currently updating their configuration, it can be determined whether the target application server conforms to the rolling release rules. For example, if the target application server is server number 003 in Beijing, and the rolling release rule is "region in(bj,hz)and 0.2", there are a total of 300 servers in Beijing and Hangzhou, and the rolling release device number threshold is 300 * 0.2 = 60 servers. Currently, 35 servers in Beijing and Hangzhou are updating their configurations. Therefore, server number 003 in Beijing conforms to the rolling release rules and its configuration can be updated.
[0154] In one example Figure 2 The intelligent decision-making center configured with distributed servers may also include a license (token) center, where the decision-making center determines the number of licenses in each namespace of the license center. The license center issues licenses (tokens) to application servers; only clients that obtain a license (token) can update. The license center can be divided into multiple namespaces, each with its own dedicated license repository. Application servers can only obtain licenses from the license repository of their corresponding namespace. These namespaces may be related to the rolling release rules, and a separate namespace can be set for each release scope. For example, the rolling release rule "region in(bj,hz)and 0.2" corresponds to one namespace for releases in Beijing and Hangzhou; the rolling release rule "region in(bj,hz)and project not in(myProject,myProject1)and0.2" corresponds to one namespace for releases in Beijing and Hangzhou that do not belong to the projects myProject and myProject1.
[0155] like Figure 5 As shown, in practice, namespaces can be set up for different release scopes, and each namespace can store a different number of licenses (configuration release tokens). For example, if the scope "Beijing" has 100 application server devices, the corresponding namespace 1 can include 20 licenses; if the scope "Hangzhou" has 150 application server devices, the corresponding namespace 2 can include 30 licenses.
[0156] Figure 6 The application configuration acquisition process is illustrated as follows: the application server requests configuration; the application server's IP address is expanded into multi-dimensional, structured device data, such as region, project, and host, through the data expansion center; the application server's device information is cached for later use; it is determined whether the application server has been updated to the new version to be released. If the result is yes, the process ends; if the result is no, the license acquisition process can proceed.
[0157] Figure 7 The license acquisition process is illustrated. In one example, the configuration distribution server can also be specifically used to: allocate a configuration release token to the target application server if the number of devices does not reach a device number threshold; send a first update notification to the target application server, the first update notification including the token; receive an update request from the target application server; if the flag bit included in the update request is yes, send a second update notification to the target application server, the second update notification including target application configuration information, so that the target application server provides application services according to the target application configuration information. Furthermore, the configuration distribution server can also be specifically used to: receive an update request from the target application server; if the flag bit included in the update request is no, reclaim the token.
[0158] As can be seen from the above embodiments, the application configuration publishing system provided in this application provides a set of correspondences between the Internet Protocol (IP) addresses and device information of multiple application servers at the configuration publishing server end. When an application configuration request is sent by an application server, the configuration publishing server determines the device information of the target application server based on the set of correspondences and the IP address information of the target application server carried in the request. Based on the device information and application configuration publishing rules, the system performs application configuration publishing processing on the target application server. This processing method ensures that changes to the device information of the application server are handled centrally, eliminating the need for the application server to upload device information. Changing device information does not affect the application code, and there is no need to restart the service. Therefore, it can effectively improve the availability of application services.
[0159] Second Embodiment
[0160] In the above embodiments, an application configuration publishing system is provided. Correspondingly, this application also provides an application configuration publishing system for publishing configuration information of application services. This system corresponds to System Embodiment 1 described above. Since this system embodiment is basically similar to System Embodiment 1, it is described simply, and relevant parts can be referred to in the description of System Embodiment 1. The system embodiments described below are merely illustrative.
[0161] In this embodiment, the system includes: a device information database, a configuration publishing service module, a device information extension module, a configuration publishing rule engine, and a configuration publishing decision module.
[0162] The device information database stores the mapping between Internet Protocol (IP) addresses of multiple application servers and device information. This device information database can be a CMDB database or other databases, such as Oracle databases.
[0163] The configuration publishing service module is used to receive an application configuration request sent by the application server; based on the IP address information of the target application server carried in the request, it calls the device information extension module to determine the device information of the target application server; based on the device information of the target application server, it calls the configuration publishing decision module to perform application configuration publishing processing on the target application server.
[0164] The device information extension module is used to determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server.
[0165] The configuration release rule engine is used to set application configuration release rules and parse application configuration release rules.
[0166] The configuration release decision module is used to perform application configuration release processing on the target application server based on the device information of the target application server and the parsed release rules.
[0167] In one example, the system may further include: a device information caching center, used to cache device information of the target application server, and can also cache application configuration version information of the target application server after completing the application configuration release process for the target application server, for subsequent use, which can improve the subsequent processing speed.
[0168] As can be seen from the above embodiments, the application configuration publishing system provided in this application stores a set of correspondences between the Internet Protocol IP addresses and device information of multiple application servers in a device information database; it receives application configuration requests sent by application servers through a configuration publishing service module; based on the IP address information of the target application server carried in the request, it calls a device information extension module to determine the device information of the target application server; based on the device information of the target application server, it calls a configuration publishing decision module to perform application configuration publishing processing on the target application server; the device information extension module determines the device information of the target application server based on the correspondence set and the IP address information of the target application server; it sets application configuration publishing rules through a configuration publishing rule engine; it parses the application configuration publishing rules; and the configuration publishing decision module performs application configuration publishing processing on the target application server based on the device information of the target application server and the parsed publishing rules. This processing method ensures that changes to the device information of the application server are handled centrally, eliminating the need for application servers to upload device information, and changes to device information do not affect the application code or require service restarts; therefore, it effectively improves the availability of application services. Furthermore, since the device information on the application server is changed in the unified center by adding a new module to the existing application configuration and release system, the impact on the existing application configuration and release system is small, which can reduce the system transformation cost.
[0169] Third Embodiment
[0170] In the above embodiments, an application configuration publishing system is provided. Correspondingly, this application also provides an application configuration publishing method. This method corresponds to the processing procedure of the configuration publishing server in the first embodiment of the system described above, and its execution entity can be the configuration publishing server. Since the method embodiment is basically similar to the first system embodiment, it is described relatively simply, and relevant parts can be referred to the description of the first system embodiment. The method embodiments described below are merely illustrative.
[0171] Please refer to Figure 8 This is a flowchart illustrating an embodiment of the application configuration publishing method of this application. The method provided in this embodiment may include the following steps:
[0172] Step S801: Determine the set of correspondences between Internet Protocol IP addresses and device information of multiple application servers.
[0173] In one example, step S801 can be implemented as follows: receiving a device information setting request; determining the correspondence based on the setting request.
[0174] Step S803: For the application configuration request, determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server carried in the request;
[0175] Step S805: Based on the device information and application configuration publishing rules, perform application configuration publishing processing on the target application server.
[0176] In one example, step S805 is performed as follows: based on the device information and the application configuration canary release rules, the target application server is subjected to application configuration canary release processing.
[0177] In specific implementation, the step of performing application configuration canary release processing on the target application server according to the device information and application configuration canary release rules may include the following sub-steps: 1) parsing the canary release rules; 2) determining whether the target application server meets the canary release rules according to the device information and the parsed canary release rules; 3) if the above determination result is yes, then the application configuration information of the target application server is the canary version configuration information.
[0178] In specific implementation, the step of performing application configuration canary release processing on the target application server according to the device information and application configuration canary release rules may also include the following sub-step: 0) storing the application version information of the application server; the above sub-step 2 can be implemented in the following way: based on the application version information, determine whether the canary release ratio has reached the ratio threshold.
[0179] In specific implementation, the step of performing application configuration canary release processing on the target application server according to the device information and application configuration canary release rules may also include the following sub-step: 4) If the target application server does not meet the canary release rules, the application configuration information of the target application server is the main version configuration information.
[0180] In specific implementation, the step of performing application configuration canary release processing on the target application server based on the device information and application configuration canary release rules may further include the following sub-steps: determining the rolling release device number threshold and the number of devices currently updating the configuration within the release scope of the target application server based on the device information and application configuration rolling release rules; if the application configuration information of the target application server is canary version configuration information and the number of devices has not reached the device number threshold, then sending the canary version configuration information to the target application server. This processing method enables the rolling release of canary configuration information, thus effectively improving the overall service availability.
[0181] In another example, step S805 is performed as follows: based on the device information and the application configuration rolling release rules, the target application server is processed for application configuration rolling release.
[0182] In specific implementation, the step of performing application configuration rolling release processing on the target application server according to the device information and application configuration rolling release rules may include the following sub-steps: 1) Determine the rolling release device number threshold and the number of devices currently updating the configuration within the release scope of the target application server according to the device information and the rolling release rules; 2) If the number of devices does not reach the device number threshold, send the target application configuration information to the target application server.
[0183] In specific implementation, the step of sending target application configuration information to the target application server if the number of devices does not reach the device number threshold may include the following sub-steps: 2.1) If the number of devices does not reach the device number threshold, a configuration release token is allocated to the target application server, and a first update notification is sent to the target application server, the first update notification including the token; 2.2) An update request is received from the target application server; 2.3) If the flag bit included in the update request is yes, a second update notification is sent to the target application server, the second update notification including the target application configuration information, so that the target application server provides application services according to the target application configuration information.
[0184] In specific implementation, if the number of devices does not reach the device number threshold, the target application configuration information is sent to the target application server, which may include the following sub-steps: 2.4) receiving an update request sent by the target application server; 2.5) if the flag bit included in the update request is no, the token is revoked.
[0185] In specific implementation, the step of performing application configuration rolling release processing on the target application server according to the device information and application configuration rolling release rules may also include the following sub-steps: 3) If the number of devices reaches the device number threshold, then the process ends.
[0186] In specific implementation, the step of performing application configuration rolling release processing on the target application server according to the device information and application configuration rolling release rules may also include the following sub-steps: if the target application server has updated its configuration, then the process ends.
[0187] As can be seen from the above embodiments, the application configuration publishing method provided in this application provides the following steps: First, the configuration publishing server determines a set of correspondences between the Internet Protocol (IP) addresses of multiple application servers and their device information. Then, in response to an application configuration request sent by an application server, the configuration publishing server determines the device information of the target application server based on the set of correspondences and the IP address information of the target application server carried in the request. Finally, the server performs application configuration publishing processing on the target application server according to the device information and application configuration publishing rules. This approach ensures that changes to the device information of the application server are handled centrally, eliminating the need for the application server to upload device information. Changing device information does not affect the application code, and there is no need to restart the service. Therefore, it effectively improves the availability and stability of application services.
[0188] Fourth embodiment
[0189] In the above embodiments, an application configuration publishing method is provided. Correspondingly, this application also provides an application configuration publishing apparatus. This apparatus corresponds to the embodiments of the above method. Since the apparatus embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant parts can be referred to in the description of the method embodiments. The apparatus embodiments described below are merely illustrative.
[0190] In this embodiment, the application configuration publishing device includes:
[0191] The device information setting unit is used to determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0192] The device information extension unit is used to determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server carried in the request, in response to the application configuration request.
[0193] The application configuration publishing unit is used to perform application configuration publishing processing on the target application server according to the device information and application configuration publishing rules.
[0194] Fifth Embodiment
[0195] In the above embodiments, an application configuration publishing system is provided. Correspondingly, this application also provides an application configuration publishing method, which can be used on an application server. This method corresponds to the embodiments of the above system. Since the method embodiments are basically similar to the system embodiments, they are described simply, and relevant details can be found in the descriptions of the system embodiments. The method embodiments described below are merely illustrative.
[0196] The method provided in this embodiment may include the following steps:
[0197] Step 1: Send an application configuration request, which includes the Internet Protocol (IP) address information of the application server;
[0198] Step 2: Receive application configuration information;
[0199] Step 3: Provide application services based on application configuration information;
[0200] The application service configuration information is determined by the configuration publishing server using the following steps:
[0201] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0202] Based on the corresponding relationship set and the IP address information included in the request, determine the device information of the target application server;
[0203] Based on the device information and application configuration publishing rules, the target application server is processed for application configuration publishing.
[0204] Sixth Embodiment
[0205] In the above embodiments, an application configuration publishing method is provided. Correspondingly, this application also provides an application configuration publishing apparatus. This apparatus corresponds to the embodiments of the above method. Since the apparatus embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant parts can be referred to in the description of the method embodiments. The apparatus embodiments described below are merely illustrative.
[0206] In this embodiment, the application configuration publishing device includes:
[0207] A request sending unit is used to send an application configuration request, the request including the Internet Protocol IP address information of the application server;
[0208] Information receiving unit, used for application configuration information;
[0209] The application service unit is used to provide application services based on application configuration information.
[0210] The application service configuration information is determined by the configuration publishing server using the following steps:
[0211] Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information;
[0212] Based on the corresponding relationship set and the IP address information included in the request, determine the device information of the target application server;
[0213] Based on the device information and application configuration publishing rules, the target application server is processed for application configuration publishing.
[0214] Seventh Embodiment
[0215] In the above embodiments, an application configuration publishing system is provided. Correspondingly, this application also provides an application configuration publishing method, which can be used in a device information setting client. This method corresponds to the embodiments of the above system. Since the method embodiments are basically similar to the system embodiments, they are described simply, and relevant parts can be referred to in the description of the system embodiments. The method embodiments described below are merely illustrative.
[0216] The method provided in this embodiment may include the following steps:
[0217] Step 1: Determine the device information for the application server;
[0218] Step 2: Send a device information setting request to the configuration publishing server;
[0219] The configuration publishing server processes the request using the following steps:
[0220] The system stores the mapping relationship between the IP address of the application server and device information, and the mapping relationship is used to expand the device information of the application server when publishing application configuration.
[0221] Eighth embodiment
[0222] In the above embodiments, an application configuration publishing method is provided. Correspondingly, this application also provides an application configuration publishing apparatus. This apparatus corresponds to the embodiments of the above method. Since the apparatus embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant parts can be referred to in the description of the method embodiments. The apparatus embodiments described below are merely illustrative.
[0223] In this embodiment, the application configuration publishing device includes:
[0224] The information determination unit is used to determine the device information of the application server.
[0225] The request sending unit is used to send a device information setting request to the configuration publishing server.
[0226] The configuration publishing server processes the request using the following steps:
[0227] The system stores the mapping relationship between the IP address of the application server and device information, and the mapping relationship is used to expand the device information of the application server when publishing application configuration.
[0228] Ninth Embodiment
[0229] In the above embodiments, an application configuration publishing method is provided. Correspondingly, this application also provides an electronic device. This device corresponds to the embodiments of the above method. Since the device embodiments are basically similar to the method embodiments, the description is relatively simple, and relevant details can be found in the description of the method embodiments. The device embodiments described below are merely illustrative.
[0230] An electronic device according to this embodiment includes: a processor and a memory; the memory is used to store a program for implementing an application configuration publishing method, and the device is powered on and runs the program of the method through the processor.
[0231] Although this application discloses preferred embodiments as described above, it is not intended to limit this application. Any person skilled in the art can make possible changes and modifications without departing from the spirit and scope of this application. Therefore, the scope of protection of this application should be determined by the scope defined in the claims of this application.
[0232] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0233] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0234] 1. Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include non-transitory computer-readable media, such as modulated data signals and carrier waves.
[0235] 2. Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
Claims
1. An application configuration distribution system, characterized by, include: The configuration and publishing module is used to determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information; For an application configuration request, the device information of the target application server is determined based on the corresponding relationship set and the IP address information of the target application server carried in the request; based on the device information and the application configuration release rules, the application configuration release process is performed on the target application server, and the determined application configuration information is sent to the target application server; the configuration release server stores application configuration information for multiple versions of multiple applications; the application configuration release rules include application configuration canary release rules and application configuration rolling release rules; The application service module is used to send the request and provide application services based on the received application configuration information.
2. An application configuration distribution system characterized by comprising: include: The device information database is used to store the mapping relationship between the Internet Protocol IP addresses of multiple application servers and device information; The configuration publishing service module is used to receive application configuration requests sent by the application server; Based on the IP address information of the target application server carried in the request, the device information extension module is invoked to determine the device information of the target application server; Based on the device information of the target application server, the configuration release decision module is invoked to perform application configuration release processing on the target application server; The device information extension module is used to determine the device information of the target application server based on the corresponding relationship set and the IP address information of the target application server. Configure the deployment rule engine to set application deployment rules and parse application deployment rules. The configuration and release decision module is used to perform application configuration release processing on the target application server based on the device information of the target application server and the parsed release rules, and send the determined application configuration information to the target application server; the configuration and release server stores application configuration information for multiple versions of multiple applications; the application configuration release rules include application configuration canary release rules and application configuration rolling release rules; the application server is also used to provide application services based on the received application configuration information.
3. A method of application configuration publishing, the method comprising: include: Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information; For an application configuration request, the device information of the target application server is determined based on the corresponding relationship set and the IP address information of the target application server carried in the request. Based on the device information and application configuration release rules, the target application server is processed for application configuration release, and the determined application configuration information is sent to the target application server. The configuration release server stores application configuration information for multiple versions of multiple applications. The application configuration release rules include application configuration canary release rules and application configuration rolling release rules. The application server is also used to provide application services based on the received application configuration information.
4. The method according to claim 3, characterized in that, The process of determining the set of correspondences between the Internet Protocol (IP) addresses of multiple application servers and device information includes: Receive device information setting request; The corresponding relationship is determined based on the setting request.
5. The method according to claim 3, characterized in that, The application configuration release rules include: application configuration canary release rules; Based on the device information and application configuration canary release rules, perform application configuration canary release processing on the target application server, including: Parse the grayscale release rules; Based on the device information and the parsed canary release rules, determine whether the target application server meets the canary release rules; If the above judgment result is yes, then the application configuration information of the target application server is the grayscale version configuration information.
6. The method according to claim 3, characterized in that, The application configuration release rules include: application configuration rolling release rules; Based on the device information and application configuration rolling release rules, the target application server is subjected to application configuration rolling release processing, including: Based on the device information and the rolling release rules, determine the threshold number of rolling release devices and the number of devices currently updating the configuration within the release scope of the target application server; If the number of devices does not reach the device number threshold, the target application configuration information is sent to the target application server.
7. The method according to claim 6, characterized in that, If the number of devices does not reach the device number threshold, then the target application configuration information is sent to the target application server, including: If the number of devices does not reach the device number threshold, a configuration release token is allocated to the target application server, and a first update notification is sent to the target application server, the first update notification including the token; Receive an update request from the target application server; If the flag bit included in the update request is yes, a second update notification is sent to the target application server. The second update notification includes target application configuration information so that the target application server can provide application services based on the target application configuration information.
8. An application configuration distribution method characterized by comprising: include: Send an application configuration request, the request including the Internet Protocol (IP) address information of the application server; Receive application configuration information; Provide application services based on application configuration information; The application configuration information is determined by the configuration publishing server using the following steps: Determine the set of correspondences between the Internet Protocol IP addresses of multiple application servers and device information; Based on the corresponding relationship set and the IP address information included in the request, determine the device information of the target application server; Based on the device information and application configuration release rules, the target application server is processed for application configuration release, and the determined application configuration information is sent to the target application server; the configuration release server stores application configuration information for multiple versions of multiple applications; the application configuration release rules include application configuration canary release rules and application configuration rolling release rules.
9. A method of application configuration publishing, the method comprising: include: Determine the device information of the application server; Send a device information setting request to the configuration publishing server; The configuration publishing server processes the request using the following steps: The system stores the mapping relationship between the IP address of the application server and device information, and the mapping relationship is used to expand the device information of the application server when publishing application configuration; The configuration publishing server is further configured to perform application configuration publishing processing on the target application server according to the device information and application configuration publishing rules, and send the determined application configuration information to the target application server; the configuration publishing server stores application configuration information for multiple versions of multiple applications; the application configuration publishing rules include application configuration canary release rules and application configuration rolling release rules.
10. An electronic device, comprising: include: Processor and memory; A memory for storing a program that implements the application configuration publishing method according to any one of claims 3-9, wherein the electronic device is powered on and the program of the method is executed by the processor.