Skip to content

Commit 5972d26

Browse files
authored
Merge pull request #209061 from JimacoMS4/change-multiteneant-topic-to-geolatency-dps
Change multitenancy topic to geolatency
2 parents 5c12ce2 + 2f98bc6 commit 5972d26

8 files changed

+26
-31
lines changed

articles/iot-dps/how-to-legacy-device-symm-key.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ If you can easily install a [hardware security module (HSM)](concepts-service.md
2020

2121
This tutorial also assumes that the device update takes place in a secure environment to prevent unauthorized access to the master group key or the derived device key.
2222

23-
This tutorial is oriented toward a Windows-based workstation. However, you can perform the procedures on Linux. For a Linux example, see [How to provision for multitenancy](how-to-provision-multitenant.md).
23+
This tutorial is oriented toward a Windows-based workstation. However, you can perform the procedures on Linux. For a Linux example, see [Tutorial: Provision for geolatency](how-to-provision-multitenant.md).
2424

2525
> [!NOTE]
2626
> The sample used in this tutorial is written in C. There is also a [C# device provisioning symmetric key sample](https://github.com/Azure-Samples/azure-iot-samples-csharp/tree/main/provisioning/Samples/device/SymmetricKeySample) available. To use this sample, download or clone the [azure-iot-samples-csharp](https://github.com/Azure-Samples/azure-iot-samples-csharp) repository and follow the in-line instructions in the sample code. You can follow the instructions in this tutorial to create a symmetric key enrollment group using the portal and to find the ID Scope and enrollment group primary and secondary keys needed to run the sample. You can also create individual enrollments using the sample.

articles/iot-dps/how-to-provision-multitenant.md

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,28 @@
11
---
2-
title: Tutorial - Provision devices for multitenancy in Azure IoT Hub Device Provisioning Service
3-
description: This tutorial shows how to provision devices for multitenancy with your Device Provisioning Service (DPS) instance
2+
title: Tutorial - Provision devices for geolatency in Azure IoT Hub Device Provisioning Service
3+
description: This tutorial shows how to provision devices for geolocation/geolatency with your Device Provisioning Service (DPS) instance
44
author: kgremban
55
ms.author: kgremban
66
ms.topic: tutorial
7-
ms.date: 08/19/2022
7+
ms.date: 08/24/2022
88
ms.service: iot-dps
99
services: iot-dps
1010
---
1111

12-
# Tutorial: Provision for multitenancy
12+
# Tutorial: Provision for geolatency
1313

14-
This tutorial shows how to securely provision multiple simulated symmetric key devices to a group of IoT Hubs using an [allocation policy](concepts-service.md#allocation-policy). Allocation policies that are defined by the provisioning service support a variety of allocation scenarios. Two common scenarios are:
14+
This tutorial shows how to securely provision multiple simulated symmetric key devices to a group of IoT Hubs using an [allocation policy](concepts-service.md#allocation-policy). IoT Hub Device Provisioning Service (DPS) supports a variety of allocation scenarios through its built-in allocation policies and its support for custom allocation policies.
1515

16-
* **Geolocation / GeoLatency**: As a device moves between locations, network latency is improved by having the device provisioned to the IoT hub that's closest to each location. In this scenario, a group of IoT hubs, which span across regions, are selected for enrollments. The **Lowest latency** allocation policy is selected for these enrollments. This policy causes the Device Provisioning Service to evaluate device latency and determine the closet IoT hub out of the group of IoT hubs.
16+
Provisioning for **Geolocation/ GeoLatency** is a common allocation scenario. As a device moves between locations, network latency is improved by having the device provisioned to the IoT hub that's closest to each location. In this scenario, a group of IoT hubs, which span across regions, are selected for enrollments. The built-in **Lowest latency** allocation policy is selected for these enrollments. This policy causes the Device Provisioning Service to evaluate device latency and determine the closet IoT hub out of the group of IoT hubs.
1717

18-
* **Multi-tenancy**: Devices used within an IoT solution may need to be assigned to a specific IoT hub or group of IoT hubs. The solution may require all devices for a particular tenant to communicate with a specific group of IoT hubs. In some cases, a tenant may own IoT hubs and require devices to be assigned to their IoT hubs.
19-
20-
It's common to combine these two scenarios. For example, a multitenant IoT solution commonly assigns tenant devices using a group of IoT hubs that are scattered across different regions. These tenant devices can be assigned to the IoT hub in the group that has the lowest latency based on geographic location.
21-
22-
This tutorial uses a simulated device sample from the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c) to demonstrate how to provision devices in a multitenant scenario across regions. You will perform the following steps in this tutorial:
18+
This tutorial uses a simulated device sample from the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c) to demonstrate how to provision devices across regions. You'll perform the following steps in this tutorial:
2319

2420
> [!div class="checklist"]
2521
> * Use the Azure CLI to create two regional IoT hubs (**West US 2** and **East US**)
26-
> * Create a multitenant enrollment
22+
> * Create an enrollment that provisions devices based on geolocation (lowest latency)
2723
> * Use the Azure CLI to create two regional Linux VMs to act as devices in the same regions (**West US 2** and **East US**)
2824
> * Set up the development environment for the Azure IoT C SDK on both Linux VMs
29-
> * Simulate the devices to see that they are provisioned for the same tenant in the closest region.
25+
> * Simulate the devices and verify that they're provisioned to the IoT hub in the closest region.
3026
3127
>[!IMPORTANT]
3228
> Some regions may, from time to time, enforce restrictions on the creation of Virtual Machines. At the time of writing this guide, the *westus2* and *eastus* regions permitted the creation of VMs. If you're unable to create in either one of those regions, you can try a different region. To learn more about choosing Azure geographical regions when creating VMs, see [Regions for virtual machines in Azure](../virtual-machines/regions.md)
@@ -41,10 +37,10 @@ This tutorial uses a simulated device sample from the [Azure IoT C SDK](https://
4137

4238
## Create two regional IoT hubs
4339

44-
In this section, you'll create an Azure resource group, and two new regional IoT hub resources for a tenant. One IoT hub will be for the **West US 2** region and the other will be for the **East US** region.
40+
In this section, you'll create an Azure resource group, and two new regional IoT hub resources. One IoT hub will be for the **West US 2** region and the other will be for the **East US** region.
4541

4642
>[!IMPORTANT]
47-
>It's recommended that you use the same resource group for all resources created in this tutorial. This will make clean up easier after you are finished.
43+
>It's recommended that you use the same resource group for all resources created in this tutorial. This will make clean up easier after you're finished.
4844
4945
1. In the Azure Cloud Shell, create a resource group with the following [az group create](/cli/azure/group#az-group-create) command:
5046

@@ -68,9 +64,9 @@ In this section, you'll create an Azure resource group, and two new regional IoT
6864
6965
This command may take a few minutes to complete.
7066
71-
## Create the multitenant enrollment
67+
## Create an enrollment for geolatency
7268
73-
In this section, you'll create a new enrollment group for the tenant devices.
69+
In this section, you'll create a new enrollment group for the your devices.
7470
7571
For simplicity, this tutorial uses [Symmetric key attestation](concepts-symmetric-key-attestation.md) with the enrollment. For a more secure solution, consider using [X.509 certificate attestation](concepts-x509-attestation.md) with a chain of trust.
7672
@@ -92,7 +88,7 @@ For simplicity, this tutorial uses [Symmetric key attestation](concepts-symmetri
9288
9389
5. Select **Link a new IoT Hub**
9490
95-
:::image type="content" source="./media/how-to-provision-multitenant/create-multitenant-enrollment.png" alt-text="Add multitenant enrollment group for symmetric key attestation.":::
91+
:::image type="content" source="./media/how-to-provision-multitenant/create-multitenant-enrollment.png" alt-text="Add enrollment group for symmetric key attestation and lowest latency.":::
9692
9793
6. On the **Add link to IoT hub** page, enter the following information:
9894
@@ -122,7 +118,7 @@ For simplicity, this tutorial uses [Symmetric key attestation](concepts-symmetri
122118
123119
## Create regional Linux VMs
124120
125-
In this section, you'll create two regional Linux virtual machines (VMs). These VMs will run a device simulation sample from each region to demonstrate device provisioning for tenant devices from both regions.
121+
In this section, you'll create two regional Linux virtual machines (VMs). These VMs will run a device simulation sample from each region to demonstrate device provisioning for devices from both regions.
126122
127123
To make clean-up easier, these VMs will be added to the same resource group that contains the IoT hubs that were created, *contoso-us-resource-group*. However, the VMs will run in separate regions (**West US 2** and **East US**).
128124
@@ -194,7 +190,7 @@ To make clean-up easier, these VMs will be added to the same resource group that
194190
195191
## Prepare the Azure IoT C SDK development environment
196192
197-
In this section, you'll clone the Azure IoT C SDK on each VM. The SDK contains a sample that simulates a tenant's device provisioning from each region.
193+
In this section, you'll clone the Azure IoT C SDK on each VM. The SDK contains a sample that simulates a device provisioning from each region.
198194
199195
For each VM:
200196
@@ -279,7 +275,7 @@ For **both** *eastus* and *westus 2* devices:
279275
p3w2DQr9WqEGBLUSlFi1jPQ7UWQL4siAGy75HFTFbf8=
280276
```
281277
282-
3. Now each tenant device has their own derived device key and unique registration ID to perform symmetric key attestation with the enrollment group during the provisioning process.
278+
3. Now each device has its own derived device key and unique registration ID to perform symmetric key attestation with the enrollment group during the provisioning process.
283279
284280
## Simulate the devices from each region
285281
@@ -344,7 +340,7 @@ The sample code simulates a device boot sequence that sends the provisioning req
344340
cmake --build . --target prov_dev_client_sample --config Debug
345341
```
346342
347-
8. Once the build succeeds, run **prov\_dev\_client\_sample.exe** on both VMs to simulate a tenant device from each region. Notice that each device is allocated to the tenant IoT hub closest to the simulated device's regions.
343+
8. Once the build succeeds, run **prov\_dev\_client\_sample.exe** on both VMs to simulate a device from each region. Notice that each device is allocated to the IoT hub closest to the simulated device's region.
348344
349345
Run the simulation:
350346
```bash
@@ -390,7 +386,7 @@ If you plan to continue working with resources created in this tutorial, you can
390386
The steps here assume that you created all resources in this tutorial as instructed in the same resource group named **contoso-us-resource-group**.
391387
392388
> [!IMPORTANT]
393-
> Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you do not accidentally delete the wrong resource group or resources. If you created the IoT Hub inside an existing resource group that contains resources you want to keep, only delete the IoT Hub resource itself instead of deleting the resource group.
389+
> Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you don't accidentally delete the wrong resource group or resources. If you created the IoT Hub inside an existing resource group that contains resources you want to keep, only delete the IoT Hub resource itself instead of deleting the resource group.
394390
>
395391
396392
To delete the resource group by name:

articles/iot-dps/how-to-use-custom-allocation-policies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ The simulated devices will use the derived device keys with each registration ID
407407

408408
In this section, you prepare the development environment used to build the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c). The SDK includes the sample code for the simulated device. This simulated device will attempt provisioning during the device's boot sequence.
409409

410-
This section is oriented toward a Windows-based workstation. For a Linux example, see the set-up of the VMs in [How to provision for multitenancy](how-to-provision-multitenant.md).
410+
This section is oriented toward a Windows-based workstation. For a Linux example, see the set-up of the VMs in [Tutorial: Provision for geolatency](how-to-provision-multitenant.md).
411411

412412
1. Download the [CMake build system](https://cmake.org/download/).
413413

articles/iot-dps/index.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ landingContent:
4848
links:
4949
- text: Link multiple hubs to DPS
5050
url: tutorial-provision-multiple-hubs.md
51-
- text: Provision for multitenancy
51+
- text: Provision for geolatency
5252
url: how-to-provision-multitenant.md
5353
- linkListType: how-to-guide
5454
links:

articles/iot-dps/quick-create-simulated-device-symm-key.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ In this quickstart, you'll create a simulated device on your Windows machine. Th
1919

2020
If you're unfamiliar with the process of provisioning, review the [provisioning](about-iot-dps.md#provisioning-process) overview.
2121

22-
This quickstart demonstrates a solution for a Windows-based workstation. However, you can also perform the procedures on Linux. For a Linux example, see [How to provision for multitenancy](how-to-provision-multitenant.md).
22+
This quickstart demonstrates a solution for a Windows-based workstation. However, you can also perform the procedures on Linux. For a Linux example, see [Tutorial: provision for geolatency](how-to-provision-multitenant.md).
2323

2424
## Prerequisites
2525

articles/iot-dps/quick-create-simulated-device-x509.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ In this quickstart, you'll create a simulated device on your Windows machine. Th
1919

2020
If you're unfamiliar with the process of provisioning, review the [provisioning](about-iot-dps.md#provisioning-process) overview. Also make sure you've completed the steps in [Set up IoT Hub Device Provisioning Service with the Azure portal](./quick-setup-auto-provision.md) before continuing.
2121

22-
This quickstart demonstrates a solution for a Windows-based workstation. However, you can also perform the procedures on Linux. For a Linux example, see [How to provision for multitenancy](how-to-provision-multitenant.md).
22+
This quickstart demonstrates a solution for a Windows-based workstation. However, you can also perform the procedures on Linux. For a Linux example, see [Tutorial: Provision for geolatency](how-to-provision-multitenant.md).
2323

2424
## Prerequisites
2525

articles/iot-dps/toc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ items:
4040
items:
4141
- name: Link multiple hubs to DPS
4242
href: tutorial-provision-multiple-hubs.md
43-
- name: Provision for multitenancy
43+
- name: Provision for geolatency
4444
href: how-to-provision-multitenant.md
4545
- name: Concepts
4646
items:

articles/iot-dps/tutorial-custom-allocation-policies.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,14 +276,13 @@ contoso-heatpump-088 : 6uejA9PfkQgmYylj8Zerp3kcbeVrGZ172YLa7VSnJzg=
276276

277277
---
278278

279-
280279
## Prepare an Azure IoT C SDK development environment
281280

282281
Devices will request provisioning using provisioning sample code included in the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c).
283282
284283
In this section, you prepare the development environment used to build the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c). The SDK includes the sample code for the simulated device. This simulated device will attempt provisioning during the device's boot sequence.
285284
286-
This section is oriented toward a Windows-based workstation. For a Linux example, see the set-up of the VMs in [How to provision for multitenancy](how-to-provision-multitenant.md).
285+
This section is oriented toward a Windows-based workstation. For a Linux example, see the set-up of the VMs in [Tutorial: Provision for geolatency](how-to-provision-multitenant.md).
287286

288287
1. Download the [CMake build system](https://cmake.org/download/).
289288

0 commit comments

Comments
 (0)