While the DevOps automation of the software components on cloud are more or less similar to usual deployments, there are a few aspects to consider in the context of IoT, Vinothini Raju, Founder and CEO at Bluemeric Inc., explains.
Self-driving cars, connected homes, automated manufacturing controllers and smart cities are beckoning smart management of distributed devices and their ecosystem. Be it a consumer device or an industrial manufacturing robot, every single device needs to be managed, updated and mined.
An IoT ecosystem comprises of devices and firmware, telematic data and analytics, network and security. As more and more devices get added, scale and distributed nature of the IoT ecosystem makes the management and maintenance more complex.
A typical deployment architecture has distributed set of devices that connect to the cloud via IoT gateway. All leading cloud providers like AWS, Azure and Google provide IoT gateway SDKs to connect to the cloud resources.
Unless an IoT PaaS platform like Azure IoT Suite is used, custom software components to connect and analyse data needs to be developed, tested and deployed on cloud.
Deployment architecture and distributed configuration management
Overall architecture and the distributed nature of the devices and software components form the fundamentals of framing a DevOps strategy. The configuration model should consider the sequence of deployments and the dependencies between the hardware/software components.
Zero touch provisioning and bootstrapping the devices
When a device is switched on for the first time, the auto-install feature of a firmware or a network boot can automatically install and bootstrap the Chef or Puppet base deployment agents. These deployment agents can then download the required RPMs/packages and configures the devices. The choice of deployment agent should consider the RAM consumption of both the agent and dependent packages to be installed on the device.
Security is a major consideration for IoT deployments, as any malicious software can intrude the updates on the devices. The IoT gateway can act as a secure gateway to authenticate the connections between the deployment agent and the Chef/Puppet master.
Massive scale and single click upgrades
A combination of Chef roles and runlists, or Puppet MCollective can help in identifying the participating devices and on-demand updates on a select set of devices.
Simulators for dev and test
Device simulators can be used for dev and test. Chef/Puppet environments can be used as a mechanism to define the continuous integration workflows.
Backward compatibility issues between the devices and software components can break an application. Blue-green deployments can help by routing the request/response based on the application/firmware version.