Method for creating cloud native application network and related apparatus

WO2026175250A1PCT designated stage Publication Date: 2026-08-27HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2026/078224
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-02-18
Filing Date
2026-02-10
Publication Date
2026-08-27

Smart Images

  • Figure CN2026078224_27082026_PF_FP_ABST
    Figure CN2026078224_27082026_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a method for creating a cloud native application network and a related apparatus. The method relates to the field of cloud computing. The method comprises: pre-configuring an IPv6 network segment address on the basis of a location, and configuring routing; and upon receiving a first request sent by a tenant, a controller sending a first instruction to a target device on the basis of the first request, wherein the first request is used for requesting to create a plurality of computing instances, the first request comprises location information of the plurality of computing instances, the first instruction is used for instructing to create the plurality of computing instances at locations indicated by the location information of the plurality of computing instances, and configuring a network interface card of each computing instance and an isolation domain of the network interface card, the first instruction comprises addresses of the network interface cards of the plurality of computing instances, and the address of the network interface card of each computing instance is determined from an IPv6 network segment address of the location of the computing instance. The cloud native application network created in the present application overcomes the defects of a VPC network, achieves second-level interconnection, and improves user experience in service usage.
Need to check novelty before this filing date? Find Prior Art

Description

A method and related apparatus for creating cloud-native application networks

[0001] This application claims priority to Chinese Patent Application No. 202510176904.8, filed on February 18, 2025, entitled "A method and related apparatus for creating a cloud-native application network", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of cloud computing, and more particularly to a method and related apparatus for creating a cloud-native application network. Background Technology

[0003] Existing Virtual Private Cloud (VPC) networks employ a controller-wide forwarding database (FDB) distribution method. Each compute node's virtual switch stores the full FDB, and each compute node's virtual switch forwards traffic based on this full FDB. In this implementation, when a new compute node is added to the VPC and a new compute instance is created on that node, the controller needs to distribute the full FDB to the compute node's virtual switch and also distribute the new compute instance's FDB to the virtual switches of other compute nodes in the VPC. This allows other compute nodes to update their full FDBs. Once the new compute instance's FDB and the FDBs of the other compute nodes' virtual switches are effective, traffic forwarding between the new compute instance and compute instances on other compute nodes can occur.

[0004] However, with this approach, when the VPC network is large, the number of full FDB entries is large, and the full FDB entries on newly added compute nodes take tens of seconds or even minutes to become effective. The FDB entries on the virtual switches of other compute nodes also become effective later. This results in a long time required for newly added compute instances to access other compute instances, which affects the user experience. Summary of the Invention

[0005] This application provides a method and related apparatus for creating a cloud-native application network. The method involves pre-configuring IPv6 network segment addresses and making them accessible within the network. Then, it creates compute instances and network interface cards (NICs) according to user needs and configures isolation domains to obtain the cloud-native application network. The method for creating a cloud-native application network provided by this application is applicable to large-scale network scenarios. The created cloud-native application network overcomes the shortcomings of the aforementioned VPC networks, achieving second-level elastic activation and improving the user experience.

[0006] In a first aspect, this application provides a method for creating a cloud-native application network, comprising: firstly, pre-configuring IPv6 network segment addresses in the network according to location, and configuring routes to enable the IPv6 network segment addresses to be accessible in the network; then, when a tenant has a need, the controller receives a first request sent by the tenant, the first request being used to request the creation of multiple computing instances in the cloud-native application network, wherein the first request includes location information of multiple computing instances, the location information of each computing instance indicating the location where the computing instance is created; according to the first request, the controller sends a first instruction to a target device, the first instruction being used to instruct the creation of computing instances at the locations indicated by the location information of each computing instance, and configuring the network interface card (NIC) of each computing instance and configuring the isolation domain of the NIC of each computing instance, wherein the first instruction includes the address of the NIC of each computing instance among the multiple computing instances, wherein the address of the NIC of each computing instance is determined from the IPv6 network segment addresses of the location where the computing instance is located.

[0007] As can be seen, this application provides a method for creating a cloud-native application network. 1) This method differs from creating a VPC network. Creating a VPC network involves first creating compute instances and network interface cards (NICs) at the overlay layer based on user needs, and then routing the NICs' IP addresses within the network. The method for creating a cloud-native application network provided in this application can be applied to either the underlying underlay network or the upper overlay network. In either the underlay or overlay network, IPv6 network segment addresses are pre-configured and routed. Then, compute instances and NICs are created based on tenant needs. The IPv6 addresses of the NICs are determined from the pre-configured IPv6 network segment addresses and are pre-routed. 2) Subsequently, when adding a new compute instance in the cloud-native application network, the compute instance and network interface card (NIC) can be created directly, and an address can be selected from the pre-configured IPv6 network segment address and configured for the NIC. This enables traffic forwarding between the new compute instance and other compute instances. Therefore, the cloud-native application network created by this application can achieve second-level elastic configuration and is suitable for large-scale network scenarios, such as scenarios with millions of NICs. If the method of this application is applied in an underlay network, the compute nodes do not involve storing FDBs, which can greatly reduce the memory consumption of the compute nodes. If the method of this application is applied in an overlay network, compared with the above-mentioned VPC network, the number of FDBs stored on each compute node in this application method is also reduced, that is, the memory consumption is reduced (for example, in a VPC network, if compute node 1 is located on...). Twenty compute instances were deployed. Since VPC networks operate on a demand-first basis, creating compute instances, network interface cards (NICs), and configuring routes based on tenant needs, the virtual switches on other compute nodes in the VPC network store the File Database (FDB) for each of the 20 compute instances on compute node 1, such as the FDB for compute instance 1, the FDB for compute instance 2, and so on, up to the FDB for compute instance 20. In contrast, the cloud-native application network created in this application pre-configures IPv6 network segment addresses and configures routes based on location before creating compute instances and NICs according to tenant needs. Therefore, the FDB stored on the virtual switch of each compute node is stored by network segment address, such as the FDB of the start address to the end address of the network segment. Thus, when the method of this application is applied to an overlay network, it can still reduce the memory footprint of compute nodes.

