A large-scale service scheduling method and system for public cloud virtual network control plane
Through hierarchical governance and shared memory methods, the performance bottlenecks and expansion problems of large-scale virtual network controller services are solved, efficient service discovery and grayscale release are achieved, scheduling performance and access latency are improved, and local access and elastic scaling are supported.
Patent Information
- Application Number
- CN202410548141.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-06
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2044-05-06
AI Technical Summary
Existing technologies for managing large-scale virtual network controller service instances suffer from performance bottlenecks, inability to scale horizontally, limited service discovery solutions, lack of proximity access and latency-priority scheduling, and insufficient grayscale release capabilities.
A layered system governance approach is adopted, with subscriptions and push notifications performed at the Mesh service layer through the Provider service and subscriptions and push notifications performed at the Scale service layer through the Consumer service. Shared memory and label scheduling are combined to achieve elastic scaling and intelligent switching of services. Multicast is used to synchronize information, fine-tune traffic scheduling, and automatic or manual service degradation is achieved through control of the configuration center.
It solves the scale problem of service discovery, improves scheduling performance, reduces access latency, supports efficient grayscale release, realizes localized access and horizontal expansion of services, avoids cross-availability zone access, and reduces dependence on etcd or database by in-memory services.
Smart Images

Figure CN118474192B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of cloud computing networks, and in particular relates to a large-scale service scheduling method and system for a public cloud virtual network control plane. Background Art
[0002] In cloud computing, large regions deploy ultra-large-scale computing nodes in data centers, with the number reaching tens of thousands or even 100,000+ physical computing nodes. Each computing node hosts dozens or hundreds of virtual machines (VMs), or even a larger number of lightweight containers. Each computing node also deploys a distributed controller service or agent for the virtual network, which manages the network-related configuration of the local VMs or containers.
[0003] Effectively managing this massive number of controller service instances and control plane management service instances is a significant challenge. Cloud vendors employ varying approaches and methods to address these large-scale challenges, and due to historical reasons and technical debt, few solutions are perfect. Applying conventional service discovery methods to manage these challenges presents performance challenges at scale. Commonly used solutions like etcd, Consul, and Zookeeper typically manage a single cluster scaled to no more than 10,000 nodes. As the scale approaches 10,000 nodes, conventional service discovery solutions encounter various performance bottlenecks. These include excessive connection counts, keepalive management, and frequent registration and deregistration, which can overwhelm the server's ability to handle frequent changes, leading to various timeouts, unresponsive services, and even crashes. Furthermore, server-side strong consistency systems are inherently limited in number and scale, unable to support high-frequency operations, facing memory and I / O bottlenecks, and hindering horizontal scalability. Existing systems lack proximity-based access and latency-prioritized scheduling. Furthermore, existing systems often require external deployment systems to implement phased releases, lacking inherent phased release capabilities. Summary of the Invention
[0004] In response to the problems of the prior art, the present invention provides a large-scale service scheduling method and system for a public cloud virtual network control plane. The technical solution adopted is:
[0005] In a first aspect, a large-scale service scheduling method for a public cloud virtual network control plane is provided, the method comprising:
[0006] S1, set the Provider service provider and its tag attributes, and register the service name on the scale service through the service provider;
[0007] S2, according to the Provider service provider, access through the consumer consumer, and classify registration and scheduling according to tags;
[0008] S3, based on shared memory, provides scale registration provider information through the Mesh service;
[0009] S4: Perform elastic scaling registration through the Scale service based on the shared memory.
[0010] Furthermore, it is characterized in that S1 specifically includes:
[0011] S11, register the service's listening port and IP address as well as the corresponding exposed service name to the scale service through the Provider service provider;
[0012] S12: Add corresponding label attributes to the Provider service provider and make scheduling decisions based on the attributes.
[0013] Furthermore, S2 also includes:
[0014] S21: The consumer obtains the corresponding Provider IP and port on the scale through the service name;
[0015] S22: Based on the tag, the consumer performs optimization of the Provider instance.
[0016] Furthermore, it is characterized in that S3 specifically includes:
[0017] S31, performing multi-instance cluster deployment based on the Provider service instance;
[0018] S32 stores the registration mapping information of the Provider service provider and the scale service, and provides a Key / Value-based query interface.
[0019] In a second aspect, an embodiment of the present invention provides a large-scale service scheduling system for a public cloud virtual network control plane, which is used to implement the large-scale service scheduling method for a public cloud virtual network control plane described in the first aspect. The system includes:
[0020] The service module is used to set the Provider service provider and its tag attributes, and register the service name on the scale service through the service provider;
[0021] The access module is used to access the provider through the consumer, and to register and schedule services according to the tags.
[0022] The first registration module is used to provide scale registration provider information through the Mesh service based on shared memory;
[0023] The second registration module is used to perform elastic scaling registration through the Scale service according to the shared memory.
[0024] Furthermore, the service module specifically includes:
[0025] The service registration unit is used to register the service's listening port and IP address as well as the corresponding exposed service name to the scale service through the Provider service provider;
[0026] The scheduling processing unit is used to add corresponding label attributes to the Provider service party and make scheduling decisions based on the attributes.
[0027] Furthermore, the access module further includes:
[0028] The port acquisition unit is used by the consumer to obtain the corresponding Provider IP and port on the scale through the service name;
[0029] The instance selection unit is used to select the provider instance through the consumer according to the label.
[0030] Furthermore, the first registration module specifically includes:
[0031] A cluster deployment unit, configured to perform multi-instance cluster deployment based on the Provider service instance;
[0032] The interface service unit is used to store the registration mapping information of the Provider service provider and the scale service, and provides a Key / Value-based query interface.
[0033] In a third aspect, an embodiment of the present invention provides an electronic device comprising a memory and a processor, wherein the memory is used to store one or more computer instructions, wherein when the one or more computer instructions are executed by the processor, the method described in the first aspect above is implemented.
[0034] In a fourth aspect, an embodiment of the present invention provides a computer storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it is used to implement the method described in the first aspect.
[0035] The beneficial effects of the present invention are as follows: the method of the present invention cuts the governance of services with different frequencies of change through a layered system. For example, according to the actual scenario, the number of service providers is relatively small, and subscription and push services are provided in the Mesh service layer. The number of consumers on the consumer side is relatively large and changes relatively frequently. Subscription and push services are provided in the scale service layer, and intelligent switching is implemented on the client; the information of the Mesh service is synchronized through multicast and custom protocols; through the attribute labeling method, traffic is finely scheduled and service access is localized, and cross-availability zone access is avoided as much as possible unless in special circumstances; automatic or manual downgrade of services can be achieved through configuration center control; services at all levels are memorized to remove etcd or db dependencies; the method of the present invention can support policy configuration to select low-latency service instances through service latency detection; at the same time, the method adopts label scheduling to achieve grayscale release capabilities. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] The accompanying drawings are only for the purpose of illustrating specific embodiments and are not to be considered as limiting the present invention. Throughout the drawings, the same reference numerals represent the same components. Obviously, the drawings described below are only some of the embodiments of the present invention. Those skilled in the art can also derive other drawings based on these drawings.
[0037] Figure 1 A flowchart of a large-scale service scheduling method for a public cloud virtual network control plane provided by an embodiment of the present invention;
[0038] Figure 2 A schematic diagram of a large-scale service scheduling system for a public cloud virtual network control plane provided by an embodiment of the present invention;
[0039] Figure 3 A schematic diagram of an implementation of a large-scale service scheduling method for a public cloud virtual network control plane provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0040] In order to enable those skilled in the art to better understand the technical solutions in the embodiments of the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the embodiments described are part of the embodiments of the present invention, rather than all of the embodiments. It should be understood that these descriptions are merely exemplary and are not intended to limit the scope of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative work should fall within the scope of protection of the present invention.
[0041] Furthermore, in the following description, descriptions of well-known structures and technologies are omitted to avoid unnecessarily obscuring the concepts disclosed in the present invention.
[0042] In the description of the present invention, it should be noted that, unless otherwise expressly specified and limited, the terms "center", "up", "down", "left", "right", "vertical", "horizontal", "inside", "outside" and the like indicate orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the system or component referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as limiting the present invention. In addition, the terms "first", "second" and "third" are used for descriptive purposes only and cannot be understood as indicating or implying relative importance. The terms "installed", "connected" and "connected" should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection, or an indirect connection through an intermediate medium, or it can be a communication between the internal parts of two components. For those of ordinary skill in the art, the specific meanings of the above terms in the present invention can be understood according to specific circumstances.
[0043] Exemplary embodiments will be described in detail herein, examples of which are illustrated in the accompanying drawings. In the following description, when referring to the drawings, like numbers in different figures represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all possible embodiments consistent with the present invention. Rather, they are merely examples of methods and systems consistent with certain aspects of the present invention, as detailed in the appended claims.
[0044] Example 1:
[0045] Figure 1 A flow chart of a large-scale service scheduling method for a public cloud virtual network control plane is shown. Figure 1 As shown, the large-scale service scheduling method for the public cloud virtual network control plane provided in this embodiment includes:
[0046] S1, set the Provider service provider and its tag attributes, and register the service name on the scale service through the service provider;
[0047] S2, according to the Provider service provider, access through the consumer consumer, and classify registration and scheduling according to tags;
[0048] S3, based on shared memory, provides scale registration provider information through the Mesh service;
[0049] S4: Perform elastic scaling registration through the Scale service based on the shared memory.
[0050] When using the method of the present invention, according to Figure 3As shown in the implementation diagram, first, according to S1, the Provider service provider, such as tenant management services at the cloud computing IaaS level, management area tenant cache services, network element management services, cluster group management services, etc. S1 specifically includes:
[0051] S11, register the service's listening port and IP address as well as the corresponding exposed service name to the scale service through the Provider service provider;
[0052] S12: Add corresponding label attributes to the Provider service provider and make scheduling decisions based on the attributes.
[0053] The provider will register the service's listening port and IP address as well as the corresponding exposed service name (i.e., servicename) with the scale service;
[0054] During registration, you can add specific tag attributes to the provider and make scheduling decisions based on these attributes. Typically, you can tag the provider by AZ and prioritize access to the nearest AZ.
[0055] Next, according to S2, consumers access the provider's client services or programs, such as compute node controllers, network element controllers, cross-domain proxies, and API services at the cloud computing IaaS level. This supports tag-based registration and scheduling, as well as local caching. S2 also includes:
[0056] S21: The consumer obtains the corresponding Provider IP and port on the scale through the service name;
[0057] S22: Optimize the Provider instance through the consumer according to the tag.
[0058] Next, according to S3,Mesh service - a comprehensive registration service based on shared memory,
[0059] Multi-instance high availability, all instances hold homogeneous information, are clustered and deployed, and provide consistent registration, query, and notification services. In this system, the system provides scale registration provider information, which is only open to scale registration. Specifically, it includes:
[0060] S31 provides multi-instance cluster deployment. It is recommended to deploy at least one instance in each AZ. In the current network, one instance in each AZ of c3AZ can meet the availability requirements.
[0061] S32 stores the registration mapping information of Provider and scale, and provides a key / value-based query interface;
[0062] S33 supports the watch-notify mechanism, which notifies interested list members of new registrations or deregistrations.
[0063] S34 provides kernel persistence based on shared memory to avoid data loss or retrieval caused by process-level restart;
[0064] S35 provides mirrored homogeneous storage, with strong consistency of information views between instances. The underlying layer uses the Paxos distributed strong consistency protocol to provide strong consistency of stored information.
[0065] S36 provides a keepalive heartbeat service and version-based synchronization service between instances, making it easy to add new instances or join the cluster after restart. It provides external services only after it is fully synchronized.
[0066] S37 provides labeling services, allowing flexible labeling of instances and flexible scheduling based on labels.
[0067] S38, tested to support 10,000+ Providers / 9+ Scales / 10+ Tags / 1000+ QPS per instance.
[0068] Next, according to S4, the Scale service is an in-memory, elastically scalable registration service with multiple instances for high availability. Each instance holds the same provider information and a separate consumer information. The consumer information of all scale instances constitutes the overall consumer information. Generally, the consumer information held by scale instances does not overlap. Scale is open to both provider and consumer registration, specifically including:
[0069] S41 provides multi-instance cluster deployment. It is recommended to deploy at least 3 instances per AZ. In the current network, 3 instances per AZ can meet availability and performance requirements.
[0070] S42 stores the registration mapping information of consumers and providers and provides a key / value-based query interface;
[0071] S43, supports the watch-notify mechanism, and new registrations or deregistrations will notify interested list members;
[0072] S44, providing pure in-memory implementation and high-performance access;
[0073] S45, pulls the Provider list from the Mesh service and listens for Provider change notifications;
[0074] S46, each scale instance only manages the mapping relationship between consumers registered to this instance and the corresponding providers;
[0075] S47, the scale client SDK provides a configurable consistent hash algorithm for use in electing scale instances;
[0076] S48 provides labeling services, which can flexibly label each instance and flexibly schedule it according to the label. Existing network deployment: supports optimal scheduling by AZ;
[0077] S49, tested to support 100+Providers / 50+Scale / 1 million+Consumers / 10+Tags / 10,000+QPS per instance.
[0078] The method of the present invention can solve the scale problem of service discovery: hierarchical governance - Provider changes are ultimately registered at the Mesh layer, passing through the scale; consumers are registered at the scale layer, and can support more than 1 million nodes. Hierarchical governance can decouple the coupling of consumers and providers in the same service, solving the connection, notification, and performance issues of consumer scale in existing systems where the Mesh and scale roles are combined. After decoupling, the Mesh only needs to handle issues such as synchronization of registration information for a relatively small number of providers, greatly reducing scale and ensuring performance.
[0079] Solve the performance bottleneck problem of single-instance scheduling: Pure memory implementation - Mesh and Scale are both memory-based implementations, using service-controlled memory to implement object pools and object reuse, reducing system call overhead and memory fragmentation problems caused by temporary object requests for system memory; implement long connection pool management, abandon short connection solutions, and reduce the overhead of frequent creation and destruction of connection objects; the extreme version is implemented in C++, and the standard version is implemented in Go; the client SDK uses local cache and notify mechanisms to reduce access to Scale or Mesh in unchanged scenarios, while taking into account timely updates of changes.
[0080] Solve the access delay problem: Service network delay detection - Use the client SDK to detect the service provider's network ICMP or TCP to collect delay information, which is used as a reference when making scheduling decisions. The service instance with the lowest delay is selected to implement a delay priority strategy.
[0081] Solve the problem of slow service reloading after restart: Shared memory implementation - Mesh uses shared memory to maintain kernel-level persistence. When the process restarts but the OS does not, data will not be lost. As long as the shared memory mapping point is remounted, the previously written data can be accessed, which greatly speeds up the restart impact caused by process-level upgrades or failures. At the same time, multicast communication between Mesh peers and incremental synchronization with version confirmation can also greatly speed up the loading speed of newly added instances.
[0082] Solve the problem of horizontal performance expansion: Scale horizontal expansion - scale instances are stateless, provider information can be pulled from the Mesh and change notifications can be received; the client performs consistent hashing and other selection strategies on the scale-list, and can horizontally split the number of consumers, so that each scale instance only processes a part of the consumers; when the scale cluster service reaches the upper limit of processing capacity, the processing capacity can be increased by increasing the number of scale instances. Therefore, this solution can support more than 1 million nodes, and in actual testing, it can be expanded to support higher levels, and can also be deployed in multiple clusters.
[0083] Solve service degradation or fallback problems: Service health check-sdk implements service keepalive detection and promptly removes failed nodes. At the same time, for failed instances, after reasonable retries, it automatically switches to other available instances without any sense and reports to monitoring and alarms.
[0084] Solve the access detour problem: AZ nearest access - According to the AZ configuration, match the service providers and consumers in the same AZ, so that consumers have priority access to the service providers in this AZ
[0085] Solve the grayscale release problem - user and service tagging - Through user and service tagging, the traffic of specific tagged users can only enter the corresponding tagged service instance, thus realizing grayscale release capabilities.
[0086] Example 2:
[0087] Figure 2 A schematic diagram of a large-scale service scheduling system for a public cloud virtual network control plane is shown, in order to implement the method described in Example 1. Figure 2 As shown, the large-scale service scheduling system for the public cloud virtual network control plane provided in this embodiment includes:
[0088] The service module is used to set the Provider service provider and its tag attributes, and register the service name on the scale service through the service provider;
[0089] The access module is used to access the provider through the consumer, and to register and schedule services according to the tags.
[0090] The first registration module is used to provide scale registration provider information through the Mesh service based on shared memory;
[0091] The second registration module is used to perform elastic scaling registration through the Scale service according to the shared memory.
[0092] Furthermore, the service module specifically includes:
[0093] The service registration unit is used to register the service's listening port and IP address as well as the corresponding exposed service name to the scale service through the Provider service provider;
[0094] The scheduling processing unit is used to add corresponding label attributes to the Provider service party and make scheduling decisions based on the attributes.
[0095] Furthermore, the access module further includes:
[0096] The port acquisition unit is used by the consumer to obtain the corresponding Provider IP and port on the scale through the service name;
[0097] The instance selection unit is used to select the provider instance through the consumer according to the label.
[0098] Furthermore, the first registration module specifically includes:
[0099] A cluster deployment unit, configured to perform multi-instance cluster deployment based on the Provider service instance;
[0100] The interface service unit is used to store the registration mapping information of the Provider service provider and the scale service, and provides a Key / Value-based query interface.
[0101] Example 3:
[0102] This embodiment further provides an electronic device, including a memory and a processor, wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the method of embodiment 1;
[0103] In practical applications, the processor can be an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a controller, a microcontroller unit (MCU), a microprocessor or other electronic components to execute the methods in the above embodiments.
[0104] The method implemented in this embodiment is as described in Example 1.
[0105] Example 4:
[0106] This embodiment further provides a computer storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by one or more processors, the method of embodiment 1 is implemented;
[0107] Among them, the computer-readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk.
[0108] The method implemented in this embodiment is as described in Example 1.
[0109] Finally, it should be noted that the above embodiments are merely illustrative of the technical solutions of the embodiments of the present invention, and are not intended to limit them. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they may still modify the technical solutions described in the aforementioned embodiments, or replace some of the technical features therein with equivalents; and such modifications or replacements do not deviate from the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention. Any changes or replacements that can be easily conceived by those skilled in the art within the technical scope disclosed in the present invention should be covered by the scope of protection of the present invention.
Claims
1. A large-scale service scheduling method for a public cloud virtual network control plane, characterized in that: include: S1: Set the Provider service provider and its tag attributes, and register the service name on the Scale service through the service provider; S2: Access is performed through the consumer according to the Provider service, and the Scale service performs classification registration and scheduling according to the Provider's tag attributes; S3, based on shared memory, provides Scale registration provider information through the Mesh service; S4: Perform elastic scaling registration through the Scale service based on the shared memory. Among them, S2 specifically includes: S21: The consumer obtains the corresponding Provider IP and port on Scale through the service name. S22, selecting the provider instance through the consumer according to the tag attribute; S3 specifically includes: S31, performing multi-instance cluster deployment based on the Provider service instance; S32 stores the registration mapping information of the Provider service provider and the Scale service, and provides a Key / Value-based query interface.
2. A large-scale service scheduling method for a public cloud virtual network control plane according to claim 1, characterized in that: S1 specifically includes: S11: Register the service's listening port, IP address, and corresponding exposed service name to the Scale service through the Provider service provider. S12: Add corresponding tag attributes to the Provider service provider and make scheduling decisions based on the tag attributes.
3. A large-scale service scheduling system for a public cloud virtual network control plane, characterized in that: A method for large-scale service scheduling of a public cloud virtual network control plane according to any one of claims 1 to 2, the system comprising: The service module is used to set the Provider service provider and its tag attributes, and register the service name on the Scale service through the service provider; The access module accesses services through consumers based on the provider. The scale service performs classification registration and scheduling based on the provider's tag attributes. The first registration module is used to provide Scale registration provider information through the Mesh service based on shared memory; A second registration module is configured to perform elastic scaling registration through the Scale service based on the shared memory; The access module specifically includes: The port acquisition unit is used for the consumer to obtain the corresponding Provider IP and port on the Scale through the service name; An instance selection unit, configured to select the provider instance through the consumer according to the tag attribute; The first registration module specifically includes: A cluster deployment unit, configured to perform multi-instance cluster deployment based on the Provider service instance; The interface service unit is used to store the registration mapping information of the Provider service provider and the Scale service, and provides a Key / Value-based query interface.
4. A large-scale service scheduling system for a public cloud virtual network control plane according to claim 3, characterized in that: The service module specifically includes: The service registration unit is used to register the service's listening port and IP address as well as the corresponding exposed service name with the Scale service through the Provider service provider; The scheduling processing unit is used to add corresponding label attributes to the Provider service party and make scheduling decisions based on the attributes.
5. An electronic device, characterized in that: It includes a memory and a processor, the memory is used to store one or more computer instructions, wherein when the one or more computer instructions are executed by the processor, the large-scale service scheduling method of the public cloud virtual network control plane as described in claim 1 or 2 is implemented.
6. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed by a processor, is used to implement the large-scale service scheduling method for the public cloud virtual network control plane as described in claim 1 or 2.
Citation Information
Patent Citations
Heterogeneous cloud-oriented cloud native micro-service platform
CN113596110A
Data synchronization method, device and system between Redis clusters
CN115129521A