Prerequisite Knowledge
Before you understand the Azure IoT (Internet of Things), I recommend you should have:
- Basic knowledge of cloud computing
- Basic knowledge of Microsoft Azure and pillars of Azure cloud
- Basic knowledge of IoT, Microsoft Azure IoT
Background
In my previous article, we have seen an overview of the Internet of Things (IoT) and what is Microsoft IoT. If you have not, then have look at
another article.
In this article, I would like to explain the Microsoft Azure architecture.
Azure IoT Architecture
Azure IoT applications are based on TIA,
- Things - which are devices which send data
- Insights - to generate the meaningful data which is useful for business needs
- Actions – Activities to improve the business based on the data output generated from insights
Before, we looked in to detailed architecture, so let's understand some terminology,
- Azure IoT Central
It is fully managed Software as a Service (SaaS). This is an out-of-the-box solution to focus on the business needs. If we need a more customized solution, then we need to create Platform as a Solution (PaaS).
- Hot Path
Once data is gathered from the devices to generate more insights then it can fall into two categories – Hot Path and Cold Path.
Hot path analyzes the data instantly in real time. Such type of processing is usually done by using stream analytics. Then, output can be passed further to analytics reporting tools.
- Cold Path
Performs batch processing at longer intervals (hourly or daily). It is needed when we have a large volume of data to be processed.
Now, I will explain the architecture at a high level with the help of reference architecture which is published in Microsoft docs below,
This is well proven architecture for our reference. Based on our requirements we need to utilize this component.
IoT Devices
These are the devices and registered to the cloud to send/receive the data. This device can be an edge device meaning some data can be processed on the device itself. For edge processing we can use the ‘Azure IoT Edge’ technique.
Bulk Device Provisioning
IoT Hub Device Provision Service is to be used when we needed to large set of devices to be registered to the cloud to send and receive the data.
Cloud Gateway
It is a bridge between the devices (things) and the cloud backend services. It handles the action to connect the device to the cloud securely. It also provides device management, capabilities, including command and control of devices. IoT Hub is the best choice for cloud gateway since it takes care about secure connectivity, event ingestion, bidirectional communication, and device management.
Stream Processing
It analyzes the large volumes of data received from devices through the cloud gateway. Microsoft recommends using the Azure Stream Analytics or Apache Spark on Azure Databricks. Azure stream analytics executes complex analysis at scale, using time windowing functions, stream aggregations, and external data source joins.
Data Transformation
It is an important stage if we do not have meaningful data received from device. Azure Functions will be a good choice here because it has built-in integration with IoT Hub, Cosmos DB, and Blob Storage.
Warm Path Storage
In warm path, data will be processed and make it available for analytics instantly. We can use highly available and scalable Cosmos DB for such cases.
Cold Path Storage
Large volumes of data will be processed in batches recurrently and not instantly. Azure BLOB storage will be the best option for such cases.
Business process integration
It is important connect the services together between the data and reporting tools or Office 365 tools etc. Microsoft recommends using the Azure logic app for business process integration since it has built in connectors to different Azure services with no code solutions.
User management
Azure active directory will be a good choice for user identity management and has tight integration with Azure services.
Conclusion
In this article we have learned an overview of Azure IoT architecture. In the next article we will see more about Azure IoT Hub. Stay tuned!