Synchronized software updates in large scale IoT Projects
There is a significant difference in deploying and managing a handful versus millions of Internet-of-Things (IoT) devices. An IoT project at proof-of-concept (PoC) helps bring all the pieces together to envision the big picture of the overall solution, however too often scalability is not considered at the PoC stage.
Scaling an IoT project requires consideration of a mix of various components in a constrained environment that needs a unified remote device fleet management infrastructure.
Constrained IoT environment
The rapid evolution of new technologies coupled with the challenges of a constrained environment that IoT devices operate in makes device management a complex endeavor.
IoT devices are generally constrained in the following ways:
Hardware has become a commodity over the years through rapid innovation, scale and cost reduction and the push for enterprises to create significant economic value and differentiation is through software. This puts demand for software-defined functionalities and better end-user experience which means increasing lines of code resulting in devices being more vulnerable to malware, ransomware, and botnets (i.e. IoT device security).
Devices are scattered globally across terrain, geography, often based on customer locations making them expensive to reach physically. Devices often have heavy reliance on battery and wireless connectivity, two scarce resources that are eventually bound to fail one time or the other.
Unreliable networks with intermittent connectivity and low bandwidth could introduce interruptions, latency and increase costs hence reducing operational efficiency and customer satisfaction.
The above points are further amplified by the technological changes that happen rapidly such as cloud infrastructure, platforms and tools like docker and kubernetes, new generations of hardware and connectivity.
Unified remote device fleet management
A remote fleet management infrastructure needs the ability to have secure access and manage software of an entire fleet of heterogeneous connected devices, globally. The user interface needs to be intuitive, fast and responsive. Manual tasks increase the likelihood of human errors, which introduces security and operational risks and should therefore be automated as much as possible. A typical pitfall for homegrown solutions is that it only targets the specific product line it was implemented for. Once the next generation of hardware, software and new products are developed, “retro-fitting” the existing homegrown solution is challenging and sometimes not feasible, so yet another homegrown solution needs to be developed and maintained. Larger companies typically end up with a handful or more homegrown solutions leading to a disperse and diverging fleet management situation.
In large scale IoT deployments synchronized software updates ensure consistency of software versions across the device fleet, given an unreliable environment and failures. This is important in deployments where software versions running on the devices need to be the same, such as for co-located devices for transportation or a building. In such cases, using synchronized update will ensure consistency, shorter maintenance windows, end user control and higher uptime of the device fleet without the need for time-consuming manual intervention and “clean up” after a failure. Synchronized software update allows you to pause an update deployment once it reaches a given state on the devices. Once a device reaches this state it will pause until it receives instructions to either continue or abort the update process, in which case it will attempt to roll back to the previous version. An update workflow is illustrated in the image below.
In summary, the transition from PoC to a large-scale production roll-out scattered globally can only be successful if scalability is planned for from inception of the project. Careful attention must be given to the requirements of an over-the-air (OTA) software management infrastructure that provides a unified device fleet management.