Skip to content

Commit 4dcdd22

Browse files
authored
Merge pull request #278767 from dominicbetts/iot-june-reviews
IoT: Fresness and engagement reviews
2 parents d039766 + 903f0f7 commit 4dcdd22

21 files changed

+385
-586
lines changed

articles/iot-central/.openpublishing.redirection.iot-central.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,8 +1372,13 @@
13721372
},
13731373
{
13741374
"source_path_from_root": "/articles/iot-central/core/concepts-scalability-availability.md",
1375-
"redirect_url": "/azure/iot-central/core/concepts-faq-scalability-availability",
1376-
"redirect_document_id": true
1375+
"redirect_url": "/azure/iot-central/core/concepts-architecture",
1376+
"redirect_document_id": false
1377+
},
1378+
{
1379+
"source_path_from_root": "/articles/iot-central/core/concepts-faq-scalability-availability.md",
1380+
"redirect_url": "/azure/iot-central/core/concepts-architecture",
1381+
"redirect_document_id": false
13771382
},
13781383
{
13791384
"source_path_from_root": "/articles/iot-central/preview/concepts-get-connected.md",
@@ -1434,6 +1439,11 @@
14341439
"source_path_from_root": "/articles/iot-central/core/concepts-iiot-architecture.md",
14351440
"redirect_url": "/azure/iot/concepts-iot-industrial-solution-architecture",
14361441
"redirect_document_id": false
1442+
},
1443+
{
1444+
"source_path_from_root": "/articles/iot-central/core/howto-upload-file-rest-api.md",
1445+
"redirect_url": "/azure/iot-central/core/howto-manage-iot-central-with-rest-api",
1446+
"redirect_document_id": false
14371447
}
14381448
]
14391449
}

articles/iot-central/TOC.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,6 @@
102102
href: core/overview-iot-central-security.md
103103
- name: Network security using private endpoints
104104
href: core/concepts-private-endpoints.md
105-
- name: How does IoT Central scale and enable HADR?
106-
href: core/concepts-faq-scalability-availability.md
107105
- name: What are IoT Central's scale limits?
108106
href: core/concepts-quotas-limits.md
109107

@@ -198,9 +196,6 @@
198196
href: core/howto-manage-jobs-with-rest-api.md
199197
- name: Manage applications
200198
href: core/howto-manage-iot-central-with-rest-api.md
201-
- name: File upload
202-
href: core/howto-upload-file-rest-api.md
203-
204199

205200
- name: Secure and administer your application
206201
items:

articles/iot-central/core/concepts-architecture.md

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure IoT Central solution architecture
33
description: This article introduces key IoT Central architectural concepts such as device management, security, integration, and extensibility.
44
author: dominicbetts
55
ms.author: dobett
6-
ms.date: 03/04/2024
6+
ms.date: 06/13/2024
77
ms.topic: conceptual
88
ms.service: iot-central
99
services: iot-central
@@ -100,6 +100,46 @@ You might need to [transform or do computations](howto-transform-data.md) on you
100100

101101
Build integrations that let other applications and services manage your application. For example, programmatically [manage the devices](howto-control-devices-with-rest-api.md) in your application or synchronize [user information](howto-manage-users-roles-with-rest-api.md) with an external system.
102102

103-
## Next steps
103+
## Scalability
104104

