Skip to content

Commit fef3b66

Browse files
committed
Add deployment examples
1 parent 0c827bc commit fef3b66

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
title: Production deployment examples
3+
description: Describes some example deployments to help you understand how to scale your solution.
4+
author: dominicbetts
5+
ms.author: dobett
6+
ms.topic: concept-article
7+
ms.date: 12/16/2024
8+
ms.service: azure-iot-operations
9+
10+
#CustomerIntent: I want to see some scaling recommendations before I before deploying to production.
11+
---
12+
13+
# Production deployment examples
14+
15+
This article describes two example Azure IoT Operations deployments that collect data from edge and transfer it to the cloud. These examples are based on real-world scenarios that take hardware capability and data volumes into consideration. Use these examples to better understand how much data Azure IoT Operations can handle with certain hardware.
16+
17+
Microsoft used similar configurations and data volumes to validate Azure IoT Operations and measure its performance.
18+
19+
## Single node cluster
20+
21+
This example shows the capabilities of Azure IoT Operations when it runs on a host with relatively low hardware specification. In this example, Azure IoT Operations is deployed to a single node cluster. Data generated from assets is first aggregated with a PLC, and then sent to the Azure IoT Operations OPC UA connector.
22+
23+
### Configuration
24+
25+
Example hardware specifications:
26+
27+
- K3s on Azure VM (Standard_D4ds_v5 with Intel Xeon Platinum 8370C), 4 core (4 vCPU), 16-GB memory, 30-GB storage.
28+
29+
- AKS-EE on P3 Tiny Workstation (13th Generation Intel® Core™ i7-13700 vPro® Processor), 16 core (24 threads), 32-GB memory, 1-TB storage.
30+
31+
The following table shows the MQTT broker configuration for the single node example:
32+
33+
| Parameter | Value |
34+
|--------------------------|-------|
35+
| frontendReplicas | 1 |
36+
| frontendWorkers | 1 |
37+
| backendRedundancyFactor | 1 |
38+
| backendWorkers | 1 |
39+
| backendPartitions | 1 |
40+
| memoryProfile | low |
41+
42+
The end-to-end data flow in the example looks like this:
43+
44+
`Assets -> PLC -> OPC UA connector -> MQTT broker -> Dataflows -> Event Hubs`
45+
46+
The data volumes in the example are:
47+
48+
- 125 assets aggregated by a single OPC UA server.
49+
- 6,250 tags based on 50 tags for each asset. Each tag updates 2/second and has an average size of 20 bytes.
50+
- The OPC UA connector sends 125 message/second to the MQTT broker.
51+
- One data flow pipeline pushes 6,250 tags to an Event Hubs endpoint.
52+
53+
In this example, Microsoft recommends using Event Hubs because you can only create one dataflow instance with a 4-core CPU. If you choose Event Grid, it can only handle 100 messages/sec.
54+
55+
### Performance
56+
57+
Key performance metrics for this example include:
58+
59+
- Azure IoT Operations and its dependencies consume between 6 GB and 8-GB RAM.
60+
- Azure IoT Operations and its dependencies consume on average 2,400-2,600 millicores.
61+
- 100% of the data is pushed to Event Hubs.
62+
- End-to-end data process latency is less than 10 seconds given ideal network conditions.
63+
64+
## Multi-node cluster
65+
66+
When Azure IoT Operations runs on a multi-node cluster, it can process more data and take advantage of the high-availability capabilities of Kubernetes. In this example, Azure IoT Operations is hosted on a 5-node cluster and processes approximately 50,000 data points per second from two different data sources.
67+
68+
### Configuration
69+
70+
Example hardware specifications:
71+
72+
- 5-node K3s with Azure VMs (Standard_D8d_v5 with Intel Xeon Platinum 8370C), 8 core (8 vCPU), 32-GB memory, 30 GB.
73+
- 5-node K3S with P3 Tiny Workstations (13th Generation Intel® Core™ i7-13700 vPro® Processor), 16 core (24 threads), 32-GB memory, 1-TB storage.
74+
75+
The following table shows the MQTT broker configuration for the multi-node example:
76+
77+
| Parameter | Value |
78+
|--------------------------|-------|
79+
| frontendReplicas | 5 |
80+
| frontendWorkers | 8 |
81+
| backendRedundancyFactor | 2 |
82+
| backendWorkers | 4 |
83+
| backendPartitions | 5 |
84+
| memoryProfile | High |
85+
86+
In this example, there are two types of data source. One connects through the OPC UA connector, and one connects through the MQTT broker.
87+
88+
In this example, an asset doesn't represent a real piece of equipment, but is a logical grouping that aggregates data points and sends messages.
89+
90+
The first end-to-end data flow in the example looks like this:
91+
92+
`Assets -> PLC -> OPC UA connector -> MQTT broker -> Dataflows -> Event Hubs`
93+
94+
The data volumes in the first data flow in the example are:
95+
96+
- 85 assets, aggregated by five OPC UA servers.
97+
- 85,000 tags based on 1,000 tags for each asset. Each tag updates 1/second and has an average size of 8 bytes. Approximately 50% of the tag values change each cycle. The data point update rate is 45,000/second.
98+
- The OPC UA connector sends 85 message/second to the MQTT broker.
99+
- One data flow pipeline pushes 85,000 tags to an Event Hubs endpoint.
100+
101+
The second end-to-end data flow in the example looks like this:
102+
103+
`MQTT client (Paho) -> MQTT Broker -> Dataflows -> Event Hubs`
104+
105+
The data volumes in the second data flow in the example are:
106+
107+
- Two MQTT clients connected directly to MQTT broker.
108+
- Each client publishes 10,000 values/second.
109+
- Approximately 1/3 of the tag values change each cycle.
110+
- Encoded with JSON format. Each item (value) with an approximate size of 180 bytes.
111+
112+
### Performance
113+
114+
Key performance metrics for this example include:
115+
116+
- Azure IoT Operations and its dependencies consume between 25 GB and 30 GB RAM.
117+
- Azure IoT Operations and its dependencies consume on average 2,500-3,000 millicores.
118+
- 100% of the data is pushed to Event Hubs.
119+
- End-to-end data process latency is less than 10 seconds given ideal network conditions.

articles/iot-operations/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ items:
2929
href: deploy-iot-ops/howto-enable-secure-settings.md
3030
- name: Production deployment guidelines
3131
href: deploy-iot-ops/concept-production-guidelines.md
32+
- name: Production deployment examples
33+
href: deploy-iot-ops/concept-production-examples.md
3234
- name: Secure your deployment
3335
items:
3436
- name: Certificate management

0 commit comments

Comments
 (0)