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.
Thorough Testing
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.

i am new to devops, first saw it on new job requirements, i have been working
with devices at all points of new product introduction for years. after cross training into ms .net back in 2004, i took on roles where i was tasked to design/build c# .net tools to program, configure and test various devices, modules, and product prototypes. i use various packet passing protocols, handshaking to devices between device and pc host to perform this work. i also use oem test equipment remote control using SCPI to control oem test equipment that also provides i/o stimulus to the device under test. I do create databases for recording device tests, and providing stimulus as well for standards compliance and research lab as well.
I am working on my first IoT toolsets at this time using beagleboneblack, raspberry pi, netduino p1, netduino p2, seeeduino arch(mbed). i am using the xively RESTful API toolsets at this time. so is that devops, is the API toolset that i can use to tell it what type of device i have connected, and pass messages to and from device via the devops ide??
As i understand it devops serves as a test harness structure, am i right? since i do much of my work in c#, are there specific devops tool kits, libraries i can use? i have not spoken to anyone who is in the know about devops, so please tell me how far off i am and how much devops applies to what i do.
FYI, i am between contract jobs right now and i am being considered for employment at about 20 different companies nationwide.
please clarify what DevOps is all about and how appropriate it is for me to use as a toolset.
Thanks for your comment. Your question is good because it highlights one of the confusions about DevOps. DevOps is not a thing, it is a framework. It also is not individualized. It has to encompass your entire team. What DevOps does, is encourages the proper combination of People, Process, and Tools, not individually, to achieve faster software delivery at a higher quality.
In your question you highlight the tools a lot. There are a lot of great new tools out there that will assist if your development team uses DevOps. But the tools alone are not DevOps. For example you asked about an IDE. A great tool in the DevOps framework are Cloud IDE’s like Cloud9, Nitrous.io, CodeEnvy. Although they do not do c#. This would allow you to keep all your coding environments consistent and connected.
The stack you use, is really up to you and the company you are working with. There are so many components out there that it is impossible to choose any strict combination. And to make it worse they are all good. But how you use them in conjunction with everything else is DevOps.
Hi,
DevOps culture is beyond technology. I am working as a writer in DevOps for IoT sector. I am have been writing and learning on this subject from last 3 months. I would like to know about few resources which help me in clear vision about Devops with IoT gateway framework and related tools.
Regards,
Komal