Useful services to build IoT architecture in Azure

This post is a part of course From beginner to expert in IoT, so if you’re interested, more information you will find inside the link.

Today, some useful services in Azure that I’m using when I need to utilize enormous amounts of data and messages. All of these Azure services are scalable to meet the requirements of IoT solutions and process peaks of data in almost real-time without latency.


IoT Hub

IoT Hub is a gateway between devices and Azure services. Provide two-way communication. Incoming – Device to Cloud messages (D2C) when we’re sending telemetry data to the cloud. Outgoing – Cloud to Device messages (C2D) which call direct methods on a device with the certain response, such as restart. Notifications in fire and forget way and twins to get information about the device.


  • Support AMQP, MQTT, and HTTPS protocols
  • Provide secure registration a device with Azure IoT Hub Device Provisioning
  • Easy connection with other Azure services, such as IoT Edge, Machine Learning or Azure Functions
  • Store incoming messages
  • To 10 endpoints per IoT Hub


Event Hub

Event Hub provides streaming millions of messages around services to process them in real-time via AMQP protocol. Is useful when you need to create a system that streaming data through Stream Analytics or with the application. It can target different Stream Analytics by creating partitions in event hub and process data in parallel or store these messages in Cosmos DB.


  • Low latency
  • Easy connection with native client libraries via AMQP
  • Scalability
  • SDK for many platforms and languages including Java or NodeJS
  • Aggregate messages from various sources
  • Low cost


IoT Edge

IoT Edge works as a gateway between devices and IoT Hub and allows to aggregate many devices at this same time.


  • Process data ad hoc to give basic insights in real-time
  • Downgrade amount of sending messages to the cloud and lower costs
  • Working offline or with limited access to the Internet
  • Providing AI capabilities for devices


Cosmos DB

Cosmos DB is a distributed NoSQL database with low latency to handle petabytes of data in a scalable manner.


  • Support different DB models, such as tables, documents, graphs, blobs
  • Can be accessed via APIs – Azure Table, SQL, MongoDB, Gremlin
  • Support many platforms and languages – .NET, Java, NodeJS or Python
  • Allow creating multi-master replication database


Stream Analytics

Stream Analytics is a powerful service that provides real-time use of streamed results to finding insights.


  • Compatible with many streamed data, from applications to IoT devices
  • Processing a large volume of data in real-time
  • Easy connection with Event Hub, IoT Hub or Machine Learning and many other services
  • Use language similar to SQL
  • Scalability


Data Factory

Data Factory is also known as data pipelines, because helps in creating, deploying, scheduling, monitoring data. Works on a snapshot of data that is already available in the database and it’s main difference between stream analytics which works on real-time data.


  • Scalability
  • Support MongoDB, Cassandra, Oracle, SAP or Amazon S3
  • Support many platforms and languages
  • Allow building hybrid solutions for data integration between cloud and on-premises


Machine Learning Studio

Machine Learning Studio works in drag and drops way and offer a simplified approach to use machine learning in a fast and robust way. Build-In algorithms and examples allow predicting what will happen without needing enormous knowledge.


  • Scalability
  • Support R and Python
  • Many data sources – Azure Table, Azure Blob Storage or Hadoop
  • Support visualization of data with histograms, bar charts or box plots


Azure Functions

Azure Functions is a serverless approach to deploy own code into cloud infrastructure without the need to be responsible for setup. It takes responsibility for scaling up and down by executing code and based on our certain events.


  • Unlimited scalability
  • On-demand execution
  • Many triggers
  • Secured
  • Support many languages
  • Provide a mechanism for monitoring, logging, and auditing
  • Parallelism
  • Allow running long running activities
  • Fault-tolerant

Piotr Czech

I am software developer, blogger, mentor, geek, startupper, team leader. I started writing code when I was about 15 years old, creating my first program in C++. I believe that everything can be fixed or changed, by just keep doing small steps each day.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.