Large-scale service scheduling method and system for public cloud virtual network control plane
By employing a hierarchical governance and label scheduling approach, the performance bottlenecks and scalability issues of the virtual network controller service for large-scale cloud computing nodes were resolved, enabling efficient service discovery and canary releases, thereby improving the system's reliability and flexibility.
Patent Information
- Application Number
- PCT/CN2024/138518
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-06
- Filing Date
- 2025-03-14
- Publication Date
- 2026-01-08
AI Technical Summary
Existing technologies for managing virtual network controller services for large-scale cloud computing nodes suffer from performance bottlenecks, difficulties in service discovery, inability to scale horizontally, lack of proximity access and latency-priority scheduling, and insufficient canary deployment capabilities.
A layered system governance approach is adopted, with Mesh and Scale services managing Provider and Consumer respectively. Shared memory and tag scheduling are used to achieve elastic scaling and intelligent switching of services. Multicast is used to synchronize information, canary releases are supported, and latency detection and localized access are performed through the client SDK.
It solves the scalability problem of service discovery, improves system performance and scalability, reduces access latency, enables automatic service degradation and canary release capabilities, and decouples the Consumer and Provider.
Smart Images

Figure CN2024138518_08012026_PF_FP_ABST
Abstract
Description
A large-scale service scheduling method and system for a public cloud virtual network control plane
[0001] The present application claims priority to the Chinese patent application No. CN202410548141.0, filed on May 6, 2024, and entitled "A large-scale service scheduling method and system for a public cloud virtual network control plane", the contents of which are hereby incorporated by reference in its entirety. TECHNICAL FIELD
[0002] The present application belongs to the field of cloud computing networks, and particularly relates to a large-scale service scheduling method and system for a public cloud virtual network control plane. BACKGROUND
[0003] In cloud computing, a large region will deploy a super-large number of computing nodes in a data center, and the number of physical machine computing nodes can reach tens of thousands or even 10+ thousands; dozens or hundreds of virtual machines or a larger number of lightweight containers will be deployed on each computing node; a distributed controller service or agent of a virtual network will be deployed on each computing node, and the distributed controller service or agent is used to manage the network-related configurations of the local virtual machines or containers.
[0004] How to effectively manage a large number of controller service instances and control plane management service instances is a great challenge. Different methods and means are used by various cloud vendors to cope with the large-scale challenge in the control plane, and because of historical reasons or technical debt, it is rarely perfect. The application of conventional service discovery means to governance will bring performance challenges in scale. The commonly used methods such as etcd or consul, and zookeeper in the industry will not have a management scale higher than 10,000 nodes. When the management scale approaches 10,000 nodes, the conventional service discovery scheme will have various performance bottlenecks, such as too many connections, keep-alive management, frequent registration and deregistration, which causes the server to be unable to withstand frequent changes, and various abnormal timeouts and inability to provide services in time or even service crashes; in addition, the server strongly consistent system itself also has quantity and scale limitations, cannot support high-frequency operations, and has bottlenecks in memory and IO, and cannot be horizontally expanded; the existing system lacks a nearby access and latency priority scheduling scheme; the existing system often needs external deployment systems to cooperate to realize gray release, and lacks internal gray capability. SUMMARY
[0005] The present application provides a large-scale service scheduling method and system for a public cloud virtual network control plane to solve the problems in the prior art.
[0006] In a first aspect, a large-scale service scheduling method for a public cloud virtual network control plane is provided, and the method comprises the following steps:
[0007] S1, setting a Provider service party and a label attribute thereof, and registering a service name on a scale service through the service party;
[0008] S2, accessing through a consumer according to the Provider service party, and registering and scheduling according to a label;
[0009] S3, registering Provider information on a scale through a Mesh service according to a shared memory;
[0010] S4, performing elastic scaling registration through a Scale service according to the shared memory.
[0011] Further, S1 specifically includes:
[0012] S11, registering a listening port and an IP address of a service and a corresponding exposed service name on a scale service through a Provider service party;
[0013] S12, labeling the Provider service party with a corresponding label attribute, and judging scheduling according to the attribute.
[0014] Further, S2 further includes:
[0015] S21, obtaining the IP and port of the corresponding Provider on a scale through a service name by a consumer;
[0016] S22, performing selection of the Provider service party instance through the consumer according to the label.
[0017] Further, S3 specifically includes:
[0018] S31, performing multi-instance cluster deployment according to the Provider service party instance;
[0019] S32, storing registration mapping information of the Provider service party and the scale service, and providing a Key / Value-based query interface.
[0020] In a second aspect, an embodiment of the present application 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 the public cloud virtual network control plane in the first aspect, and the system includes:
[0021] a service module, configured to set a Provider service party and a label attribute thereof, and register a service name on a scale service through the service party;
[0022] An access module is configured to access the Provider service through a consumer, and register and dispatch according to a label;
[0023] A first registration module is configured to register Provider information through a Mesh service according to a shared memory, and provide scale;
[0024] A second registration module is configured to perform elastic scaling registration through a Scale service according to the shared memory.
[0025] Further, the service module specifically includes:
[0026] A service registration unit is configured to register a listening port and an IP address of a service and a corresponding exposed service name of the Provider service on a scale service;
[0027] A dispatch processing unit is configured to mark the Provider service with a corresponding label attribute, and make a dispatching judgment according to the attribute.
[0028] Further, the access module further includes:
[0029] A port acquisition unit is configured to acquire an IP and a port of the Provider through a service name on the scale by the consumer;
[0030] An instance optimization unit is configured to optimize the Provider service instance through the consumer according to the label.
[0031] Further, the first registration module specifically includes:
[0032] A cluster deployment unit is configured to perform multi-instance cluster deployment according to the Provider service instance;
[0033] An interface service unit is configured to store registration mapping information of the Provider service and the scale service, and provide a Key / Value-based query interface.
[0034] In a third aspect, an electronic device is provided, including a memory and a processor, the memory is configured to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method in the first aspect.
[0035] In a fourth aspect, an embodiment of the present application provides a computer storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method in the first aspect.
[0036] The method has the following advantages: the method cuts the governance of services with different change frequencies through a layered system, such as subscribing and pushing services in a Mesh service layer according to the fact that the number of service providers is relatively small, the number of consumer ends is relatively large and changes frequently, and the consumer ends subscribe and push services in a scale service layer and intelligently switch on the client; the information of the Mesh service is synchronized through a multicast mode and a custom protocol; the traffic is finely scheduled through an attribute marking method, the service is accessed locally, and cross availability zone access is avoided as much as possible in non-special cases; the service can be automatically degraded or manually degraded through a configuration center control; the memory of the services at all levels is removed, and the dependence on etcd or a database is removed; the low-latency service instance can be selected through service latency detection through policy configuration; and the gray release capability is realized through label scheduling. BRIEF DESCRIPTION OF DRAWINGS
[0037] The accompanying drawings are included to provide a further understanding of the application and are incorporated herein and constitute a part of the detailed description. The drawings illustrate embodiments of the application and, together with the description, serve to explain the principles of the application. In the drawings:
[0038] FIG. 1 is a flowchart of a large-scale service scheduling method of a public cloud virtual network control plane according to an embodiment of the present application;
[0039] FIG. 2 is a schematic diagram of a large-scale service scheduling system of a public cloud virtual network control plane according to an embodiment of the present application;
[0040] FIG. 3 is an implementation schematic diagram of a large-scale service scheduling method of a public cloud virtual network control plane according to an embodiment of the present application. DETAILED DESCRIPTION
[0041] In order to enable persons skilled in the art to better understand the technical solutions in the embodiments of the present application, the technical solutions of the present application will be described clearly and completely below with reference to the drawings. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all the embodiments. It should be understood that these descriptions are only exemplary and are not used to limit the scope of the present application. Based on the embodiments of the present application, all other embodiments obtained by persons skilled in the art without creative labor should fall within the scope of protection of the present application.
[0042] Furthermore, in the following description, descriptions related to well-known functions and constructions are omitted in order not to unnecessarily obscure the application with details that are well known to persons of ordinary skill in the art.
[0043] In the description of the present application, it should be noted that the terms "center", "upper", "lower", "left", "right", "vertical", "horizontal", "inner", "outer", and the like, indicate relative positions or orientation relationships based on the positions or orientation relationships shown in the drawings, and are only for the convenience of describing the present application and simplifying the description, and do not indicate or imply that the systems or elements referred to must have a particular orientation, be constructed and operated in a particular orientation, and therefore cannot be understood as limiting the present application. In addition, the terms "first", "second", "third" are only for the purpose of description, and cannot be understood as indicating or implying relative importance. The terms "mounting", "connecting", "connecting" should be interpreted broadly, for example, it can be fixed connection, or detachable connection, or integral connection; it can be mechanical connection, or electrical connection; it can be direct connection, or indirect connection through intermediate medium, or internal communication of two elements. For those skilled in the art, the specific meaning of the above terms in the present application can be understood according to the specific circumstances.
[0044] The exemplary embodiments will be described in detail herein with reference to the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with the present application. Instead, they are merely examples of methods and systems consistent with some aspects of the present application as detailed in the appended claims.
[0045] Embodiment one:
[0046] Figure 1 shows a flow chart of a large-scale service scheduling method for a public cloud virtual network control plane. As shown in Figure 1, the large-scale service scheduling method for the public cloud virtual network control plane provided by the embodiment comprises:
[0047] S1, setting a Provider service party and its label attribute, and registering a service name on a scale service through the service party;
[0048] S2, according to the Provider service party, accessing through a consumer, and classifying and registering and scheduling according to the label;
[0049] S3, according to the shared memory, providing scale registration Provider information through the Mesh service;
[0050] S4, according to the shared memory, performing elastic scaling registration through the Scale service.
[0051] In the method of the present application, as shown in the implementation schematic diagram of FIG. 3, first, according to S1, the Provider service provider, such as a cloud computing IaaS level tenant management service, a regional tenant cache service, a network element management service, a cluster group management service, and the like, is managed. S1 specifically includes:
[0052] S11, registering the listening port and IP address of the service and the corresponding exposed service name to the scale service through the Provider service provider;
[0053] S12, labeling the corresponding attribute to the Provider service provider, and making a scheduling judgment according to the attribute.
[0054] The Provider registers the listening port and IP address of the service and the corresponding exposed service name (i.e., service name) to the scale service;
[0055] When registering, a specific label attribute is supported for the Provider, and a scheduling judgment is made according to the attribute. Commonly, the label is labeled according to AZ, and AZ is accessed preferentially;
[0056] Next, according to S2, the Consumer-consumer accesses the client service or program of the Provider, such as a cloud computing IaaS level computing node controller, a network element controller, a cross-domain agent, and an API service; label classification registration and scheduling are supported; local cache is supported; S2 further includes:
[0057] S21, the consumer obtains the corresponding IP and port of the Provider on the scale through the service name;
[0058] S22, the consumer performs the selection of the Provider service provider instance according to the label.
[0059] Next, according to S3, the Mesh service-a comprehensive registration service based on shared memory, multi-instance high availability, all instances holding homogeneous information, cluster deployment, providing consistent registration service, query service, notification service, providing the scale registration Provider information in the system, and only opening the registration to the scale; specifically includes:
[0060] S31, providing multi-instance cluster deployment, and it is suggested that more than or equal to one instance is deployed in each AZ. The c3AZ in the present network deployment can meet the availability requirement with one instance in each AZ;
[0061] S32, store the registration mapping information of Provider and scale, and provide a Key / Value-based query interface;
[0062] S33, support the watch-notify mechanism, and notify the list members interested in the new registration or new deregistration;
[0063] S34, provide a kernel persistence implementation based on shared memory, to avoid data loss or reacquisition caused by process-level restart;
[0064] S35, provide a mirrorized homogeneous storage, and the information views among instances are strongly consistent, and the underlying paxos distributed strong consistency protocol is used to provide the strong consistency of the storage information;
[0065] S36, provide a keep-alive heartbeat service and a version-based synchronization service between instances, to facilitate the new instance or the instance after restart to join the cluster, and only after complete synchronization, the service is provided externally;
[0066] S37, provide a tag service, and each instance can be flexibly tagged, and is flexibly scheduled according to the tag;
[0067] S38, test support 10,000+ Provider / 9+ Scale / 10+ tag / single instance 1000+ QPS.
[0068] Next, according to S4, the scale service, a registration service based on memory implementation, multiple-instance high availability, each instance holds the same Provider information and a divided consumer information, and the consumer information of all scale instances constitutes the whole consumer information, in general, the scale holds the non-overlapping consumer information, and the scale opens the registration of Provider and consumer, and specifically includes:
[0069] S41, provide multi-instance cluster deployment, and each AZ is suggested to deploy greater than or equal to 3 instances. The present network deployment instance 3AZ: each AZ 3 instances can meet the availability and performance requirements;
[0070] S42, store the registration mapping information of consumer and Provider, and provide a Key / Value-based query interface;
[0071] S43, support the watch-notify mechanism, and notify the list members interested in the new registration or new deregistration;
[0072] S44, provide a pure in-memory implementation, high performance and extreme access;
[0073] S45, pull the provider list from the Mesh service and listen to the provider change notification;
[0074] S46, each scale instance only manages the mapping relationship between the consumer registered to the instance and the corresponding provider;
[0075] S47, the client sdk of scale provides a configurable consistent hash algorithm for the election of scale instance;
[0076] S48, provide a tag service, each instance can be flexibly labeled, and can be flexibly scheduled according to the label. The present network deployment: support scheduling according to AZ optimization;
[0077] S49, test support 100+Provider / 50+Scale / 100 million+Consumer / 10+tag / single instance 10000+QPS.
[0078] Through the method of the application, the scale problem of service discovery can be solved: hierarchical management-Provider change is finally registered in the Mesh layer, passing through scale; consumer is registered in the scale layer, which can support 100+ million nodes. Hierarchical management can decouple the coupling of consumer and Provider in the same service, solve the problem of connection and notification of consumer scale and performance in the role of the existing system of Mesh and scale integration; after decoupling, Mesh only needs to process the registration information synchronization of a relatively small number of Providers, the scale is greatly reduced, and the performance is worry-free;
[0079] Solve the single-instance scheduling performance bottleneck problem: pure memory implementation-Mesh and scale are implemented in memory, object pool and object reuse are implemented by service management memory, reducing system call overhead and memory fragmentation problems caused by temporary system memory object application; implement long connection pool management, abandon short link scheme, reduce the overhead of frequent production and destruction of connection objects; the fast version is implemented in C++, and the standard version is implemented in Go; the client sdk uses local cache and notify mechanism to reduce access to scale or Mesh in the scene without changes, and also considers timely updates in the case of changes.
[0080] Solve the access delay problem: service network delay detection-adopt client sdk to collect delay information of service side's network icmp or tcp detection, as a reference in scheduling decision, prefer the service instance with the lowest delay, and realize the delay priority strategy.
[0081] Solve the problem of service restart reloading slow: shared memory implementation-Mesh uses shared memory implementation, which can maintain the persistence level of kernel level. In the case of process restart os, data will not be lost. As long as the shared memory mapping point is re-mounted, the previously written data can be accessed, which greatly speeds up the process level upgrade or restart caused by fault; At the same time, the multicast communication between Mesh peers and the incremental synchronization with version confirmation can also greatly speed up the loading speed of new instances.
[0082] Solve the problem of performance level expansion: scale horizontal expansion-scale instance is stateless, and Provider information can be pulled and notified of changes from Mesh; The client does consistent hash on scale-list to select strategy, which can divide the consumer number, and each scale instance only processes part of the consumer; 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, the scheme can support more than 1 million nodes, and can support higher expansion in actual testing, and can also be deployed in multiple clusters.
[0083] Solve the problem of service degradation or fallback: service health check-sdk implements service keepalive detection, and removes invalid nodes in time. At the same time, for the instance that fails to call, after reasonable retry, it is automatically switched to other available instances without feeling, and the monitoring is reported at the same time.
[0084] Solve the problem of access bypass: AZ access nearby-according to AZ configuration, match the service side and consumer in the same AZ, and let the consumer preferentially access the service side in the same AZ.
[0085] Solve the problem of gray release-user and service tagging-through user and service tagging, the traffic of specific tagged users can only enter the corresponding tagged service instance, thereby realizing the gray release capability.
[0086] Embodiment two:
[0087] Figure 2 shows a large-scale service scheduling system of public cloud virtual network control plane, in order to realize the method described in embodiment one, as shown in figure 2, the large-scale service scheduling system of public cloud virtual network control plane provided by the embodiment comprises:
[0088] Service module, for setting Provider service side and its label attribute, and registering service name on scale service through the service side;
[0089] An access module is configured to access a consumer according to a Provider service, and register and dispatch according to a tag;
[0090] A first registration module is configured to register Provider information according to a shared memory, and through a Mesh service to provide scale;
[0091] A second registration module is configured to register according to the shared memory, and through a Scale service to provide elasticity.
[0092] Further, the service module specifically includes:
[0093] A service registration unit is configured to register a listening port and an IP address of a service and a corresponding exposed service name of the service to a scale service through a Provider service;
[0094] A dispatch processing unit is configured to mark a corresponding tag attribute on the Provider service, and make a dispatching judgment according to the attribute.
[0095] Further, the access module further includes:
[0096] A port acquisition unit is configured to acquire an IP and a port of the corresponding Provider on the scale through a service name by the consumer;
[0097] An instance preferred unit is configured to prefer the Provider service instance according to the tag by the consumer.
[0098] Further, the first registration module specifically includes:
[0099] A cluster deployment unit is configured to deploy multiple instances of the Provider service according to the Provider service instance;
[0100] An interface service unit is configured to store registration mapping information of the Provider service and the scale service, and provide a Key / Value-based query interface.
[0101] Embodiment three:
[0102] The embodiment also provides an electronic device including a memory and a processor, the memory is configured to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method of embodiment one;
[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 (MCU), a microprocessor, or other electronic elements, which are used to execute the methods in the above embodiments.
[0104] The method implemented by the embodiment is as described in Embodiment One.
[0105] Embodiment Four
[0106] The embodiment also provides a computer readable storage medium, which stores a computer program. When the computer program is executed by one or more processors, the method of Embodiment One is implemented.
[0107] The computer readable storage medium can be implemented by any type of volatile or non-volatile storage devices or a combination thereof, such as a Static Random Access Memory (SRAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), an Erasable Programmable Read-Only Memory (EPROM), a Programmable Read-Only Memory (PROM), a Read-Only Memory (ROM), a magnetic storage, a flash memory, a magnetic disk or an optical disk.
[0108] The method implemented by the embodiment is as described in Embodiment One.
[0109] It should be pointed out finally that the above embodiments are only used to illustrate the technical solutions of the embodiments of the present application, but not to limit them. Although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those skilled in the art that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features can be replaced equivalently; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application. Any changes or replacements that can be easily thought of by those skilled in the art within the technical scope disclosed by the present application should be covered within the protection scope of the present application.
Claims
A large-scale service scheduling method for a public cloud virtual network control plane, wherein, Comprise: S1, set Provider service and its label attribute, through the service in scale service name registration; S2, according to the Provider service, through consumer access, and according to the label classification registration and scheduling; S3, according to the shared memory, through the Mesh service scale registration Provider information; S4, according to the shared memory, through the Scale service registration. The method for large-scale service scheduling of a public cloud virtual network control plane according to claim 1, wherein, S1 comprises: S11, through the Provider service, the service's listening port and IP address and the corresponding exposed service name are registered on scale service; S12, the Provider service is marked with corresponding label attribute, and the scheduling is judged according to the attribute. The method according to claim 2, wherein, S2 further comprises: S21, the consumer obtains the corresponding Provider's IP and port on scale through service name; S22, according to the label, the Provider service instance is preferred by the consumer. The method according to claim 3, wherein, S3 comprises: S31, according to the Provider service instance, multiple instance cluster deployment is carried out; S32, the registration mapping information of Provider service and scale service is stored, and the Key / Value based query interface is provided. A large-scale service scheduling system for a public cloud virtual network control plane, wherein The large-scale service scheduling method for realizing the public cloud virtual network control plane of claim 1 to 4, the system comprises: service module, for setting Provider service and its label attribute, through the service in scale service name registration; access module, for according to the Provider service, through consumer access, and according to the label classification registration and scheduling; the first registration module, for according to the shared memory, through the Mesh service scale registration Provider information; the second registration module, for according to the shared memory, through the Scale service registration. The large-scale service scheduling system of a public cloud virtual network control plane according to claim 5, wherein, The service module comprises: service registration unit, for through the Provider service, the service's listening port and IP address and the corresponding exposed service name are registered on scale service; Scheduling processing unit, for the Provider service is marked with corresponding label attribute, and the scheduling is judged according to the attribute. The large-scale service scheduling system of a public cloud virtual network control plane according to claim 6, wherein, The access module further comprises: port acquisition unit, for the consumer obtains the corresponding Provider's IP and port on scale through service name; Instance optimization unit, for according to the label, the Provider service instance is preferred by the consumer. The large-scale service scheduling system of a public cloud virtual network control plane according to claim 7, wherein, The first registration module comprises: Cluster deployment unit, for according to the Provider service instance, multiple instance cluster deployment is carried out; An interface service unit is configured to store registration mapping information of a Provider service and a scale service, and provide a Key / Value-based query interface. An electronic device, wherein, The method comprises a memory and a processor, the memory is used for storing one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the large-scale service scheduling method of the public cloud virtual network control plane as claimed in any one of claims 1-4. A computer-readable storage medium, wherein, The computer program is stored in the computer readable storage medium and is executed by the processor to implement the large-scale service scheduling method of the public cloud virtual network control plane as claimed in any one of claims 1-4.