question

JeffreyK-4635 avatar image
1 Vote"
JeffreyK-4635 asked SatishBoddu-MSFT commented

Guidelines for creating DPS and IoTHub at Azure

What are the guidelines for creating DPS and IoTHub at Azure when getting ready for Production? Like do we need to create new DPS for every customer or new IotHub for every customer/product. Do we have any case study or how it is designed and recommendations?

azure-iot-hub
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

SatishBoddu-MSFT avatar image
1 Vote"
SatishBoddu-MSFT answered JeffreyK-4635 commented

Hello @JeffreyK-4635 This is a great question!

I see the below documentation on DPS and IoTHub, which gives information on E2E implementation. Though I wanted to highlight here the main production readiness checklist as the
1) Architecture we are going to use? various components' documentation is available such as Protocol, Routing, Scaling etc,
2) The production certificates procurement?
3) Security model?
4) Device Management, Device Update

For inspiration, I can point to the Azure Customer Stories page: Azure Customer Stories, but I will keep you posted if I come across any E2E implementations.

Azure IoT Hub Device Provisioning Service
Azure IoT Hub

143086-image.png

Please comment in the below section for further discussion on this topic, happy to help!


image.png (362.2 KiB)
· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Thanks for the information shared regarding the checklist.

I understand we use DPS for provisioning device at scale but what I was looking at is, in practice when we are going to production what are the recommendation for creating DPS, do we create 1 for each customer though it can manage millions of devices and similarly are the scenarios we would consider need for create a new DPS? Similarly I would want to understand for when it is required to create IoTHubs?

0 Votes 0 ·
SandervandeVelde42 avatar image
1 Vote"
SandervandeVelde42 answered SatishBoddu-MSFT commented

Hello @JeffreyK-4635 ,

this is an interesting question and there is no simple answer.

In your Azure subscription, you can create up to 50 IoT Hubs and up to 10 Device Provisioning Services.

Each DPS can connect to up to 50 IoT Hubs. There are also limitations regarding number of enrollments per DPS, number of device registration, number of messages per second etc.

So, there are physical limitations you have to take into account (some are soft limits, you can ask Microsoft for even more resources).

On the other hand, the logical distribution is probably more important.

It depends how you want to split the devices:
- splitting DEV/TEST/ACCEPT/PROD
- Splitting messages from multiple projects or customers so you can monetize it better
- You do not want to mix data from a security perspective or government or legal requirements.
- etc.

Probably, some of these choices are hard at this moment. Perhaps you want to start small and cheap and see how it goes.

The good news is that most of the time you can still migrate (groups of) devices at any point of time. The DPS device allocation policy can be used for that, even with custom logic using Azure Functions.

There are two thing that will limit you over time:
1. The way the device connects to the cloud, using a DPS or directly to an IoT Hub. Once the device is past the moment where it gets its security keys, you cannot change that remotely at scale.
2. The tags (not) given to a device or a device enrollment. Without proper Device Twin tags, it is hard to identify and modify both groups of devices or even a single device.

So, make sure your devices are able to reprovision themselves and no valuable telemetry is not lost when reprovisioning. Then, you can regroup at any given time.


· 1
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Thank you @SandervandeVelde42 , Well Explained!

0 Votes 0 ·