Geographic deployment of applications to edge computing nodes
View Patent ↗An example system for geographic deployment of applications to edge computing nodes includes: a memory storing an application; a receive engine to receive, from edge computing nodes, indications of requests for the application as received at the edge computing nodes from edge clients, the indications being indicative of geographic demand for the application; a demand engine to determine a geographic area where demand for the application exceeds a threshold demand; and an application deployment engine to deploy the application to the edge computing nodes within the geographic area where the demand for the application exceeds the threshold demand.
1 . A system comprising:
a memory storing an application; and
a processor to:
receive, from a plurality of edge computing nodes via a communications network, a plurality of indications of requests for the application as received at the plurality of edge computing nodes from a plurality of edge clients, the plurality of indications indicative of geographic demand for the application;
determine, based on the plurality of indications, a geographic area having a first demand for the application that exceeds a threshold demand, wherein the geographic area is dynamically determined based on the geographic demand for the application such that a boundary of the geographic area grows or shrinks responsive to changes in the geographic demand;
subsequent to determining the geographic area, determine a subset of the plurality of edge computing nodes located within the boundary of the geographic area;
deploy, via the communications network, the application to the subset of the plurality of edge computing nodes located within the boundary of the geographic area, wherein, responsive to receipt of the application, each edge computing node included in the subset of the plurality of edge computing nodes is to: install the application locally; and, in response to receiving requests for the application, process the received requests via processing the application; and
execute, with the processor, the application for an additional subset of the plurality of edge computing nodes without deployment of the application at the additional subset of the plurality of edge computing nodes to service subsequent requests for the application as forwarded to the processor from the additional subset of the plurality of edge computing nodes, wherein demand for the application at the additional subset is below the threshold demand.
2 . The system of claim 1 , wherein the processor is to:
generate, based on the plurality of indications, a heat map representing the geographic demand for the application,
wherein the processor determines the geographic area based on the heat map; and
wherein the processor represents the geographic area as a bounded shape on the heat map.
3 . The system of claim 1 , wherein the processor is to:
determine a geographic location of each edge computing node included in the plurality of the edge computing nodes based on: geographic metadata received with the plurality of indications.
4 . The system of claim 1 , wherein the processor is to:
receive, from the plurality of edge computing nodes via the communications network, a second plurality of indications of requests for the application, wherein the second plurality of indications are received at the plurality of edge computing nodes from the plurality of edge clients;
dynamically update, based on the second plurality of indications, the boundary of the geographic area as an updated boundary of the geographic area, wherein the updated boundary of the geographic area has an updated demand for the application that exceeds the threshold demand, wherein the updated boundary of the geographic area includes a portion of the geographic area as determined based on the plurality of indications; and
dynamically update deployment of the application to a second subset of the plurality of edge computing nodes within the updated boundary of the geographic area, wherein the second subset of the plurality of edge computing nodes includes a portion of the subset of the plurality of edge computing nodes.
5 . The system of claim 1 , wherein the processor is to:
determine an edge computing node from the subset of the plurality of edge computing nodes within the boundary of the geographic area, wherein the edge computing device from the subset of the plurality of edge computing nodes within the boundary of the geographic area stores an additional application with an additional demand that is below the threshold demand;
transmit a command to the edge computing node included in the subset of the plurality of edge computing nodes within the boundary of the geographic area, the command to delete the additional application stored at the edge computing node included in the subset of the plurality of edge computing nodes within the boundary of the geographic area to clear memory space for storing the application at the edge computing node included in the subset of the plurality of edge computing nodes within the boundary of the geographic area; and
subsequent to the edge computing device deleting the additional application, deploy the application to the edge computing node included in the subset of the plurality of edge computing nodes within the boundary of the geographic area such that the edge computing device installs the application locally and, in response to receipt of requests for the application, processes the received requests via processing the application.
6 . The system of claim 1 , wherein the processor is to:
determine a geographic location of each edge computing node included in the plurality of the edge computing nodes based on respective geographic metadata stored at the memory in association with an identifier of a respective edge computing node included in the plurality of edge computing nodes, wherein the identifier is received with a corresponding indication of the respective edge computing node.
7 . The system of claim 1 , wherein the processor is to:
determine a geographic location for each of the plurality of edge computing nodes; and
determine the subset of the plurality of edge computing nodes within the geographic area based on the geographic location for each of the plurality of edge computing nodes.
8 . The system of claim 1 , wherein the processor is to deploy, via the communications network, the application to the subset of the plurality of edge computing nodes within the geographic area by transmitting a copy of executable instructions of the application to the subset of the plurality of edge computing nodes within the geographic area.
9 . The system of claim 1 , wherein the processor is to:
dynamically change deployment of the application responsive to a change in the first demand for the application, wherein the change in the first demand results from movement of the plurality of edge clients; and
responsive to the change in the first demand for the application, determine a second subset of the plurality of edge computing nodes and deploy the application to the second subset of the plurality of edge computing nodes.
10 . The system of claim 1 , wherein the processor is to:
for each of the plurality of edge computing nodes,
determine, for a respective edge computing node, an available memory space for the application by polling the plurality of edge computing nodes; and
control deployment of the application over the communications network to the respective edge computing node based on the available memory space.
11 . A method comprising:
receiving, at a hub computing device over a communications network, using a communication unit, from a plurality of edge computing nodes, a plurality of indications of requests for an application, wherein the requests for the application are received at the plurality of edge computing nodes from a plurality of edge clients, the plurality of indications indicative of geographic demand for the application;
determining, at the hub computing device, based on a heat map, a geographic area having a first demand for the application that exceeds a threshold demand, wherein the geographic area is dynamically determined based on the geographic demand for the application such that a boundary of the geographic area grows or shrinks responsive to changes in the geographic demand;
determining, at the hub computing device, a subset of the plurality of edge computing nodes located within the boundary of the geographic area;
deploying, at the hub computing device over the communications network, via the communication unit, the application to the subset of the plurality of edge computing nodes located within the boundary of the geographic area, the subset of the plurality of edge computing nodes to install the application locally and process requests via processing the application; and
implementing executing, with a processor, at the hub computing device, the application for an additional subset of the plurality of edge computing nodes, wherein demand for the application at the additional subset is below the threshold demand and the application is not deployed at the additional subset to service subsequent requests for the application as forwarded to the processor from the additional subset of the plurality of edge computing nodes.
12 . The method of claim 11 , further comprising:
deploying, at the hub computing device over the communications network, via the communication unit, to the plurality of edge computing nodes, a list of applications available to be deployed, the list of applications including the application, to enable the plurality of edge computing nodes to recognize the requests for the application.
13 . The method of claim 11 , wherein deploying, at the hub computing device over the communications network, the application to the subset of the plurality of edge computing nodes comprises:
deploying, at the hub computing device over the communications network, using the communication unit, the application to a portion of the subset of the plurality of edge computing nodes, wherein the application is not deployed at the portion.
14 . The method of claim 11 , further comprising:
prior to deploying, at the hub computing device over the communications network, the application to the subset of the plurality of edge computing nodes, determining, at the hub computing device over the communications network, a portion of the subset having insufficient available memory space to store the application; and
transmitting, at the hub computing device over the communications network, a command to each edge computing node included in the portion of the subset, the command to delete an additional application stored at each edge computing node included in the portion to increase the respective available memory space for storing the application.
15 . A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause the processor to:
receive, from a plurality of edge computing nodes over a communications network, a plurality of indications of requests for an application, the plurality of indications received at the plurality of edge computing nodes from a plurality of edge clients, the plurality of indications being indicative of geographic demand for the application;
generate, based on the plurality of indications, a heat map representing the geographic demand for the application;
and control, based on the heat map, deployment of the application over the communications network to the plurality of edge computing nodes, wherein deployment of the application includes:
determining, based on the heat map, a geographic area having a first demand for the application that exceeds a threshold demand, wherein the geographic area is represented as a bounded shape on the heat map, and wherein the bounded shape forms a boundary around the geographic area and the plurality of edge computing nodes are included within the boundary, and wherein the geographic area is dynamically determined based on the geographic demand for the application such that the boundary of the geographic area grows or shrinks responsive to changes in the geographic demand;
transmitting a copy of instructions of the application to a first portion the plurality of edge computing nodes located within the boundary of the geographic area having the first demand for the application that exceeds the threshold demand, wherein the first portion of the plurality of edge computing nodes is to install the copy of instructions of the application and locally process requests via processing of the copy of instructions of the application;
and executing, with the processor, the application for a second portion of the plurality of edge computing nodes associated with a second demand for the application that is below the threshold demand to service subsequent requests for the application as forwarded to the processor from the second portion of the plurality of edge computing nodes.
16 . The non-transitory computer-readable medium of claim 15 , wherein the processor is to:
update the heat map responsive to receipt of a further indication, the further indication indicative of updated geographic demand for the application; and
dynamically change deployment of the application to the plurality of edge computing nodes based on the heat map as updated.
17 . The non-transitory computer-readable medium of claim 15 , wherein the processor is to:
receive, from the plurality of edge computing nodes over the communication network, a plurality of additional indications of additional requests for an additional application as received at the plurality of edge computing nodes from the plurality of edge clients, the plurality of additional indications being indicative of respective geographic demand for the additional application;
generate, based on the plurality of additional indications, a respective heat map representing the respective geographic demand for the additional application; and
transmit, to the first portion of the plurality of edge computing nodes over the communications network, commands to delete the additional application at the first portion of the plurality of edge computing nodes according to the respective heat map, to clear respective memory space at the first portion of the plurality of edge computing nodes such that the first portion of the plurality of edge computing nodes have available memory space to install the application and process requests via processing the application.
18 . The non-transitory computer-readable medium of claim 15 , wherein the processor is to:
during deployment of the application, refrain from deploying the application to a subset of the first portion of the plurality of edge computing nodes that presently have the application installed.
19 . The non-transitory computer-readable medium of claim 18 , wherein the processor is to:
refraining from deploying the application to the second portion of the plurality of edge computing nodes.
20 . The non-transitory computer-readable medium of claim 15 , wherein the processor is to:
divide a region of the heat map into geographic areas, including the geographic area; and
indicate a demand level for each geographic area.