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 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 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
- SDK for many platforms and languages including Java or NodeJS
- Aggregate messages from various sources
- Low cost
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 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 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
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.
- 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.
- 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 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
- Support many languages
- Provide a mechanism for monitoring, logging, and auditing
- Allow running long running activities