Best practices when setting up IoT Hub(s) for different sites and customers?

Pittier, Amparo 30 Reputation points


We have several devices (170) connected to Azure IoT Hub.

We have been creating one IoT Hub per mill/site (47); then we use the IoT Hub's built-in Event Hub compatible endpoint to consume the telemetry sent by the devices.

Now we're reaching the quota limit of 50 IoT Hubs in the subscription and we're reviewing the options.

Should we think of one IoT Hub per region instead (while keep using the event hub built-in endpoint)? E.g., Americas, EMEA, South East Asia?

Could you please advise how to organize several devices at different sites from different customers spread around the globe?

Thanks in advance for your guidance.

Best regards, Amparo

Azure IoT
Azure IoT
A category of Azure services for internet of things devices.
371 questions
Azure IoT Hub
Azure IoT Hub
An Azure service that enables bidirectional communication between internet of things (IoT) devices and applications.
1,079 questions
Azure Event Hubs
Azure Event Hubs
An Azure real-time data ingestion service.
529 questions
{count} vote

Accepted answer
  1. Sander van de Velde 26,801 Reputation points MVP

    Hello @Pittier, Amparo ,

    from what I read, you are ingesting telemetry from multiple mills/sites (47) for 170 devices. Possibly, these devices are available on various continents.

    It's not clear how many messages are to be expected for all devices on a daily bases.

    Microsoft does not really give any pointers on how to work with this. Technically, everything is possible. As seen in other answers, there are a number of takeaways from the well-architected framework like using a DPS.

    Yes, depending on the number of continents and the number of messages sent, all device messages could end up in one IoT Hub.

    If there are no government restrictions or customer regulation restrictions (eg, do not mix stream of data from multiple customers), one IoT Hub could work.

    How can this be done?

    It's all based on context.

    Each message flowing through the IoT solution should be enriched with the mill/site/customer identification so the right information is sent to the right user.

    This context can be part of the messages sent by devices but that is not recommended. It means extra (repeatable) communicated data and is hard to manage (each device needs to store the context).

    Check out the IoT Hub device registration (Device Twin) tags. You can give a registration extra context regarding the manufacturer, make, version, or customer/site/mill.

    Using Azure IoT Hub routing and routing endpoints, streams of data can be split based on these tags.

    Using Azure IoT Hub message enrichment, these tags can be added to the original message body as application properties.

    Please use a Device Provisioning Service and set the tags within the enrollments. This guarantees keeping control over the devices and data streams and separating them.

    If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.

0 additional answers

Sort by: Most helpful