Device upgrade with location-based repository mirroring

By using location-based repository mirroring in edge devices for upgrades, we solve the problems of poor upgrade experience and security risks caused by different geographical locations of cloud-based platforms and edge devices, and achieve efficient and secure edge device upgrades.

CN120196342APending Publication Date: 2025-06-24JUNIPER NETWORKS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410183515.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-22
Filing Date
2024-02-19
Publication Date
2025-06-24

AI Technical Summary

Technical Problem

The prior art faces poor service and upgrade experience, performance issues, and security risks caused by different geographical locations when supporting the upgrade of edge devices associated with cloud-based platforms.

Method used

The method of device upgrade using location-based repository mirroring is used to identify a suitable repository mirror location by receiving location data and other standards of edge devices, and instructing the edge device to receive upgrades from that location.

Benefits of technology

Optimize the cost and user experience of edge device upgrades, reduce the consumption of computing resources and network resources, and avoid performance problems and security risks caused by different geographical locations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120196342A_ABST
    Figure CN120196342A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to device upgrades with location-based repository mirroring. A device may receive edge data identifying locations of a plurality of edge devices and other criteria associated with the plurality of edge devices, and may identify an upgrade for an edge device of the plurality of edge devices based on the other criteria of the edge data. The device may identify a location of a repository image for the upgrade based on a location of the edge device identified in the edge data, and may instruct the edge device to utilize the location of the repository image to receive the upgrade.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Cloud computing provides computing services such as storage, software, analytics, and databases on demand via the Internet to provide flexible resources and economies of scale. Summary of the Invention

[0002] Some implementations described herein relate to a method. The method may include receiving edge data identifying the locations of a plurality of edge devices and other criteria associated with the plurality of edge devices, and identifying an upgrade for an edge device among the plurality of edge devices based on the edge data and the other criteria. The method may include identifying the location of a repository image for the upgrade based on the location of the edge device identified in the edge data, and instructing the edge device to receive the upgrade using the location of the repository image.

[0003] In an implementation according to the present disclosure that relates to a method, it further includes: removing the repository image after the upgrade is received by the edge device.

[0004] In an implementation according to the present disclosure that relates to a method, the edge device receives the upgrade using the location of the repository image.

[0005] In an implementation according to the present disclosure that relates to a method, it further includes: determining a placement strategy based on the edge data, the placement strategy identifying a set of locations of repository images for a set of edge devices among the plurality of edge devices.

[0006] In an implementation according to the present disclosure that relates to a method, it further includes: generating a minimum set of repository images at the set of locations based on the placement strategy; and removing unused repository images based on the placement strategy.

[0007] In an implementation according to the present disclosure that relates to a method, it further includes: providing a set of repository images at the set of locations based on the placement strategy; providing another upgrade for the set of edge devices in the set of repository images; and removing the set of repository images after the set of edge devices receives the another upgrade.

[0008] In an implementation according to the present disclosure that relates to a method, the set of edge devices is a set of Internet of Things devices, wireless access points, routers, switches, or firewalls.

[0009] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive edge data identifying the locations of a plurality of edge devices and other criteria associated with the plurality of edge devices, and identify an upgrade for an edge device among the plurality of edge devices based on the edge data and the other criteria. The one or more processors may be configured to identify the location of a repository image for the upgrade based on the location of the edge device identified in the edge data, and instruct the edge device to receive the upgrade using the location of the repository image. The one or more processors may be configured to remove the repository image after the upgrade has been received by the edge device.

[0010] In an implementation according to the present disclosure that relates to a device, the plurality of edge devices includes one or more thin client devices and one or more non-thin client devices.

[0011] In an implementation according to the present disclosure that relates to a device, the one or more processors are further configured to: receive a request for another upgrade from another edge device among the plurality of edge devices; identify another location of another repository image for the another upgrade based on the location of the another edge device; provide the another repository image at the another location; and instruct the another edge device to receive the another upgrade using the another location of the another repository image.

[0012] In an implementation according to the present disclosure that relates to a device, the one or more processors are further configured to: remove the another repository image after the another upgrade has been received by the another edge device.

[0013] In an implementation according to the present disclosure that relates to a device, the other criteria associated with the plurality of edge devices includes one or more of the following: round-trip time associated with the plurality of edge devices, connection stability associated with the plurality of edge devices, upgrade success rate associated with the plurality of edge devices, or data privacy policy associated with the plurality of edge devices.

[0014] In an implementation according to the present disclosure that relates to a device, the one or more processors are further configured to: identify an underperforming repository image based on the other criteria of the edge data; and adjust the location of the underperforming repository image.

[0015] In an implementation according to the present disclosure related to an apparatus, the one or more processors are further configured to: identify a new upgrade for another edge device among the plurality of edge devices associated with an auto-upgrade schedule; identify another location of another repository image for the new upgrade based on the location of the other edge device; provide the other repository image at the other location; and instruct the other edge device to receive the new upgrade using the other location of the other repository image.

[0016] Some implementations described herein relate to non-transitory computer-readable media storing instruction sets. The instruction sets, when executed by one or more processors of an apparatus, may cause the apparatus to receive edge data identifying the locations of a plurality of edge devices and other criteria associated with the plurality of edge devices, where the plurality of edge devices includes one or more thin client devices and one or more non-thin client devices. The instruction sets, when executed by one or more processors of the apparatus, may cause the apparatus to identify an upgrade for an edge device among the plurality of edge devices based on the other criteria of the edge data and identify a location of a repository image for the upgrade based on the location of the edge device identified in the edge data. The instruction sets, when executed by one or more processors of the apparatus, may cause the apparatus to instruct the edge device to receive the upgrade using the location of the repository image.

[0017] In an implementation according to the present disclosure related to non-transitory computer-readable media storing instruction sets, the one or more instructions further cause the apparatus to: determine a placement policy based on the edge data, the placement policy identifying a set of locations of repository images for a set of edge devices among the plurality of edge devices.

