The Internet of Things (IoT) is part marketing hype and partly a real movement. After low power WiFi chips have allowed small devices to connect to the web for a long time. Remember Eye-Fi founded in 2005?
But there is no denying it is BIG. Service revenues rooted in micro-controller-based IoT are expected to reach a whopping $7.3 trillion by the year 2017 according to a recent IDC report, with the radical new paradigm shift of DevOps leading to the perfect storm of IoT adoption.
IoT is set to be a disruption those building and connecting things. It forces a transformation that is largely driven by the integration of development, IT operations and quality assurance practices delivered for IoT under a single automated umbrella in the DevOps-oriented world.
A Complex Solution Leading to Disruptive Success
IoT implementation in intelligent corporate and residential IT networks poses unique challenges for DevOps as requirements apply well beyond the software development lifecycle and encompasses the complex quality assurance and robust back-end support phase. Key requirements, considerations and challenges include:
Auditability and Traceability
Although IoT is largely consumer-driven, the technology is equally pervasive in corporate markets. In this context, DevOps engineers must address traceability and auditability for all IoT firmware OS developments to ensure compliance success. Collaboration with hardware product specialists and vendors throughout the development process also ensures software robustness to enable streamlined integration with existing IT networks while avoiding vendor lock-in.
Compatibility and Interoperability
The world’s networking infrastructure with its finite capacity is reaching its limit as the number of IoT endpoints explodes. This in turn, drives interoperability, networking and connectivity issues impacting the wider IT network, whereas IoT development with a focus on network environments, protocols and standards can help eradicate these concerns.
Given the scale of IoT production and deployment across the globe, maintaining a robust back-end architecture to automate testing and upgrades requires full visibility into the development cycle as well as a single repository to track changes that follow a device rollout.
Interoperability issues emerge naturally when billions of ‘dumb’ devices interact with each other. Developing for IoT with the API evolution in mind to expose unique functionalities of the hardware ensures easy rollout of upgrades in addressing integration, connectivity and interoperability issues that may arise down the line.
The performance and behavioral attributes of IoT hardware pose unique challenges for DevOps engineers who must test IoT software in complex real-world environments and use cases. For instance, weather conditions and durability of the hardware can impact software performance especially when the technology is designed for responding to environmental conditions, such as Web-connected automated fire alarms.
Complex QA and Ongoing Support
Quality assurance is inherently complex and specialized with the burden of architecture almost entirely falling on the back-end. With this service model, DevOps engineers can push updates frequently as the slow approval process of app stores doesn’t hold for IoT software. The IoT ecosystem’s vastness has also led to the unpredictability of application requirements for these devices. The understanding of IoT applications is therefore altered even after the launch, prompting significant updates regularly to incorporate the required changes. With the DevOps approach, these updates are directly pushed from the back-end with a continuous delivery service model.
However, this convenience comes at a price. Empowering vulnerable devices with the intelligence to perform automated operations, unsupervised, opens the door to costly security, accessibility and stability threats as we move to new ways of development and software releases. Building security into IoT devices organically at the launch and pushing security-centric updates based on user feedback ensures user data privacy and network security.
The DevOps approach should also address the disconnect between IT realities and management desires leading to interoperability and productivity concerns for enterprise customers. Using innovative software solutions to costly hardware upgrades is therefore necessary in the corporate environment where new IoT offerings with compatible functionalities are sought proactively and consistently. Focusing on standardized IoT environments that require minimal customization for successful implementation greatly reduces compatibility issues. Encrypting data depending on the processing capabilities of IoT devices and limiting the functionality of IoT applications can also prevent vulnerable IoT endpoints from performing unwanted operations in the first place.
In this context, the conventional DevOps approach of “build a little/fail a little/fix” will not work for IoT devices that can prove fatal when operating out of control – think medical IoT!
Pull it off correctly, and the rewards will be ineffable, to say the least.