This blog is part of IoT Series, where I am trying to build few IoT devices that push events to Azure EventHub. From the EventHub, Azure Stream Analytics will execute my query to calculate average values for each individual device and publish these average values to Azure ServiceBus. From Azure ServiceBus, I am going to read the average values in Azure Functions Apps and save them into Azure Redis Cache. My Azure Website will poll this Redis Cache and displays the average values.
High description of Azure services used in this project :
Azure EventHub : allows us to push huge number of events from large number of different clients (IoT devices) with low latency and high reliability.
Example: thousands of thermosets sending temperature readings every second.
For more details on EventHub, please click here for quick tutorial.
Azure Stream Analytics : allows us to execute real-time analytics queries on huge amount of data streams.
Example: we want to know average temperature per room in last 5 min.
For more details on Stream Analytics, please click here for quick tutorial.
Azure ServiceBus : allows us to send messages between disconnected components. These components does not have to be online at the same time and read/send messages at the same time.
Example : average temperature is calculated by Steam Analytics and it pushes results to ServiceBus. A website can come online later time and read these results to display it to end-user.
For more details on ServiceBus, please click here for quick tutorial.
Azure Functions App : allows us to execute code on multiple instances and scale instances based on the load.
Example : if we are getting huge number of events saying average temperature is too high, we can execute the notification code from multiple instances
For more details on Function Apps, please click here for quick tutorial
Here are list of blog posts in this series:
- Azure IoT
- Azure EventHub–sending IoT device events to EventHub
- Azure ServiceBus Queue–reading query results from Stream Analytics
- Azure Stream Analytics–reading events from EventHub, running query and saving results to ServiceBus
- Azure Function Apps – reading events from ServiceBus and writing to Redis Cache