[0018] In an implementation according to the present disclosure related to non-transitory computer-readable media storing instruction sets, the one or more instructions further cause the apparatus to: generate a minimal set of repository images at the set of locations based on the placement policy; and remove unused repository images based on the placement policy.

[0019] In an implementation according to the present disclosure related to non-transitory computer-readable media storing instruction sets, the one or more instructions further cause the apparatus to: provide a set of repository images at the set of locations based on the placement policy; provide another upgrade for the set of edge devices in the set of repository images; and remove the set of repository images after the set of edge devices receives the another upgrade.

[0020] In an implementation involving a non - transitory computer - readable medium storing an instruction set according to the present disclosure, the one or more instructions further cause the device to: receive a request for another upgrade from another edge device among the plurality of edge devices; identify another location of another repository image for the another upgrade based on the location of the another edge device; provide the another repository image at the another location; instruct the another edge device to receive the another upgrade using the another location of the another repository image; and remove the another repository image after the another upgrade is received by the another edge device.

[0021] In an implementation involving a non - transitory computer - readable medium storing an instruction set according to the present disclosure, the one or more instructions further cause the device to: identify an underperforming repository image based on the other criteria of the edge data; and adjust the location of the underperforming repository image. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figures 1A - 1G is a diagram of an example associated with device upgrades using location - based repository images;

[0023] Figure 2 is a diagram of an example environment in which the systems and / or methods described herein can be implemented;

[0024] Figure 3 and Figure 4 is Figure 2 a diagram of example components of one or more devices; and

[0025] Figure 5 is a flowchart of an example process for device upgrades using location - based repository images. DETAILED DESCRIPTION

[0026] The following detailed description of example implementations refers to the accompanying drawings. The same reference numerals in different drawings may identify the same or similar elements.

[0027] Cloud-based platforms can support several applications for customers. However, many customers are reluctant to connect their devices directly to cloud-based platforms. Such customers can deploy edge devices locally to connect to cloud-based platforms and act as a buffer between the customers' devices and cloud-based platforms. Edge devices can include thin clients (e.g., Internet of Things (IoT) devices) and / or non-thin clients (e.g., routers, switches, firewalls, wireless access points, etc.). Edge devices require seamless onboarding, service deployment, lifecycle management, and monitoring. Service deployment and upgrades are key parts of the lifecycle management of edge devices and also define the user experience. Upgrades of edge devices can be hosted and managed from a cloud-based platform (e.g., in a repository) at a single location or several locations. However, edge devices can be located anywhere in the world. If the cloud-based platform and the edge device are in the same region, the service deployment and upgrade experience may be good. If the cloud-based platform and the edge device are in different geographical locations, the service deployment and upgrade experience may be very poor.

[0028] Accordingly, current technologies for supporting edge devices associated with cloud-based platforms consume computing resources (e.g., processing resources, memory resources, communication resources, etc.), network resources, etc. associated with: providing a poor service and upgrade experience when the cloud-based platform and the edge device are in different geographical locations, experiencing performance issues with edge devices that are not properly upgraded, attempting to provide upgrades for edge devices from non-secure sources, thus posing security issues for customers of edge devices upgraded from non-secure sources, and so on.

[0029] Some implementations described herein relate to devices (e.g., management systems) that utilize location-based repository mirroring for device upgrades. For example, a management system can receive edge data identifying the locations of multiple edge devices and other criteria associated with the multiple edge devices, and can identify an upgrade for an edge device among the multiple edge devices based on the edge data and the other criteria. The management system can identify the location of a repository mirror for the upgrade based on the location of the edge device identified in the edge data, and can instruct the edge device to receive the upgrade using the location of the repository mirror. The management system can remove the repository mirror after the upgrade has been received by the edge device.

[0030] In this manner, the management system utilizes location-based repository images for device upgrades. For example, the management system can receive edge data identifying the location of an edge device and other criteria associated with the edge device, and can determine an upgrade for the edge device based on the other criteria. The management system can identify the location of a repository image for storing the upgrade based on the location of the edge device, and can cause the repository image to be instantiated at these locations. The edge device can receive the upgrade from the repository image, and the management system can cause the repository image to be removed from service after the upgrade has been received by the edge device. This can optimize costs and ensure a good user experience for edge device upgrades. Accordingly, the management system saves computing resources, network resources, etc., which otherwise would be consumed due to, for example, providing a poor service and upgrade experience when a cloud-based platform and edge devices are located in different geographical locations, experiencing performance issues with edge devices that are not properly upgraded, attempting to provide upgrades for edge devices from non-secure sources, thereby presenting security issues for customers of edge devices upgraded from non-secure sources, and so on.

[0031] Figures 1A - 1G is a diagram of Example 100 associated with device upgrades using location-based repository images. As Figures 1A - 1G shown, Example 100 includes a plurality of edge devices associated with a management system. The management system can utilize a repository cloud instance and / or a plurality of repository images to manage the plurality of edge devices. Each of the edge devices can include an edge network device, another managed device (e.g., an IoT device, a wireless access point, a router, a switch, a firewall, etc.), or any device whose lifecycle needs to be managed from a controller, a public cloud computing environment, or a private cloud computing environment. In some implementations, one or more edge devices can be directly connected to a cloud computing environment. For example, a wireless access point can be directly connected to a cloud computing environment, and the management system can manage the upgrade of the wireless access point in the same manner as an edge device. Additional details of the edge devices, the management system, the repository cloud instance, and the plurality of repository images are provided elsewhere in this document.

[0032] As Figure 1A shown by and reference numeral 105, the management system can receive edge data identifying the locations of the plurality of edge devices and other criteria associated with the plurality of edge devices. For example, when the plurality of edge devices register with the management system, the plurality of edge devices can provide the management system with location data identifying the locations of the plurality of edge devices. Alternatively or additionally, the plurality of edge devices can continuously or periodically generate geographical location data identifying the locations of the plurality of edge devices. The plurality of edge devices can provide the management system with geographical location data identifying the locations of the plurality of edge devices. The management system can receive location and / or geographical location data from the plurality of edge devices.

