Asynchronous Code Deployment for Sporadically Connected IoT Clusters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software deployment strategies for IoT and edge devices face challenges in scaling code updates to diverse hardware and software configurations with sporadic network access, leading to inconsistent deployment status and difficulty in collecting metadata, logging data, and evaluating performance.
Innovation Solution
Implementing an agent within a cluster of devices and a local queue at a centralized controller to monitor and report device status, using an asynchronous pull model for code updates, which allows for automated deployment and integration with analytics for performance metrics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a push model is used to roll out code updates to a large number of devices, then code updates can be distributed to devices, but resource consumption increases and deployment consistency becomes difficult to maintain
Solution Approach 1:
The patent inverts the traditional push model by implementing a pull model where devices autonomously retrieve code updates from the development environment when they are available, rather than having the system continuously push updates to devices. This reversal eliminates the need for continuous polling and retry mechanisms, significantly reducing resource consumption while maintaining deployment efficiency.
Solution Approach 2:
Each device is equipped with an agent that autonomously monitors for code updates, retrieves them when available, and manages local queues without requiring continuous external coordination. This self-service approach allows devices to independently manage their update processes, reducing the overall resource burden on the centralized development environment while maintaining high productivity.
2Adaptability or versatility
If code updates are pushed to devices with sporadic network access, then updates can reach devices, but deployment status consistency becomes non-uniform across devices
Solution Approach 1:
The system prepares code update images in advance in the development environment and makes them available for retrieval. Devices can pull these pre-prepared updates when network connectivity is available, ensuring that deployment status remains consistent across all devices regardless of their connectivity patterns. The asynchronous message bus also buffers messages to ensure reliable delivery even when devices are intermittently connected.
Solution Approach 2:
An asynchronous message bus acts as an intermediary between the development environment and devices, buffering and forwarding code update images and status reports. This mediator ensures that deployment status information is consistently captured and transmitted even when devices have sporadic network access, maintaining uniformity in deployment tracking across the entire device fleet.
3Reliability
If incremental code update roll out campaigns are implemented, then deployment can be staged and controlled, but scheduling complexity and multiple push cycles are required
Solution Approach 1:
Instead of the centralized system managing incremental rollouts through multiple scheduled pushes, the patent inverts the approach by allowing devices to autonomously pull updates at their convenience. The development environment simply needs to make update images available, and devices will retrieve them when ready, eliminating the need for complex scheduling logic while maintaining reliable staged deployment through controlled availability of update images.
Data Source
AI summary
Systems, methods and computer program products are presented for the automated deployment of a code update to a device. One or more clusters of devices may be connected to a development environment for deployment of one or more code updates through respective development pipelines to the respective clusters of devices. A first cluster of devices receives a module for implementation of an agent for the first cluster of devices and a central queue local to a centralized controller of the development environment. The agent reports at least one status of a respective device to the centralized controller of the development environment, whereby that status may correspond to a code update image pulled onto the respective device. The agent retrieves one or more instruction messages from the centralized controller in response to the reported status of the respective device.


