In our last post on how DevOps drives business in PES, we briefly touched on the key differences between DevOps for connected devices and DevOps for pure play IT. It was shown that when it comes to product engineering, the physical component and existing legacy systems add an extra layer of complexity to the overall automation process.
In this post, we will elaborate further on the key differences between DevOps in IoT companies and pure-play IT, as well as the specific challenges that teams working in IoT and connected devices are trying to address to achieve a smooth transition to DevOps methodology.
A company operating in the IoT space, more often than not, recruits teams with diverse skillsets and operations, given the vast variety of hardware and software that they have to deal with. Such a diversity usually leads to the creation of multiple small teams and a very fragmented development pipeline, with each team working in phases.
To introduce and leverage DevOps tools and methodology to such a team, there is further need for aspects like culture, team synergy, and processes that need to be addressed on a case-by-case basis.
Conversely, a company that is purely IT focused, has the advantage of a lean development production line along with streamlined processes and a culture conducive to ensuring smooth DevOps adoption.
In any IoT environment, the set of endpoints changes fast when compared to a software or a cloud-based company.
When talking about software-based companies, while the OS and the screen might change, the delivery of the product is still limited to a handful of devices such as mobiles, TV, or tablets.
In an IoT company, on the other hand, the product pipeline varies substantially. With not only different types of devices but different generations of each such device and varied interfaces, the challenges faced by an IoT company when setting up a DevOps system is bigger than what is imagined.
At any given time, a company dealing with millions of live devices and multiple virtualized test environments need to be able to deploy successfully across a variety of devices. The DevOps methodology, when applied to IoT, needs to take into account the various endpoints to be able to set up a befitting BVT (build, verification, test) plan.
When talking about automation, the biggest difference between an IT and an IoT company lies in WHAT has to be automated. In an IT company, the automation has more to do with processes where continuous delivery is achieved through automating the software and creating a BVT process or what in DevOps is known as Infrastructure as Code (IaC).
In an IoT company, however, it isn’t just the software that needs automation but the entire production environment. In order to achieve test delivery in time, the entire environment needs to be virtualized and automation has to be executed with simulation and physical devices. In order to automate the workflow in an IoT company, there is a need to move from Infrastructure to Environment as code.
Cloud-based companies like Uber or Netflix have reduced dependence on legacy systems. For them, DevOps, thus, is a fairly straightforward affair.
For a company without cloud legacy, however, DevOps has a far-reaching impact since there is continued dependence on legacy systems. The legacy products that cannot be cut off for a few years to come. Those clubbed with the cloud create the need to manage, update, and maintain existing as well as newly added devices. While this does naturally increase the complexity when introducing DevOps in the mix, it also makes all the difference when DevOps practices are implemented correctly.
In a pure play IT company, software can be released and distributed as often as needed and across as many platforms at any given time.
In IoT, on the other hand, the large number of components involved in both the cloud and the physical realm have very different release cycles, thus making a unified release plan a huge challenge.
There is no one-size-fits-all solution for DevOps environments. Every company has its own unique set of hurdles to overcome depending on its culture, legacy, and devices. We can talk about the same technology where DevOps in PES is concerned, but what makes the real difference is how we can fit the tool to a specific environment.