Rein in IoT with containers and microservices


DevOps and IoT merge to improve app quality and security

More software development shops are bringing together DevOps and IoT to deliver stronger, more secure and reliable IoT app quality.

Although DevOps is hot in the cloud space, it's still just catching on in the internet of things world, where devices rule and requirements for reliability, quality, security and safety are paramount.

DevOps is not focused on any particular technology or app quality, but certain challenges arise when DevOps and IoT intersect. IoT is typically a three-tier architecture, consisting of a device, gateway and platform. There are constrained devices or really small sensors with not much processing power that will connect to some sort of gateways -- also known as edge devices or smart devices -- that have more processing power, perhaps something like a Raspberry Pi, for example. The gateway aggregates information from the different sensors and controls them. It also tracks the network and sends information to an IoT platform running somewhere in the cloud.

That IoT architecture complicates things for DevOps -- particularly in deployment -- where IoT applications reside in the cloud as well as on sensors embedded in machines that exist outside the DevOps team's access or control, such as a consumer's smart refrigerator. Thus, DevOps principles -- like continuous integration and continuous delivery (CI/CD), as well as automated testing, deployment and telemetry -- are difficult, but not impossible, challenges to overcome across the IoT architecture.

Eclipse Foundation focus on IoT, DevOps

The Eclipse Foundation has 28 ongoing IoT projects and is working with a cross-section of software makers, hardware vendors, service providers and large end-user organizations to address many of the challenges of IoT, including DevOps. "Our vision is the industry needs a set of open source building blocks that developers will use to build solutions that span the IoT architecture," said Ian Skerrett, vice president of marketing at the Eclipse Foundation. "We need the equivalent of a LAMP stack for IoT, but not just on one tier. We need a stack of open source software for constrained devices, for gateways and for IoT cloud platforms."

Eclipse is building out three software stacks that developers need for each of the tiers, which will have relevance for DevOps, Skerrett said. Each stack will have specific requirements and functionality. For example, "On the cloud back end," he explained, "you'll need device management -- how to manage the thousands of devices out there, how to configure them remotely, how to turn them on, how to turn them off, how to update them, etc. Another thing the IoT platform does is takes in all the telemetry data that needs to be integrated into back-end systems."

Skerrett said open source is "incredibly important" to IoT. He cited the internet and its foundation on open standards and open source software, which lowered the barriers to entry so that anyone could participate. "Just as with the internet, for IoT to be successful, you want a wide ecosystem of different commercial vendors and user organizations -- hardware, software, services -- using technology that can grow and be taken in different directions," he said. "That's what open source provides."

Meanwhile, Skerrett noted that DevOps is helping with IoT on the cloud side. "The IoT platforms on the cloud are very similar to any cloud-oriented application," he said. "You want to be able to update functionality as quickly as possible, and you want to be transparent about it. What becomes a bit more complex in IoT is when you get out to the devices. Then you really have to be a bit more methodical about that. You certainly aren't doing continuous deployment out to devices. There needs to be more technology developed that enables that."

Bosch employs DevOps for IoT services

One Eclipse project, led by Bosch Software Innovations -- a large German industrial company with more than 400,000 employees -- is looking at how to deliver large-scale software updates to devices, which is a starting point for an automated DevOps approach for deployment to edge devices.

DevOps leads to better software and quick release cycles, said Karsten Frank, a senior software developer at Bosch who is responsible for the architecture and implementation of cloud-based microservices at the company. Bosch, like so many other organizations moving from large, monolithic systems, is shifting to microservices as part of a platform modernization effort. With microservices, development teams use separately deployable services to build distributed applications.

IoT is the classic and largest integration problem you've ever seen, because you're typically integrating things that were never intended to be used together.
Richard Soleychairman and CEO, Object Management Group

Overall, microservices enable app quality to be constructed out of individually crafted components that address specific processes and functions. They also allow developers to work on multiple parts of an application simultaneously without disrupting operations. Moreover, DevOps and container technologies align well with microservices to support rapid hybrid and cloud-native app development and testing cycles.

"We use DevOps for our Bosch IoT services because this definitely produces better software and it matches perfectly with our Agile software development model," Frank explained. "We can get very quick release cycles of the software. So, the software can be developed in a very quick way and pushed live into production."

Frank noted that in the classical, on-premises world, "You usually develop your software, and it will get into operation quite some time later. In the DevOps world, it's completely different. You push very quickly what you developed as a developer and then see immediately how well it runs and who is using it."

DevOps for cloud IoT

DevOps is typically used for building new applications for IoT cloud platforms, said Rhett Dillingham, senior analyst on cloud services at Moor Insights & Strategy. "With the DevOps approach achieved in cloud application development commonly being extended to the edge for IoT," Dillingham said, "cloud providers have raced to deliver services and tools easing cloud app quality and connectivity to edge devices for management, including application delivery and updating. Using these cloud services and tools to apply edge device updates coupled with instrumentation enables the feedback loop critical to getting full value from DevOps application iteration in IoT."

Gartner research director Thomas Murphy added that general thinking about DevOps and IoT involves DevOps and server-delivered functions. "You are pushing builds through a pipe that ends up deployed on the cloud," he said. "When you think of IoT, it is more of an embedded system development thought, though these systems may call services deployed in a cloud using CI/CD practices. However, if you put in that you need ways to automate testing across a wide set of devices, then a number of elements around DevOps can come into play," which currently has less of an effect on general IT development than it will in the future.

Semantic interoperability, DevOps and IoT

Meanwhile, Richard Soley, chairman and CEO of the Object Management Group and executive director of the Cloud Standards Customer Council and Industrial Internet Consortium, which focuses on advancing what it refers to as the industrial internet of things, said the consortium has built large IoT testbed projects to learn how to use IoT in various industries. Citing the challenge of semantic interoperability, Soley said, "IoT is the classic and largest integration problem you've ever seen, because you're typically integrating things that were never intended to be used together."

However, DevOps helps overcome the semantic interoperability problem, he added. "Most of the systems you've got to integrate are already running," Soley explained. "So you're doing development on systems that are currently operating. It's the classic DevOps problem of how you take that tight loop between development and operations results and go back and benefit development."

For his part, Charles King, principal analyst at Pund-IT, argued that on the DevOps side, IoT deployments are, by definition, end-to-end solutions that will add weight and complexity to a company's IT infrastructure, operations and management processes. "Companies with solid DevOps processes in place," King said, "should be better positioned to evaluate how well-proposed IoT solutions will fit within existing environments."

Next Steps

Making sense of semantic interoperability

IoT security and the Industrial Internet Consortium

The Eclipse Foundation on IoT

Dig Deeper on Agile, DevOps and software development methodologies