Now, imagine that we want to scale our HomeAutomation solution.
For example, we need to design a SmartBuilding solution, a solution for a large building, like a Hotel or a large building containing hundreds of offices.
We want a solution that enable us to:
- Monitor the temperature in each room, to implement a smart control of heating and cooling and enable us to reduce the energy consumption;
- Monitor the air quality in each room;
- Manage a set of sensors in each room (fire, …);
- Manage the lights in each room remotely (for example, if no-one is inside, turn-off the lights);
- …..
This is what I would call a medium scale IoT solution.
We can decide to adopt a four layers architecture:
- Devices;
- Floor Gateway
- IoT HuB
- Enterprise Application
Now, the question I want to work on is: how do you design and build what I have called the IoT HUB?
First, the most important decision: do you want to adopt a Cloud Platform or build on-premises? (Well, there is a third option: an hybrid solution, but for now let’s limit to the first two).
In a future blog post I’ll examine how to build it using a Cloud Provider. But now I want to discuss how to build it in your Data Center.
First of all, let’s recap what kind of capabilities you need:
- A Messaging backbone (Message Broker), to receive all messages coming from devices and to implement the publish-subscribe pattern;
- A Device State (or Shadow) component, to store the latest state and messages from devices;
- A Message Store, to store persistently all the message received from devices (with some retention period set);
- A Device Registry;
- A Monitoring Dashboard
- ….
In my Home Automation previous blog posts, these are all Building Blocks hosted in my Raspberry PI, since it is enough for a House.
But for our Smart Building solution we need:
- To scale-up the solution, to have enough computing power;
- Clusterize, to give High Availability, in case one component fails;
The design idea I’m going to explore here and in (hope to have enough time) next blog’s posts is to “Containerize your IoT”.
In other words: the adoption a Containerization technology (here: Docker) so that each one of the Building Blocks (see list of capabilities above) I have mentioned here maps to a Container, following the “Micro-Services” Architecture Paradigm.
No comments:
Post a Comment