Updating software without updating firmware — or vice versa — could derail an entire IoT network.
DevOps is the automation of Agile, using tools and processes that remove the traditional latency from application development. DevOps transformations are systemic to both enterprises and ISVs that I work with these days. Everyone now knows that it’s critical to make the best use of cloud computing, big data, and, now, the Internet of Things (IoT).
However, most don’t understand the connections. If you ask IoT systems managers where DevOps actually fits in, most don’t understand. It’s actually pretty straight orward, and not at all complex. Let me take you through the core concepts.
First of all, IoT is something that comes into play with automated security testing (continuous testing), integration testing (continuous integration), and, finally, deployment (continuous deployment).
When the IoT application is tested, a DevOps system needs to consider security around the information coming from sensors. These are points-of-entry that are easily compromised, such as somebody hacking into your thermostat and sending misleading data. DevOps security testing tools need to regress through the IoT application to ensure that exposure is minimized.
Continuous integration ensures that the IoT applications that are a part of DevOps, and perhaps some that are not, are all considered a holistic application or system. These component parts are dependent upon one another, even components that are not under your direct control, such as sensors embedded in machines (e.g., a jet engine). This is a bit of a leap from traditional approaches to DevOps, where all components are under direct control.
Deployment is the most important component of DevOps and IoT. This is due to the fact that the application needs to live on a platform, say a IaaS cloud provider, as well as work and play with remote devices. This complicates the processes of deployment, in that there could be updates to the application that reside on a centralized cloud platform, and perhaps even firmware updates that reside on a remote sensor or device.
Think about mobile applications that operate Wi-Fi-enabled ceiling fans. When the applications (app) is updated on both iOS and Android devices, they may need to push an update to the ceiling fan as part of the deployment, which assumes the firmware update is required to support the changes to the app. This must all happen at the same time, in that they are coupled updates. Updating one or the other would perhaps mean system failure, and upset fan owners.
While we’re still playing around with DevOps and IoT, it’s clear that the connections can be made, and we can indeed benefit from the marriage of IoT and DevOps. Those who build IoT applications now, such as IoT software providers, already understand the connections and continue their progression toward synergy. Enterprises are new to DevOps and have yet to get onboard. It’s just a matter of time until one won’t exist without the other.