[0008] Based on the first aspect, in possible implementations, the location information of each computing instance in multiple computing instances includes any one or any combination of regions, availability zones, and cells.

[0009] It is understandable that when creating a cloud-native application network, users can specify the locations of multiple compute instances according to their needs. The location information of compute instances can be regions, for example, compute instance 1 is located in region a and compute instance 2 is located in region b. The location information of compute instances can also be availability zones, for example, compute instance 1 is located in availability zone 1, or compute instance 1 is located in availability zone 1 within region a. The location information of compute instances can also be cells, where a cell refers to a smaller area than an availability zone; this application does not specifically limit the scope of a cell. The location information of compute instances can also be any combination of regions, availability zones, and cells, for example, compute instance 1 is located in region a and compute instance 2 is located in availability zone 2 within region b. Specifying the location information of multiple compute instances according to needs ensures that the created cloud-native application network meets the user's usage requirements and improves the user's service experience.

[0010] Based on the first aspect, in possible implementations, the location information of multiple computing instances may be the same or different.

[0011] It is understandable that the location information of multiple compute instances can be the same, such as creating multiple compute instances in one region or availability zone. The location information of multiple compute instances can be different, such as some compute instances being located in one region or availability zone, and the remaining compute instances being located in another region or availability zone.

[0012] Based on the first aspect, in a possible implementation, the method further includes: the controller receiving a second request sent by a tenant, the second request requesting the configuration of a proxy address for the network interface cards (NICs) of one or more specified computing instances; according to the second request, the controller sending a second instruction to a target device, the second instruction instructing the configuration of a proxy address for the NICs of the one or more specified computing instances, and associating the proxy address with the address of the NIC of the one or more specified computing instances. When a user accesses the one or more specified computing instances, they can access the proxy address.

[0013] Based on the first aspect, among the possible implementation methods, the computing instance includes any one of virtual machines, containers, and bare metal.

[0014] Based on the first aspect, in possible implementations, IPv6 network segment addresses are pre-configured according to location, which includes any one or any combination of regions, availability zones, data centers, racks, and compute nodes.

[0015] You can allocate a segment of IPv6 addresses to a region, with different regions using different IPv6 network address segments; you can allocate a segment of IPv6 addresses to an availability zone, with different availability zones using different IPv6 network address segments; similarly, you can allocate a segment of IPv6 addresses to a data center, a rack, or a compute node.

[0016] Secondly, this application provides a controller, comprising: a receiving module, configured to receive a first request sent by a tenant, the first request being for requesting the creation of multiple computing instances, the first request including location information of the multiple computing instances; and a sending module, configured to send a first instruction to a target device according to the first request, the first instruction being for instructing the creation of multiple computing instances at locations indicated by the location information of the multiple computing instances, and configuring the network interface cards (NICs) of the multiple computing instances and the isolation domains of the NICs of the multiple computing instances, wherein the first instruction includes the address of the NIC of each of the multiple computing instances, the address of the NIC of each computing instance being determined from the IPv6 network segment address of the location of the computing instance, the IPv6 network segment address of the location of the computing instance being pre-configured and routed.

[0017] Based on the second aspect, in possible implementations, the location information of multiple computing instances includes any one or any combination of regions, availability zones, and cells.

[0018] Based on the second aspect, in possible implementations, the location information of multiple computing instances may be the same or different.

[0019] Based on the second aspect, in a possible implementation, the receiving module is further configured to receive a second request sent by a tenant, the second request being for requesting the configuration of a proxy address for the network interface card of one or more specified computing instances; the sending module is further configured to send a second instruction to a target device according to the second request, the second instruction being for instructing the configuration of a proxy address for the network interface card of one or more specified computing instances, and associating the proxy address with the address of the network interface card of one or more specified computing instances.

[0020] Based on the second aspect, among the possible implementation methods, the computing instance includes any one of virtual machines, containers, and bare metal.

[0021] Based on the second aspect, in possible implementations, IPv6 network segment addresses are pre-configured according to location, which includes any one or any combination of regions, availability zones, data centers, racks, and compute nodes.

[0022] The modules in the second aspect and any possible implementation of the second aspect are used to implement the methods described in the first aspect or any possible implementation of the first aspect.

[0023] Thirdly, this application provides a computing device cluster including at least one computing device, each of the at least one computing device including a memory and a processor, the processor of the at least one computing device being configured to execute instructions stored in the memory of the at least one computing device to cause the computing device cluster to perform the method described in the first aspect or any possible implementation of the first aspect.

[0024] Fourthly, this application provides a computer-readable storage medium including computer program instructions that, when executed on a cluster of computing devices, cause the cluster of computing devices to perform the method described in the first aspect or any possible implementation thereof.

[0025] Fifthly, this application provides a computer program product, including program instructions that, when executed by a computing device cluster, cause the computing device cluster to perform the method described in the first aspect or any possible implementation thereof.

[0026] Sixthly, this application provides a system including a controller and a target device, the controller being used to implement the method described in the first aspect or any possible implementation of the first aspect. Attached Figure Description

[0027] Figure 1 is a flowchart illustrating a method for creating a cloud-native application network provided in this application;

[0028] Figure 2 is a schematic diagram of an interface provided in this application;

[0029] Figure 3 is a schematic diagram of another interface provided in this application;

[0030] Figure 4 is a schematic diagram of another interface provided in this application;

[0031] Figure 5 is a network diagram provided in this application;

[0032] Figure 6 is another network diagram provided in this application;

[0033] Figure 7 is another network diagram provided in this application;

[0034] Figure 8 is a schematic diagram of a system architecture provided in this application;

[0035] Figure 9 is a schematic diagram of the structure of a computing device provided in this application;

[0036] Figure 10 is a schematic diagram of the structure of a computing device cluster provided in this application;

