The present disclosure relates generally to cloud-based platforms for providing virtual networking services and, more particularly to an open edge cloud platform for enhancing edge footprints for cloud providers and tenants.
With the rapid evolution of the technology and demand for computing and network capacity, several cloud providers are leading to provide infrastructure as a service, such as Bare Metal as a Service (BMaaS), Virtual Machine as a Service (VMaaS), Software Defined Networks (SDNs) and Virtual Network Functions (VNFs). Cloud providers leading in this effort include Amazon Web Services (AWS), Google Cloud Platform (GCP) and, Azure. Historically, cloud providers have relied on centralized deployments where the bulk of the resources for computation and data storage are centralized in the network. A drawback of the centralized deployment is that the computational and data storage resources may be thousands of miles from the point where the data is collected or used. This distance problem results in longer latency, which can be problematic for many applications.
To avoid the latency problems associated with centralized deployments, cloud providers are moving towards distributed deployments, known as edge computing or edge deployments, where the computational and data storage resources are moved close to the edges of their network. Edge deployments put the computational and data storage resources closer to the devices that collect or use the data and thus avoid some of the latency issues seen in centralized deployments. Cloud providers are working to provide wide coverage or edge footprint to facilitate the clients/consumers access to cloud-based applications and to provide low latency and/or high throughput for tenant applications. While many global cloud providers claim that they have edge footprints deployed around the world, in reality, it is not possible for a single entity to cover all locations. Therefore, technologies that enable cloud providers to extend their coverage or edge footprint are needed.
The present disclosure provides an open edge cloud platform (OECP) that enables tenants to access resources of a pool of network operators (NOs) to support tenant applications. The tenant can specify a virtual location when requesting the OECP to create a virtual network for a tenant application The OECP creates a virtual network for the tenant application from available resources of the pool of NOs proximate to the virtual location specified by the tenant in the request. The flexibility of selecting resources from a pool of NOs enables the tenant to access resources closer to the devices that will use the tenant application and thus reduce latency for latency sensitive applications and increase data throughput.
The OECP enables the OECP operator to provide virtual networking services that will be attractive to both tenants, NOs, and end users of tenants' applications. Tenants benefit from the low latency and high throughout provided by the denser edge footprint of the OECP, which helps them meet key performance indicators (KPIs) for location-sensitive applications and increase profits. Network operators and other service providers benefit from access to increased traffic from tenants and end users, which increases revenues and profits realized from infrastructure investments. End users benefit from low latency and higher throughput, which provides an increased quality of service (QoS) and better consumer experience. The virtual network service enabled by the OECP provides the OECP operator with a new revenue stream.
A first aspect of the disclosure comprises methods implemented by a controller in a cloud platform system of providing virtual networking services. The method comprises receiving, from a tenant, a request to create a virtual network. The request includes an indication of a virtual location for the virtual network. The method further comprises creating, responsive to the request, a virtual network including one or more contributing NOs selected from a pool of NOs that have available resources at the virtual location. The method further comprises reserving resources from among the available resources of a selected contributing NO for a tenant application and attaching the reserved resources to the virtual network.
A second aspect of the disclosure comprises a controller in a cloud platform system for providing virtual networking services. The control node is configured to receive, from a tenant, a request to create a virtual network. The request includes an indication of a virtual location for the virtual network. The control node is further configured to create, responsive to the request, a virtual network including one or more contributing NOs selected from a pool of NOs that have available resources at the virtual location. The control node is further configured to reserve resources from among the available resources of a selected contributing NO for a tenant application and attach the reserved resources to the virtual network.
A third aspect of the disclosure comprises a controller for a cloud platform system for providing virtual networking services. The control node comprises communication circuitry for communicating with tenant and with NOs and processing circuitry. The processing circuitry is configured to receive, from a tenant, a request to create a virtual network. The request includes an indication of a virtual location for the virtual network. The processing circuitry is further configured to create, responsive to the request, a virtual network including one or more contributing NOs selected from a pool of NOs that have available resources at the virtual location. The processing circuitry is further configured to reserve resources from among the available resources of a selected contributing NO for a tenant application and attach the reserved resources to the virtual network.
A fourth aspect of the disclosure comprises a computer program for a controller in a cloud platform system configured to provide virtual networking services. The computer program comprises executable instructions that, when executed by processing circuitry in a controller, causes the controller to perform the method according to the first aspect.
A fifth aspect of the disclosure comprises a carrier containing a computer program according to the fourth aspect. The carrier is one of an electronic signal, optical signal, radio signal, or a non-transitory computer readable storage medium.
Referring now to the drawings,
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
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).
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.
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.
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.
In this example, traffic routing from the end user to the tenant's application proceeds as follows.
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
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.
The procedures shown in
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.
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.
In some embodiments of the method 200, the virtual location comprises a point location served by one or more NOs 30.
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.
In some embodiments of the method 200, the virtual location comprises a two-dimensional area served by one or more NOs 30.
In some embodiments of the method 200, the virtual location comprises a three-dimensional space served by one or more NOs 30.
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.
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.
In some embodiments of the method 200, the reserved resources for the tenant 20 comprise dedicated physical resources.
In some embodiments of the method 200, the reserved resources for the tenant 20 comprise a virtual machine.
In some embodiments of the method 200, the reserved resources for the tenant 20 comprise a Kubernetes cluster.
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.
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.
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.
In some embodiments of the method 200, the reserved target resources are at the same NO location as the reserved resources currently in use.
In some embodiments of the method 200, the reserved target resources are at a different NO location as the reserved resources currently in use.
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.
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.
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.
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.
Processing circuitry 430 controls the overall operation of the controller 400 and is configured to implement the procedures shown in
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
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.
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.
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.
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.
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.
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.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2020/053825 | 4/22/2020 | WO |