Managing computing capacity in radio-based networks
The cloud-based management of 5G wireless networks addresses the inefficiencies of manual deployment by enabling automatic, scalable, and flexible network management, reducing costs and enhancing user experience through dynamic resource allocation and integration of cloud-native microservices.
Patent Information
- Application Number
- JP2025066389
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-12-10
- Filing Date
- 2025-04-14
- Publication Date
- 2025-07-03
AI Technical Summary
Existing wireless network deployments are time-consuming and costly due to manual processes, and previous technologies were vendor-specific, lacking flexibility and scalability.
A cloud-based approach for automatic deployment, modification, and management of 5G wireless networks using a cloud provider infrastructure, enabling dynamic scaling and resource allocation through APIs, with components preconfigured for plug-and-play installation and integration of cloud-native microservices.
This approach reduces deployment time and operational costs, enhances flexibility and scalability, and improves user experience by allowing real-time adjustments and efficient utilization of resources, supporting applications with strict quality of service requirements.
Smart Images

Figure 2025100727000001_ABST
Abstract
Description
Technical Field
[0001] Cross - reference to Related Applications This application claims the benefit of and priority to a U.S. patent application entitled "MANAGING COMPUTING CAPACITY IN RADIO - BASED NETWORKS" filed on December 10, 2020, and assigned application number 17 / 118,558, the entire disclosure of which is incorporated herein by reference.
Background Art
[0002] 5G is the fifth - generation technical standard for broadband cellular networks and is ultimately planned to replace the fourth - generation (4G) standard of Long - Term Evolution (LTE). 5G technology will come to provide a significantly increased bandwidth, thereby expanding the cellular market beyond smartphones to provide last - mile connections to desktops, set - top boxes, laptops, Internet of Things (IoT) devices, etc. Some 5G cells can use the same frequency spectrum as 4G, while there are also 5G cells that can use the frequency spectrum in the millimeter - wave band. The service area of millimeter - wave band cells is relatively small, but they will come to provide much higher throughput than 4G.
Summary of the Invention
Means for Solving the Problems
[0003] Many aspects of the present disclosure can be better understood with reference to the following drawings. The components of the drawings are not necessarily to scale and instead focus on clearly illustrating the principles of the present disclosure. Further, in the drawings, like reference numerals designate corresponding parts throughout several views.
Brief Description of the Drawings
[0004]
Figure 1
Figure 2A
Figure 2B
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Mode for Carrying Out the Invention
[0005] The present disclosure relates to the automatic deployment, modification, and management of wireless networks such as 4G and 5G wireless access networks, or a part of such wireless networks, using a cloud provider network infrastructure, as well as the associated core network. Previous deployments of wireless networks relied on manual deployment and configuration at each step of the process. This has been found to require a very large amount of time and cost. Furthermore, in the previous generation, software was essentially tied to vendor-specific hardware, preventing customers from deploying alternative software. In contrast, in 5G, since the hardware is decoupled from the software stack, flexibility is increased, and components of the wireless network can be run on the infrastructure of a cloud provider. Using a cloud delivery model for wireless networks such as 5G networks can make it easier to process network traffic from hundreds to billions of connected devices and compute-intensive applications while delivering at higher speeds, lower latency, and higher capacity than other types of networks.
[0006] Various embodiments of the present disclosure introduce an approach that enables a customer to order and deploy a wireless network and an associated core network automatically, for example, by invoking an application programming interface (API) of a cloud provider network. Such customers can include telecommunications companies that provide cellular network services to third-party customers. Customers can also include enterprises and organizations that desire to set up a wireless network (e.g., a private 5G network) for internal use. Through various user interfaces, a customer can specify a network plan or requirements, and various components necessary to implement the wireless network for the customer are automatically determined and provisioned. Hardware such as antennas, radios, and computer servers may be preconfigured to match the customer's wireless network and shipped to the customer. The process of installing the preconfigured hardware is mainly a plug-and-play method, and the wireless network can be activated through a user interface or an API. In addition to deploying a wireless network, such as all or part of a new wireless access network, various embodiments of the present disclosure can facilitate the modification and management of the wireless network, including the deployment of preconfigured equipment for additional cells.
[0007] Various embodiments of the present disclosure can also incorporate the concepts of elasticity from cloud computing models and utility computing into wireless networks and associated core networks. For example, the disclosed techniques can execute core and radio access network functions, as well as associated control plane management functions, on cloud provider infrastructure to create a cloud-native core network and / or a cloud-native radio access network (RAN). Such core and RAN network functions can, depending on the implementation, be based on 3rd Generation Partnership Project (3GPP™) specifications. By providing a cloud-native wireless network, customers can dynamically scale the wireless network based on usage, latency requirements, and / or other factors. In some cases, the hardware shipped to the customer can include sufficient capacity to execute both programs for the operation and management of the wireless network and the customer's other workloads (e.g., their applications), and the capacity not used for the wireless network can be made accessible for executing workloads under a utility computing model. As an advantage, the customer's wireless network can scale up to this excess capacity as needed, enabling, for example, an increase in the hardware usage requirements of the wireless network even before new physical hardware is provisioned to the customer. Also, the customer may configure thresholds to receive alerts regarding wireless network usage and over-capacity usage of the provisioned infrastructure in order to more effectively manage the provisioning of new infrastructure or the de-provisioning of existing infrastructure based on dynamic networking and workload requirements.
[0008] Dynamic scaling may involve adding additional cells, hardware, or computing resources, but it may also involve reducing resources when they are no longer needed to meet customer requirements. For example, unused capacity within a wireless network may be reclaimed for use by the customer in other applications, or in some implementations, made available for use by other customers. In some cases, where the hardware cannot be reallocated in another form, the customer may be required or request to return the hardware to the provider, or unallocated hardware may be disabled or configured to operate at a reduced capacity to support lower requirements.
[0009] As would be understood by those skilled in the art in light of this disclosure, certain embodiments may be capable of achieving certain advantages including some or all of the following. That is, (1) improving the flexibility of computer systems by enabling the reuse of computing hardware that has hitherto been specialized for network functions in wireless networks and related core networks for other applications; (2) improving the flexibility of computer systems by enabling the automatic reuse of computing hardware that has hitherto been dedicated to a first wireless network for a second wireless network (or, if necessary, for reuse between the RAN function and the core network function of the same wireless network); (3) improving the user experience when deploying a wireless network by pre-configuring antennas, radios, and other hardware, thereby providing a plug-and-play installation experience; (4) improving the performance of a wireless network by optimizing cell deployment and spectrum utilization; (5) improving the performance and management of a wireless network by monitoring performance metrics and, if necessary, adding, deleting, and reconfiguring cells to maintain acceptable performance; (6) improving the scalability and overall performance of a wireless network by migrating network functions previously provided by proprietary hardware to virtual machine instances operated by an elastic cloud computing provider under a utility computing model; (7) reducing latency in a wireless network by migrating network functions to virtual machine instances running on computing devices of a cloud service provider at a cell site, and so on.
[0010] Among the advantages of the present disclosure is the ability to deploy and chain network functions to deliver end-to-end services that meet specified constraints and requirements. According to the present disclosure, network functions composed of microservices cooperate to provide an end-to-end connection. A set of network functions is part of a wireless network, operates within a base station, and performs the conversion from wireless signal to IP. Other network functions execute subscriber-related business logic and are executed in a large data center that routes IP traffic to and from the Internet. For an application to use new 5G features such as low-latency communication and reserved bandwidth, both of these types of network functions need to cooperate to properly schedule and reserve the wireless spectrum and perform real-time computing and data processing. The techniques disclosed herein provide edge location hardware (further described below) integrated with network functions that are executed across the network from the cell site to the Internet breakout, and orchestrate the network functions to meet the required quality of service (QoS) constraints. This enables a whole new set of applications with strict QoS requirements that were previously not possible to operate on a mobile network, ranging from factory-based Internet of Things (IoT) to augmented reality (AR), virtual reality (VR), game streaming, and connected vehicle autonomous navigation support.
[0011] The described "Elastic 5G" service provides and manages all the hardware, software, and network functions necessary for network construction. In some embodiments, the network functions can be developed and managed by a cloud service provider, but the described control plane enables customers to manage network functions across various providers so that they can call and manage the network functions selected on the cloud infrastructure using a single set of APIs. The Elastic 5G service has the advantage of automating the creation of an end-to-end 5G network from hardware to network functions, thereby reducing the deployment time and the operational costs associated with network operation. By providing APIs that expose network functions, the disclosed Elastic 5G service allows applications to specify the desired QoS as a constraint and then simply deploy and chain network functions to deliver an end-to-end service that meets the specified requirements, thus enabling the easy construction of new applications.
[0012] This disclosure describes embodiments related to the creation and management of cloud-native 5G core and / or cloud-native 5G RAN, and related control plane components. Cloud-native refers to an approach for building and running applications that leverage the benefits of cloud computing delivery models such as dynamic scalability, distributed computing, and high availability (including geographic dispersion, redundancy, and failover). Cloud-native refers to the way these applications are created and deployed so that they are suitable for deployment in a public cloud. Cloud-native applications can (and often are) run in a public cloud, but can also be run in an on-premises data center. Some cloud-native applications can be containerized, for example, different parts, functions, or sub-units of an application can be packaged into their own containers and dynamically orchestrated so that each part is actively scheduled and managed to optimize resource utilization. These containerized applications can be built using a microservices architecture to improve the overall agility and maintainability of the application.
[0013] In a microservices architecture, an application is arranged as a collection of smaller sub-units (“microservices”) that can be deployed and scaled independently of each other and communicate with each other over a network. These microservices typically have a specific technical and functional granularity and often implement lightweight communication protocols, resulting in a fine-grained nature. The microservices of an application can perform different functions from each other, may be deployable independently, and may use different programming languages, databases, and hardware / software environments. Decomposing an application into smaller services improves the modularity of the application beneficially, enables individual microservices to be replaced as needed, and parallelizes development by allowing teams to develop, deploy, and maintain those microservices independently of each other. Microservices may, in some examples, be deployed using virtual machines, containers, or serverless functions. The disclosed core and RAN software may conform to a microservices architecture in which the described wireless network is composed of independent sub-units that can be deployed on demand and scaled.
[0014] Referring now to FIG. 1, an example of a communication network 100 deployed and managed in accordance with various embodiments of the present disclosure is shown. The communication network 100 may correspond to a cellular network such as a 4th generation (4G) Long-Term Evolution (LTE) network, a 5th generation (5G) network, a 4G-5G hybrid core with both 4G and 5G radio access networks (RANs), or another network that provides wireless network access. The wireless network 103 includes a radio network 103 that may be operated by a public communication provider or a cloud service provider of an enterprise or other organization. Various deployments of the wireless network 103 may include one or more of a core network and a RAN network, as well as a control plane for executing the core network and / or the RAN network on cloud provider infrastructure. As described above, these components may be developed in a cloud-native manner using, for example, a microservices architecture such that centralized control and distributed processing are used to efficiently scale traffic and transactions. These components may be based on 3GPP (registered trademark) specifications by following an application architecture (CUPS architecture) in which the processing of the control plane and the user plane is separated.
[0015] The wireless network 103 provides wireless network access to a plurality of wireless devices 106 that may be mobile devices or fixed location devices. In various examples, the wireless devices 106 may include devices such as smartphones, connected vehicles, IoT devices, sensors, machines (such as in a manufacturing facility), and hotspots. The wireless devices 106 may also be referred to as user equipment (UE) or customer premises equipment (CPE).
[0016] The wireless network 103 may include a RAN that provides wireless network access to a plurality of wireless devices 106 through a plurality of cells 109. Each of the cells 109 may be equipped with one or more antennas and one or more radio units for transmitting and receiving wireless data signals with the wireless devices 106. The antennas may be configured for one or more frequency bands, and the radio units may also be frequency agile or frequency adjustable. To concentrate the signal in a particular direction or azimuth range, a particular gain or beamwidth can be associated with the antenna, which may enable frequency reuse in different directions. Further, the antenna may be horizontally polarized, vertically polarized, or circularly polarized. In some examples, the radio unit can transmit and receive signals using multiple-input multiple-output (MIMO) technology. Thus, the RAN implements a wireless access technology that enables a wireless connection with the wireless devices 106 and provides a connection to the core network of the wireless network. The components of the RAN include not only the base stations and antennas that cover a given physical area, but also the necessary core network items for managing the connection to the RAN.
[0017] Data traffic is often routed to the core network via a fiber transport network composed of multiple hops of layer 3 routers (e.g., at an aggregation site). The core network is typically housed in one or more data centers. Usually, the core network aggregates data traffic from end devices, authenticates subscribers and devices, applies personalized policies, manages device mobility, and then routes the traffic to operator services or the Internet. For example, a 5G core can separate the control plane and the user plane and be decomposed into several microservice elements. Since the 5G core can include virtualized software-based network functions (e.g., deployed as microservices) rather than physical network elements, it can be instantiated within a multi-access edge computing (MEC) cloud infrastructure. The network functions of the core network can include user plane functions (UPF), access and mobility management functions (AMF), and session management functions (SMF), which will be described in more detail below. In the case of data traffic destined for locations external to the communication network 100, the network functions typically include a firewall for an external network such as the Internet or a cloud provider network through which traffic can enter and exit the communication network 100. Note that in some embodiments, the communication network 100 can include facilities that allow traffic to enter and exit to sites further downstream from the core network (e.g., an aggregation site or the wireless network 103).
[0018] The UPF provides an interconnection point between the mobile infrastructure and the data network (DN), that is, it provides encapsulation and decapsulation of the General Packet Radio Service (GPRS) tunneling protocol for the user plane (GTP-U). The UPF may also provide a session anchor point for providing mobility within the RAN, such as transmitting one or more end marker packets to the RAN base station. The UPF may also handle packet routing and forwarding, such as steering a flow to a specific data network based on traffic matching filters. Another function of the UPF includes QoS processing per flow or per application, such as transport level packet marking and rate limiting for the uplink (UL) and downlink (DL). The UPF can be implemented as a cloud-native network function using the latest microservices approach, for example, it can be deployed within a serverless framework (which abstracts the underlying infrastructure where the code is executed via a managed service).
[0019] The AMF may receive connection and session information from the wireless device 106 or the RAN and may handle connection and mobility management tasks. For example, the AMF may manage handovers between base stations within the RAN. In some examples, the AMF may be regarded as an access point to the 5G core by terminating traffic of a specific RAN control plane and the wireless device 106. The AMF may also implement encryption and integrity protection algorithms.
[0020] The SMF may handle session establishment or change, for example, by creating, updating, and deleting protocol data unit (PDU) sessions and managing session contexts within the UPF. The SMF may also implement the Dynamic Host Configuration Protocol (DHCP) and IP address management (IPAM). The SMF may be implemented as a cloud-native network function using the latest microservices approach.
[0021] Various network functions for implementing the wireless network 103 can be deployed within the distributed computing device 112 that can correspond to a general-purpose computing device configured to execute the network functions. For example, the distributed computing device 112 can execute one or more virtual machine instances that are sequentially configured to execute one or more services that implement the network functions. In one embodiment, the distributed computing device 112 is a highly durable machine deployed at each cell site.
[0022] In contrast, one or more centralized computing devices 115 may execute various network functions at a central site operated by a customer. For example, the centralized computing device 115 may be intensively placed on the customer's premises within a conditioned server room. The centralized computing device 115 can execute one or more virtual machine instances that are sequentially configured to execute one or more services that implement the network functions.
[0023] In one or more embodiments, network traffic from the wireless network 103 is backhauled to one or more core computing devices 118 that may be located at one or more data centers remote from the customer's site. The core computing device 118 can also perform various network functions, including routing network traffic to and from the network 121 that can correspond to the Internet and / or other external public or private networks. The core computing device 118 can perform functions related to the management of the communication network 100 (e.g., billing, mobility management, etc.) and a transport function for relaying traffic between the communication network 100 and other networks.
[0024] FIG. 2A shows an example of a network environment 200 that includes a cloud provider network 203 according to some embodiments and further includes various provider substrate extensions of the cloud provider network that can be used at various locations within the communication network of FIG. 1. The cloud provider network 203 (which may also be simply referred to as "the cloud") refers to a pool of network-accessible computing resources (such as computing, storage, and networking resources, applications, and services), which may be virtualized or bare metal. The cloud can provide convenient on-demand network access to a shared pool of configurable computing resources that can be programmatically provisioned and released in response to customer commands. These resources may be dynamically provisioned and reconfigured to adjust to varying loads. Thus, cloud computing can be regarded as both applications delivered as services over a publicly accessible network (such as the Internet, cellular communication networks) and the hardware and software within the data centers of cloud providers that provide those services.
[0025] The cloud provider network 203 can provide users with an on-demand scalable computing platform via a network. For example, users can freely have a scalable "virtual computing device" through the use of a computing server that provides a computing instance (optionally using local storage via the use of one or both of a central processing unit (CPU) and a graphics processing unit (GPU)) and a block store server that provides persistent block storage virtualized on a specified computing instance. These virtual computing devices have the attributes of a personal computing device, including hardware (various types of processors, local memory, random access memory (RAM), hard disks, and / or solid-state drive (SSD) storage), a selected operating system, network functions, and pre-loaded application software. Each virtual computing device may also virtualize its console input / output (e.g., keyboard, display, and mouse). This virtualization enables users to configure and use their virtual computing devices as if they were personal computing devices by connecting to their virtual computing devices using computer applications such as browsers, APIs, and software development kits (SDKs). Different from a personal computing device that owns a fixed amount of hardware resources available to the user, the hardware associated with a virtual computing device can scale up or down according to the resources required by the user.
[0026] As described above, the user can connect to the resources and services of the virtualized computing devices and other cloud provider networks 203 via the intermediate network(s) 212 using various interfaces 206 (e.g., APIs), and can configure and manage a telecommunications network such as a 5G network. The API refers to the interface and / or communication protocol between the client device 215 and the server such that when the client makes a request in a predefined format, the client must receive a response in a specific format or initiate a defined action. In the context of a cloud provider network, the API provides a gateway for the customer to access the cloud infrastructure, enabling the development of applications that interact with the resources and services hosted in the cloud provider network by allowing the customer to retrieve data from or execute actions within the cloud provider network. The API can also enable various services within the cloud provider network to exchange data with each other. The user can choose to deploy their own virtual computing system to provide network-based services for their own use and / or for use by their customers or clients.
[0027] The cloud provider network 203 can include a physical network (e.g., chassis, cables, rack hardware) called a substrate. The substrate can be regarded as a network fabric that includes the physical hardware for executing the services of the provider network. The substrate may be isolated from the rest of the cloud provider network 203, for example, it may not be possible to route from the substrate network address to an address within the production network that executes the services of the cloud provider or to a customer network that hosts customer resources.
[0028] Cloud provider network 203 may include an overlay network of virtualized computing resources running on a substrate. In at least some embodiments, a hypervisor or other device or process on a network substrate may use encapsulation protocol technology to encapsulate and route network packets (e.g., client IP packets) on the network substrate between client resource instances on different hosts within the provider network. Encapsulation protocol technology may be used on the network substrate to route encapsulated packets (also referred to as network substrate packets) between endpoints on the network substrate via an overlay network path or route. Encapsulation protocol technology may be regarded as providing a virtual network topology overlaid on the network substrate. Thus, network packets may be routed along the substrate network according to constructs within the overlay network (e.g., a virtual network that may be referred to as a virtual private cloud (VPC), a port / protocol firewall configuration that may be referred to as a security group). A mapping service (not shown) may coordinate the routing of these network packets. The mapping service may be a geographically distributed lookup service that maps a combination of an overlay Internet protocol (IP) and a network identifier to a substrate IP, enabling distributed substrate computing devices to locate the destination of a packet.
[0029] For example, each physical host device (e.g., a computing server, a block storage server, an object storage server, a control server) may have an IP address within the substrate network. Using hardware virtualization technology, it may be possible to concurrently execute multiple operating systems on a host computer, e.g., as virtual machines (VMs) on a computing server. A hypervisor or virtual machine monitor (VMM) on the host allocates the host's hardware resources to various VMs on the host and monitors the execution of the VMs. Each VM may be given one or more IP addresses within the overlay network, and the VMM on the host may be aware of the IP addresses of the VMs on the host. The VMM (and / or other devices or processes on the network substrate) may use encapsulation protocol technology to encapsulate and route network packets (e.g., client IP packets) on the network substrate between virtualized resources on different hosts within the cloud provider network 203. Encapsulation protocol technology may be used on the network substrate to route encapsulated packets between endpoints on the network substrate via an overlay network path or route. Encapsulation protocol technology may be regarded as providing a virtual network topology overlaid on the network substrate. Encapsulation protocol technology may include a mapping service that maintains a mapping directory that maps IP overlay addresses (e.g., IP addresses visible to a customer) to substrate IP addresses (IP addresses not visible to a customer), and this mapping directory may be accessed by various processes on the cloud provider network 203 to route packets between endpoints.
[0030] As shown, the traffic and operations of the cloud provider network substrate can be broadly subdivided into two categories in various embodiments: control plane traffic carried on the logical control plane 218 and data plane operations carried on the logical data plane 221. The data plane 221 represents the movement of user data through a distributed computing system, and the control plane 218 represents the movement of control signals through a distributed computing system. The control plane 218 generally includes one or more control plane components or services that are distributed across and implemented by one or more control servers. Control plane traffic generally includes administrative operations such as the establishment of various customer-segregated virtual networks, monitoring of resource usage and health, identification of the specific host or server on which a requested compute instance is launched, and provisioning of additional hardware as needed. The data plane 221 includes customer resources (e.g., compute instances, containers, block storage volumes, databases, file storage) implemented on the cloud provider network. Data plane traffic generally includes non-administrative operations such as data transfers to and from customer resources.
[0031] Control plane components are typically implemented on a separate set of servers from the data plane servers and may be sent via different networks separate from control plane traffic and data plane traffic. In some embodiments, control plane traffic and data plane traffic may be supported by different protocols. In some embodiments, messages (e.g., packets) sent via the cloud provider network 203 include a flag indicating whether the traffic is control plane traffic or data plane traffic. In some embodiments, the payload of the traffic may be inspected to determine its type (e.g., control plane or data plane). Other techniques for distinguishing traffic types are also possible.
[0032] As shown, the data plane 221 may be bare metal (e.g., single tenant), or may include one or more computing servers that are virtualized by a hypervisor to run multiple VMs (sometimes called "instances") or micro-VMs for one or more customers. These computing servers can support virtualized computing services (or "hardware virtualization services") of a cloud provider network. The virtualized computing service may be part of the control plane 218, enabling a customer to issue commands via interface 206 (e.g., an API) to launch and manage computing instances (e.g., VMs, containers) for an application. The virtualized computing service may provide virtual computing instances with various computing resources and / or memory resources. In one embodiment, each of the virtual computing instances may correspond to one of several instance types. Instance types may be characterized by their hardware type, computing resources (e.g., number, type, and configuration of CPUs or CPU cores), memory resources (e.g., capacity, type, and configuration of local memory), storage resources (e.g., capacity, type, and configuration of locally accessible storage), network resources (e.g., characteristics of its network interface and / or network functions), and / or other suitable descriptive characteristics. An instance type selection function may be used to select an instance type for a customer, for example, based at least in part on input from the customer. For example, a customer may select an instance type from a predefined set of instance types. As another example, a customer may specify the desired resources of an instance type and / or the requirements of the workload that the instance runs, and the instance type selection function may select an instance type based on such specifications.
[0033] The data plane 221 may also include one or more block storage servers, which may include persistent storage for storing volumes of customer data and software for managing these volumes. Such block storage servers may support a managed block storage service of the cloud provider network. The managed block storage service is part of the control plane 218 and enables a customer to issue commands via an interface 206 (e.g., an API) to create and manage volumes for applications running on compute instances. The block storage server includes one or more servers where data is stored as blocks. A block is a sequence of bytes or bits and typically contains an integral number of records with a maximum length of the block size. Blocked data is usually stored in a data buffer and the entire block is read and written at once. In general, a volume can correspond to a logical collection of data, such as a set of data maintained on behalf of a user. For example, a user volume that can be treated as an individual hard drive ranging in size from 1 GB to over 1 terabyte (TB) is composed of one or more blocks stored in the block storage server. Although treated as an individual hard drive, it will be understood that a volume can be stored as one or more virtualized devices implemented on one or more underlying physical host devices. A volume may be partitioned a small number of times (e.g., up to 16 times) and each partition may be hosted by a different host. The data of a volume may be replicated among multiple devices within the cloud provider network to provide multiple replicas of the volume (such replicas may collectively represent a volume on a computing system).Replicas of volumes in a distributed computing system, advantageously, for example, enable a user to access either a primary replica of a volume or a secondary replica of the volume synchronized with the primary replica at the block level, so that access to volume information is not blocked by a failure of either the primary or secondary replica, thereby providing automatic failover and recovery. The role of the primary replica can be to facilitate reading and writing on the volume (sometimes referred to as "input / output operations" or simply "I / O operations") and to reflect any writes to the secondary (either using asynchronous replication, although preferably synchronously in the I / O path). The secondary replica is updated in synchronization with the primary replica and can provide seamless migration during a failover operation, whereby the secondary replica assumes the role of the primary replica and the previous primary is designated as secondary or a new alternative secondary replica is provisioned. In a particular example herein, the primary and secondary replicas are described, although it will be understood that a logical volume can include multiple secondary replicas. A computing instance may virtualize its I / O to a volume via a client. The client may correspond to an instruction that enables the computing instance to connect to a remote data volume (e.g., a data volume stored on a physically separate computing device accessed via a network) and execute I / O operations on the remote data volume. The client may be implemented on an offload card of a server that includes a processing unit (e.g., a CPU or GPU) of the computing instance.
[0034] The data plane 221 may include one or more object storage servers corresponding to another type of storage within the cloud provider network. An object storage server includes one or more servers in which data is stored as objects within a resource called a bucket and may be used to support a managed object storage service of the cloud provider network. Each object typically includes the stored data, a variable amount of metadata enabling various functions of the object storage server related to the analysis of the stored object, and a globally unique identifier or key that can be used to retrieve the object. Each bucket is associated with a given user account. A customer can store a desired number of objects within their bucket, can write, read, and delete objects within their bucket, and can control access to their bucket and the objects contained therein. Further, in embodiments where several different object storage servers are distributed across different ones of the regions described above, a user can select the region (or regions) in which a bucket is stored, for example, to optimize latency. A customer can use a bucket to store various types of objects, such as a machine image that can be used to boot a VM or a snapshot representing a point-in-time view of the data of a volume.
[0035] A provider substrate extension 224 (the "PSE") provides resources and services of a cloud provider network 203 within a separate network such as a telecommunications network, thereby extending the functionality of the cloud provider network 203 to a new location (e.g., for reasons related to latency of communication with a customer device, compliance, security, etc.). In some embodiments, the PSE 224 can be configured to provide capacity for cloud-based workloads running within a telecommunications network. In some embodiments, the PSE 224 can be configured to provide core and / or RAN functionality of a telecommunications network and can be configured using additional hardware (e.g., radio access hardware). Some embodiments can be configured to enable both, for example, by making unused capacity available for execution of cloud-based workloads by core and / or RAN functionality.
[0036] As shown, such a provider substrate extension 224 can include, among other possible types of substrate extensions, a cloud provider network managed provider substrate extension 227 (e.g., formed by a server located within a cloud provider management facility separate from that associated with the cloud provider network 203), a communications service provider substrate extension 230 (e.g., formed by a server associated with a communications service provider facility), a customer managed provider substrate extension 233 (e.g., formed by a server located on-premises at a customer or partner facility).
[0037] As shown in the exemplary provider substrate extension 224, the provider substrate extension 224 can similarly include a logical separation between a control plane 236 and a data plane 239 that respectively extend the control plane 218 and the data plane 221 of the cloud provider network 203. The provider substrate extension 224 may be preconfigured by, for example, a cloud provider network operator to use the cloud provider network with an appropriate combination of hardware with software and / or firmware elements to support various types of computing-related resources and to reflect the experience of doing so. For example, one or more provider substrate extension location servers may be provisioned by a cloud provider for deployment within the provider substrate extension 224. As noted above, the cloud provider network 203 may provide a set of predefined instance types, each having various types and amounts of underlying hardware resources. Each instance type may also be provided in various sizes. The server may be a heterogeneous server so that a customer can continue to use the same instance type and size within the region in the provider substrate extension 224. A heterogeneous server can support multiple instance sizes of the same type and can be reconfigured to host any instance type supported by its underlying hardware resources. The reconfiguration of the heterogeneous server can be performed on the fly using the available capacity of the server, i.e., while other VMs are still running and consuming other capacity of the provider substrate extension location server.This enables better packing of the instances running on the server, thereby improving the utilization of computing resources within the edge location and also providing a seamless experience regarding the use of instances across the cloud provider network 203 and the cloud provider network managed provider substrate extension 227.
[0038] The provider substrate extension server may host one or more computing instances. The computing instances may be VMs or containers that package the code and all its dependencies, enabling the application to run quickly and reliably across the computing environment (including, for example, VMs and micro-VMs). Additionally, the server may host one or more data volumes, depending on customer requirements. In the regions of the cloud provider network 203, such volumes may be hosted on dedicated block store servers. However, since the capacity of the provider substrate extension 224 may be significantly smaller than within the region, if the provider substrate extension 224 includes such a dedicated block store server, an optimal utilization experience may not be provided. Thus, the block storage service may be virtualized within the provider substrate extension 224 such that one of the VMs runs block store software to store the data of the volume. Similar to the operation of the block storage service in the regions of the cloud provider network 203, the volumes within the provider substrate extension 224 may be replicated for durability and availability. The volumes may be provisioned within a separate virtual network unique to the provider substrate extension 224. The computing instances and any volumes collectively constitute the data plane 239 extension of the provider network data plane 221 within the provider substrate extension 224.
[0039] In some embodiments, the servers within the provider substrate extension 224 may host certain local control plane components, such as components that enable the provider substrate extension 224 to continue to function in the event that the connection back to the cloud provider network 203 is severed. Examples of these components include a migration manager that can move compute instances between provider substrate extension servers as needed to maintain availability, and a key-value data store that indicates the location of volume replicas. However, generally, the control plane 236 functionality of the provider substrate extension remains within the cloud provider network 203 to allow the customer to use as much of the resource capacity of the provider substrate extension as possible.
[0040] The migration manager may have not only a local controller running on a PSE server (and servers in the data centers of cloud providers), but also a centralized coordination component running within a region. The centralized coordination component can identify the target edge location and / or target host when a migration is triggered, and the local controller can coordinate the data transfer between the source host and the target host. The movement of the resources described between hosts in different locations can take one of several migration forms. Migration refers to moving virtual machine instances (and / or other resources) between hosts within a cloud computing network or between a host outside the cloud computing network and a host within the cloud. There are various types of migrations, such as live migration and restart migration. During a restart migration, the customer experiences the stopping and effective restart of the virtual machine instance. For example, the control plane service can coordinate a restart migration workflow that includes discarding the current domain on the original host and then creating a new domain for the virtual machine instance on the new host. The instance is restarted by shutting down on the original host and restarting on the new host.
[0041] Live migration refers to the process of moving a running virtual machine or application between different physical machines without significantly degrading the availability of the virtual machine (e.g., the downtime of the virtual machine is not noticed by the end user). When the control plane executes the live migration workflow, it can create a new "inactive" domain associated with the instance, while the original domain of the instance continues to be executed as the "active" domain. The memory of the virtual machine (including any in-memory state of the running application), storage, and network connectivity are transferred from the original host with the active domain to the destination host with the inactive domain. The virtual machine may be briefly paused while transferring the memory contents to the destination host to prevent state changes. The control plane can migrate the inactive domain to become the active domain, demote the original active domain to become the inactive domain (also called "flipping"), and then discard the inactive domain.
[0042] Various types of migration techniques involve managing a critical phase (the time during which a customer cannot use a virtual machine instance), and this phase needs to be made as short as possible. In currently disclosed migration techniques, this management can be particularly difficult because resources are moved between hosts at geographically separated locations that can be connected via one or more intermediate networks. In the case of live migration, the disclosed techniques can dynamically determine, for example, the amount of memory state data to copy beforehand (e.g., while the instance is still running on the source host) and after copying (e.g., after the instance has started execution on the destination host) based on, for example, the latency between locations, the network bandwidth / usage pattern, and / or which memory pages are most frequently used by the instance. Further, the specific time at which the memory state data is transferred can be dynamically determined based on the state of the network between locations. This analysis may be performed by a migration management component within a region or by a migration management component running locally at the source edge location. If the instance has access to virtualized storage, both the source domain and the target domain can be simultaneously attached to the storage to enable uninterrupted access to the data during migration and in the event of a rollback to the source domain being necessary.
[0043] The server software executed in the provider substrate extension 224 may be designed by the cloud provider to execute on the cloud provider substrate network, and this software can be made to execute without modification within the provider substrate extension 224 by creating a private replica of the substrate network (a "shadow substrate") within the edge location using the local network manager(s) 242. The local network manager(s) 242 operates on the provider substrate extension 224 server and functions as, for example, one or more virtual private network (VPN) endpoints between the provider substrate extension 224 and the proxies 245, 248 within the cloud provider network 203, and by implementing a mapping service (for traffic encapsulation and decapsulation) that associates data plane traffic (from the data plane proxy 248) and control plane traffic (from the control plane proxy 245) with the appropriate server(s), the shadow substrate can be bridged to the provider substrate extension 224 network. By implementing a local version of the substrate overlay mapping service of the provider network, the local network manager(s) 242 enables the resources within the provider substrate extension 224 to communicate seamlessly with the resources within the cloud provider network 203. In some embodiments, a single local network manager 242 may perform these actions for all servers hosting compute instances within the provider substrate extension 224. In other embodiments, each server hosting a compute instance may have a dedicated local network manager 242.In a multi-rack edge location, the local network manager maintains open tunnels with each other, and inter-rack communication can pass through the local network manager 242.
[0044] The provider substrate extension location can utilize a secure network tunnel via the provider substrate extension 224 network to reach the cloud provider network 203 in order to maintain the security of customer data when passing through, for example, the provider substrate extension 224 network and other intermediate networks (which may include the public Internet). Within the cloud provider network 203, these tunnels are composed of virtual infrastructure components including a separate virtual network (e.g., within an overlay network), a control plane proxy 245, a data plane proxy 248, and a substrate network interface. Such proxies 245, 248 can be implemented as containers running on a computing instance. In some embodiments, each server at the provider substrate extension 224 location hosting a computing instance can utilize at least two tunnels. One is for control plane traffic (e.g., Constrained Application Protocol (CoAP) traffic), and the other is for encapsulated data plane traffic. A connection manager (not shown) within the cloud provider network 203 manages the cloud provider network side life cycle of these tunnels and their components, for example, by automatically provisioning them as needed and maintaining them in a healthy operating state. In some embodiments, a direct connection between the provider substrate extension 224 location and the cloud provider network 203 may be used for control plane communication and data plane communication. Compared with a VPN via other networks, the direct connection may provide a certain bandwidth and more consistent network performance because its network path is relatively fixed and stable.
[0045] The control plane (CP) proxy 245 may be provisioned within the cloud provider network 203 to represent a particular host(s) at an edge location. The CP proxy 245 serves as a mediator between the control plane 218 within the cloud provider network 203 and the control plane target within the control plane 236 of the provider substrate extension 224. That is, the CP proxy 245 provides the infrastructure for tunneling management API traffic destined for the provider substrate extension server from the regional substrate to the provider substrate extension 224. For example, the virtual computing service of the cloud provider network 203 may issue commands to the VMM of the server of the provider substrate extension 224 to start a computing instance. The CP proxy 245 maintains a tunnel (e.g., a VPN) to the local network manager 242 of the provider substrate extension. The software implemented within the CP proxy 245 ensures that only eligible API traffic exits and returns to the substrate. The CP proxy 245 provides a mechanism for exposing remote servers on the cloud provider substrate while continuing to protect against the outflow of substrate security materials (e.g., encryption keys, security tokens) from the cloud provider network 203. The one-way control plane traffic tunnel imposed by the CP proxy 245 also prevents any (potentially compromised) device from calling back to the substrate. The CP proxy 245 may be instantiated one-to-one with the server of the provider substrate extension 224, or may be able to manage the control plane traffic of multiple servers within the same provider substrate extension.
[0046] The data plane (DP) proxy 248 may also be provisioned within the cloud provider network 203 to represent certain server(s) within the provider substrate extension 224. The DP proxy 248 functions as a shadow or anchor for the server(s), and may be used by services within the cloud provider network 203 to monitor the health of the host (including availability, used / free compute and capacity, used / free storage and capacity, and usage / availability of network bandwidth). The DP proxy 248 also functions as a proxy for the server(s) within the cloud provider network 203, enabling a separate virtual network to span the provider substrate extension 224 and the cloud provider network 203. Each DP proxy 248 may be implemented as a packet forwarding compute instance or container. As shown, each DP proxy 248 can maintain a VPN tunnel with a local network manager 242 that manages traffic to the server(s) the DP proxy 248 represents. This tunnel can be used to send data plane traffic between the provider substrate extension server(s) and the cloud provider network 203. Data plane traffic flowing between the provider substrate extension 224 and the cloud provider network 203 can pass through the DP proxy 248 associated with that provider substrate extension 224. In the case of data plane traffic flowing from the provider substrate extension 224 to the cloud provider network 203, the DP proxy 248 may receive the encapsulated data plane traffic, verify its accuracy, and may permit it to enter the cloud provider network 203. The DP proxy 248 can forward the encapsulated traffic directly from the cloud provider network 203 to the provider substrate extension 224.
[0047] The local network manager(s) 242 can provide secure network connectivity with proxies 245, 248 established within the cloud provider network 203. After the connectivity between the local network manager 242 and the proxies 245, 248 is established, the customer may issue commands via the interface 206 to the compute instances hosted within the cloud provider network 203 in the same way as for the way commands are issued to instantiate (and / or perform other operations using) the compute instances. From the customer's perspective, the customer can now seamlessly use local resources within the provider substrate extension (and, if desired, resources in the cloud provider network 203). Compute instances set up on the server in the provider substrate extension 224 may communicate with both electronic devices within the same network and other resources set up within the cloud provider network 203, as desired. A local gateway 251 may be implemented to provide network connectivity between the provider substrate extension 224 and the network to which the extension is coupled (e.g., the communication service provider network in the example of the provider substrate extension 230).
[0048] Depending on the situation, it may be necessary to transfer data between the object storage service and the provider substrate extension (PSE) 224. For example, the object storage service may store the machine image used to start a VM and the snapshot representing the backup of a volume at a specific point in time. The object gateway is provided on the PSE server or a special storage device, and may provide the customer with a cache for each configurable bucket of the contents of the object storage bucket within the PSE224 to minimize the impact of the PSE region latency on the customer's workload. The object gateway may also temporarily store the snapshot data from the snapshot of the volume within the PSE224 and synchronize it with the object server within the region if possible. The object gateway may also store the machine image designated by the customer for use within the PSE224 or within the customer's premises. In some embodiments, the data within the PSE224 may be encrypted with a unique key, and the cloud provider may restrict the sharing of the key from the region to the PSE224 for security reasons. Therefore, the data exchanged between the object store server and the object gateway can utilize encryption, decryption, and / or re-encryption to maintain the security boundary regarding the encryption key or other confidential data. The means of transformation can perform these operations, and the PSE bucket can be created (on the object store server) to store the snapshot data and the machine image data using the PSE encryption key.
[0049] In this way, the PSE 224 forms an edge location in that it approaches the customer device outside the conventional cloud provider data center and provides the resources and services of the cloud provider network 203. The edge locations referred to in this specification can be structured in several ways. In some embodiments, the edge location can be an extension of the cloud provider network substrate that includes a limited amount of capacity provided outside of an availability zone (e.g., within a small data center or other facility of the cloud provider that may be located near the customer's workload and may be away from any availability zone). Such an edge location may be referred to as a "far zone" (due to being far from other availability zones) or a "near zone" (due to being close to the customer's workload). The near zone can be connected to a publicly accessible network such as the Internet in various ways, for example, directly, via another network, or via a private connection to the region. Typically, the near zone has limited capacity compared to a region, but in some cases, the near zone may have a significant capacity such as thousands of racks or more.
[0050] In some embodiments, the edge location may be an extension of a cloud provider network substrate formed by one or more servers located on-premises at a customer or partner facility, and such server(s) communicate with an availability zone or region near the cloud provider network via a network (e.g., a publicly accessible network such as the Internet). This type of substrate extension located outside of the cloud provider network data center may sometimes be referred to as an "outpost" of the cloud provider network. Some outposts may be integrated into the communication network, for example, as multi-access edge computing (MEC) sites having physical infrastructure that spans telecommunications data centers, telecommunications aggregation sites, and / or telecommunications base stations within a telecommunications network. In an on-premises example, the limited capacity of the outpost may be available only to the customer who owns the facility (and any other accounts permitted by the customer). In a telecommunications example, the limited capacity of the outpost may be shared among multiple applications (e.g., games, virtual reality applications, healthcare applications) that transmit data to users of the telecommunications network.
[0051] Edge locations can include data plane capacity that is at least partially controlled by the control plane of an availability zone near a provider network. Thus, an availability zone group can include a "parent" availability zone and any "child" edge locations that are home to the parent availability zone (e.g., at least partially controlled by its control plane). Certain limited control plane functions (e.g., functions that require low-latency communication with customer resources and / or functions that enable an edge location to continue to function when disconnected from the parent availability zone) may also exist at some edge locations. Thus, in the example above, edge locations refer to at least an expansion of data plane capacity located at the edge of a cloud provider network, close to customer devices and / or workloads.
[0052] In the example of FIG. 1, the distributed computing device 112 (FIG. 1), the centralized computing device 115 (FIG. 1), and the core computing device 118 (FIG. 1) can be implemented as a provider substrate extension 224 of the cloud provider network 203. The installation or placement of the provider substrate extension 224 within the communication network 100 can vary depending on the particular network topology or architecture of the communication network 100. The provider substrate extension 224 can generally connect anywhere where the communication network 100 can generate packet-based traffic (e.g., IP-based traffic). Further, communication between a given provider substrate extension 224 and the cloud provider network 203 typically passes securely through at least a portion of the communication network 100 (e.g., via a secure tunnel, virtual private network, direct connection, etc.).
[0053] In 5G wireless network development efforts, edge locations may be considered as potential sites for the implementation of multi-access edge computing (MEC). Such edge locations can connect to various points within a 5G network that provide breakout of data traffic as part of the user plane function (UPF). Even in older wireless networks, edge locations can be incorporated. For example, in a 3G wireless network, an edge location can connect to the packet-switched network portion of a communication network 100, such as a serving general packet radio service support node (SGSN) or a gateway general packet radio service support node (GGSN). In a 4G wireless network, an edge location can connect to a serving gateway (SGW) or a packet data network gateway (PGW) as part of the core network or evolved packet core (EPC). In some embodiments, traffic between the provider substrate extension 224 and the cloud provider network 203 can be detached from the communication network 100 without routing through the core network.
[0054] In some embodiments, the provider substrate extension 224 may connect to a plurality of communication networks associated with each customer. For example, if two communication networks of each customer share or route traffic through a common point, the provider substrate extension 224 may be connected to both networks. For example, each customer may assign a portion of its network address space to the provider substrate extension, and the provider substrate extension may include a distinguishable router or gateway for traffic exchanged with each of the communication networks 100. For example, traffic addressed to the provider substrate extension 224 from one network may have a different destination IP address, source IP address, and / or virtual local area network (VLAN) tag than traffic received from another network. Similarly, traffic going from the provider substrate extension to a destination in one of the networks can be encapsulated to have an appropriate VLAN tag, a source IP address (e.g., from a pool allocated to the provider substrate extension from the destination network address space), and a destination IP address.
[0055] Figure 2B shows an example 253 of the cellularization and geographical distribution of a communication network 100 (Figure 1) for providing a high availability user plane function (UPF). In Figure 2B, user device 254 communicates with request router 255 to route requests to one of a plurality of control plane cells 257a and 257b. Each control plane cell 257 may include a network service API gateway 260, a network slice configuration 262, a network service monitoring function 264, site planning data 266 (including layout, device type, number of devices, etc. that describe the customer's site requirements), a network service / function catalog 268, an orchestration function 270, and / or other components. To reduce the possibility that a large-scale error affects a wide range of customers, a large control plane may be divided into cells by providing one or more cells that operate independently, for example, for each customer, for each network, or for each region.
[0056] The network service / function catalog 268 is also referred to as the NF repository function (NRF). In a service-based architecture (SBA) 5G network, the control plane functions and the common data repository can be delivered via a set of interconnected network functions built using a microservices architecture. The NRF can maintain a record of the available NF instances and the services they support, enabling other NF instances to subscribe and be notified of registrations from a given type of NF instance. Thus, the NRF supports service discovery by receiving discovery requests from NF instances and can identify which NF instances support a particular service. The network function orchestrator 270 may perform NF lifecycle management including instantiation, scale-out / in, performance measurement, event correlation, and termination. The network function orchestrator 270 may also on-board new NFs, manage migrations to new or updated versions of existing NFs, identify sets of NFs suitable for a particular network slice or larger network, and orchestrate NFs across the various computing devices and sites that make up the radio network 103.
[0057] The control plane cell 257 may communicate with one or more cell sites 272, one or more customer local data centers 274, one or more local zones 276, and one or more regional zones 278. The cell site 272 includes computing hardware 280 that executes one or more distributed unit (DU) network functions 282. The customer local data center 274 includes computing hardware 283 that executes one or more DU or central unit (CU) network functions 284, a network controller, a UPF 286, one or more edge applications 287 corresponding to the customer's workload, and / or other components.
[0058] The local zone 276 may be within a data center operated by a cloud service provider and may execute one or more core network functions 288 such as an AMF, an SMF, a network exposure function (NEF) that securely exposes services and capabilities of other network functions, and an integrated data management (UDM) function that manages subscriber data for authentication, registration, and mobility management. The local zone 276 may also execute a UPF 286, a metric processing service 289, and one or more edge applications 287.
[0059] The regional zone 278 may be within a data center operated by a cloud service provider and may execute one or more core network functions 288; a UPF 286; an operations support system (OSS) 290 that supports network management systems, service delivery, service fulfillment, service assurance, and customer care; an Internet protocol multimedia subsystem (IMS) 291; a business support system (BSS) 292 that supports product management, customer management, revenue management, and / or order management; one or more portal applications 293, and / or other components.
[0060] In this example, the communication network 100 employs a cellular architecture to reduce the blast radius of individual components. At the highest level, the control plane is within a plurality of control plane cells 257 to prevent failures of individual control planes from affecting all deployments.
[0061] Within each control plane cell 257, a plurality of redundant stacks with a control plane that shifts traffic to a secondary stack as needed may be provided. For example, the cell site 272 may be configured to utilize a nearby local zone 276 as its default core network. If the local zone 276 stops, the control plane can redirect the cell site 272 to use a backup stack within the regional zone 278. Normally, traffic routed from the Internet to the local zone 276 may be shifted to an endpoint in the regional zone 278. Each control plane cell 278 may implement a "stateless" architecture that shares a common session database across multiple sites (such as across availability zones or edge sites).
[0062] Figure 3 shows an exemplary cloud provider network 203 that includes a geographically distributed provider substrate extension 224 (Figure 2A) (or "edge location 303") according to some embodiments. As shown, the cloud provider network 203 may be formed as a plurality of regions 306, where a region is a distinct geographical area where the cloud provider has one or more data centers 309. Each region 306 may include two or more availability zones (AZs) that are connected to each other via a private high-speed network, such as a fiber communication connection. An availability zone refers to a separate failure domain that includes one or more data center facilities with separate power, separate network, and separate cooling from other availability zones. The cloud provider may strive to place the availability zones far enough apart within a region so that multiple availability zones do not go offline simultaneously due to natural disasters, large-scale power outages, or other unexpected events. Customers can connect to resources within the availability zones of the cloud provider network via a publicly accessible network (e.g., the Internet, a cellular communication network, a communication service provider network). The transit center (TC) is a major backbone location that links customers to the cloud provider network and may be co-located with other network provider facilities (e.g., an Internet service provider, a telecommunications provider). Each region can operate two or more TCs for redundancy. Region 306 is connected to a global network that includes a private network infrastructure (e.g., a fiber connection controlled by a cloud service provider) that connects each region 306 to at least one other region. The cloud provider network 203 can deliver content from points of presence ("PoPs") that are external to but networked with these regions 306 via edge locations 303 and regional edge cache servers.Due to this partitioning and geographical dispersion of computing hardware, the cloud provider network 203 can provide customers with global low-latency resource access with a high degree of fault tolerance and stability.
[0063] Compared to the number of regional data centers or availability zones, the number of edge locations 303 can be much larger. By deploying edge locations 303 extensively in this way, low-latency connections to the cloud can be provided to a much larger group of end-user devices (compared to end-user devices that happen to be very close to a regional data center). In some embodiments, each edge location 303 may peer with a part of the cloud provider network 203 (e.g., a parent availability zone or a regional data center). Such peering enables various components operating within the cloud provider network 203 to manage the computing resources of the edge location 303. In some cases, multiple edge locations 303 may be placed or installed in the same facility (e.g., separate racks of a computer system) and be managed by different zones or data centers to provide additional redundancy. It should be noted that in this specification, the edge location 303 is typically shown as being within the communication service provider network or wireless network 103 (FIG. 1), but in some cases, such as when the cloud provider network facility is relatively close to the communication service provider facility, the edge location 303 may remain within the physical footprint of the cloud provider network 203 while being connected to the communication service provider network via a fiber or other network link.
[0064] Edge location 303 can be structured in several ways. In some embodiments, edge location 303 is an extension of the cloud provider network substrate that includes a limited amount of capacity provided outside of an availability zone (e.g., within a small data center located near a customer's workload and potentially away from any availability zone, or within another facility of the cloud provider). Such an edge location 303 may be referred to as a local zone (because it is closer to the local or a group of users than a conventional availability zone). A local zone can be connected to a publicly accessible network such as the Internet in various ways, e.g., directly, via another network, or via a private connection to region 306. Typically, a local zone has limited capacity compared to region 306, but in some cases, a local zone may have a significant amount of capacity such as thousands of racks or more. Some local zones may use an infrastructure similar to a typical cloud provider data center instead of the edge location 303 infrastructure described herein.
[0065] As shown herein, cloud provider network 203 can be formed into several regions 306, each region 306 representing a geographic area where the cloud provider clusters data centers. Each region may further include a plurality (e.g., two or more) of availability zones (AZs) connected to each other via a private high-speed network, e.g., a fiber communication connection. An AZ can provide a separate failure domain that includes one or more data center facilities with separate power, separate network, and separate cooling from another AZ. The AZs within region 306 are preferably located far enough apart from each other so that the same natural disaster (or other event causing a disruption) does not affect them or take multiple AZs offline simultaneously. A customer can connect to an AZ of the cloud provider network via a publicly accessible network (such as the Internet, a cellular communication network, etc.).
[0066] The pairing of a given edge location 303 to an AZ or region 306 of the cloud provider network 203 can be based on several factors. One such pairing factor is data sovereignty. For example, in order to keep data originating from a communication network in a country within that country, an edge location 303 deployed within that communication network can be paired to an AZ or region 306 within that country. Another factor is service availability. For example, some edge locations 303 can have different hardware configurations, such as the presence or absence of components such as local non-volatile storage for customer data (e.g., solid state drives), graphics accelerators, etc. Since some AZs or regions 306 may lack services to utilize those additional resources, an edge location can be paired to an AZ or region 306 that supports the use of those resources. Another factor is the latency between an AZ or region 306 and the edge location 303. While the deployment of an edge location 303 within a communication network is beneficial in terms of latency, pairing the edge location 303 to a remote AZ or region 306, which can introduce significant latency to the edge location 303's regional traffic, can negate those benefits. Thus, an edge location 303 is often paired to a nearby AZ or region 306 (from the perspective of network latency).
[0067] Furthermore, the disclosed service can provide a private zone for running local applications within the cloud provider network. This private zone can be connected to a broader regional zone and effectively become a part of it, enabling customers to manage the private zone using the same APIs and tools as those used in the cloud provider network. Similar to availability zones, virtual private network subnets can be assigned to the private zone. Subnets can be created using the API and assigned to all zones that the customer wishes to use, including the private zone and other existing zones. The management console may provide a simplified process for creating the private zone. Virtual machine instances and containers can be launched in the private zone in exactly the same way as in the regional zone. Customers can configure a network gateway to define routes, assign IP addresses, set up network address translation (NAT), etc. Using auto-scaling, the capacity of virtual machine instances or containers can be scaled as needed within the private zone. Within the private zone, the same management APIs and authentication APIs of the cloud provider network can be used. In some cases, cloud services available in the regional zone can be remotely accessed from the private zone via a secure connection, allowing access to these cloud services without the need to upgrade or change the local deployment.
[0068] Referring to FIG. 4, a network environment 400 according to various embodiments is shown. The network environment 400 includes a computing environment 403, one or more client devices 406, one or more pre-deployed devices 409, and one or more wireless networks 103 that communicate data with each other via a network 412. The network 412 includes, for example, the Internet, an intranet, an extranet, a wide area network (WAN), a local area network (LAN), a wired network, a wireless network, a cable network, a satellite network, or any other suitable network, or any combination of two or more such networks.
[0069] The computing environment 403 may include, for example, a server computer or any other system that provides computing capacity. Alternatively, the computing environment 403 may employ, for example, one or more server banks or computer banks or multiple computing devices that may be arranged in other configurations. Such computing devices may be located in a single facility or may be distributed among many different geographical locations. For example, the computing environment 403 may include multiple computing devices that together provide host computing resources, grid computing resources, and / or any other distributed computing arrangement. In some cases, the computing environment 403 may accommodate elastic computing resources where the allocated capacity of processing, network, storage, or other computing-related resources may change over time. For example, the computing environment 403 may correspond to a cloud provider network 203 (FIG. 2A), and customers may be billed according to their use of computing resources based on a utility computing model.
[0070] In some embodiments, the computing environment 403 may correspond to a virtualized private network within a physical network that includes, for example, virtual machine instances running on physical computing hardware by a hypervisor. The virtual machine instances and the containers running on these instances may be provided with network connectivity via virtualized network components that are made available by physical network components such as routers and switches.
[0071] Various applications and / or other functions may be executed in the computing environment 403 according to various embodiments. Also, various data is stored in a data store 415 that is accessible to the computing environment 403. The data store 415 may, as understood, be representative of multiple data stores 415. The data stored in the data store 415 is associated with, for example, the operation of various applications and / or functional entities described below.
[0072] The computing environment 403 as part of a cloud provider network that provides utility computing services includes a computing device 418 and other types of computing devices. The computing device 418 may correspond to different types of computing devices 418 and may have different computing architectures. The computing architecture may vary by utilizing processors having different architectures such as x86, x86_64, ARM, Scalable Processor Architecture (SPARC), PowerPC, etc. For example, one computing device 418 may have an x86 processor, while another computing device 418 may have an ARM processor. The computing device 418 may also have different available hardware resources such as local storage, a graphics processing unit (GPU), machine learning extensions, and other characteristics.
[0073] Computing device 418 may have various forms of allocated computing capacity 421, which may include virtual machine (VM) instances, containers, serverless functions, and the like. A VM instance may be instantiated from a VM image. For this purpose, a customer may specify that the virtual machine instance should be launched within a particular type of computing device 418 rather than other types of computing devices 418. In various examples, one VM instance may be executed alone on a particular computing device 418, or multiple VM instances may be executed on a particular computing device 418. Also, a particular computing device 418 can execute different types of VM instances, which can provide different amounts of resources available via the computing device 418. For example, one type of VM instance may provide more memory and processing power than another type of VM instance.
[0074] Components running on computing environment 403 include, for example, a radio network (RBN) management service 424, an RBN hardware configuration service 427, an RBN hardware deployment service 430, a capacity management service 433, and other applications, services, processes, systems, engines, or functions not described in detail herein.
[0075] The RBN management service 424 is executed to manage, configure, and monitor the wireless network 103 operated by a cloud service provider on behalf of a customer. For this purpose, the RBN management service 424 enables a customer to order a new wireless network 103, scale up or down an existing wireless network 103, change the operation of an existing wireless network 103, configure the devices 106 (FIG. 1) permitted to use the wireless network 103, provide statistics and metrics regarding the operation of the wireless network 103, etc., and can generate a number of user interfaces. For example, the RBN management service 424 can generate one or more network pages such as a web page including a user interface. Also, the RBN management service 424 can support this function via an API that can be called by the client application 436. In addition to facilitating interaction with the user, the RBN management service 424 implements the orchestration of the deployment and configuration changes of the wireless network 103 and the continuous monitoring of performance parameters. In some cases, the RBN management service 424 may generate a network plan 439 for the customer based at least in part on the specifications of the customer's location, an automated site survey by an unmanned aerial vehicle, and / or other input parameters.
[0076] The RBN hardware configuration service 427 is executed to implement configuration changes on the hardware implementing the wireless network 103. This may include wireless units, antennas, VM instances 421 that execute network functions, routers, switches, fiber optic termination devices, etc. For example, an antenna can be configured to operate at a specific frequency. A wireless unit can be programmed to operate at a specific frequency, participate in a specific wireless network 103, and backhaul traffic to a specific VM instance 421.
[0077] In some scenarios, the RBN hardware configuration service 427 is executed to reconfigure hardware that already exists within the wireless network 103. In other scenarios, the RBN hardware configuration service 427 is executed to preconfigure a set of hardware that is to be deployed to an existing or new wireless network 103. For this purpose, the RBN hardware configuration service 427 can implement the configuration on one or more pre-deployed devices 409 that are temporarily connected to the network 412 to facilitate preconfiguration before the pre-deployed devices 409 that are to be deployed to the wireless network 103 are shipped to the customer.
[0078] The RBN Hardware Deployment Service 430 is executed to automate and arrange the deployment of hardware for implementing the wireless network 103. Based on the network plan 439 submitted by the customer or generated for the customer, the RBN Hardware Deployment Service 430 can arrange for the procurement of the hardware components necessary to implement the wireless network 103 according to the network plan 439. This can include automatically ordering new equipment from vendors, reserving equipment already in the provider's inventory, or reallocating equipment that is no longer in use at the customer's site or another customer's site if available. In this regard, the RBN Hardware Deployment Service 430 may send instructions to the customer to return the equipment that is no longer in use, and the equipment may be sent directly to another customer for use in another deployment. In another scenario, the RBN Hardware Deployment Service 430 may send instructions to the customer to move equipment from a site where the equipment is no longer in use to another site where the equipment will be used. The RBN Hardware Deployment Service 430 may manage the connection of equipment to the network 412 for pre-configuration as the pre-deployed device 409. The RBN Hardware Deployment Service 430 may also arrange for the shipment of equipment to the customer's locations, which may potentially include multiple locations of the customer corresponding to each cell site.
[0079] The capacity management service 433 is configured to manage the computing capacity within the wireless network 103 and the associated core network. More specifically, it is configured to balance the use of common hardware between the software components of the wireless network 103 and other software workloads (such as customer applications). This may include dynamically reallocating computing capacity from network function workloads to customer workloads and vice versa, based on usage demands and preconfigured priorities. Additionally, unused computing capacity may be transferred from one customer to another, for example, by operating multiple wireless networks on a common underlying hardware, or by opting customers in to make unused computing capacity on their on-premises networking infrastructure available to other customers' cloud-based workloads in a cloud provider network. Also, network function workloads may be moved between the computing devices 112 of the cell site 109, the computing devices 115 of the customer site, and the computing devices 118 of the data center.
[0080] The data stored in the data store 415 includes, for example, one or more network plans 439, one or more cellular topologies 442, one or more spectrum allocations 445, device data 448, one or more RBN metrics 451, customer billing data 454, wireless unit configuration data 457, antenna configuration data 460, network function configuration data 463, one or more network function workloads 466, one or more customer workloads 469, and potentially other data.
[0081] The network plan 439 is the specification of the wireless network 103 that is to be deployed for the customer. For example, the network plan 439 can include the on-premises locations or geographical areas to be covered, the number of cells, device identification information and permissions, the desired maximum network latency, the desired bandwidth or network throughput for one or more classes of devices, one or more quality of service parameters for applications or services, and / or other parameters that can be used to create the wireless network 103. The customer can manually specify one or more of these parameters via a user interface. One or more of the parameters may be pre-set as default parameters. In some cases, the network plan 439 can be generated for the customer based at least in part on an automated site survey using an unmanned aerial vehicle. The values of the parameters that define the network plan 439 can be used as a basis for the cloud service provider to bill the customer under a utility computing model. For example, in a service level agreement (SLA), the customer may be billed a higher amount for lower latency targets and / or higher bandwidth targets, and the customer may be billed per device, per cell, based on the geographical area provided, spectrum availability, etc.
[0082] The cellular topology 442 includes the placement of multiple cells for the customer, taking into account the location of the cells and, where possible, the reuse of the frequency spectrum. The cellular topology 442 can be automatically generated by performing a site survey. In some cases, the number of cells within the cellular topology 442 can be automatically determined based on the desired geographical area to be covered, the availability of backhaul connections at various sites, signal propagation, the available frequency spectrum, and / or other parameters.
[0083] Spectrum allocation 445 includes the frequency spectrum available for allocation to the wireless network 103 and the frequency spectrum currently allocated to the wireless network 103. The frequency spectrum may include publicly accessible spectrum without restriction, spectrum personally owned or leased by a customer, spectrum owned or leased by a provider, spectrum that can be used for free but requires a reservation, and the like.
[0084] Device data 448 corresponds to data that describes devices 106 permitted to connect to the wireless network 103. This device data 448 includes corresponding user, account information, billing information, data plan, permitted applications or uses, an indication of whether the device 106 is mobile or fixed, location, current cell, network address, device identifier (e.g., International Mobile Equipment Identity (IMEI) number, Equipment Serial Number (ESN), Media Access Control (MAC) address, Subscriber Identity Module (SIM) number, etc.).
[0085] RBN metric 451 includes various metrics or statistics indicating the performance or health of the wireless network 103. Such RBN metric 451 may include bandwidth metric, dropped packet metric, signal strength metric, latency metric, and the like. The RBN metric 451 can be aggregated per device, per cell, per customer, etc.
[0086] Customer request data 454 specifies the fees that a customer should bear for the operation of the wireless network 103 by a provider. The fees may include fixed fees based on the equipment deployed to the customer and / or usage fees based on usage. In some cases, the customer may purchase the equipment upfront, and only the bandwidth or the cost of the backend network may be billed. In other cases, the customer may not bear the upfront cost and may be billed purely based on usage. Since the equipment is provided to the customer based on the utility computing model, the cloud service provider can select the optimal configuration of the equipment to meet the customer's target performance metrics while avoiding unnecessary hardware overprovisioning.
[0087] Wireless unit configuration data 457 may correspond to the configuration settings of the wireless units deployed in the wireless network 103. Such settings may include the frequency to be used, the protocol to be used, modulation parameters, bandwidth, network routing, and / or backhaul configuration, etc.
[0088] Antenna configuration data 460 may correspond to the configuration settings of the antenna, including the frequency to be used, azimuth angle, vertical or horizontal orientation, beam tilt, and / or other parameters that can be automatically controlled (e.g., by network-connected motors and control devices on the antenna), or other parameters that can be manually controlled by instructing the user to install the antenna in a specific way or to physically modify the antenna.
[0089] The network function configuration data 463 corresponds to the configuration settings that configure the operations of various network functions of the wireless network 103. In various embodiments, the network functions can be deployed to VM instances 421 located in computing devices 418 that are in cell sites, customer aggregation sites, or data centers located remotely from customers. Non-limiting examples of network functions can include access and mobility management functions, session management functions, user plane functions, policy control functions, authentication server functions, integrated data management functions, application functions, network exposure functions, network function repositories, network slice selection functions, and / or others. The network function workload 466 corresponds to machine images, containers, or functions that will be launched within the allocated computing capacity 421 to execute one or more network functions.
[0090] The customer workload 469 corresponds to customer machine images, containers, or functions that can be executed in parallel with, or instead of, the network function workload 466 within the allocated computing capacity 421. For example, the customer workload 469 can provide or support customer applications or services.
[0091] Client device 406 represents a plurality of client devices 406 that can be coupled to network 412. Client device 406 can include a processor-based system such as, for example, a computer system. Such a computer system can be embodied in the form of a desktop computer, a laptop computer, a personal digital assistant, a cellular phone, a smartphone, a set-top box, a music player, a web pad, a tablet computer system, a gaming console, an e-book reader, a smartwatch, a head-mounted display, a voice interface device, or other device. Client device 406 can include a display that includes one or more devices such as, for example, a liquid crystal display (LCD), a gas plasma-based flat panel display, an organic light emitting diode (OLED) display, an electronic ink (E-ink) display, an LCD projector, or other types of display devices.
[0092] Client device 406 may be configured to execute various applications such as client application 436 and / or other applications. By executing client application 436 within client device 406 and accessing network content provided, for example, by computing environment 403 and / or other servers, a user interface on the display can be rendered. For this purpose, client application 436 may include, for example, a browser, a dedicated application, etc., and the user interface may include a network page, an application screen, etc. In addition to client application 436, client device 406 may be configured to execute applications such as, for example, an e-mail application, a social networking application, a word processor, a spreadsheet, and / or other applications.
[0093] Next, referring to FIG. 5, shown is a flowchart presenting an example of the operation of a portion of the RBN management service 424 according to various embodiments. It is understood that the flowchart of FIG. 5 merely presents an example of many different types of functional arrangements that can be utilized to implement the operation of a portion of the RBN management service 424 as described herein. Alternatively, the flowchart of FIG. 5 can be considered to show examples of elements of a method implemented within the computing environment 403 (FIG. 4) according to one or more embodiments.
[0094] Starting from box 503, the RBN management service 424 generates a user interface for ordering or provisioning the RBN 103 (FIG. 1). For example, the user interface may include a network plan 439 (FIG. 4) or components for specifying parameters of the network plan 439. Such parameters may include, for example, the number of cells, a map or site plan of the customer premises or geographical area to be covered, the target bandwidth, information about the device 106 (FIG. 1) or the user, the target minimum latency, the desired cost, and / or other parameters. The user interface may include components for uploading one or more data files containing this information. The user interface may be transmitted as a network page or other network data via the network 412 (FIG. 4) for rendering by a client application 436 (FIG. 4) running on the client device 406 (FIG. 4). Alternatively, the client application 436 may make one or more API calls to order an RBN from a provider or to provision an RBN from the provider.
[0095] In box 506, the RBN management service 424 receives a request to provision an RBN. For example, a user can send a form or interact with the user interface in another way to send the request. Alternatively, the client application 426 may make one or more API calls to request the provisioning of an RBN.
[0096] In box 509, the RBN management service 424 determines the placement of cells 109 (in FIG. 1) within the RBN 103. In this context, the RBN management service 424 may determine the number of cells 109 from the network plan 439. Alternatively, the RBN management service 424 may automatically determine the optimal number of cells 109 based at least in part on parameters such as target latency, bandwidth, signal strength, and reliability, taking into account the area and / or facilities of the customer in question. In one embodiment, an unmanned aerial vehicle is used to perform a site survey of the area to be covered and may, in some cases, record signal strength and observe the state of the frequency spectrum, thereby determining the available frequencies. The RBN management service 424 may record the placement of cells 109 within the cellular topology 442 (in FIG. 4). In some scenarios, the RBN management service 424 may use machine learning to determine the optimal placement of cells 109 by deploying various placements of the RBN 103 and evaluating the performance. Over time, by observing these deployments, the RBN management service 424 can learn which placements are better or worse than others and use these results to train a machine learning model.
[0097] In box 512, the RBN management service 424 automatically reserves the allocation of the frequency spectrum for RBN 103. For this purpose, the RBN management service 424 can automatically determine the available frequencies of the cellular topology 442 from publicly available frequencies, customer-owned frequencies, and / or provider-owned frequencies. When determining the frequencies, factors such as polarization, directivity, beam tilt, and / or other factors that may enable or interfere with frequency reuse may be considered. The RBN management service 424 can record the reservation in the spectrum allocation 445 (Figure 4). Further, the RBN management service 424 can communicate with external services via the network 412 that implements the frequency spectrum reservation system to make reservations and / or determine available frequencies.
[0098] In box 515, the RBN management service 424 identifies the equipment necessary to implement RBN 103. This may include antennas, radio units, computing devices that implement the provider substrate extension 224 (Figure 2A), cables, switches, routers, fiber optic termination devices, and the like. In some scenarios, the RBN management service 424 may use machine learning to determine the optimal placement of the equipment by deploying various placements of RBN 103 and evaluating the performance. Over time, by observing these deployments, the RBN management service 424 can learn which placements are better or worse than others and use these results to train a machine learning model.
[0099] The RBN management service 424 may also determine the optimal allocation of devices for various customers through machine learning. For example, for a particular type of customer, it may make sense to run the network function workload 466 only on the data center computing device 118 (FIG. 1), while for another type of customer, it may be optimal to run the network function workload 466 on the computing device 112 (FIG. 1) or the computing device 115 (FIG. 1). Thus, the RBN management service 424 may determine to support only the cloud deployment of the computing device 118 and not deploy the computing device 112 or 115.
[0100] In box 518, the RBN management service 424 initiates the procurement of equipment for RBN 103 via the RBN hardware deployment service 430 (FIG. 4). This may include automatically reserving equipment from the provider's existing inventory and / or placing one or more orders for equipment from one or more vendors.
[0101] In box 521, the RBN management service 424 causes the RBN hardware configuration service 427 (FIG. 4) to pre-configure one or more devices, such as computing devices that implement network functions, wireless units, antennas, routers, etc. Such devices can be connected to the network 412 as pre-deployed devices 409 (FIG. 4). The RBN hardware configuration service 427 uses the wireless unit configuration data 457 (FIG. 4), the antenna configuration data 460 (FIG. 4), and the network function configuration data 463 to implement the pre-configuration. In box 524, the RBN management service 424 causes the RBN hardware deployment service 430 to ship the equipment, including the pre-configured and pre-deployed devices 409, to the customer. Various instructions for installing the equipment can be sent to the customer via the client application 436. Thereafter, this part of the operation of the RBN management service 424 ends.
[0102] Moving on to FIG. 6, a flowchart is shown presenting an example of the operation of another part of the RBN management service 424 according to various embodiments. It is understood that the flowchart of FIG. 6 merely presents an example of many different types of functional arrangements that can be utilized to implement the operation of a part of the RBN management service 424 as described herein. Alternatively, the flowchart of FIG. 6 can be regarded as showing examples of elements of a method implemented within the computing environment 403 (FIG. 4) according to one or more embodiments.
[0103] Starting from box 603, the RBN management service 424 receives a request from a customer to activate the RBN 103 (FIG. 1). For example, a customer user can interact with a user interface generated by the RBN management service 424 to select an option to activate the RBN 103. Alternatively, the client application 436 (FIG. 4) may make an API call to activate the RBN 103.
[0104] In box 606, the RBN management service 424 causes one or more network function workloads 466 for the RBN 103 to be launched within the allocated computing capacity 421. Note that the network function workload 466 can be hosted on a computing device 418 on the provider substrate extension 224 (FIG. 2A) that can be at a cell site, customer site, and / or data center for core network functions.
[0105] In box 609, the RBN management service 424 determines whether the devices and equipment of RBN 103 are correctly connected. Since the devices and equipment can be configured for customer plug-and-play operation, the RBN management service 424 can perform a diagnostic evaluation to confirm that the instructions have been followed and that the devices are powered and accessible via the network connection. In box 612, the RBN management service 424 proceeds with the activation of RBN 103, thereby enabling device 106 to communicate with other hosts on RBN 103 and / or hosts on the Internet via RBN 103. Thereafter, this portion of the operation of the RBN management service 424 ends.
[0106] Continuing with reference to FIG. 7, a flowchart is shown presenting an example of the operation of another portion of the RBN management service 424 according to various embodiments. It is understood that the flowchart of FIG. 7 merely presents an example of many different types of functional arrangements that may be utilized to implement the operation of another portion of the RBN management service 424 as described herein. Alternatively, the flowchart of FIG. 7 may be considered to show examples of elements of a method implemented within the computing environment 403 (FIG. 4) according to one or more embodiments.
[0107] Starting from box 703, the RBN management service 424 monitors the performance and usage metrics of RBN 103 (FIG. 1). For example, during the operation of RBN 103, the RBN management service 424 can collect RBN metrics 451 (FIG. 4) regarding dropped packets, latency values, bandwidth usage, signal strength, interference, etc. In box 706, the RBN management service 424 determines to change RBN 103 based at least in part on performance metrics and / or usage metrics and / or customer requests to change RBN 103. For example, the RBN management service 424 may determine whether the observed performance is below a minimum threshold or whether the observed usage exceeds a maximum threshold. In such cases, the RBN management service 424 can automatically scale the quantity of VM instances, containers, functions, or other allocated computing capacity 421 that execute network functions in RBN 103. Alternatively, the customer can initiate a request via a user interface or API to change RBN 103.
[0108] In box 709, the RBN management service 424 determines the updated placement of cells 109 (FIG. 1) within RBN 103. In this context, the RBN management service 424 may determine the number of cells 109 from the updated network plan 439 (FIG. 4). Alternatively, the RBN management service 424 may automatically determine the updated optimal number of cells 109 based at least in part on parameters such as target latency, bandwidth, signal strength, and reliability, taking into account the area and / or facility of the customer in question. In one embodiment, an unmanned aerial vehicle is used to perform an updated site survey of the area to be covered, and in some cases record signal strength and observe the state of the frequency spectrum, thereby determining available frequencies or thereby determining locations where cells 109 may exhibit poor performance. The RBN management service 424 may record the updated placement of cells 109 within the cellular topology 442 (FIG. 4).
[0109] In box 712, the RBN management service 424 can automatically reserve an updated allocation of the frequency spectrum for the RBN 103. For this purpose, the RBN management service 424 can automatically determine the available frequencies of the cellular topology 442 from publicly available frequencies, customer-owned frequencies, and / or provider-owned frequencies. When determining frequencies, factors such as polarization, directivity, beam tilt, and / or other factors that may enable or interfere with frequency reuse may be considered. The RBN management service 424 can record the updated reservation in the spectrum allocation 445 (Figure 4). Further, the RBN management service 424 can communicate with external services via the network 412 that implements the frequency spectrum reservation system to make updated reservations and / or determine available frequencies. The updated reservations may include the release of previously reserved spectrum and / or changes to different spectra in various scenarios.
[0110] In box 715, the RBN management service 424 identifies the equipment necessary to implement the changed RBN 103. This may include antennas, radio units, computing devices that implement the provider substrate extension 224 (Figure 2A), cables, switches, routers, fiber optic termination devices, etc. In box 718, the RBN management service 424 initiates the procurement of equipment for the updated RBN 103 via the RBN hardware deployment service 430 (Figure 4). This may include automatically reserving equipment from the provider's existing inventory and / or ordering one or more pieces of equipment from one or more vendors. Some or all of the existing equipment may be reused.
[0111] In box 721, the RBN management service 424 causes the RBN hardware configuration service 427 (FIG. 4) to pre-configure one or more new devices, such as computing devices implementing network functions, wireless units, antennas, routers, etc. Such devices can be connected to the network 412 as pre-deployed devices 409 (FIG. 4). The RBN hardware configuration service 427 uses wireless unit configuration data 457 (FIG. 4), antenna configuration data 460 (FIG. 4), and network function configuration data 463 to implement the pre-configuration. In box 724, the RBN management service 424 causes the RBN hardware deployment service 430 to ship equipment including the pre-configured and pre-deployed devices 409 to the customer. Various instructions for installing the equipment can be sent to the customer via the client application 436.
[0112] In box 727, the RBN management service 424 can initiate the reconfiguration of existing equipment and devices via the RBN hardware configuration service 427. For example, existing wireless units and / or antennas may change frequencies, signal strengths, and / or other parameters. Also, the existing allocated computing capacity 421 for the network function workload 466 can be reprogrammed or terminated to be replaced with other allocated computing capacity 421 for executing the network function. In some cases, additional computing capacity may be deployed or provisioned via the cloud provider network 203 (FIG. 2A).
[0113] In box 730, the RBN management service 424 activates the modified RBN 103. The correct state of the modified wireless network 103 and the associated core network can be verified before activation. Then, the operation of this part of the RBN management service 424 ends.
[0114] Next, referring to FIG. 8, shown is a flowchart presenting an example of the operation of a portion of the capacity management service 433 according to various embodiments. It is understood that the flowchart of FIG. 8 merely presents an example of many different types of functional arrangements that may be utilized to implement the operation of a portion of the capacity management service 433 as described herein. Alternatively, the flowchart of FIG. 8 may be regarded as showing examples of elements of a method implemented within the computing environment 403 (FIG. 4) according to one or more embodiments.
[0115] Starting from box 803, the capacity management service 433 first allocates a set of computing hardware including one or more computing devices for the operation of the customer's RBN 103 (FIG. 1). For this purpose, various network function workloads 466 (FIG. 4), or the software of the RBN 103, can be assigned to virtual machine instances, containers, or serverless functions within the set of computing hardware. The set of computing hardware may be located at an edge location such as a cell site or other location within the customer's premises, or in a data center operated by a cloud service provider. The capacity management service 433 is provided to dynamically allocate computing capacity on the computing hardware, including resources such as processors, memory, networking, and storage, to the network function workload 466 or other workloads.
[0116] At box 806, the capacity management service 433 receives one or more priorities specified by the customer. The priorities may be related to service level agreements (SLAs) for the RBN 103 and for other customer applications such as customer workloads 469 (FIG. 4) that are not related to the RBN 103. The priorities may indicate thresholds for network metrics such as latency or responsiveness.
[0117] In box 809, the capacity management service 433 monitors the use of the RBN 103 (FIG. 1), including the use of individual cells 109 (FIG. 2A), computing hardware, and / or communication links. The computing hardware that executes the software of the RBN 103 can be dynamically allocated between the software of the RBN 103 and the customer workload 469 according to customer-defined priorities. If usage metrics or network metrics related to the computer workload 469 or the network function workload 466 meet a threshold, an alert may be sent to the customer to provision additional computing capacity or adjust the established priorities. In various examples, an alert may be generated if the latency associated with the workload meets a maximum latency threshold, or if the processor usage or memory usage meets a maximum threshold.
[0118] In box 809, the capacity management service 433 determines to dynamically reallocate the computing capacity of the computing hardware based on customer priorities and / or excess capacity. In some cases, some or all of the computing capacity may be released based at least in part on being underutilized or in response to a request from the customer. Requests from the customer can be received using a user interface or via an API call.
[0119] In some scenarios, the capacity of RBN103 may be freed up to provision the capacity of higher-priority customer workloads 469, for example, based on an established service level agreement (SLA). For example, a customer may have an application that is very sensitive to latency and is of high priority to the customer, and the capacity management service 433 may determine that it is an optimal allocation to move the network function workload 466 from the server hardware at the edge location to secure space for running the application at the edge location. When the capacity is freed up, the capacity management service 433 can perform one or more actions to re-request and reuse the capacity. In some cases, the capacity of RBN103 may be dynamically reallocated as is, by keeping the underlying hardware in place at a given location. In other cases, some or all of the underlying hardware may be physically transferred to a new location to reallocate the capacity to the same customer, or in some cases, a different customer.
[0120] If the network function workload 466 provisioned on the computing hardware has a lower priority than the customer workload 469, or if the network function workload 466 is not fully utilized or is associated with overcapacity, the capacity management service 433 may terminate one or more network function workloads 466 that are executing one or more network functions for RBN103. The capacity management service 433 may determine that a VM instance, container, or serverless function within the allocated computing capacity 421 is no longer necessary from the perspective of the use or performance of RBN103, or has a lower priority than the customer workload 469.
[0121] The capacity management service 433 may dynamically reallocate computing capacity previously occupied by a terminated network function workload 466. The computing capacity may be on a computing device 418 at a customer location or at the provider's data center. In this regard, the capacity management service 433 can use the freed capacity to launch VM instances, containers, or functions, thereby providing network functions to another customer or another RBN 103.
[0122] Alternatively, the capacity management service 433 can also use the freed capacity to launch a customer workload 469 for a customer application other than a network function. For example, the capacity management service 433 can use the freed computing capacity to launch a VM instance, container, or function of the customer workload 469. Such VM instances, containers, or functions may be independent of the functions of the RBN 103. The VM instances, containers, or functions can be launched on a provider substrate extension 224 already at the cell site or otherwise within the customer's premises so that the computing capacity is not wasted or instead used for a more prioritized workload. In some cases, the network function workload 466 may be transferred from a provider substrate extension 224 at the cell site or otherwise within the customer's premises to computing hardware at the cloud service provider's data center to free up computing capacity on the provider substrate extension 224 for a more prioritized workload.
[0123] In an optional box 815, the capacity management service 433 may determine to reallocate other hardware implementing the RBN103 based on the excess capacity of the RBN103. For example, the capacity management service 433 may determine to remove one or more cells 109 from the RBN103. For example, the capacity management service 433 can identify specific cells 109 that are not being utilized sufficiently relative to a threshold or relative to other cells 109 of the RBN103. In some cases, the capacity management service 433 can automatically disable cell equipment (e.g., radios, antennas), or the capacity management service 433 can transfer the equipment for use by another customer. In some cases, the capacity management service 433 can request that the customer return the equipment to a cloud service provider and / or ship the equipment to another customer so that the equipment can be used by other customers. The capacity management service 433 can also automatically reduce the bandwidth or reconfigure the communication link to free up the now-unneeded bandwidth previously reserved for the RBN103.
[0124] In box 818, the capacity management service 433 can automatically reallocate the freed frequency spectrum to other customers or other cells 109 within the RBN103. The capacity management service 433 can also reallocate the freed network bandwidth. Thereafter, this portion of the operation of the capacity management service 433 ends.
[0125] Referring to FIG. 9, a schematic block diagram of a computing environment 403 according to an embodiment of the present disclosure is shown. The computing environment 403 includes one or more computing devices 900. Each computing device 900 includes at least one processor circuit having, for example, a processor 903 and a memory 906, both of which are coupled to a local interface 909. For this purpose, each computing device 900 may comprise, for example, at least one server computer or similar device. The local interface 909 may include, as will be appreciated, for example, a data bus or other bus structure including an associated address / control bus.
[0126] Stored in the memory 906 are both data and several components executable by the processor 903. In particular, stored in the memory 906 and executable by the processor 903 are an RBN management service 424, an RBN hardware configuration service 427, an RBN hardware deployment service 430, a capacity management service 433, and potentially other applications. Also stored in the memory 906 may be a data store 415 and other data. Additionally, an operating system may be stored in the memory 906 and executable by the processor 903.
[0127] As will be appreciated, it is understood that there may be other applications stored in the memory 906 and executable by the processor 903. If any of the components described herein are implemented in the form of software, any one of several programming languages may be employed, such as C, C++, C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or other programming languages.
[0128] Several software components are stored in memory 906 and are executable by processor 903. In this context, the term "executable" means a program file in a form that can ultimately be launched by processor 903. Examples of executable programs include, for example, a compiled program that can be loaded into the random access portion of memory 906 and converted into machine code in a format that can be launched by processor 903, source code that can be represented in an appropriate format such as object code that can be loaded into the random access portion of memory 906 and launched by processor 903, or source code that can be interpreted by another executable program that generates instructions in the random access portion of memory 906 so as to be executed by processor 903. An executable program can be stored in any part or component of memory 906, including, for example, random access memory (RAM), read only memory (ROM), hard drive, solid state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disc, magnetic tape, or other memory components.
[0129] Memory 906 is defined herein as including both volatile and non-volatile memory and data storage components. Volatile components do not retain data values upon power loss. Non-volatile components retain data upon power loss. Thus, memory 906 can include, for example, random access memory (RAM), read only memory (ROM), hard disk drives, solid state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical disks accessed via an optical disk drive, magnetic tapes accessed via a suitable tape drive, and / or other memory components, or any combination of two or more of these memory components. Additionally, RAM can include, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM), and other such devices. ROM can include, for example, programmable read only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), or other similar memory devices.
[0130] Also, processor 903 can represent multiple processors 903 and / or multiple processor cores, and memory 906 can represent multiple memories 906 operating in parallel processing circuits. In such a case, local interface 909 can be a suitable network that facilitates communication between any two of a number of processors 903, between any processor 903 and any of memories 906, or between any two of memories 906, etc. Local interface 909 can optionally include additional systems designed to coordinate this communication, including, for example, performing load balancing. Processor 903 can have an electrical structure or some other available structure.
[0131] The RBN management service 424, RBN hardware configuration service 427, RBN hardware deployment service 430, capacity management service 433, and various other systems described herein may be embodied as software or code executed by general-purpose hardware as described above, but alternatively, similar ones may be embodied in dedicated hardware or a combination of software / general-purpose hardware and dedicated hardware. When embodied in dedicated hardware, each may be implemented as a circuit or state machine using any one or combination of a number of techniques. These techniques may include, but are not limited to, discrete logic circuits having logic gates to implement various logical functions upon application of one or more data signals, application-specific integrated circuits (ASICs) having appropriate logic gates, field programmable gate arrays (FPGAs), or other components. Such techniques are generally well known to those skilled in the art and thus are not described in detail herein.
[0132] The flowcharts of FIGS. 5-8 illustrate the functions and operations of some implementations of the RBN management service 424 and the capacity management service 433. When embodied in software, each block may represent a module, segment, or portion of code that includes program instructions to implement a particular logical function(s). The program instructions may be embodied in the form of source code that includes human-readable instruction statements written in a programming language, or machine code that includes numerical instructions recognizable by an appropriate execution system such as a processor 903 in a computer system or other system. The machine code may be converted from source code or the like. When embodied in hardware, each block may represent a circuit or a number of interconnected circuits to implement a particular logical function(s).
[0133] The flowcharts of FIGS. 5 to 8 show a specific execution order, but it is understood that the execution order may be different from the order shown in the figures. For example, the execution order of two or more blocks may be swapped from the order shown. Also, two or more blocks shown consecutively in FIGS. 5 to 8 may be executed simultaneously, or partially simultaneously. Further, in some embodiments, one or more blocks shown in FIGS. 5 to 8 may be skipped or omitted. Additionally, for purposes such as improving usefulness, providing an explanation, measuring performance, or providing a clue for problem solving, any number of counters, state variables, warning semaphores, or messages may be added to the logical flow described herein. It is understood that all such variations are within the scope of the present disclosure.
[0134] Also, any logic or application described herein, including the RBN management service 424, the RBN hardware configuration service 427, the RBN hardware deployment service 430, and the capacity management service 433, comprising software or code, can be embodied in any non-transitory computer-readable medium used by, or associated with, an instruction execution system such as a processor 903 in a computer system or other system. In this sense, the logic can include, for example, instructions obtained from a computer-readable medium and instruction statements including instructions and declarations executable by an instruction execution system. In the context of the present disclosure, a "computer-readable medium" can be any medium that can include, store, or hold the logic or application described herein used by, or associated with, an instruction execution system.
[0135] A computer-readable medium can include any one of a number of physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media would include, but are not limited to, magnetic tape, magnetic floppy disk, magnetic hard drive, memory card, solid state drive, USB flash drive, or optical disk. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). Additionally, the computer-readable medium may be a read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or other types of memory devices.
[0136] Furthermore, any logic or application described herein, including the RBN management service 424, the RBN hardware configuration service 427, the RBN hardware deployment service 430, and the capacity management service 433, can be implemented and structured in various ways. For example, one or more of the applications described can be implemented as modules or components of a single application. Additionally, one or more of the applications described herein can be executed on a shared computing device or separate computing devices, or a combination thereof. For example, multiple applications described herein can be executed on the same computing device 900 or on multiple computing devices 900 in the same computing environment 403.
[0137] Unless otherwise specified, disjunctive language such as the phrase "at least one of X, Y or Z" is generally understood in context as being used to indicate that the item, term, etc. may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Thus, such disjunctive language is not generally intended, and should not be construed, to imply that a particular embodiment requires the presence of at least one of X, at least one of Y, or at least one of Z.
[0138] Embodiments of the present disclosure can be described by one or more of the following clauses. Clause 1. At least one computing device, and instructions executable on the at least one computing device, wherein the instructions, when executed, cause the at least one computing device to receive, at least in accordance with a network plan, a request from a provider to provision a wireless network for a customer, the wireless network including a wireless access network and a core network; determine an arrangement of a plurality of cells in the wireless access network for the customer; automatically reserve a frequency spectrum allocation for the wireless access network; preconfigure at least one antenna and at least one radio unit for each of the plurality of cells to implement the wireless access network and then ship the at least one antenna and the at least one radio unit for each to the customer; preconfigure a particular computing device to perform at least one first network function for the wireless network at the customer's site; allocate computing capacity to a cloud provider network to perform at least one second network function for the wireless network; and activate the wireless access network and the associated core network. A system comprising the instructions.
[0139] Clause 2. When the command is executed, further cause the at least one computing device to automatically scale at least the quantity of the computing capacity in the cloud provider network to execute the at least one second network function for the wireless network. The system according to Clause 1.
[0140] Clause 3. When the command is executed, further cause the at least one computing device to monitor at least one of at least the usage or latency of the wireless network, and in response to a determination that at least one of the usage or the latency meets a threshold criterion, pre-configure at least one additional antenna and at least one additional radio unit to implement an additional cell for the wireless access network, and then ship the at least one additional antenna and the at least one additional radio unit to the customer. The system according to Clauses 1-2.
[0141] Clause 4. Receive, via an application programming interface (API) of a cloud provider network by at least one computing device, a request to provision a wireless network for a customer according to a network plan, determine, via the at least one computing device, an arrangement of a plurality of cells for the customer, pre-configure, via the at least one computing device, at least one antenna and a respective radio unit for each of the plurality of cells to implement the wireless network, and then ship the at least one antenna and the respective radio unit to the customer. A method.
[0142] Clause 5. The method according to clause 4, further comprising: automatically determining, via the at least one computing device, that the wireless network does not meet a threshold criterion specified by the customer; and performing, via the at least one computing device, at least one action to change the wireless network in order to meet the threshold criterion.
[0143] Clause 6. The method according to clauses 4 to 5, further comprising: generating, via the at least one computing device, at least one user interface to facilitate activation of the wireless network by the customer.
[0144] Clause 7. The method according to clauses 4 to 6, further comprising: generating, via the at least one computing device, at least one user interface to facilitate a management function of the wireless network by the customer, the management function including at least one of: configuring a list of permitted devices; adding cells to the wireless network; changing a bandwidth of the wireless network; or changing a latency criterion of the wireless network.
[0145] Clause 8. The method according to clauses 4 to 7, further comprising: pre-configuring, via the at least one computing device, a specific computing device to execute at least one network function for the wireless network.
[0146] Clause 9. The method according to clause 8, wherein the specific computing device is pre-configured to execute a plurality of virtual machine instances.
[0147] Clause 10. The method according to clauses 4 to 9, further comprising: receiving, via the at least one computing device and via at least one user interface, a network plan from the customer.
[0148] Clause 11. The network plan according to the method of Clauses 4 to 10, including at least one of the number of cells of the wireless network, the specifications of at least one site of the customer who will receive services by the wireless network, the desired bandwidth, or the number of devices using the wireless network.
[0149] Clause 12. The method of Clauses 4 to 11, further including automatically generating the network plan based at least in part on a site survey performed by an unmanned aircraft on at least one site of the customer via the at least one computing device.
[0150] Clause 13. The method of Clauses 4 to 12, further including automatically reserving a frequency spectrum allocation to the wireless network via the at least one computing device.
[0151] Clause 14. A non-transitory computer-readable medium embodying a wireless network management service executable on at least one computing device, wherein when the wireless network management service is executed, it causes the at least one computing device to at least determine changes to a wireless network operated by a provider for a customer under a utility computing model, the changes being to the number of cells in the wireless network, the latency criteria of the wireless network, or the bandwidth of the wireless network, and perform at least one action to change the wireless network.
[0152] Clause 15. The non-transitory computer-readable medium according to clause 14, wherein when the wireless network management service is executed, the at least one computing device is caused to automatically determine the change based at least in part on a machine learning model and performance metrics of the wireless network.
[0153] Clause 16. The non-transitory computer-readable medium according to clauses 14 to 15, wherein the request for the change is received from the customer via a management user interface.
[0154] Clause 17. The non-transitory computer-readable medium according to clauses 14 to 16, wherein the at least one action includes automatically changing a backhaul communication link of the wireless network to change the bandwidth provisioned to the wireless network.
[0155] Clause 18. The non-transitory computer-readable medium according to clauses 14 to 17, wherein the at least one action includes launching at least one virtual machine instance or at least one container in a cloud provider network to execute at least one network function for the wireless network.
[0156] Clause 19. The non-transitory computer-readable medium according to clauses 14 to 18, wherein the at least one action includes launching at least one virtual machine instance or at least one container in a specific computing device at the customer's site, and the at least one virtual machine instance or the at least one container is configured to execute at least one network function for the wireless network.
[0157] Clause 20. The at least one action includes pre-configuring at least one of an antenna or a radio unit to implement an additional cell of the wireless network, or reconfiguring at least one of an existing antenna or an existing radio unit of an existing cell within the wireless network to support the additional cell of the wireless network. The non-transitory computer-readable medium according to Clauses 14 to 19.
[0158] Clause 21. At least one computing device and instructions executable on the at least one computing device, which, when executed, cause the at least one computing device to allocate at least a set of computing hardware for the operation of a customer's wireless network, provide a capacity management service configured to dynamically allocate the computing capacity of the computing hardware between the software of the wireless network and at least one customer workload of the customer, monitor the use of the computing capacity by the software of the wireless network and the at least one customer workload, and reallocate at least a portion of the computing capacity between the software of the wireless network and the at least one customer workload based at least in part on one or more priorities set by the customer. The system comprising the instructions.
[0159] Clause 22. Reallocating at least a portion of the computing capacity further includes terminating, on the computing hardware, a first workload corresponding to at least a portion of the software of the wireless network and starting, on the computing hardware, a second workload corresponding to the at least one customer workload. The system according to Clause 21.
[0160] Clause 23. When the command is executed, the system according to Clause 22 further causes the at least one computing device to start the first workload on at least different computing hardware operated by a cloud service provider.
[0161] Clause 24. Reallocating at least a portion of the computing capacity further includes ending, on the computing hardware, a first workload corresponding to the at least one customer workload, and starting, on the computing hardware, a second workload corresponding to at least a portion of the software of the wireless network, in the system according to Clauses 21 - 23.
[0162] Clause 25. When the command is executed, the system according to Clauses 21 - 24 further causes the at least one computing device to determine, from the usage, that a metric associated with the at least one customer workload has met a threshold value, and to generate an alert for the customer in response to the metric having met the threshold value.
[0163] Clause 26. When the command is executed, the system according to Clauses 21 - 25 further causes the at least one computing device to determine, from the usage, that a metric associated with the software of the wireless network has met a threshold value, and to generate an alert for the customer in response to the metric having met the threshold value.
[0164] Clause 27. Determining that a set of computing hardware that implements a wireless network operated for a customer has an excess capacity via at least one computing device, and performing at least one action via the at least one computing device to reallocate the excess capacity of the computing hardware. A method comprising the steps of:
[0165] Clause 28. The method according to clause 27, further comprising: determining via the at least one computing device that at least one specific cell of the wireless network is not being fully utilized, and initiating a reconfiguration of the wireless network via the at least one computing device to remove the at least one specific cell from a plurality of cells used in the wireless network.
[0166] Clause 29. The method according to clause 28, further comprising automatically disabling the customer's use of at least one wireless unit or at least one antenna unit corresponding to the at least one specific cell via the at least one computing device.
[0167] Clause 30. The method according to clauses 28 to 29, further comprising sending a command to the customer via the at least one computing device to return at least one wireless unit or at least one antenna unit corresponding to the at least one specific cell.
[0168] Clause 31. The method according to clauses 28 to 30, further comprising automatically reallocating the frequency spectrum corresponding to the at least one specific cell to at least one other customer via the at least one computing device.
[0169] Clause 32. The method according to Clauses 27 to 31, wherein performing the at least one action for reallocating the excess capacity of the computing hardware further includes reallocating at least a part of the computing capacity of the computing hardware to another customer via the at least one computing device.
[0170] Clause 33. The method according to Clauses 27 to 31, wherein performing the at least one action for reallocating the excess capacity of the computing hardware further includes reallocating at least a part of the computing capacity of the computing hardware to at least one customer workload of the customer by executing at least one network function for the wireless network, wherein the at least one customer workload is independent of the wireless network.
[0171] Clause 34. The method according to Clauses 27 to 33, wherein the computing hardware is at the location of the customer.
[0172] Clause 35. The method according to Clauses 27 to 34, wherein the computing hardware is in a data center of a cloud service provider.
[0173] Clause 36. A non - transitory computer - readable medium embodying a capacity management service executable on at least one computing device, wherein when the capacity management service is executed, it causes the at least one computing device to, at least, determine that a network - function workload, which is operated by a cloud service provider on behalf of a customer in a wireless network, has a lower priority than another workload on a first computing device; transfer the network - function workload to a second computing device; and execute the another workload on the first computing device instead of the network - function workload. The non - transitory computer - readable medium.
[0174] Clause 37. The non - transitory computer - readable medium according to Clause 36, wherein the first computing device is at a cell site and the second computing device is at a data center operated by the cloud service provider.
[0175] Clause 38. The non - transitory computer - readable medium according to Clauses 36 - 37, wherein when the capacity management service is executed, it further causes the at least one computing device to, at least, continuously determine, at least in part based on metrics, that the network - function workload has a higher priority than the another workload; and execute the network - function workload on the first computing device instead of the another workload.
[0176] Clause 39. The non - transitory computer - readable medium according to Clauses 36 - 38, wherein the another workload is associated with another customer.
[0177] Clause 40. When the capacity management service is executed, further, to at least improve the latency performance of the at least one other workload, the at least one other workload is transferred from a third computing device to the first computing device on the at least one computing device, the non-transitory computer-readable medium according to Clauses 36 to 39.
[0178] It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations described for clearly understanding the principles of the present disclosure. Many variations and modifications may be added to the above-described embodiments(s) without substantially departing from the spirit and principles of the present disclosure. It is intended that all such modifications and variations be included herein within the scope of the present disclosure and be protected by the following claims.
Claims
【Claim 1】 at least one computing device, and instructions executable on the at least one computing device, which, when executed, cause the at least one computing device to, at least, allocate a set of computing hardware for the operation of a customer's wireless network, and provide a capacity management service configured to dynamically allocate the computing capacity of the computing hardware between the software of the wireless network and at least one customer workload of the customer, and monitor the use of the computing capacity by the software of the wireless network and the at least one customer workload, and reallocate at least a portion of the computing capacity between the software of the wireless network and the at least one customer workload, at least partially based on one or more priorities set by the customer, and the instructions for causing the above, and a system comprising the above.
Citation Information
Patent Citations
Ran slice resource management device and ran slice resource management method
WO2019012735A1