[0037] Figure 11 is a schematic diagram of another computing device cluster provided in this application. Detailed Implementation

[0038] Before introducing the embodiments of the method of this application, let's first outline the technical terms involved in this application.

[0039] Cloud-native application (ANC) networking refers to a network built using a series of network technologies to support the operation and management of cloud-native applications. Cloud-native applications are applications designed and running in cloud computing environments, typically implemented using microservice architecture, containerization, and other methods. Cloud-native applications usually possess high scalability and elasticity.

[0040] This application provides a method for creating a cloud-native application network. First, in a wide area network (WAN) and data center network, Internet Protocol version 6 (IPv6) network segment addresses are pre-configured according to location, and routes are configured to ensure the pre-configured IPv6 network segment addresses are accessible within the network. When a user purchases a cloud-native application network service, the controller creates multiple compute instances based on the user's needs and configures a portion of the pre-configured IPv6 network segment addresses onto multiple network interface cards (NICs) of these compute instances. Then, an isolation domain is set up to achieve the creation of the cloud-native application network. The compute instances can be virtual machines, containers, bare metal, etc. After the cloud-native application network is created, users can develop and deploy cloud-native applications within it, and manage and maintain these applications.

[0041] The method for creating a cloud-native application network provided in this application is described in detail below. See Figure 1, which is a flowchart of a method for creating a cloud-native application network provided in this application. The method includes, but is not limited to, the following description.

[0042] S101. Pre-configure IPv6 network segment addresses according to location and configure routes.

[0043] This application's method utilizes IPv6 addresses. Because IPv6 addresses are sufficient, the method for creating cloud-native application networks provided in this application can be applied to large-scale networks, such as networks with millions of network interface cards (NICs). This application's method can be implemented in the underlying underlay network. When implemented in the underlying underlay network, IPv6 addresses can be directly used for address planning at the underlay network layer.

[0044] In a wide area network (WAN) or data center network, IPv6 network address segments are planned and pre-configured according to location. Location can include any combination of regions, availability zones (AZs), data centers, racks, and compute nodes. For example, if a WAN involves Beijing, Shanghai, and Shenzhen, IPv6 network address segments can be planned and pre-configured according to region, with one segment pre-configured for Beijing, another for Shanghai, and yet another for Shenzhen, ensuring no overlap between the regions. Similarly, if a WAN involves availability zones a, b, and c, IPv6 network address segments can be pre-configured according to availability zones, with one segment pre-configured for each zone, again ensuring no overlap between the availability zones. Similarly, IPv6 network segments can be pre-configured according to data centers, racks, and compute nodes, which will not be listed one by one here. Among them, compute nodes can be physical servers, virtual machines, containers, etc., and compute nodes include resources such as processors (CPU or GPU), memory, and storage.

[0045] In one example, the WAN involves multiple regions, each containing multiple availability zones. IPv6 network address segments can be planned first by region, and then further refined for each availability zone within each region. For instance, if the WAN involves Beijing, Shanghai, and Guangzhou, with Beijing including availability zones 1 and 2, Shanghai including availability zones 3 and 4, and Guangzhou including availability zone 5, then the IPv6 network addresses for Beijing, Shanghai, and Guangzhou can be planned first. Then, some IPv6 network addresses from the Beijing region can be allocated to availability zone 1, and some to availability zone 2. Similarly, some IPv6 network addresses from the Shanghai region can be allocated to availability zone 3, and some to availability zone 4. The IPv6 network addresses for Beijing, Shanghai, and Guangzhou do not overlap; availability zones 1 and 2 do not overlap; and availability zones 3 and 4 do not overlap. After planning, the planned IPv6 network addresses are pre-configured in the WAN.

[0046] After pre-configuring IPv6 network segment addresses according to location, configure routing. Configure IPv6 routes on routers and switches in the WAN (backbone) or data center network to ensure the pre-configured IPv6 network segment addresses can be accessed within the network. This can be done via Border Gateway Protocol (BGP) or static configuration.

[0047] This step can be implemented by a controller, such as a software-defined network (SDN) controller, that is, by pre-configuring IPv6 network segment addresses and configuring routes through the controller; or it can be implemented without a controller, for example, by pre-configuring IPv6 network segment addresses and configuring routes through scripts or protocols.

[0048] After pre-configuring IPv6 network segment addresses according to location, store the pre-configured IPv6 addresses in the controller.

[0049] It should be noted that the method for creating cloud-native application networks provided in this application can also be implemented in an upper-layer overlay network. For example, in one application scenario, the network devices in the underlying network do not support IPv6 addresses. In this case, the method of this application can be applied in the upper-layer overlay network. Another example is an application scenario where the existing network is deployed using IPv4 addresses. In this case, an upper-layer overlay network can be deployed on top of the existing network, and the method of this application can be used to create a cloud-native application network in the upper-layer overlay network. Yet another example is when a user wants to create a cloud-native application network at the overlay network level.

[0050] It is understood that when the method of this application is implemented in an overlay network, if the virtual switch of the compute node stores the FDB, the FDB stored on the virtual switch of the compute node is stored at the granularity of network segment, rather than at the granularity of compute instance. For example, the FDB corresponding to the start address and end address of the network segment includes the addresses of multiple compute instances (or the network cards of compute instances) between the start address and end address of the network segment. Therefore, this implementation method can still reduce the memory usage of compute nodes compared to the method of full distribution in VPC.

[0051] In an overlay network, a rack can be designated as a network address segment, a compute node can be designated as a network address segment, or other partitioning methods can be used. This application does not impose specific limitations on the IPv6 network address partitioning method.

[0052] S102. The controller receives a first request sent by the tenant. The first request is used to request the creation of multiple computing instances. The first request includes the location information of the multiple computing instances.