[0033] In some implementations, one or more users can set the locations of multiple edge devices, or the management system can detect the locations of multiple edge devices. The management system can automatically detect the locations of multiple edge devices during the registration of the multiple edge devices and by establishing a control channel with the multiple edge devices (e.g., through which the locations of the multiple edge devices can be obtained). If the management system cannot determine the initial location of an edge device, the management system can assign a default location to the edge device. The management system can apply other criteria (e.g., geographical location signals, round-trip time, load, connection stability, data privacy policies, etc.) on an ongoing basis to fine-tune the locations of the multiple edge devices.

[0034] In some implementations, multiple edge devices can generate other criteria associated with the use and connection of cloud services provided by the management system. For example, other criteria can include the round-trip time associated with the multiple edge devices (e.g., the duration of a network request from a starting point to a destination and back to the starting point). Other criteria can include the connection stability associated with the multiple edge devices, which provides an indication of the load on the multiple edge devices (e.g., whether traffic is traveling to and from the multiple edge devices at a regular rate). Other criteria can include the upgrade success rate associated with the multiple edge devices. For example, the multiple edge devices can be periodically provided with upgrades, and the success rate of the upgrades can be measured. Other criteria can include the data privacy policy associated with the multiple edge devices. For example, the data privacy policy can affect from which locations the multiple edge devices can receive upgrades from the management system (e.g., to protect the private information of customers). In some implementations, other criteria can include one or more key performance indicators (KPIs) associated with the multiple edge devices (e.g., throughput, latency, jitter, etc.).

[0035] As Figure 1AAs further shown by reference numeral 110, the management system can identify an upgrade for an edge device among multiple edge devices based on other criteria of the edge data associated with the edge device. For example, the management system can determine that a new upgrade (e.g., a new upgrade available for a specific type of router) for the edge device is available based on the type of the edge device. In another example, the management system can provide periodic upgrades to multiple edge devices and can identify an upgrade for an edge device based on the schedule of the periodic upgrades. In some implementations, if other criteria indicate that a previous upgrade of the edge device was unsuccessful, the management system can identify the previous upgrade of the edge device. In some implementations, the management system can provide intelligent upgrades for multiple edge devices to ensure a high probability of success. In some implementations, the management system can identify an upgrade for an edge device based on other criteria and minimize timeouts and retry possibilities. In some implementations, the management system can identify one or more underperforming KPIs associated with the edge device and can identify an upgrade for the edge device that will improve the one or more underperforming KPIs.

[0036] As Figure 1B As shown by reference numeral 115, the management system can identify the location of a repository image for an upgrade based on the location of the edge device identified in the edge data. For example, the management system can host repository images at different locations (e.g., location 1 to location N) and can compare the location of the edge device and the different locations of the repository images. The management system can identify (e.g., among the different locations) the location that is geographically closest to the location of the edge device based on the comparison of the location of the edge device and the different locations. In some implementations, the management system can use the location of the edge device as the location of the repository image and can cause the repository image to be instantiated at the location of the edge device (e.g., when the repository image has not been provided at that location yet). In some implementations, the management system can identify the location of a repository image for an upgrade based on other criteria associated with the edge device. For example, if other criteria indicate that the first location of the repository image will provide a better upgrade success rate than the second location of the repository image, the management system can use the first location of the repository image for the upgrade (e.g., even if the second location is closer to the location of the edge device than the first location).

[0037] As Figure 1CAs shown by reference numeral 120, the management system may instruct the edge device to receive an upgrade using the location of the repository image. For example, the management system may provide an upgrade to the repository image and may generate an instruction instructing the edge device to receive the upgrade using the location of the repository image. The management system may provide an instruction instructing the edge device to receive the upgrade using the location of the repository image to the edge device, and the edge device may receive the instruction from the management system. In some implementations, the instruction may include additional information, such as a time period (e.g., at night) to receive the upgrade using the location of the repository image, access information associated with the repository image, features associated with the upgrade (e.g., region, network address of the repository image, token, etc.). In some implementations, the management system may use a secure control channel to provide the instruction to the edge device.

[0038] As Figure 1C As further shown by reference numeral 125, the edge device may receive an upgrade using the location of the repository image based on the instruction. For example, the edge device may use the instruction to access the repository image at the location identified in the instruction (e.g., location N). The edge device may provide a request for the upgrade to the repository image, and the repository image may provide the upgrade to the edge device based on the request. For example, the edge device may pull the upgraded container image from the repository image and may monitor the upgrade metrics during the process. The edge device may install the upgrade and may provide an indication to the management system that the upgrade has been successfully installed on the edge device and the upgrade metrics associated with the installation. In some implementations, the management system may use the upgrade metrics to modify the repository image (e.g., provision a new repository image, remove an existing repository image, adjust the location of an existing repository image, etc.), provide a modified list of available repository images for future upgrades, and so on.

[0039] As Figure 1D As shown by reference numeral 130, the management system may determine a placement policy that identifies a set of locations of repository images for a set of edge devices among a plurality of edge devices based on edge data. For example, the management system may support a set of edge devices (e.g., a set of thin clients) and may perform a space rebalancing of the repository images to determine an optimal placement policy for the set of thin clients. In some implementations, the management system may periodically execute a job that determines an optimal placement policy for a set of deployed thin clients based on edge data. The placement policy may identify a set of locations of repository images for a set of edge devices among a plurality of edge devices (e.g., a set of thin clients).

[0040] As Figure 1EAs shown in and reference numeral 135, the management system may generate a minimal set of repository images at a set of locations and remove unused repository images based on a placement policy. For example, the placement policy may identify a minimal set of repository images at a set of locations required by a set of edge devices (e.g., a set of thin clients). Based on the placement policy, the management system may reassign the minimal set of repository images to the set of edge devices and may remove unused repository images (e.g., repository images not included in the minimal set of repository images). In this way, the management system may maintain a minimal set of required repository images for the set of thin clients, may meet the upgrade KPIs for the set of thin clients, and may control the costs associated with leveraging repository images.

