Which device is the best to learn about the Internet of Things? That is a question I am asked frequently.
Let me explain my perspective before answering that question.
In my opinion, the Internet of Things is not a “single device”. I think about the IoT as an ecosystem of various connected devices cooperating to achieve a business outcome.
Those devices are connected to diverse private and public networks and use various communication protocols.
I look at the Internet of Things from the end-to-end architecture perspective, not from the device perspective (probably due to my background in Solution Architecture roles instead of Embedded Development).
If you ask me, which device is the best to learn about the IoT, I respond Docker. Then you will push back that Docker is not a device, it is a containerization technology.
You will be right!
So why do I suggest Docker, when you ask about a device?
Using Docker you can create a “complete IoT environment” on your local laptop. You can simulate some very important real-life use cases, like:
- automated initial onboarding of IoT devices - the Docker image “simulates” static firmware, you can start multiple Docker containers from a single image to “simulate” multiple distinct Devices running on the same version of the firmware.
- how can you ensure a unique identity for every one of those devices?
- divide your system into Connected Devices, Edge Gateway, and Backend layers using network separation - this way you can “simulate” the Industrial Internet of Things system and test various approaches for every layer of that system, network configuration, governance etc.
- how can you remotely deploy firmware/software upgrades for devices at every layer in a secure way?
- test security of your system “pretending” that someone compromised one of your IoT Devices
- can you steal important data this way?
- can you influence the operations of other connected devices?
- can you access the backed system?
- how that security incident could be detected and mitigated?
That is my suggested approach to understanding and learning about the Internet of Things. I am aware that it might be a bit intimidating at the beginning - that is why I am working on various IoT training programs to assist you in this journey.
I am totally aware that we can “simulate” only some aspects of firmware using Docker. If you are interested in embedded development, probably you should use some real hardware to learn it.
Please remember, IoT is not a “single device”, that is a “living” ecosystem of multiple connected devices.