[0053] When a user needs to create a cloud-native application network, the user can request the creation of the network through a terminal device. For example, a user can log in to a specific page, application, or mini-program to request the creation of the network. Specifically, the tenant sends a first request through the terminal device. The controller receives the first request, which requests the creation of multiple compute instances within the cloud-native application network. The first request includes the location information of the compute instances, which includes any one or a combination of regions, availability zones, and cells. A cell is a smaller unit than an availability zone; for example, a cell can refer to a combination of multiple racks. A cell can also be other physical areas. The size of the specific physical area corresponding to a cell is not limited in this application.

[0054] The location information of a compute instance is used to indicate where the compute instance is created. For example, if the location information of a compute instance is region a, it means that the compute instance is created in region a; or if the location information of a compute instance is region a and availability zone 1, it means that the compute instance is created in availability zone 1 of region a.

[0055] Multiple compute instances can have the same location information, such as being located in the same region, the same availability zone, or the same cell. Multiple compute instances can also have different location information, such as some instances being located in region a and some in region b; or, for example, some instances being located in region a and some in availability zone 1 within region b; and so on.

[0056] A computing instance can be any of a virtual machine, a container, or bare metal. A computing instance can also be a graphics processing unit (GPU), a neural network processing unit (NPU), or other computing resources with computing capabilities.

[0057] Referring to Figure 2, which is a schematic diagram of an interface provided in this application, this interface is for a tenant to request the creation of a cloud-native application network after logging into the cloud platform. The "Name" on the interface is the name of the cloud-native application network, such as "anc-5364" which is the name of the cloud-native application network requested by the tenant. The tenant can enter some remarks in the "Description" box, such as the purpose of the network.

[0058] Figure 3 shows another interface diagram provided in this application. This interface is another diagram of the interface when a tenant logs into the cloud platform and requests the creation of a cloud-native application network. The "ANC" on the interface represents the cloud-native application network. The tenant can select the name of the cloud-native application network to be configured in the "ANC" box, and select "Location-dependent" or "Location-independent" in the "Type" box. "Location-dependent" and "Location-independent" refer to whether the created compute instance or the network card of the compute instance is location-dependent or location-independent. Location-independent refers to the proxy address of the compute instance, and location-dependent refers to the actual IPv6 address of the compute instance. The "Region" box and the "Location" box both refer to the location information of the compute instance. There is also an option "Associate Location-Independent IPv6 Proxy Address ANC Network Card" on the interface. This option refers to whether the compute instance is associated with an existing IPv6 proxy address when creating a location-dependent compute instance. If so, select "√" and select an IPv6 proxy address to be associated.

[0059] Figure 4 is another interface diagram provided in this application. This interface is another interface diagram when a tenant logs into the cloud platform and requests to create a cloud-native application network on the cloud platform. The meanings of "ANC" and "Type" on the interface are the same as those in Figure 3. There is an option "Associate location-related IPv6 address ANC network card" on the interface. This option refers to whether to associate one or more location-related IPv6 addresses when creating a location-independent proxy address for a computing instance. If so, select "√" and select one or more IPv6 addresses to be associated.

[0060] It should be noted that the interface diagrams in Figures 2 to 4 above are merely examples and do not constitute any limitation. In actual implementation, the interface may include more or fewer options; for example, the interface may include the number of computing instances to be created. This application does not limit the specific implementation of the interface.

[0061] S103. The controller sends a first instruction to the target device according to the first request. The first instruction is used to instruct the creation of multiple computing instances at the locations indicated by the location information of multiple computing instances, and to configure the network cards of the multiple computing instances and the isolation domains of the network cards of the multiple computing instances. The first instruction includes the address of the network card of each computing instance among the multiple computing instances.

[0062] After receiving the first request from the tenant, the controller sends a first instruction to the target device based on the first request. The first instruction instructs the creation of multiple computing instances at the locations indicated by the location information of multiple computing instances. For example, if the first request includes the location information of 10 computing instances, and the location information of all 10 computing instances is in region a, the controller issues the first instruction to instruct the creation of 10 computing instances in region a; if the first request includes the location information of 10 computing instances, where the location information of 5 computing instances is in region a and the location information of 5 computing instances is in region b, the controller issues the first instruction to instruct the creation of 5 computing instances in region a and 5 computing instances in region b; if the first request includes the location information of 10 computing instances, where the location information of 5 computing instances is in region a and the location information of 5 computing instances is in availability zone 1 of region b, the controller issues the first instruction to instruct the creation of 5 computing instances in region a and 5 computing instances in availability zone 1 of region b.

[0063] The target device can be a centralized management device. The controller issues the first instruction, either by sending the first instruction to the centralized management device, which could be a network management system or a configuration management server. The centralized management device then sends the first instruction to the computing device that needs to create the computing instance, and the computing device executes the first instruction. Alternatively, the target device can also be a computing device that needs to create a computing instance, where the controller directly issues the first instruction to the computing device, and the computing device executes the first instruction.

[0064] The first instruction is also used to configure the network interface cards (NICs) of multiple compute instances after they have been created. This first instruction includes the address of the NIC for each compute instance, which is determined by the controller from the IPv6 network segment address of the compute instance's location. The following example illustrates how the NIC address of a compute instance is determined.

[0065] In one example, the first request includes location information for 10 computing instances, all of which are located in region a. In step S101, the network segment addresses for region a are pre-configured, and the controller stores these network segment addresses. The controller schedules 10 addresses from the network segment addresses of region a and assigns them to the network interface cards (NICs) of the 10 computing instances located in region a. The first instruction includes the addresses of the NICs of the 10 computing instances located in region a, and this first instruction is used to instruct on configuring the addresses of the NICs of the 10 computing instances.

[0066] In one example, the first request includes location information for 10 computing instances, with 5 instances located in region a and 5 instances located in region b. In step S101, network segment addresses for region a and region b are pre-configured, and the controller stores these network segment addresses. The controller schedules 5 addresses from the network segment addresses of region a to allocate to the network interface cards (NICs) of the 5 computing instances located in region a, and schedules 5 addresses from the network segment addresses of region b to allocate to the NICs of the 5 computing instances located in region b. The first instruction includes the addresses of the NICs of the 5 computing instances located in region a and the NICs of the 5 computing instances located in region b. The first instruction is used to instruct the configuration of the addresses of the NICs of the 5 computing instances located in region a and the NICs of the 5 computing instances located in region b.