[0041] As Figure 1F As shown in and reference numeral 140, the management system may temporarily provide a set of repository images at a set of locations based on a placement policy and provide an upgrade to a set of edge devices within the set of repository images. For example, when the set of edge devices is a set of non-thin clients, the management system may temporarily provide a set of repository images at a set of locations based on the placement policy. The management system may identify an upgrade for the set of non-thin clients based on edge data and may supply the identified upgrade to the set of repository images. In some implementations, to further reduce costs, when providing an upgrade to the set of non-thin clients within the set of repository images, the management system may utilize ephemeral workloads and just-in-time provisioning of the set of repository images.

[0042] As Figure 1F As further shown in and reference numeral 145, a set of edge devices may receive an upgrade from a set of repository images. For example, the set of edge devices may receive an instruction from the management system to receive an upgrade using the set of repository images. The set of edge devices may use the instruction to access the set of repository images at the set of locations identified in the instruction. The set of edge devices may provide requests for an upgrade to the set of repository images, and the set of repository images may provide an upgrade to the set of edge devices based on these requests. For example, the set of edge devices may pull an upgraded container image from the set of repository images and may monitor upgrade metrics during the process. The set of edge devices may install the upgrade and may provide an indication to the management system that the upgrade has been successfully installed on the set of edge devices and the upgrade metrics associated with the installation. In some implementations, the management system may use the upgrade metrics to modify the set of repository images (e.g., provision new repository images, remove existing repository images, adjust the location of existing repository images, etc.), provide a modified list of available repository images for future upgrades, and so on.

[0043] As Figure 1F Further shown by Figure 1F and reference numeral 150, the management system may remove a set of repository images after the set of edge devices has received an upgrade. For example, after the management system receives an indication that the upgrade has been successfully installed on the set of edge devices, the management system may remove the set of repository images. In some implementations, when the set of edge devices is performing a particular upgrade and does not require additional upgrades, the management system may cause the set of repository images to be removed (e.g., phased out). In some implementations, the management system may utilize an automatic upgrade schedule and an opt-in by the set of edge devices to the schedule when providing an upgrade to the set of repository images, updating the set of edge devices with the upgrade, and removing the set of repository images when the update is complete.

[0044] As Figure 1G Further shown by Figure 1G and reference numeral 155, the management system may receive a request for an upgrade from an edge device among a plurality of edge devices. For example, for a manual upgrade, a customer associated with an edge device among the plurality of edge devices may cause the edge device to generate a request for an upgrade. The edge device may provide the request for the upgrade to the management system, and the management system may receive the request for the upgrade from the edge device.

[0045] As Figure 1G Further shown by Figure 1G and reference numeral 160, the management system may identify the location of a repository image for an upgrade based on the location of the edge device identified in the edge data. For example, the management system may host repository images at different locations (e.g., location 1 to location N), and may compare the location of the edge device and the different locations of the repository images. The management system may identify (e.g., among the different locations) the location that is geographically closest to the location of the edge device based on the comparison of the location of the edge device and the different locations. In some implementations, the management system may utilize the location of the edge device as the location of the repository image (e.g., location N), and may cause the repository image to be instantiated at the location of the edge device (e.g., when the repository image has not been provided at that location yet). In some implementations, the management system may identify the location of a repository image for an upgrade based on other criteria associated with the edge device.

[0046] As Figure 1G Further shown by Figure 1G and reference numeral 165, the management system may temporarily provide a repository image at that location. For example, the management system may temporarily provide a repository image at that location based on a request for an upgrade. The management system may supply the requested upgrade to the repository image. In some implementations, to further reduce costs, when providing the requested upgrade to the set of edge devices in the repository image, the management system may utilize ephemeral workloads and just-in-time provisioning of the repository image.

[0047] AsFigure 1G As further shown by reference numeral 170, the management system may instruct the edge device to receive the upgrade using the location of the repository mirror. For example, the management system may generate an instruction instructing the edge device to receive the requested upgrade using the location of the repository mirror. The management system may provide the edge device with an instruction instructing the edge device to receive the requested upgrade using the location of the repository mirror, and the edge device may receive the instruction from the management system. In some implementations, the instruction may include additional information, such as the time period for receiving the upgrade using the location of the repository mirror (e.g., at night), access information associated with the repository mirror, features associated with the upgrade (e.g., region, network address of the repository mirror, token, etc.), and so on. In some implementations, the management system may use a secure control channel to provide the instruction to the edge device.

[0048] As Figure 1G As further shown by reference numeral 175, the edge device may receive the upgrade using the location of the repository mirror based on the instruction. For example, the edge device may use the instruction to access the repository mirror at the location identified in the instruction (e.g., location N). The edge device may provide a request for the upgrade to the repository mirror, and the repository mirror may provide the upgrade to the edge device based on the request. For example, the edge device may pull the upgraded container image from the repository mirror and may monitor the upgrade metrics during the process. The edge device may install the upgrade and may provide an indication to the management system that the upgrade has been successfully installed on the edge device and the upgrade metrics associated with the installation. In some implementations, the management system may use the upgrade metrics to modify the repository mirror (e.g., provision a new repository mirror, remove an existing repository mirror, adjust the location of an existing repository mirror, etc.), provide a list of modifications to the available repository mirrors for future upgrades, and so on.

[0049] As Figure 1G As further shown by reference numeral 180, the management system may remove the repository mirror after the upgrade has been received by the edge device. For example, after the management system receives an indication that the upgrade has been successfully installed on the edge device, the management system may remove the repository mirror. In some implementations, when the edge device is performing an upgrade and does not require additional upgrades, the management system may cause the set of repository mirrors to be removed (e.g., phased out).

