Skala och hantera IoT-lösningar med distributionsstämplar

Azure Event Hubs
Azure IoT Hub
Azure Traffic Manager

Den här artikeln beskriver en distributionsstrategi för stämpling för att stödja uppskalning av antalet anslutna enheter i en IoT-lösning (Internet of Things). Artikeln beskriver också i detalj hur du distribuerar IoT-enheter och program mellan distributionsstämplar.

Distributionsstämpelstrategin för IoT-lösningar baseras på designmönstret Distributionsstämpel . Distributionsstämplar är enheter som består av heterogena komponenter som stöder en definierad enhetspopulation. Distributionsstämpling skalar upp antalet anslutna IoT-enheter genom att replikera stämplar i stället för att skala upp olika delar av en lösning oberoende av varandra.

Fördelar med distributionsstämpling:

  • Placera och distribuera enheter efter kriterier som geoberoende, livscykel eller versionsstatus.
  • Innehåller avbrotts- eller tjänstförsämringseffekter på specifika stämplar.
  • Distribuera nya funktioner, funktioner och arkitekturändringar till specifika stämplar som kan stödja dem.
  • Stöd för enhetshantering i flera generationer genom att justera funktioner och tjänster till angivna enhetspopulationer.
  • Tillhandahålla en skalnings- och kostnadsmodell som baseras på stämplar för att förutsägbart hantera framtida tillväxt.

Stämplingsarkitektur för IoT-distribution

Ett diagram som visar en distributionsstämpelstrategi för användning i Azure IoT.

Ladda ned en Visio-fil med den här arkitekturen.

Föregående diagram illustrerar en distributionsstämpelstrategi för Azure IoT. Den här lösningen skapar atomära stämplar som var och en består av:

Stämplar bör alltid utformas för att stödja explicita kapaciteter. Om du vill fastställa rätt antal enheter som ska stödjas bör du överväga hur mycket kommunikationstrafik som ska förväntas av enheterna. I den här lösningen stöder varje stämpel optimalt en definierad enhetspopulation från 1 000 till 1 000 000 enheter. I takt med att enhetspopulationen växer kan ytterligare stämpelinstanser hantera tillväxten.

Flytta enheter och program mellan stämplar

Distributionsstämplar är avsedda för atomisk distribution, men ibland måste du flytta enhetspopulationer mellan stämplar. Du kan till exempel behöva:

  • Flytta enhetspopulationer från teststämplar till produktionsstämplar som en del av en versionscykel.
  • Flytta enheter och användare till en annan stämpel som en del av avbrottsreparationen i ett scenario med hög tillgänglighet.
  • Belastningsutjämning för att fördela enhetspopulationer jämnare över stämplar.

Flytta enheter mellan hubbar

Om stämpelkomponenterna endast omfattar beteende från enhet till moln räcker det med att flytta enheter mellan hubbar för att migrera enheterna från en stämpel till en annan. Azure IoT Device Provisioning Service (DPS) är ett sätt att flytta enheter mellan IoT Hub instanser. Om du vill använda DPS i stämplingsstrategin måste du förstå terminologin och begreppen IoT Hub Device Provisioning Service (DPS).

Anteckning

DPS använder registrerings-ID:n, medan IoT Hub använder enhets-ID:n. Dessa ID:ar är ofta samma värde, men kan vara olika. När du frågar eller hanterar enheter med DPS-API:erna ska du använda registrerings-ID:erna.

Flytta enheter och program mellan fristående stämplar

Om distributionsstämplar inkluderar webbklientdelar eller API-program som kommunicerar via IoT Hub måste komponenterna också migreras till nya hubbar för att fortsätta kommunicera med de enheter som har flyttats. Du kan flytta hela program och enheter mellan stämplar.

När varje stämpel omfattar ett program från slutpunkt till slutpunkt kan Azure Traffic Manager flytta trafik från en stämpel till en annan. Den här strategin omfattar att skapa flera stämplar som var och en innehåller hela programmet med en egen URL. Hela populationer av enheter och programanvändare flyttas från en stämpel till en annan.

Den här fullständigt fristående strategin är:

  • Enkelt att implementera.
  • Lämplig som en del av en strategi för hög tillgänglighet.
  • Användbart för att migrera enheter och användare från test till produktionsmiljöer.

Ett diagram som visar hur du flyttar en uppsättning enheter från en stämpel till en annan stämpel.

Ladda ned en Visio-fil med den här arkitekturen.

Föregående diagram ovan visar processen att flytta en uppsättning enheter från stämpel 1 till stämpel 2:

  1. Enheter hämtar IoT Hub slutpunkten via DPS om den antingen är okänd eller inte längre giltig.
  2. När enheter flyttas till stämpel 2 pekar Traffic Manager program-URL:en till program 2-instansen.
  3. DPS flyttar en hel uppsättning enheter från en stämpel till en annan.
  4. Varje programstämpel innehåller programmets klientdel och refererar till IoT Hub som motsvarar den stämpeln.

Flytta enheter mellan stämplar bakom en enda appgateway

När ett enskilt program har stöd för flera enhetsstämplar måste programmets klientdel dynamiskt uppdatera sin mappning från enhet till hubb för att upprätthålla kommunikation från moln till enhet. För att stödja enheter som flyttar till olika stämplar och IoT Hubs kan gatewayer använda en cachelagringsmekanism för mappning från enhet till hubb. Tjänstklienter kan använda en delad sökningsrutin för att dynamiskt identifiera och migrera enhetsanrop till nya IoT Hubs.

Ett diagram som visar hur enheter kan flytta från en hubb till en annan med hjälp av en appgateway.

Ladda ned en Visio-fil med den här arkitekturen.

I den här modellen använder gatewayen en cache för att mappa enheter till IoT Hubs och standardvärdet för den cachelagrade slutpunkten. Om gatewayen får ett fel som inte hittades använder den DPS Service SDK för att köra frågor mot enskilda enhetsregistreringar och avgöra vilken IoT Hub enheten nu använder. Gatewayen uppdaterar sedan cachen med den nya mappningen.

Här följer några överväganden för den här strategin:

  • Cachelagring i en delad sökning undviker att omförhandla slutpunkter för varje anrop, men cacheslutpunkten kan misslyckas. En sekundär cache eller reservplan för omförhandling med DPS kan förbättra lösningens tillförlitlighet.

  • Om enhetsregistrering pågår kan enheten inte nås. Använd ett DPS-API som Hämta enhetsregistreringstillstånd för att hämta enhetens tilldelade IoT Hub och dess aktuella registreringsstatus.

  • I det enhetsspecifika fallet kopplas enheterna från IoT Hub när de flyttas från en stämpel till en annan. I fallet program-till-enhet uppstår felet när appen försöker nå enheten via IoT Hub.

Deltagare

Den här artikeln underhålls av Microsoft. Den skrevs ursprungligen av följande deltagare.

Huvudförfattare:

Nästa steg