[0067] In another example, the first request includes location information for 10 compute instances, with 5 compute instances located in region a and 5 compute instances located in availability zone 1 of region b. In step S101, the network segment addresses of region a and region b (or availability zone 1 of region b) are pre-configured, and the controller stores the network segment addresses of region a and region b (or availability zone 1 of region b). The controller schedules 5 addresses from the network segment addresses of region a to allocate to the network cards of the 5 compute instances located in region a, and schedules 5 addresses from the network segment addresses of region b (or availability zone 1 of region b) to allocate to the network cards of the 5 compute instances located in availability zone 1 of region b. The first instruction includes the addresses of the network cards of the 5 compute instances located in region a and the addresses of the network cards of the 5 compute instances located in availability zone 1 of region b. The first instruction is used to instruct the configuration of the addresses of the network cards of the 5 compute instances located in region a and the addresses of the network cards of the 5 compute instances located in availability zone 1 of region b.

[0068] It is understandable that the network interface card (NIC) of a compute instance can be either a virtual NIC or a physical NIC. For example, when the compute instance is a virtual machine or a container, the NIC is a virtual NIC, while when the compute instance is a GPU or NPU, the NIC is a physical NIC.

[0069] It is understandable that IPv6 network addresses are planned according to location, and the IPv6 address of the network card of the computing instance is also determined from the IPv6 network address of the location where the computing instance is located. That is, IPv6 addresses are related to physical location.

[0070] The first instruction also instructs the configuration of isolation domains for the network interface cards (NICs) of multiple compute instances after configuring the NICs for those instances. The controller sets the isolation domain for the cloud-native application network. By setting the isolation domain for the NICs of multiple compute instances, interoperability between specified IPv6 addresses / NICs is achieved, thereby isolating the cloud-native application network within the WAN or data center network.

[0071] Network interface cards (NICs) for compute instances are typically located on switches. When a compute instance is a virtual machine or container, its NIC is a virtual NIC, which is located on a virtual switch. In this case, the compute instance and the virtual switch reside on the same compute node, and an isolation domain for the virtual NIC can be configured on the virtual switch. When a compute instance is a GPU or NPU, its NIC is a physical NIC. When the physical NIC is located on a switch, an isolation domain can be configured on the switch that directly communicates with the compute instance. When the physical NIC and the compute instance reside on the same compute device, an isolation domain can be configured on the compute device where the physical NIC resides.

[0072] It is worth noting that the first instruction is used to indicate multiple meanings, including 1) creating multiple computing instances at the locations indicated by the location information of multiple computing instances, 2) configuring the network interface cards (NICs) of multiple computing instances, and 3) configuring the isolation domain of the NICs of multiple computing instances. Multiple meanings can also be sent to the underlay network through multiple instructions. For example, one instruction is used to create multiple computing instances and configure the NICs of multiple computing instances at the locations indicated by the location information of multiple computing instances, and another instruction is used to configure the isolation domain of the NICs of multiple computing instances. Multiple instructions can also be in other forms, which are not limited in this application.

[0073] You can also configure proxy addresses for one or more compute instances in a cloud-native application network. For example, in one scenario, a compute instance represents an application service, and you don't want to expose the application service's actual Internet Protocol (IP) address, you can use a proxy address. When you set a proxy address, if a user accesses this application service, they access the proxy address, and the switch uses the proxy address to send the access request to the application service's actual IPv6 address.

[0074] For example, in one scenario, multiple compute instances represent an application service. These instances are distributed across multiple regions and have multiple IPv6 access addresses. To facilitate user access to this application service, a proxy address can be set up. When a user accesses the application service, they can directly access the proxy address. For instance, the multiple compute instances include compute instance 1 located in the Beijing region and compute instance 2 located in the Shanghai region. These two instances correspond to an application service, and a proxy address is set up for this service. Users can directly access the application service by accessing the proxy address. In one example, when a user is located in Beijing, they access the proxy address corresponding to the application service. The switch then sends the access request to the IPv6 address corresponding to compute instance 1 in the Beijing region based on the proxy address. When a user is located in Shanghai, they access the proxy address corresponding to the application service, and the switch then sends the access request to the IPv6 address corresponding to compute instance 2 in the Shanghai region based on the proxy address.

[0075] When a tenant needs to configure a proxy address, the tenant sends a second request through a terminal device. The second request is used to request that a proxy address be configured for the network interface card (NIC) of one or more specified computing instances. The controller receives the second request sent by the tenant and, based on the second request, sends a second instruction to the target device. The second instruction is used to instruct that a proxy address be configured for the NIC of one or more specified computing instances and associate the proxy address with the IPv6 address of the NIC of one or more specified computing instances.

[0076] It's important to note that proxy addresses are globally unique, and each proxy address represents an application service. Proxy addresses are independent of physical location.

[0077] To facilitate understanding of the embodiments of this application, the following description of the solution is based on the example shown in Figure 5.

[0078] The network shown in Figure 5 is a network architecture consisting of a cloud backbone network and a data center network. The data center network involves Region 1 and Region 2. Region 1 includes Cell 1 and Cell 2, each with multiple compute nodes. Region 2 also includes Cell 3, which contains multiple compute nodes. A cloud-native application network is created on this network architecture.

[0079] Pre-configuration phase: IPv6 network segment addresses are planned and pre-configured according to location, and then made accessible within the network comprised of the cloud backbone and data center networks. This can be done by unit; for example, the planned IPv6 network segment address for unit 1 is 2420:2023:410:967:: / 64, for unit 2 it's 2420:2022:410:967:: / 64, and for unit 3 it's 2420:2021:410:967:: / 64. These planned IPv6 network segment addresses are then pre-configured into units 1, 2, and 3. Then, IPv6 routes are configured on the routers and switches of the data center network and cloud backbone network to ensure the pre-configured IPv6 network segment addresses are accessible.