[0050] In this manner, the management system utilizes location-based repository mirroring for device upgrades. For example, the management system can receive edge data identifying the location of an edge device and other criteria associated with the edge device, and can determine an upgrade for the edge device based on the other criteria. The management system can identify the location of a repository mirror for storing the upgrade based on the location of the edge device, and can cause the repository mirror to be instantiated at those locations. The edge device can receive the upgrade from the repository mirror, and the management system can cause the repository mirror to be removed from service after the upgrade has been received by the edge device. This can optimize costs and ensure a good user experience for edge device upgrades. Thus, the management system saves computing resources, network resources, etc., which would otherwise be consumed due to providing a poor service and upgrade experience when a cloud-based platform and edge devices are located in different geographical locations, experiencing performance issues with edge devices that are not properly upgraded, attempting to provide upgrades for edge devices from non-secure sources, thereby posing security issues for customers of edge devices upgraded from non-secure sources, etc.

[0051] Other examples may differ from those Figures 1A - 1G described in Figures 1A - 1G The number and arrangement of the devices shown are provided as an example. In practice, there may be more devices, fewer devices, different devices, or differently arranged devices compared to those Figures 1A - 1G shown. Additionally, Figures 1A - 1G two or more of the devices shown may be implemented within a single device, or Figures 1A - 1G a single device shown may be implemented as multiple distributed devices. Additionally or alternatively, Figures 1A - 1G a group of devices (e.g., one or more devices) shown may perform one or more functions described as being performed by Figures 1A - 1G another group of devices shown.

[0052] Figure 2 is a diagram of an example environment 200 in which the systems and / or methods described herein may be implemented. As Figure 2 shown, the environment 200 may include a management system 201, which may include one or more elements of a cloud computing system 202 and / or may execute within the cloud computing system 202. The cloud computing system 202 may include one or more elements 203 - 212, as described in more detail below. As Figure 2 further shown, the environment 200 may include a network 220 and / or edge devices 230. The devices and / or elements of the environment 200 may be interconnected via wired connections and / or wireless connections.

[0053] The cloud computing system 202 may include computing hardware 203, a resource management component 204, a host operating system (OS) 205, and / or one or more virtual computing systems 206. The cloud computing system 202 may execute on, for example, the Amazon Web Services platform, the Microsoft Azure platform, or the Snowflake platform. The resource management component 204 may perform virtualization (e.g., abstraction) of the computing hardware 203 to create one or more virtual computing systems 206. Using virtualization, the resource management component 204 enables a single computing device (e.g., a computer or a server) to operate as if it were multiple computing devices, such as by creating multiple isolated virtual computing systems 206 from the computing hardware 203 of a single computing device. In this way, the computing hardware 203 can operate more efficiently than using separate computing devices, with lower power consumption, higher reliability, higher availability, higher utilization, greater flexibility, and lower cost.

[0054] The computing hardware 203 may include the hardware and corresponding resources from one or more computing devices. For example, the computing hardware 203 may include the hardware from a single computing device (e.g., a single server) or from multiple computing devices (e.g., multiple servers) (such as multiple computing devices in one or more data centers). As shown, the computing hardware 203 may include one or more processors 207, one or more memories 208, and / or one or more networking components 209. Examples of processors, memories, and network components (e.g., communication components) are described elsewhere in this document.

[0055] The resource management component 204 may include a virtualization application (e.g., executing on hardware such as the computing hardware 203) capable of virtualizing the computing hardware 203 to start, stop, and / or manage one or more virtual computing systems 206. For example, the resource management component 204 may include a hypervisor (e.g., a bare-metal or type 1 hypervisor, a hosted or type 2 hypervisor, or another type of hypervisor) or a virtual machine monitor, such as when the virtual computing system 206 is a virtual machine 210. Additionally or alternatively, the resource management component 204 may include a container manager, such as when the virtual computing system 206 is a container 211. In some implementations, the resource management component 204 executes within the host operating system 205 and / or coordinates execution with the host operating system 205.

[0056] The virtual computing system 206 may include a virtual environment that enables cloud-based execution of the operations and / or processes described herein using the computing hardware 203. As shown, the virtual computing system 206 may include virtual machines 210, containers 211, or a hybrid environment 212 that includes both virtual machines and containers, etc. The virtual computing system 206 may use a file system to execute one or more applications, which includes binary files, software libraries, and / or other resources required to execute the applications on a guest operating system (e.g., within the virtual computing system 206) or a host operating system 205.

[0057] Although the management system 201 may include one or more elements 203 - 212 of the cloud computing system 202, may be executed within the cloud computing system 202, and / or may be hosted within the cloud computing architecture 202, in some implementations, the management system 201 may not be cloud-based (e.g., may be implemented outside of the cloud computing system) or may be partially cloud-based. For example, the management system 201 may include one or more devices that are not part of the cloud computing system 202, such as Figure 3 device 300 or Figure 4 device 400, which may include a stand-alone server or other types of computing devices. The management system 201 may perform one or more operations and / or processes described in more detail elsewhere herein.

[0058] The network 220 may include one or more wired and / or wireless networks. For example, the network 220 may include a cellular network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a private network, the Internet, and / or a combination of these or other types of networks. The network 220 enables communication between the devices in the environment 200.

[0059] The edge device 230 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information, as described elsewhere herein. The edge device 230 may include a communication device and / or a computing device. For example, the edge device 230 may include a wireless communication device, a mobile phone, a user device, a laptop computer, a tablet computer, a desktop computer, a game console, a set-top box, a wearable communication device (e.g., a smartwatch, a pair of smart glasses, a head-mounted display, or a virtual reality headset), an Internet of Things (IoT) device, or a similar type of device.

[0060] The edge device 230 may include one or more devices capable of receiving, processing, storing, routing, and / or providing traffic (e.g., packets and / or other information or metadata) in the manner described herein. For example, the edge device 230 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router or a provider core router), a virtual router, or another type of router. Additionally or alternatively, the edge device 230 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, or a data center server), a load balancer, and / or similar devices. In some implementations, the edge device 230 may be a physical device implemented within an enclosure such as a chassis. In some implementations, the edge device 230 may be a virtual device implemented by one or more computing devices of a cloud computing environment or a data center. In some implementations, a group of edge devices 230 may be a group of data center nodes for routing traffic through a network.