105-
Now that you've learned about the architecture of Azure IoT Central, the suggested next step is to learn about [device connectivity](overview-iot-central-developer.md) in Azure IoT Central.
105+
IoT Central applications internally use multiple Azure services such as IoT Hub and the Device Provisioning Service (DPS). Many of these underlying services are multi-tenanted. However, to ensure the full isolation of customer data, IoT Central uses single-tenant IoT hubs.
106+
107+
IoT Central automatically scales its IoT hubs based on the load profiles in your application. IoT Central can scale up individual IoT hubs and scale out the number of IoT hubs in an application. IoT Central also automatically scales other underlying services.
108+
109+
### Data export
110+
111+
IoT Central applications often use other, user configured services. For example, you can configure your IoT Central application to continuously export data to services such as Azure Event Hubs and Azure Blob Storage.
112+
113+
If a configured data export can't write to its destination, IoT Central tries to retransmit the data for up to 15 minutes, after which IoT Central marks the destination as failed. Failed destinations are periodically checked to verify if they're writable.
114+
115+
You can force IoT Central to restart the failed exports by disabling and re-enabling the data export.
116+
117+
Review the high availability and scalability best practices for the data export destination service you're using:
118+
119+
- Azure Blob Storage: [Azure Storage redundancy](../../storage/common/storage-redundancy.md) and [Performance and scalability checklist for Blob storage](../../storage/blobs/storage-performance-checklist.md)
120+
- Azure Event Hubs: [Availability and consistency in Event Hubs](../../event-hubs/event-hubs-availability-and-consistency.md) and [Scaling with Event Hubs](../../event-hubs/event-hubs-scalability.md)
121+
- Azure Service Bus: [Best practices for insulating applications against Service Bus outages and disasters](../../service-bus-messaging/service-bus-outages-disasters.md) and [Automatically update messaging units of an Azure Service Bus namespace](../../service-bus-messaging/automate-update-messaging-units.md)
122+
123+
## High availability and disaster recovery
124+
125+
HADR capabilities depend on when you created your IoT Central application:
126+
127+
### Applications created before April 2021
128+
129+
Some applications created before April 2021 use a single IoT hub. For these applications, IoT Central doesn't provide HADR capabilities. If the IoT hub becomes unavailable, the application becomes unavailable.
130+
131+
Use the `az iot central device manual-failover` command to check if your application still uses a single IoT hub. This command returns an error if the application has a single IoT hub.
132+
133+
### Applications created after April 2021 and before April 2023
134+
135+
For highly available device connectivity, an IoT Central application always has at least two IoT hubs. The number of hubs can grow or shrink as IoT Central scales the application in response to changes in the load profile.
136+
137+
IoT Central also uses [availability zones](../../availability-zones/az-overview.md#availability-zones) to make various services it uses highly available.
138+
139+
An incident that requires disaster recovery could range from a subset of services becoming unavailable to a whole region becoming unavailable. IoT Central follows different recovery processes depending on the nature and scale of the incident. For example, if an entire Azure region becomes unavailable in the wake of a catastrophic failure, disaster recovery procedures failover applications to another region in the same geography.
140+
141+
### Applications created after April 2023
142+
143+
IoT Central applications created after April 2023 initially have a single IoT hub. If the IoT hub becomes unavailable, the application becomes unavailable. However, IoT Central automatically scales the application and adds a new IoT hub for each 10,000 connected devices. If you require multiple IoT hubs for applications with fewer than 10,000 devices, submit a request to [IoT Central customer support](../../iot/iot-support-help.md?toc=%2Fazure%2Fiot-central%2Ftoc.json&bc=%2Fazure%2Fiot-central%2Fbreadcrumb%2Ftoc.json).
144+
145+
Use the `az iot central device manual-failover` command to check if your application currently uses a single IoT hub. This command returns an error if the application currently has a single IoT hub.

articles/iot-central/core/concepts-device-implementation.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,17 @@ To learn more about message properties, see [System Properties of device-to-clou
109109

110110
## Best practices
111111

112-
These recommendations show how to implement devices to take advantage of the [built-in high availability, disaster recovery, and automatic scaling](concepts-faq-scalability-availability.md) in IoT Central.
112+
These recommendations show how to implement devices to take advantage of the built-in high availability, disaster recovery, and automatic scaling in IoT Central.
113+
114+
### Device provisioning
115+
116+
As the number of IoT hubs in your application changes, a device might need to connect to a different hub.
117+
118+
Before a device connects to IoT Central, it must be registered and provisioned in the underlying services. When you add a device to an IoT Central application, IoT Central adds an entry to a DPS enrollment group. Information from the enrollment group such as the ID scope, device ID, and keys is surfaced in the IoT Central UI.
119+
120+
When a device first connects to your IoT Central application, DPS provisions the device in one of the enrollments group's linked IoT hubs. The device is then associated with that IoT hub. DPS uses an allocation policy to load balance the provisioning across the IoT hubs in the application. This process makes sure each IoT hub has a similar number of provisioned devices.
121+
122+
To learn more about registration and provisioning in IoT Central, see [IoT Central device connectivity guide](overview-iot-central-developer.md#how-devices-connect).
113123

114124
### Handle connection failures
115125

@@ -130,6 +140,8 @@ To learn more about device error codes, see [Troubleshooting device connections]
130140

131141
To learn more about implementing automatic reconnections, see [Manage device reconnections to create resilient applications](../../iot/concepts-manage-device-reconnections.md).
132142

143+
Currently, IoT Edge devices can't move between IoT hubs.
144+
133145
### Test failover capabilities
134146

135147
The Azure CLI lets you test the failover capabilities of your device code. The CLI command works by temporarily switching a device registration to a different internal IoT hub. To verify the device failover worked, check that the device still sends telemetry and responds to commands.

articles/iot-central/core/concepts-faq-scalability-availability.md

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)