[0080] This is a pre-configured IPv6 network segment address based on the unit. You can also pre-configure IPv6 network segment addresses based on the area. For example, you can set an IPv6 network segment address for area 1 and an IPv6 network segment address for area 2. You can also pre-configure IPv6 network segment addresses in other ways. There are no restrictions here.

[0081] Creation phase: Create compute instances, configure the network interface cards (NICs) of the compute instances, and set up the isolation domain for cloud-native application networks.

[0082] The tenant's requirement is to create a cloud-native application network in the above network, which includes multiple virtual machines (VMs). For ease of understanding and description, this example uses the user's requirement to create a cloud-native application network with four VMs. The requirement is that one VM is located in Unit 1, one VM is located in Unit 2, and two VMs are located in Unit 3. A proxy address is configured for one VM in Unit 3.

[0083] Based on the user's requirements, the controller created VM1 on one compute node in Unit 1, VM2 on one compute node in Unit 2, and VM3 and VM4 on two compute nodes in Unit 3. Configure network cards for each virtual machine. VM1 is located in Unit 1. Allocate an IPv6 address from the IPv6 network segment of Unit 1 to VM1's network card. For example, the address of VM1's network card is 2420:2023:410:967::1. VM2 is located in Unit 2. Allocate an IPv6 address from the IPv6 network segment of Unit 2 to VM2's network card. For example, the address of VM1's network card is 2420:2022:410:967::1. VM3 and VM4 are located in Unit 3. Allocate an IPv6 address from the IPv6 network segment of Unit 3 to VM3's and VM4's network cards. For example, the address of VM3's network card is 2420:2021:410:967::1, and the address of VM4's network card is 2420:2021:410:967::2. Configure a proxy address for VM4 as fd00:ec2:80:0:9a55::8549.

[0084] Configure isolation domains for the created cloud-native application network: Configure access rules on the virtual switches of VM1, VM2, VM3, and VM4 respectively, allowing packet reception and transmission when the source and destination addresses of packets are within the address range of the cloud-native application network. Additionally, since VM4 has a proxy address configured, configure network address translation (NAT) rules on the virtual switches of VM1, VM2, VM3, and VM4, so that when the destination address of a packet is fd00:ec2:80:0:9a55::8549, the destination address will be translated to 2420:2021:410:967::2.

[0085] It is understandable that, in the example shown in Figure 5, the tenant's requirement might also be: to create 2 virtual machines in region 1 and 2 virtual machines in region 2. The controller receives the tenant's requirement, schedules resources in the cloud according to the tenant's requirements, and determines to create 1 virtual machine in unit 1 of region 1, 1 virtual machine in unit 2 of region 1, and 2 virtual machines in unit 3 of region 2.

[0086] Interoperability between two cloud-native application networks (ANCs) can be achieved by modifying their isolation domains. For example, as shown in Figure 6, cloud-native application networks ANC1 and ANC2 are illustrated. ANC1 includes virtual machine 1 located in region 1, virtual machine 3 located in region 2, and virtual machine 2 located in edge site 1. ANC2 includes virtual machine 1. The IPv6 addresses of the virtual machines in ANC1 and ANC2 do not overlap. Interoperability between ANC1 and ANC2 can be achieved by modifying the access rules of the virtual switch for virtual machine 1 in ANC2 and the virtual switch for virtual machine 2 in ANC1.

[0087] Understandably, in traditional VPC cross-region networking, traffic is limited and cannot provide high bandwidth because different VPCs communicate with each other through various gateways (such as centralized gateways). However, when multiple cloud-native application networks provided in this application are networked across regions, traffic does not need to go through gateways, thus supporting high bandwidth.

[0088] The cloud-native application network created in this application can also communicate with the VPC network. For example, referring to the example diagram shown in Figure 7, VPC1 is deployed on edge site 1, and VPC2 is deployed on region 1. Now, a cloud-native application network is created on unit 1 within region 1. Communication between the cloud-native application network and VPC2 is achieved by connecting a gateway 2 between unit 1 and VPC2. Communication between the cloud-native application network and VPC1 is achieved by connecting a gateway 1 between edge site 1 and the cloud backbone network. The specific implementation is as follows.

[0089] Creating a cloud-native application network: First, plan and pre-configure the IPv6 network segment address for Unit 1 in Region 1. Then, configure IPv6 routes on routers, switches, and gateways (including Gateway 1 and Gateway 2) in the cloud backbone network and data center network to ensure the pre-configured IPv6 network segment address in Unit 1 is accessible. Next, create Virtual Machine 2 on Unit 1 in Region 1, assign one address from the pre-configured IPv6 network segment address of Unit 1 to the network interface card (NIC) of Virtual Machine 2, and configure the isolation domain of the NIC of Virtual Machine 2.

[0090] Configure routing rules on the virtual switch of virtual machine 2: send packets from virtual machine 2 to virtual machine 1 to gateway 1, and send packets from virtual machine 2 to virtual machine 3 to gateway 2. Configure packet conversion rules on gateway 1 and gateway 2. For example, gateway 2 will encapsulate packets from virtual machine 2 to virtual machine 3 with a VXLAN header, and gateway 2 will remove the VXLAN header from packets from virtual machine 3 to virtual machine 2.

[0091] The above configuration enables communication between the cloud-native application network and VPC1 and VPC2.