[0061] Figure 2 The number and arrangement of the devices and networks shown are provided as an example. In practice, there may be more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than Figure 2 shown. Additionally, Figure 2 two or more of the devices shown may be implemented within a single device, or Figure 2 a single device shown may be implemented as multiple distributed devices. Additionally or alternatively, a group of devices (e.g., one or more devices) of the environment 200 may perform one or more functions described as being performed by another group of devices of the environment 200.

[0062] Figure 3 is Figure 2 a diagram of example components of one or more devices. The example components may be included in a device 300, which may correspond to the management system 201 and / or the edge device 230. In some implementations, the management system 201, the edge device 230, and / or the edge device 230 may include one or more devices 300 and / or one or more components of the device 300. As Figure 3 shown, the device 300 may include a bus 310, a processor 320, a memory 330, an input component 340, an output component 350, and a communication interface 360.

[0063] The bus 310 includes one or more components enabling wired and / or wireless communication between the components of the device 300. The bus 310 may couple Figure 3Two or more components are coupled together, such as via operational coupling, communication coupling, electrical coupling, and / or electro - coupling. Processor 320 includes a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, a controller, a microcontroller, a digital signal processor (DSP), a field - programmable gate array (FPGA), an application - specific integrated circuit (ASIC), and / or other types of processing components. Processor 320 is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor 320 includes one or more processors that can be programmed to perform one or more operations or processes described elsewhere herein.

[0064] Memory 330 includes volatile and / or non - volatile memory. For example, memory 330 can include random access memory (RAM), read - only memory (ROM), a hard disk drive, and / or another type of memory (e.g., flash memory, magnetic memory, and / or optical memory). Memory 330 can include internal memory (e.g., RAM, ROM, or hard disk drive) and / or removable memory (e.g., removable via a universal serial bus connection). Memory 330 can be a non - transient computer - readable medium. Memory 330 stores information, instructions, and / or software (e.g., one or more software applications) related to the operation of device 300. In some implementations, memory 330 includes one or more memories coupled to one or more processors (e.g., processor 320) via bus 310.

[0065] Input component 340 enables device 300 to receive input, such as user input and / or sensed input. For example, input component 340 can include a touch screen, a keyboard, a keypad, a mouse, buttons, a microphone, switches, sensors, a global positioning system sensor, an accelerometer, a gyroscope, and / or an actuator. Output component 350 enables device 300 to provide output, such as via a display, a speaker, and / or a light - emitting diode. Communication interface 360 enables device 300 to communicate with other devices via a wired connection and / or a wireless connection. For example, communication interface 360 can include a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.

[0066] Device 300 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory 330) may store a set of instructions (e.g., one or more instructions or code) for execution by processor 320. Processor 320 may execute the set of instructions to perform one or more operations or processes described herein. In some implementations, execution of the set of instructions by one or more processors 320 causes one or more processors 320 and / or device 300 to perform one or more operations or processes described herein. In some implementations, hardwired circuitry may be used in place of or in combination with the instructions to perform one or more operations or processes described herein. Additionally or alternatively, processor 320 may be configured to perform one or more operations or processes described herein. Thus, the implementations described herein are not limited to any particular combination of hardware circuitry and software.

[0067] Figure 3 The number and arrangement of the components shown are provided as an example. Compared with Figure 3 those shown, device 300 may include more components, fewer components, different components, or components arranged differently. Additionally or alternatively, a set of components (e.g., one or more components) of device 300 may perform one or more functions described as being performed by another set of components of device 300.

[0068] Figure 4 is Figure 2 a diagram of example components of one or more devices. The example components may be included in device 400. Device 400 may correspond to edge device 230. In some implementations, edge device 230 may include one or more devices 400 and / or one or more components of device 400. As Figure 4 shown, device 400 may include one or more input components 410-1 to 410-B (B≥1) (collectively referred to herein as input components 410 and individually as input component 410), a switching component 420, one or more output components 430-1 to 430-C (C≥1) (collectively referred to herein as output components 430 and individually as output component 430), and a controller 440.

[0069] The input component 410 can be one or more attachment points for a physical link and can be one or more entry points for incoming traffic such as packets. The input component 410 can process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, the input component 410 can transmit and / or receive packets. In some implementations, the input component 410 can include an input line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and / or input queues. In some implementations, the device 400 can include one or more input components 410.

[0070] The switching component 420 can interconnect the input component 410 and the output component 430. In some implementations, the switching component 420 can be implemented via one or more crossbars, via a bus, and / or using shared memory. The shared memory can act as a temporary buffer to store packets before they are ultimately scheduled for delivery to the output component 430 from the input component 410. In some implementations, the switching component 420 can enable the input component 410, the output component 430, and / or the controller 440 to communicate with each other.

[0071] The output component 430 can store packets and can schedule packets for transmission on an output physical link. The output component 430 can support data link layer encapsulation or decapsulation, and / or various higher-level protocols. In some implementations, the output component 430 can transmit packets and / or receive packets. In some implementations, the output component 430 can include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some implementations, the device 400 can include one or more output components 430. In some implementations, the input component 410 and the output component 430 can be implemented by the same set of components (e.g., the input / output component can be a combination of the input component 410 and the output component 430).

[0072] The controller 440 includes a processor in the form of, for example: CPU, GPU, accelerated processing unit (APU), microprocessor, microcontroller, DSP, FPGA, ASIC, and / or other types of processors. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the controller 440 can include one or more processors that can be programmed to perform functions.

[0073] In some implementations, the controller 440 may include a RAM, a ROM, and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by the controller 440.

[0074] In some implementations, the controller 440 may communicate with other devices, networks, and / or systems connected to the device 400 to exchange information about the network topology. The controller 440 may create a routing table based on the network topology information, may create a forwarding table based on the routing table, and may forward the forwarding table to the input component 410 and / or the output component 430. The input component 410 and / or the output component 430 may use the forwarding table to perform a routing lookup for incoming and / or outgoing packets.

