At the moment, a majority of IoT applications are depending on cloud services which increase deployment costs and affect response time. To address these, edge and fog computing are becoming important as data analysis occurs closer to the device than a central cloud.
However, a big problem with edge devices is that they may lack their own computing resources to run IoT operations independently.
If you thought that edge devices are intelligent like smart TVs or smartphones, that’s not always the case. In reality, many of them are sensors on Raspberry Pi, micro-controllers, asset trackers or IoT gateways like firewalls and modems.
With a growing number of connected devices, it is not easy to manage data at virtual edge nodes from a hypervisor. For instance, you cannot send push updates because these devices may drop out if they are on low power networks such as LoRaWAN.
Moreover, edge layer devices are also heterogeneous in terms of hardware, languages, networks and operating systems. This makes it all the more difficult to manage them remotely.
In recent years IoT “containers” and “microservices” have been providing solutions to edge device challenges by using self-sufficient user spaces.
What Are IoT Containers?
IoT containers are extremely lightweight, self-sufficient software that can be securely deployed at a target platform in the edge. A “container” approach allows for the transfer of the entire run-time environment – code, dependencies, libraries and system tools.
The data transfer between cloud and edge nodes happens using either run-time or image specifications. Furthermore, the images are extremely small, which allows for quick and easy transfer across IoT devices.
As an IoT admin, you only have to send an image to the edge device (such as over LoRaWAN). After that you can remotely perform patch updates, software upgrades and rollbacks.
What Are IoT Microservices?
The microservices architecture is an idea borrowed from software engineering. In this, a small edit in code for one service does not affect the remaining software. Popular websites like Amazon, Twitter, Facebook and PayPal use a microservices environment.
IoT microservices contain everything to run an edge application – operating systems, runtime, libraries and dependencies. These are a step above IoT containers because apart from behaving as a runtime environment or an open stack image, they can also run as virtual machines.
In IoT networks, containers are useful as building blocks of a microservice instance. The only objective is that the entire IoT network must become resistant to any edge device failure.
Applications of IoT Containers/Microservices
Containers and microservices are fast becoming the mainstay of IoT deployments because they perform so many duties:
- Managing devices: Thinking of adding or removing IP cameras in the network? With a container deployment, you’ve got it covered!
- Managing diverse protocols: Do some of your devices use LoRaWAN and the others use SigFox? Each one of your smart devices on the edge can have their own containers.
- Storing data locally: Given that the edge devices are not intelligent, a storage container can take care of local data access.
- Remote Failures: Are the edge devices on the brink of failure? With microservices, you can patch them remotely and not have to worry about other devices.
- Sending Cloud Updates: Containers and microservices are cost-effective in sending updates to a central cloud.
There is no doubt that IoT containers borrow the concept of using virtual machines (VMs) from traditional networking.
Except, in this case, it does not make sense for edge device data to travel back and forth. As we can appreciate in a given example of autonomous vehicles and planes, some data decisions cannot wait if you have to prevent accidents.
Containers and microservices represent the future of IoT in more ways than one. Just as the service-oriented architecture (SOA) revolutionized the web, we are seeing similar patterns in IoT.