[0092] As can be seen, the method for creating a cloud-native application network provided in this application can be applied to both underlay and overlay networks. First, IPv6 network segment addresses are pre-configured and routed. Then, compute instances and network interface cards (NICs) are created according to tenant requirements. The IPv6 addresses of the NICs are determined from the pre-configured IPv6 network segment addresses and are pre-routed. When adding a compute instance in the cloud-native application network, the compute instance and NIC can be created directly, and an address from the pre-configured IPv6 network segment address can be assigned to the NIC. This enables traffic forwarding between the new compute instance and other compute instances. Therefore, the cloud-native application network created in this application can achieve second-level elastic configuration and is suitable for large-scale network scenarios, such as scenarios with millions of NICs. When the method of this application is applied to an underlay network, the compute nodes do not involve storing the FDB, which greatly reduces the memory consumption of the compute nodes. When the method of this application is applied to an overlay network, the FDB on the compute nodes is stored at the network segment level, that is, one FDB per network segment address, rather than at the compute instance level, which can also reduce the memory consumption on the compute nodes.

[0093] Furthermore, compared to the implementation method of non-full FDB storage in VPC networks (another architecture of VPC networks where the virtual switch of the compute node does not store the full FDB, but a separate forwarding node stores the entire FDB. In this implementation, when a new compute node is added to the VPC network and a new compute instance is added on that compute node, the controller distributes the FDB of the compute instance to the forwarding node. When the new compute instance needs to access other compute instances, the virtual switch of the new compute node sends the access request to the forwarding node. After the forwarding node matches the FDB, it forwards the access request to the destination compute instance and sends the FDB of the destination compute instance to the virtual switch of the new compute node. When the new compute instance subsequently accesses the destination compute instance, it can directly access the destination compute instance without being forwarded by the forwarding node. However, in this implementation, when the new compute instance accesses other compute instances, it needs to match the FDB through the forwarding node before forwarding, resulting in a large initial packet delay), the cloud-native application network provided in this application does not have an initial packet delay when forwarding traffic.

[0094] The above describes the method embodiments provided in this application. The following describes the apparatus embodiments corresponding to the method embodiments.

[0095] This application provides a system, as shown in Figure 8, which is a schematic diagram of the system provided in this application. The system includes a controller 810 and various network devices in a network 820. The network can be a wide area network or a data center network, and it can be an underlay network or an overlay network. The controller 810 is described in detail below.

[0096] The controller 810 includes a receiving module 811 for receiving a first request sent by a tenant, the first request requesting the creation of multiple computing instances, the first request including location information of the multiple computing instances; and a sending module 812 for sending a first instruction to a target device according to the first request, the first instruction instructing the creation of multiple computing instances at the locations indicated by the location information of the multiple computing instances, and configuring the network interface cards (NICs) of the multiple computing instances and the isolation domains of the NICs of the multiple computing instances, wherein the first instruction includes the address of the NIC of each of the multiple computing instances, the address of the NIC of each computing instance being determined from the IPv6 network segment address of the location of the computing instance, the IPv6 network segment address of the location of the computing instance being pre-configured and routed.

[0097] In possible implementations, the location information of multiple computing instances includes any one or any combination of regions, availability zones, and cells.

[0098] In possible implementations, the location information of multiple computing instances may be the same or different.

[0099] In a possible implementation, the receiving module 811 is further configured to receive a second request sent by a tenant, the second request being for requesting the configuration of a proxy address for the network interface card of one or more specified computing instances; the sending module 812 is further configured to send a second instruction to a target device according to the second request, the second instruction being for instructing the configuration of a proxy address for the network interface card of one or more specified computing instances, and associating the proxy address with the address of the network interface card of one or more specified computing instances.

[0100] Among possible implementations, the compute instance includes any one of a virtual machine, a container, or bare metal.

[0101] In possible implementations, IPv6 network address segments are pre-configured according to location, which includes any one or any combination of regions, availability zones, data centers, racks, and compute nodes.

[0102] The transmitting module 812 in the controller 810 can be implemented in software or in hardware. For example, the implementation of the transmitting module 812 will be described below.

[0103] As an example of a software functional unit, the sending module 812 may include program code running on one or more hosts, virtual machines, or containers. It should be noted that the multiple hosts / virtual machines / containers used to run the program code can be distributed within the same region or in different regions. Similarly, the multiple hosts / virtual machines / containers used to run the code can be distributed within the same Availability Zone or in different Availability Zones (AZs), each AZ comprising one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0104] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a single region. Communication between two VPCs within the same region, and between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between them.

[0105] As an example of a hardware functional unit, the transmitting module 812 may include at least one computing device, such as a server. Alternatively, the transmitting module 812 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0106] The multiple computing devices included in the sending module 812 can be distributed in the same region or in different regions. Similarly, the multiple computing devices included in the sending module 812 can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the multiple computing devices included in the sending module 812 can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0107] This application provides a computing device 900. Referring to Figure 9, which is a schematic diagram of the structure of the computing device 900 provided in this application, the computing device 900 can be configured as a controller in the method embodiment. The computing device 900 includes: a bus 902, a processor 904, a memory 906, and a communication interface 908. The processor 904, the memory 906, and the communication interface 908 communicate with each other through the bus 902. It should be understood that this application does not limit the number of processors and memories in the computing device 900.

[0108] Bus 902 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 9, but this does not imply that there is only one bus or one type of bus. Bus 902 can include pathways for transmitting information between various components of computing device 900 (e.g., memory 906, processor 904, communication interface 908).

[0109] Processor 904 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0110] The memory 906 may include volatile memory, such as random access memory (RAM). The processor 904 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0111] The memory 906 stores executable code, which the processor 904 executes to implement a method for creating a cloud-native application network. That is, the memory 906 stores instructions for executing a method for creating a cloud-native application network.

[0112] The communication interface 908 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 900 and other devices or communication networks.

[0113] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, virtual machine, or container, such as a central server, edge server, or sidecar container.

[0114] As shown in Figure 10, which is a schematic diagram of the structure of a computing device cluster provided in this application, the computing device cluster includes at least one computing device 900. The memory 906 of one or more computing devices 900 in the computing device cluster may store the same instructions for executing a method for creating a cloud-native application network.