[0075] The controller 440 may perform one or more of the processes described herein. The controller 440 may perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. The computer-readable medium is defined herein as a non-transitory memory device. The memory device includes a memory space within a single physical storage device or a memory space distributed among multiple physical storage devices.

[0076] The software instructions may be read into the memory and / or storage components associated with the controller 440 from another computer-readable medium or via a communication interface from another device. When executed, the software instructions stored in the memory and / or storage components associated with the controller 440 may cause the controller 440 to perform one or more of the processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with the software instructions to perform one or more of the processes described herein. Accordingly, the implementations described herein are not limited to any particular combination of hardware circuitry and software.

[0077] Figure 4 The number and arrangement of the components shown are provided as an example. In practice, the device 400 may include more components, fewer components, different components, or components arranged differently than Figure 4 shown. Additionally or alternatively, a set of components (e.g., one or more components) of the device 400 may perform one or more functions described as being performed by another set of components of the device 400.

[0078] Figure 5 is a flowchart of an example process 500 for device upgrade using location-based repository mirroring. In some implementations, Figure 5 one or more of the process blocks of Figure 5One or more process blocks of can be executed by another device or a group of devices that are separate from or include the device, such as an edge device (e.g., edge device 230). Additionally or alternatively, Figure 5 One or more process blocks of can be executed by one or more components of device 300, such as processor 320, memory 330, input component 340, output component 350, and / or communication interface 360. Additionally or alternatively, Figure 5 One or more process blocks of can be executed by one or more components of device 400, such as input component 410, switching component 420, output component 430, and / or controller 440.

[0079] As Figure 5 shown, process 500 may include receiving edge data identifying the locations of multiple edge devices and other criteria associated with the multiple edge devices (block 510). For example, the device may receive edge data identifying the locations of multiple edge devices and other criteria associated with the multiple edge devices, as described above. In some implementations, the multiple edge devices include one or more thin client devices and one or more non-thin client devices. In some implementations, the other criteria associated with the multiple edge devices include one or more of a round-trip time associated with the multiple edge devices, a connection stability associated with the multiple edge devices, a success rate of an upgrade associated with the multiple edge devices, or a data privacy policy associated with the multiple edge devices.

[0080] As Figure 5 further shown, process 500 may include identifying an upgrade for an edge device among the multiple edge devices based on the edge data and other criteria (block 520). For example, the device may identify an upgrade for an edge device among the multiple edge devices based on the edge data and other criteria, as described above.

[0081] As Figure 5 further shown, process 500 may include identifying the location of a repository image for the upgrade based on the location of the edge device identified in the edge data (block 530). For example, the device may identify the location of a repository image for the upgrade based on the location of the edge device identified in the edge data, as described above.

[0082] As Figure 5 further shown, process 500 may include instructing the edge device to use the location of the repository image to receive the upgrade (block 540). For example, the device may instruct the edge device to use the location of the repository image to receive the upgrade, as described above. In some implementations, the edge device uses the location of the repository image to receive the upgrade.

[0083] In some implementations, process 500 includes removing a repository image after an upgrade is received by an edge device. In some implementations, process 500 includes determining a placement policy based on edge data, the placement policy identifying a set of locations for a set of repository images for a set of edge devices among a plurality of edge devices. In some implementations, process 500 includes generating a minimum set of repository images at the set of locations based on the placement policy, and removing unused repository images based on the placement policy. In some implementations, process 500 includes providing a set of repository images at the set of locations based on the placement policy, providing another upgrade for the set of edge devices in the set of repository images, and removing the set of repository images after the set of edge devices receives the another upgrade. In some implementations, the set of edge devices is a set of Internet of Things devices.

[0084] In some implementations, process 500 includes receiving a request for another upgrade from another edge device among a plurality of edge devices; identifying another location for another repository image for the another upgrade based on the location of the another edge device; providing the another repository image at the another location; and instructing the another edge device to receive the another upgrade using the another location of the another repository image. In some implementations, process 500 includes removing the another repository image after the another edge device receives the another upgrade.

[0085] In some implementations, process 500 includes identifying underperforming repository images based on other criteria of the edge data, and adjusting the locations of the underperforming repository images. In some implementations, process 500 includes identifying a new upgrade for another edge device among a plurality of edge devices associated with an automatic upgrade schedule; identifying another location for another repository image for the new upgrade based on the location of the another edge device; providing the another repository image at the another location; and instructing the another edge device to receive the new upgrade using the another location of the another repository image.

[0086] Although Figure 5 example boxes of process 500 are shown, in some implementations, process 500 may include more boxes, fewer boxes, different boxes, or boxes arranged differently than Figure 5 shown. Additionally or alternatively, two or more boxes of process 500 may be executed in parallel.

[0087] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit implementations to the precise forms disclosed. Modifications and variations can be made in light of the above disclosure, or can be obtained from practice of the implementations.

[0088] As used herein, the term "component" is intended to be broadly construed as hardware, firmware, or a combination of hardware and software. Clearly, the systems and / or methods described herein can be implemented in different forms of hardware, firmware, and / or combinations of hardware and software. The actual specific control hardware or software code used to implement these systems and / or methods does not limit the implementation. Thus, the operations and behaviors of the systems and / or methods are described herein without reference to specific software code - it should be understood that software and hardware can be used to implement the systems and / or methods based on the description herein.

[0089] Although specific feature combinations are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features can be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below can directly depend on one claim, the disclosure of various implementations includes the combination of each dependent claim with every other claim in the claim set.

