Open Edge Cloud Platform for Location-Sensitive Applications
20230129604 · 2023-04-27
Inventors
Cpc classification
G06F9/5077
PHYSICS
International classification
Abstract
An open edge cloud platform (OECP) enables tenants to access resources of a pool of network operator to support tenant applications. The tenant can specify a virtual location when requesting creation of a virtual network for a tenant application. The OECP creates a virtual network for the tenant application from available resources of a pool of network operators at the virtual location specified by the tenant in the request. The flexibility of selecting resources from a pool of network operators enables the tenant to access resources closer to the end user devices that will use the tenant application and thus reduce latency for applications and increase data throughput.
Claims
1-24. (canceled)
25. A method implemented by a cloud platform system providing infrastructure as a service, the method comprising: receiving, from a tenant, a request to create a virtual network, the request including an indication of a virtual location for the virtual network; creating a virtual network including one or more contributing network operators selected from a pool of network operators that have available resources at the virtual location; reserving resources from among the available resources of a selected contributing network operator for a tenant application; and attaching the reserved resources to the virtual network.
26. The method of claim 25, wherein the virtual location comprises a point location served by one or more network operators.
27. The method of claim 26, wherein reserving at least a part of the available resources of a selected contributing network operator comprises: selecting a network operator from a list of contributing network operators (30) having remaining capacity for the tenant application; reserving resources from among the available resources of the selected network operator for the tenant application.
28. The method of claim 25, wherein the virtual location comprises a two-dimensional area served by one or more network operators.
29. The method of claim 25, wherein the virtual location comprises a three-dimensional space served by one or more network operators.
30. The method of claim 25, wherein the virtual location comprises a N-dimensional space served by one or more network operators, where N>3.
31. The method of claim 28, wherein reserving at least a part of the available resources of a selected contributing network operator comprises: selecting a NO location from among a list of NO locations at the virtual location in the first request that have remaining capacity for the tenant application; selecting a network operator from a list of contributing network operators having remaining capacity for the tenant application at the selected NO location; and reserving resources from among the available resources of the selected network operator for the tenant application.
32. The method of claim 25, wherein the reserved resources for the tenant application comprise dedicated physical resources.
33. The method of claim 25, wherein the reserved resources for the tenant application comprise a virtual machine.
34. The method of claim 25, wherein the reserved resources for the tenant comprise a Kubernetes cluster.
35. The method of claim 25, further comprising: determining based on a predetermined criteria to migrate the tenant application from reserved resources currently used by the tenant application to target resources of a different contributing network operator; and responsive to the determining, reserving the target resources with the different contributing network operator for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources of the different contributing network operator.
36. The method of claim 25, further comprising, after the virtual network is created, expanding the virtual network to include a new contributing provider at the virtual location specified in the request that is not among the original network operators.
37. The method of claim 36, further comprising: determining based on a predetermined criteria to migrate the tenant application from reserved resources currently used by the tenant application to target resources of the new contributing provider; and responsive to the determining, reserving the target resources with the new contributing network operator for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources of the new contributing network operator.
38. The method of claim 36, wherein the reserved target resources are at the same NO location as the reserved resources currently in use.
39. The method of claim 36, wherein the reserved target resources are at a different NO location as the reserved resources currently in use.
40. The method of claim 25, further comprising: determining based on a predetermined criteria to migrate the tenant application from reserved resources of a first type currently used by the tenant application to target resources of a second type; and responsive to the determining, reserving the target resources of the second type for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources.
41. The method of claim 40, wherein the target resources of the second type are with the same contributing network operator as the reserved resources of a first type currently used by the tenant application.
42. The method of claim 40, wherein the target resources of the second type are with a different contributing network operator as the reserved resources of a first type currently used by the tenant application.
43. A controller for an open edge cloud platform (OECP) providing infrastructure as a service, the controller comprising: communication circuitry for communicating with network operators (30) and tenants; and processing circuitry configured to: receive, from a tenant, a request to create a virtual network, the request including an indication of a virtual location for the virtual network; create a virtual network including one or more contributing network operators (30) selected from a pool of network operators (30) that have available resources at the virtual location; reserve resources from among the available resources of a selected contributing network operator for a tenant application; and attach the reserved resources to the virtual network.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
DETAILED DESCRIPTION
[0022] Referring now to the drawings,
[0023]
[0024] In one embodiment, the tenant 20 specifies a “Region”, “Zone”, “City” or “Building” for a virtual public/private network. The OECP 100 maps the tenant-defined virtual location to one or more NO locations or PoPs where physical resources are deployed. A NO location can be any location where one or more NOs have resources or PoPs. Referring to
[0025]
[0026] The OECP control plane 110 includes an OECP user interface (OECP UI) 112 for the OCEP administrator and service exposure (SE) 114 implementing a Representational State Transfer (REST) Application Programming Interface (API) for NOs 30 and tenant administrators. The OECP framework 116, also referred to herein as the OECP controller, contains the bulk of the control logic and stores data related to virtual networking services in the OECP database (118).
[0027] The OECP framework 116 manages the resources provided by NOs 30 and consolidates those resources and provide “IaaS” to its tenants. The OECP framework 116 also monitors the network traffic status (e.g., congestion via throughput, latency, packet loss, etc.) as well as workload on the resources (e.g., CPU load, memory usage, latency etc.). Based on these statuses and the given criteria, the OECP framework 116 optimizes the network traffic by redistributing the resources (instances) in different networks or by routing the traffic through different networks dynamically. the OECP framework 116 also perform authentication and authorization for tenants and NOs 30. The OECP core 120 comprises physical resources 122 available for tenant use that are owned and controlled by the OECP.
[0028] The participating NOs 30 connect to the OECP 100 via a wide area network (WAN) 140, such as the Internet. The WAN 140 can be public or private. Each NO 30 contributes different kinds of hardware (HW) to the OECP 100. For example, NO1 may have five devices equipped with General Processing Units (GPUs) while NO2 may provide four devices with 4-core Central Processing Units (CPUs). The OECP 100 makes these devices available to a tenant 20 and ready for being used by OECP 100 to provide virtual networking services to the tenants 20.
[0029]
[0030] The public vNET 150 includes two entry points 152 (shown as solid black circles) for traffic from the tenant's clients (end user/device), which are configured with publicly addressable Internet Protocol (IP) addresses. An OECP 100 Request Router (RR) 130 in the OECP network 140 applies the public IP address or Fully Qualified Domain Name (FQDN) to the entry point (solid black circle) that attaches to the tenant 20 virtual public network. As an example, the RR function can be built on top of Domain Name Server (DNS), which is a part of OECP network 140. The routing decision is made based on the routing policy given by tenant administrator or OECP administrator. The policies are provided to the OECP 100 during configuration.
[0031] In this example, traffic routing from the end user to the tenant's application proceeds as follows. [0032] 1. The client sends a request to the OECP RR to access the tenant application. Before this request is sent, the client traffic might involve the tenant's DNS server, which is omitted here for simplicity. [0033] 2. Based on the routing policy, the OECP RR (DNS) redirects the client request to the tenant's application deployed in the physical public subnet in the infrastructure provided by NO2. [0034] 3. The client sends the request to the device in NO2 by following the redirect given by OECP RR. [0035] 4. After receiving the client request, the front-end of the tenant application has to communicates with its backend in NO1 to handle certain business logic (computing intensive operation) via the private vNET 160. [0036] 5. The backend sends the response back to the tenant application in NO2. [0037] 6. The tenant application sends the response back to the client
[0038] In case that the instances in NO2 are not available, the client traffic will be directed to the instances located in NO3. In this way, the tenant application achieves its high availability (HA) towards its clients. Referring back to
[0039] An alternative of handling HA for tenant application is for RR to redirect the client request to both instances in NO2 and NO3 in a round robin fashion.
[0040]
[0052]
[0061]
[0073]
[0082] The procedures shown in
[0083] Also, those skilled in the art will appreciate that the vNET created by the OECP 100 is not necessarily static but can be modified after its creation. For example, the monitoring subsystem 122 of the OECP 100 can detect when a new PoP for an existing NO 30 or a new NO 30 is available and add the new NO/PoP to the virtual network. Similarly, the OECP monitoring subsystem can detect when an existing NO 30 or PoP has failed or is no longer available and remove the NO/PoP from the virtual network. In either of these scenarios, the OECP 100 can migrate a tenant application from current resources used by the tenant application to new resources of a new or existing NO. Similarly, the monitoring subsystem may migrate a tenant application for purposes of load balancing or to provide a higher QoS for the tenant application. The procedures for migrating a tenant application are similar to those described above for the initial provisioning and can be performed transparently from the point of view of the tenant application.
[0084] A tenant application can also be moved from one resource to another resource of a different type depending, for example, QoS requirement and performance history. For example, better performance for a tenant application may be achieved by moving a tenant application from a BM instance to a VM instance or vice versa. The target resources for the migration can be with the same NO 30 or with a different NO 30.
[0085]
[0086] In some embodiments of the method 200, the virtual location comprises a point location served by one or more NOs 30.
[0087] In some embodiments of the method 200, reserving at least a part of the available resources of a selected contributing NO comprises selecting a NO from a list of contributing NOs 30 having remaining capacity for the tenant application, and reserving resources from among the available resources of the selected NO for the tenant application.
[0088] In some embodiments of the method 200, the virtual location comprises a two-dimensional area served by one or more NOs 30.
[0089] In some embodiments of the method 200, the virtual location comprises a three-dimensional space served by one or more NOs 30.
[0090] In some embodiments of the method 200, the virtual location comprises a N-dimensional space served by one or more NOs 30, where N>3.
[0091] In some embodiments of the method 200, reserving at least a part of the available resources of a selected contributing NO comprises selecting a NO location from among a list of NO locations at the virtual location in the first request that have remaining capacity for the tenant application, selecting a NO from a list of contributing NOs 30 having remaining capacity for the tenant application at the selected NO location, and reserving resources from among the available resources of the selected NO for the tenant application.
[0092] In some embodiments of the method 200, the reserved resources for the tenant 20 comprise dedicated physical resources.
[0093] In some embodiments of the method 200, the reserved resources for the tenant 20 comprise a virtual machine.
[0094] In some embodiments of the method 200, the reserved resources for the tenant 20 comprise a Kubernetes cluster.
[0095] Some embodiments of the method 200 further comprise determining based on a predetermined criteria to migrate the tenant application reserved resources currently used by the tenant application to target resources of a different contributing NO, and reserving, responsive to the determining, the target resources with the different contributing NO for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources of the different contributing NO.
[0096] Some embodiments of the method 200 further comprise, after the virtual network is created, expanding the virtual network to include a new contributing provider at the virtual location specified in the request that is not among the original NOs 30.
[0097] Some embodiments of the method 200 further comprise determining based on a predetermined criteria to migrate the tenant application reserved resources currently used by the tenant application to target resources of the new contributing provider, and responsive to the determining, reserving the target resources with the new contributing NO for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources of the new contributing NO.
[0098] In some embodiments of the method 200, the reserved target resources are at the same NO location as the reserved resources currently in use.
[0099] In some embodiments of the method 200, the reserved target resources are at a different NO location as the reserved resources currently in use.
[0100] Some embodiments of the method 200 further comprise determining based on a predetermined criteria to migrate the tenant application from reserved resources of a first type currently used by the tenant application to target resources of a second type, and responsive to the determining, reserving the target resources of the second type for the tenant application and migrating the tenant application from the reserved resources currently used by the tenant application to the reserved target resources. In some embodiments of the method 200, the target resources of the second type are with the same contributing network operator as the reserved resources of a first type currently used by the tenant application.
[0101] In some embodiments of the method 200, the target resources of the second type are with a different contributing network operator as the reserved resources of a first type currently used by the tenant application.
[0102] An apparatus can perform any of the methods herein described by implementing any functional means, modules, units, or circuitry. In one embodiment, for example, the apparatuses comprise respective circuits or circuitry configured to perform the steps shown in the method figures. The circuits or circuitry in this regard may comprise circuits dedicated to performing certain functional processing and/or one or more microprocessors in conjunction with memory. For instance, the circuitry may include one or more microprocessor or microcontrollers, as well as other digital hardware, which may include Digital Signal Processors (DSPs), special-purpose digital logic, and the like. The processing circuitry may be configured to execute program code stored in memory, which may include one or several types of memory such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, etc. Program code stored in memory may include program instructions for executing one or more telecommunications and/or data communications protocols as well as instructions for carrying out one or more of the techniques described herein, in several embodiments. In embodiments that employ memory, the memory stores program code that, when executed by the one or more processors, carries out the techniques described herein.
[0103]
[0104]
[0105] The communication circuitry 420 comprises network interface circuitry for communicating with tenants 20 and with other NOs 30 over a communication network, such as an Internet Protocol (IP) network.
[0106] Processing circuitry 430 controls the overall operation of the controller 400 and is configured to implement the procedures shown in
[0107] Memory 440 comprises both volatile and non-volatile memory for storing computer program code and data needed by the processing circuitry 430 for operation. Memory 440 may comprise any tangible, non-transitory computer-readable storage medium for storing data including electronic, magnetic, optical, electromagnetic, or semiconductor data storage. Memory 440 stores a computer program 450 comprising executable instructions that configure the processing circuitry 430 to implement the method shown in
[0108] Those skilled in the art will also appreciate that embodiments herein further include corresponding computer programs. A computer program comprises instructions which, when executed on at least one processor of an apparatus, cause the apparatus to carry out any of the respective processing described above. A computer program in this regard may comprise one or more code modules corresponding to the means or units described above.
[0109] Embodiments further include a carrier containing such a computer program. This carrier may comprise one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
[0110] In this regard, embodiments herein also include a computer program product stored on a non-transitory computer readable (storage or recording) medium and comprising instructions that, when executed by a processor of an apparatus, cause the apparatus to perform as described above.
[0111] Embodiments further include a computer program product comprising program code portions for performing the steps of any of the embodiments herein when the computer program product is executed by a computing device. This computer program product may be stored on a computer readable recording medium.
[0112] The OECP 100 as herein described creates a virtual network for the tenant application from available resources of a pool of NOs 30 at a virtual location specified by the tenant 20 in the request. The flexibility of selecting resources from a pool of NOs 30 enables the tenant 20 to access resources closer to the devices that will use the tenant application and thus reduce latency and increase data throughput.
[0113] The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.