[0115] In some possible implementations, the memory 906 of one or more computing devices 900 in the computing device cluster may also store partial instructions for executing a method of creating a cloud-native application network. In other words, a combination of one or more computing devices 900 can be used to jointly execute instructions for a method of creating a cloud-native application network.

[0116] When at least one computing device in the computing device cluster is configured as computing device 900, the memory 906 in different computing devices 900 in the computing device cluster can store different instructions, which are used to execute some functions of computing device 900 respectively. That is, the instructions stored in the memory 906 of different computing devices 900 can implement the functions of one or more modules in receiving module 811 and transmitting module 812.

[0117] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network, which can be a wide area network (WAN) or a local area network (LAN), etc. Figure 11 shows a schematic diagram of another computing device cluster structure. As shown in Figure 11, two computing devices 900A and 900B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this type of possible implementation, the memory 906 in computing device 900A stores instructions for the function of the receiving module 811. Computing device 900A is used to receive requests sent by tenants, such as receiving a first request and a second request sent by a tenant. The memory 906 in computing device 900B stores instructions for executing the function of the sending module 812. Computing device 900B is used to send a first instruction to the underlying network and also to send a second instruction to the underlying network.

[0118] It should be understood that the function of computing device 900A shown in Figure 11 can also be performed by multiple computing devices 900, or a cluster of computing devices may include multiple computing devices with the same function as computing device 900A. Similarly, the function of computing device 900B can also be performed by multiple computing devices 900, or a cluster of computing devices may include multiple computing devices with the same function as computing device 900B.

[0119] This application also provides another computing device cluster. The connection relationships between the computing devices in this cluster can be similarly referenced to the connection methods of the computing device clusters described in Figures 10 and 11. The difference is that the memory 906 of one or more computing devices 900 in this cluster may store different instructions for executing a method of creating a cloud-native application network. In some possible implementations, the memory 906 of one or more computing devices 900 in this cluster may also each store partial instructions for executing a method of creating a cloud-native application network. In other words, a combination of one or more computing devices 900 can jointly execute the instructions for executing a method of creating a cloud-native application network.

[0120] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a method for creating a cloud-native application network.

[0121] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct a computing device or cluster of computing devices to perform a method for creating a cloud-native application network.

[0122] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.

Claims

1. A method for creating a cloud-native application network, characterized in that, include: The controller receives a first request sent by the tenant, the first request being used to request the creation of multiple computing instances, the first request including the location information of the multiple computing instances; According to the first request, a first instruction is sent to the target device. The first instruction is used to instruct the creation of the plurality of computing instances at the locations indicated by the location information of the plurality of computing instances, and to configure the network interface cards (NICs) of the plurality of computing instances and the isolation domains of the NICs of the plurality of computing instances. The first instruction includes the address of the NIC of each of the plurality of computing instances. The address of the NIC of each computing instance is determined from the IPv6 network segment address of the location of the computing instance. The IPv6 network segment address of the location of the computing instance is pre-configured and routed.

2. The method of claim 1, wherein, The location information of the multiple computing instances includes any one or any combination of regions, availability zones, and cells.

3. The method according to claim 1 or 2, characterized in that, The location information of the multiple computing instances may be the same or different.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: Receive a second request sent by a tenant, the second request being used to request the configuration of a proxy address for the network interface card of one or more specified computing instances; According to the second request, a second instruction is sent to the target device, the second instruction being used to instruct the configuration of a proxy address for the network interface card of one or more specified computing instances, and to associate the proxy address with the address of the network interface card of the one or more specified computing instances.

5. The method according to any one of claims 1 to 4, characterized in that, The computing instance includes any one of virtual machines, containers, and bare metal.

6. The method according to any one of claims 1 to 5, characterized in that, The IPv6 network segment address is pre-configured according to location, which includes any one or any combination of regions, availability zones, data centers, racks, and compute nodes.

7. A controller characterized by comprising: include: The receiving module is used to receive a first request sent by a tenant, the first request being used to request the creation of multiple computing instances, the first request including the location information of the multiple computing instances; The sending module is configured to send a first instruction to the target device according to the first request. The first instruction is configured to instruct the creation of the plurality of computing instances at the locations indicated by the location information of the plurality of computing instances, and to configure the network interface cards (NICs) of the plurality of computing instances and the isolation domains of the NICs of the plurality of computing instances. The first instruction includes the address of the NIC of each of the plurality of computing instances. The address of the NIC of each computing instance is determined from the IPv6 network segment address of the location of the computing instance. The IPv6 network segment address of the location of the computing instance is pre-configured and routed.

8. The controller of claim 7, wherein, The location information of the multiple computing instances includes any one or any combination of regions, availability zones, and cells.

9. A controller according to claim 7 or 8, wherein, The location information of the multiple computing instances may be the same or different.

10. The controller according to any one of claims 7 to 9, characterized in that, The receiving module is further configured to receive a second request sent by a tenant, the second request being used to request the configuration of a proxy address for the network interface card of one or more specified computing instances; The sending module is further configured to send a second instruction to the target device according to the second request, the second instruction being configured to configure a proxy address for the network interface card of one or more specified computing instances, and associate the proxy address with the address of the network interface card of the one or more specified computing instances.

11. A controller according to any one of claims 7 to 10, wherein, The computing instance includes any one of virtual machines, containers, and bare metal.

12. The controller according to any one of claims 7 to 11, characterized in that, The IPv6 network segment address is pre-configured according to location, which includes any one or any combination of regions, availability zones, data centers, racks, and compute nodes.

13. A computing device cluster, characterized in that, The system includes at least one computing device, each of the at least one computing device including a memory and a processor, the processor of the at least one computing device being configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1 to 6.

14. A computer-readable storage medium, characterized in that, Includes computer program instructions that, when executed on a cluster of computing devices, perform the method as described in any one of claims 1 to 6.

15. A system, characterized in that, It includes a controller and a target device, the controller being used to implement the method as described in any one of claims 1 to 6.