[0090] Any element, act, or instruction used herein should not be construed as critical or essential unless explicitly described as such. Additionally, as used herein, the articles "a" and "an" are intended to include one or more items and can be used interchangeably with "one or more." Additionally, as used herein, the article "the" is intended to include one or more items referenced in conjunction with the article "the" and can be used interchangeably with "one or more." Additionally, as used herein, the term "set" is intended to include one or more items (e.g., related items, unrelated items, or a combination of related and unrelated items, etc.) and can be used interchangeably with "one or more." If only one item is intended, the phrase "only one" or similar language is used. Additionally, as used herein, the terms "has," "have," "having," etc. are intended to be open-ended terms. Additionally, unless otherwise explicitly stated, the phrase "based on" is intended to mean "at least partially based on." Additionally, as used herein, the term "or" when used in a series is intended to be inclusive and can be used interchangeably with "and / or" unless otherwise explicitly stated (e.g., if used in combination with "any one" or "only one").

[0091] In the foregoing specification, various example embodiments have been described with reference to the accompanying drawings. However, it is clear that various modifications and changes can be made thereto, and additional embodiments can be implemented, without departing from the broader scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded as illustrative rather than restrictive.

Claims

1. A method comprising: receiving, by a device, edge data identifying locations of a plurality of edge devices and other criteria associated with the plurality of edge devices; identifying, by the device, an upgrade for an edge device of the plurality of edge devices based on the other criteria of the edge data; identifying, by the device, a location of a repository image for the upgrade based on a location of the edge device identified in the edge data; as well as The edge device is instructed, by the device, to utilize the location of the repository image to receive the upgrade.

2. The method according to claim 1, further comprising: The repository image is removed after the upgrade is received by the edge device. 3 . The method of claim 1 , wherein the edge device utilizes the location of the repository image to receive the upgrade.

4. The method according to claim 1, further comprising: A placement strategy is determined based on the edge data, the placement strategy identifying a set of locations of repository images for a set of edge devices in the plurality of edge devices.

5. The method according to claim 4, further comprising: generating a minimum set of repository mirrors at the set of locations based on the placement strategy; as well as Unused repository images are removed based on the placement policy.

6. The method according to claim 4, further comprising: providing a set of repository mirrors at the set of locations based on the placement strategy; providing another upgrade in the set of repository images to the set of edge devices; as well as The set of repository mirrors is removed after the another upgrade is received by the set of edge devices.

7. The method according to claim 6, wherein the set of edge devices is a set of Internet of Things devices, wireless access points, routers, switches or firewalls.

8. A device comprising: one or more memories; as well as One or more processors to: receiving edge data identifying locations of a plurality of edge devices and other criteria associated with the plurality of edge devices; identifying an upgrade for an edge device of the plurality of edge devices based on the other criteria of the edge data; identifying a location of a repository image for the upgrade based on a location of the edge device identified in the edge data; instructing the edge device to utilize the location of the repository image to receive the upgrade; as well as The repository image is removed after the upgrade is received by the edge device.

9. The device of claim 8, wherein the plurality of edge devices comprises one or more thin client devices and one or more non-thin client devices.

10. The apparatus of claim 8, wherein the one or more processors are further configured to: receiving a request for another upgrade from another edge device of the plurality of edge devices; identifying another location of another repository image for the another upgrade based on the location of the another edge device; providing the another repository mirror at the another location; and The other edge device is instructed to utilize the other location of the other repository image to receive the other upgrade.

11. The apparatus of claim 10, wherein the one or more processors are further configured to: The another repository image is removed after the another upgrade is received by the another edge device.

12. The device of claim 8, wherein the other criteria associated with the plurality of edge devices include one or more of the following: round trip times associated with the plurality of edge devices, a stability of connections associated with the plurality of edge devices, an upgrade success rate associated with the plurality of edge devices, or A data privacy policy associated with the plurality of edge devices.

13. The apparatus of claim 8, wherein the one or more processors are further configured to: identifying underperforming repository images based on the other criteria of the edge data; and Adjust the location of the underperforming repository mirror.

14. The apparatus of claim 8, wherein the one or more processors are further configured to: identifying a new upgrade for another edge device of the plurality of edge devices associated with an automatic upgrade schedule; identifying another location of another repository image for the new upgrade based on the location of the another edge device; providing the another repository mirror at the another location; and The other edge device is instructed to utilize the other location of the other repository image to receive the new upgrade.

15. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: One or more instructions that, when executed by one or more processors of a device, cause the device to: receiving edge data identifying locations of a plurality of edge devices and other criteria associated with the plurality of edge devices, wherein the plurality of edge devices include one or more thin client devices and one or more non-thin client devices; identifying an upgrade for an edge device of the plurality of edge devices based on the other criteria of the edge data; identifying a location of a repository image for the upgrade based on a location of the edge device identified in the edge data; and The edge device is instructed to utilize the location of the repository image to receive the upgrade.

16. The non-transitory computer readable medium of claim 15, wherein the one or more instructions further cause the device to: A placement strategy is determined based on the edge data, the placement strategy identifying a set of locations of repository images for a set of edge devices in the plurality of edge devices.

17. The non-transitory computer readable medium of claim 16, wherein the one or more instructions further cause the device to: generating a minimum set of repository mirrors at the set of locations based on the placement strategy; and Unused repository images are removed based on the placement policy.

18. The non-transitory computer readable medium of claim 16, wherein the one or more instructions further cause the device to: providing a set of repository mirrors at the set of locations based on the placement strategy; providing another upgrade in the set of repository images to the set of edge devices; and The set of repository mirrors is removed after the another upgrade is received by the set of edge devices.

19. The non-transitory computer readable medium of claim 15, wherein the one or more instructions further cause the device to: receiving a request for another upgrade from another edge device of the plurality of edge devices; identifying another location of another repository image for the another upgrade based on the location of the another edge device; providing the another repository mirror at the another location; instructing the other edge device to utilize the other location of the other repository image to receive the other upgrade; and The another repository image is removed after the another upgrade is received by the another edge device.

20. The non-transitory computer readable medium of claim 15, wherein the one or more instructions further cause the device to: identifying underperforming repository images based on the other criteria of the edge data; and Adjust the location of the underperforming repository mirror.