Dela via


Tillförlitlighet i din IoT-arbetsbelastning

IoT-arbetsbelastningar kan, precis som alla arbetsbelastningar, fungera. De viktigaste tillförlitlighetsövervägandena för väldefinierade IoT-lösningar är hur snabbt du kan identifiera ändringar och hur snabbt du kan återuppta åtgärder.

IoT-program distribueras ofta i massiv skala och kan fungera över otillförlitliga nätverk utan beständig åtkomst eller insyn i dataflöden från slutpunkt till slutpunkt. På grund av dessa faktorer bör du utforma din IoT-arkitektur med tillgänglighet och återhämtning i åtanke.

Att skapa en tillförlitlig IoT-lösning kräver noggrant övervägande av enheter, molntjänster och hur de interagerar. De val du gör för enhetens maskinvara, anslutningar och protokoll och molntjänster påverkar din lösnings tillförlitlighetskrav och funktioner.

Utvärdera tillförlitligheten i din IoT-arbetsbelastning

Om du vill utvärdera din IoT-arbetsbelastning via linserna i Well-Architected Framework-grundpelarna för tillförlitlighet slutför du tillförlitlighetsfrågorna för IoT-arbetsbelastningar i Azure Well-Architected Review. När utvärderingen har identifierat viktiga tillförlitlighetsrekommendationer för din IoT-lösning använder du följande innehåll för att implementera rekommendationerna.

Designprinciper

Fem grundpelare för utmärkt arkitektur ligger till grund för designmetoden för IoT-arbetsbelastningar. Dessa pelare fungerar som en kompass för efterföljande designbeslut inom de viktigaste IoT-designområdena. Följande designprinciper utökar kvalitetspelare för Azure Well-Architected Framework – tillförlitlighet.

Designprincip Överväganden
Utforma enheter för återhämtning Utforma dina enheter för att uppfylla kraven på drifttid och tillgänglighet för din slutpunkt till slutpunkt-lösning. Se till att din IoT-enhet kan fungera effektivt med tillfälliga anslutningar till molnet.
Design för affärskrav Kostnadskonsekvenser är oundvikliga när du inför arkitekturändringar för att uppfylla serviceavtal (SLA). Om du till exempel vill ha bättre tillförlitlighet och hög tillgänglighet kan du implementera redundans mellan regioner och ett automatiserat system för autoskalning. Denna kompromiss bör övervägas noggrant.
Säkra, enkla uppdateringsprocedurer En företags-IoT-lösning bör tillhandahålla en strategi för hur operatörer hanterar enheter. IoT-operatörer kräver enkla och tillförlitliga uppdateringsverktyg och metoder.
Observera programmets hälsa Definiera servicenivåindikatorer (SLI:er) och servicenivåmål (SLO) baserat på observerbarhet. Lägg till processer för granskning, övervakning och avisering utöver vad molntjänster tillhandahåller.
Hög tillgänglighet och haveriberedskap (HA/DR) för kritiska komponenter. Motståndskraftiga maskinvaru- och programvarukomponenter som bygger på redundans, inklusive redundans mellan regioner.
Planera för kapacitet Planera för tjänstkvoter och begränsningar, svarstid mellan identifieringsåtgärden och upprätta prestandamått i produktionsskala för att stödja oavbrutet dataflöde.

IoT-arkitekturlager

Principer för tillförlitlighetsdesign hjälper till att klargöra överväganden för att säkerställa att din IoT-arbetsbelastning uppfyller kraven i de grundläggande IoT-arkitekturskikten. För att uppnå övergripande tillförlitlighet för lösningen bör varje lager ha godtagbara nivåer av tillförlitlighet.

Diagram som visar lager och övergripande aktiviteter i en IoT-arkitektur.

Enhets- och gatewaylager

Som en del av din övergripande IoT-lösning utformar du dina enheter för att uppfylla lösningens krav på drifttid och tillgänglighet från slutpunkt till slutpunkt. Enheter och gatewayer finns i många former. IoT-enheter och gatewayer kan utföra datainsamling, övervakningskontroll och gränsanalys.

  • Datainsamling ansluter enheter till sensorer eller prenumererar på telemetri från underordnade system och skickar insamlade data till molnet. IoT-lösningsdesignen bör säkerställa tillförlitlig enhetshantering och tillförlitlig kommunikation från enheten till molnet.

  • Enheter som tillhandahåller övervakningskontroll samlar inte bara in data som ska skickas till molnet, utan även vidtar åtgärder baserat på dessa data. Enheter skickar tillbaka data till datorerna eller miljön för att vidta övervakningsåtgärder. Tillförlitligheten för program för övervakningskontroll är avgörande.

Enhetsdesign

Utforma och välj IoT-enheter för att fungera tillförlitligt under förväntade driftsförhållanden under deras förväntade livslängd. En tillförlitlig enhet bör fungera enligt maskinvaru- och programvaruspecifikationerna, och eventuella fel bör identifieras och hanteras genom åtgärd, reparation eller ersättning. Utforma enheter för tillförlitlighet, men planera även för fel.

Enhetslivscykel

Begränsad livslängd för tjänsten påverkar lösningens tillförlitlighet. Utvärdera konsekvenserna av enhetsfel på lösningen och definiera en strategi för enhetens livscykel enligt lösningskraven.

Konsekvensbedömning av enhetsfel omfattar:

  • Allvarlighetsgrad, till exempel enskilda felpunkter.
  • Sannolikhet, till exempel genomsnittlig tid mellan fel.
  • Identifieringsbarhet, till exempel felläge och effektanalys.
  • Acceptabel stilleståndstid.

Det godkända driftstoppet avgör hastigheten och omfattningen av enhetsunderhållet. Tillgängligheten eller livslängden för enheten och delleveransen är en viktig faktor för enhetens livscykel.

Ju mer modulär designen är, desto enklare är det att byta ut delar av systemet, särskilt om vissa delar blir föråldrade tidigare än andra. Alternativa eller flera källor till komponent- och modulförsörjningskedjor är viktiga för tillförlitliga lösningar.

Miljökrav

De villkor som en enhet använder påverkar dess tillförlitlighet. Definiera dina miljökrav och använd enheter med lämpliga funktionsspecifikationer. Dessa specifikationer omfattar parametrar som drifttemperaturintervall, luftfuktighet, ingressskydd (IP), elektromagnetisk interferens (EMI) immunitet och stöt- och vibrationsimmunitet.

Driftprofil

Prestandabelastning påverkar enheternas driftsbeteende och därmed deras tillförlitlighet. Definiera driftprofiler som uppskattar beteendet under enhetens livslängd och utvärdera enhetens tillförlitlighet i enlighet med detta. Sådana profiler omfattar driftlägen, till exempel trådlös överföring eller lågeffektlägen, och miljöförhållanden, till exempel temperatur, under enhetens livslängd.

Under normala driftsförhållanden bör enheten och programvaran köras säkert inom de angivna driftprofilerna. Enheter måste kunna hantera och bearbeta alla externa sensorer och databearbetning som lösningen kräver. Undvik att köra på gränsen för enhetsfunktioner.

Föreskrifter och standarder

Enheter för specifika branscher omfattas av tillämpliga regler och standarder. Definiera föreskrifter och standarder och se till att enheterna uppfyller efterlevnads- och överensstämmelsekraven. Föreskrifter omfattar certifiering och märkning, till exempel FCC eller CE. Standarder omfattar bransch- eller byråprogram, till exempel ATEX och MIL-SPEC, och säkerhetsöverensstämmelse, till exempel IEC 61508.

Lager för enhetshantering och modellering

Molntjänster ger varje enhet en identitet och hanterar enheter i stor skala. Molnet är ofta den slutliga ingresspunkten för data för alla meddelanden som flödar från enheterna. I IoT-lösningar måste molntjänsterna tillhandahålla tillförlitlighet för att IoT-enheterna ska kunna integrera och överföra data.

Enhetsanslutningsvillkor, inklusive uppströms till molnet och nedströms till lokala nätverk, bör ingå i tillförlitlighetsdesignen för IoT-lösningen. Utvärdera den potentiella effekten av anslutningsavbrott eller störningar och definiera en anslutningsstrategi i enlighet med detta.

Anslutningsstrategin bör omfatta robusthet, till exempel återställningskapacitet och frånkopplingshantering, och buffring av säkerhetskopiering för att minska molnberoendet för kritiska funktioner eller säkerhetsfunktioner.

Följande metoder för design, felhantering och övervakning gäller anslutningar.

Anslutningsdesign

En IoT-lösning bör aktivera informationsflödet mellan tillfälligt anslutna enheter och molnbaserade tjänster. Kontrollera att dina IoT-enheter kan fungera effektivt med tillfälliga anslutningar till molnet.

Metodtipsen omfattar följande rekommendationer:

  • Implementera logik för återförsök och backoff i enhetsprogramvaran.
  • Synkronisera enhetens tillstånd med molnet.
  • Se till att du kan lagra data på enheter om din lösning inte tolererar dataförlust.
  • Använd datasampling och simuleringar för att mäta baslinjer för nätverkskapacitet och lagringskrav.

Anslutningsimplementering

SDK:er för Azure IoT-enheter tillhandahåller klientbibliotek som du kan använda på enheter eller gatewayer för att förenkla anslutningen till Azure IoT-tjänster. Du kan använda SDK:erna för att instrumentera IoT-enhetsklienter som:

  • Anslut till molnet.
  • Ge en konsekvent klientutvecklingsupplevelse på olika plattformar.
  • Förenkla vanliga anslutningsuppgifter genom att abstrahera information om underliggande protokoll och mönster för meddelandebearbetning, till exempel exponentiell backoff med jitter och omprövningslogik.

Anslutningsövervakning

Anslutningsproblem för IoT-enheter kan vara svåra att felsöka på grund av de många möjliga felpunkterna. Programlogik, fysiska nätverk, protokoll, maskinvara, Azure IoT Hub och andra molntjänster kan ha problem.

Möjligheten att identifiera och identifiera källan till ett problem är viktig. En IoT-lösning i stor skala kan dock ha tusentals enheter, så det är inte praktiskt att manuellt kontrollera enskilda enheter. Azure Monitor och Azure Event Grid kan hjälpa dig att diagnostisera anslutningsproblem i IoT Hub.

Anslutningsresurser

Inmatnings- och kommunikationslager

IoT-inmatnings- och kommunikationsskiktet omfattar tjänstkvoter och gränser, kapacitet, begränsning och autoskalning.

Design av redundant kapacitet

När du planerar tröskelvärden och aviseringar bör du överväga svarstiden mellan identifiering och vidtagna åtgärder. Kontrollera att systemet och operatörerna har tillräckligt med tid för att svara på ändringsbegäranden. Annars kan du till exempel upptäcka ett behov av att öka antalet enheter, men systemet kan misslyckas genom att förlora meddelanden innan ökningen kan börja gälla.

Planering av tjänstkvoter

Som med alla plattformstjänster tillämpar IoT Hub och IoT Hub Device Provisioning Service (DPS) kvoter och begränsningar för vissa åtgärder, så att Azure kan leverera förutsägbara servicenivåer och kostnader för sina tjänster. Kvoter och begränsningar är knutna till tjänstnivån och antalet enheter som du distribuerar, så att du kan utforma din lösning med rätt antal resurser. Granska kvoter och begränsningar i förväg och utforma dina IoT Hub- och DPS-resurser på lämpligt sätt.

Prestandamått för produktionsskala

När antalet enheter eller mängden data ökar måste molngatewayen skalas för att stödja oavbrutet dataflöde. På grund av IoT-lösningarnas distribuerade karaktär, antalet enheter och mängden data är det viktigt att upprätta skalningsmått för den övergripande lösningen. Dessa riktmärken bidrar till att planera för kapacitetsrisker. Använd Azure IoT Device Telemetry Simulator för att simulera produktionsskalningsvolymer.

Autoskalning för dynamisk justering till kvoter

En fördel med att använda PaaS-komponenter (plattform som en tjänst) är möjligheten att skala upp och ned med liten ansträngning efter dina behov. Överväg att implementera ett automatiserat system för att skala upp och ned dina resurser med de olika behoven i din lösning för att ge den lägsta kostnaden och driften.

Hantering av kvoter och begränsningar

För att säkerställa lösningens tillförlitlighet övervakar du kontinuerligt resursanvändningen mot kvoter och begränsningar för att identifiera användningsökningar som indikerar behovet av skalning. Beroende på dina affärskrav kan du kontinuerligt övervaka resursanvändningen och varna operatören när tröskelvärdena uppfylls, eller implementera ett automatiserat system för automatisk skalning.

Kapacitet och skalningsresurser

Transportlager

För att ansluta till molntjänsten för data, kontroll och hantering behöver enheterna åtkomst till ett nätverk. Beroende på typen av IoT-lösning kan anslutningstillförlitligheten vara ditt eller nätverkstjänstleverantörens ansvar. Nätverk kan ha tillfälliga anslutningsproblem och enheterna måste hantera sitt beteende i enlighet med detta.

DevOps-lager

En företags-IoT-lösning bör tillhandahålla en strategi för operatörer för att hantera systemet. För att hantera tillförlitligheten bör IoT-hantering och -åtgärder använda DevOps-processer för att hantera uppdateringar, observerbarhet och övervakning samt HA/DR-implementering.

Uppdateringar

Enhetsaspekten av IoT-lösningar innebär utmaningar jämfört med molnbaserade lösningar. Det måste till exempel finnas ett sätt att kontinuerligt uppdatera enheter för att åtgärda sårbarheter och programändringar.

På grund av IoT-lösningarnas distribuerade karaktär är det viktigt att införa säkra och säkra principer för distribution av uppdateringar. IoT-operatörer kräver enkla och tillförlitliga uppdateringsverktyg och metoder.

En enhetsuppdateringslösning måste ha stöd för:

  • Gradvis uppdateringsdistribution via kontroller för enhetsgruppering och schemaläggning.
  • Stöd för elastiska A/B-enhetsuppdateringar för sömlös återställning.
  • Detaljerade verktyg för uppdateringshantering och rapportering.
  • Nätverksoptimering baserat på tillgänglig bandbredd.

Enhetsuppdatering för IoT Hub är en tjänst som möjliggör säkra, säkra och tillförlitliga trådlösa IoT-enhetsuppdateringar (OTA). Enhetsuppdatering för IoT Hub kan gruppera enheter och ange vilka enheter som ska få en uppdatering. Operatörer kan visa status för uppdateringsdistributioner och om varje enhet har tillämpat de nödvändiga uppdateringarna.

Om en uppdatering misslyckas hjälper enhetsuppdatering operatörerna att identifiera de enheter som misslyckades och se felinformationen. Möjligheten att identifiera vilka enheter som misslyckades kan eliminera timmar av försök att manuellt hitta felkällan.

Enhetsuppdatering övervakar statusen för enhetsdistributioner och uppdateringar och rapporterar hur många enheter som är kompatibla med den högsta tillgängliga versionen av kompatibla uppdateringar.

Observerbarhet och övervakning

Om du vill hantera den övergripande lösningens tillförlitlighet och definiera aviseringsprocedurer bör du övervaka varje komponent i din IoT-lösning. Alla Azure IoT-tjänster publicerar mått som beskriver tjänstens hälsa och tillgänglighet. Om du vill etablera observerbarhet från slutpunkt till slutpunkt bör du även överväga de mått som du behöver på enhetssidan. Använd dessa mått som en del av din övergripande övervakning av lösningens tillförlitlighet.

Övervakning och diagnostik för IoT-program är avgörande för tillgänglighet och återhämtning. Om något misslyckas måste du veta att det misslyckades, när det misslyckades och varför. Genom att övervaka driften av ett IoT-program och enheter mot ett felfritt tillstånd kan du identifiera och åtgärda tillförlitlighetsproblem.

För att åtgärda problem som påverkar IoT-programmets tillförlitlighet måste du kunna samla in loggar och signaler som hjälper dig att identifiera problem i åtgärder från slutpunkt till slutpunkt. Använd loggning och övervakning för att avgöra om en IoT-lösning fungerar som förväntat och för att felsöka problem med lösningskomponenter.

Följande åtgärder stöder observerbarhet för IoT-lösningar:

  • Upprätta en mekanism för att samla in och analysera prestandamått och aviseringar.
  • Konfigurera enheter, molntjänster och program för att samla in och ansluta med Azure Monitor.
  • Använd instrumentpaneler och aviseringar i realtid för att övervaka Azure-serverdelstjänster.
  • Definiera roller och ansvarsområden för övervakning och åtgärder vid händelser och aviseringar. Mer information finns i Roller, ansvarsområden och behörigheter.
  • Implementera kontinuerlig övervakning.

Azure Monitor

Azure Monitor är den rekommenderade plattformen för övervakning och visualisering för Azure IoT-lösningar. Du kan konfigurera enheter, molntjänster och program, oavsett distributionsplats, för att skicka loggmeddelanden direkt eller via inbyggda anslutningsappar till Azure Monitor.

  • Använd inbyggd måttintegrering i Azure Monitor för fjärrövervakning av IoT Edge enheter. Om du vill aktivera den här funktionen på dina enheter lägger du till modulen IoT Edge Metrics Collector i distributionen och konfigurerar den för att samla in och transportera modulmått till Azure Monitor.

  • Med Azure Monitor kan du övervaka tillståndet för din IoT Hub miljö, se till att den körs korrekt och kontrollera att dina enheter inte begränsas eller har anslutningsproblem. IoT Hub innehåller användningsstatistik, till exempel antalet meddelanden som används och antalet anslutna enheter. Du kan vidarebefordra dessa data till Azure Monitor för analys och för att varna andra tjänster.

  • Om din lösning använder Azure IoT Central kan du använda måtten som IoT Central tillhandahåller för att utvärdera hälsotillståndet för anslutna enheter och aktiva dataexporter. IoT Central-program aktiverar mått som standard, som du kan komma åt från Azure Portal. Azure Monitor exponerar och tillhandahåller flera sätt att interagera med dessa mått.

  • Azure Monitor tillhandahåller anpassad loggparsning för att underlätta uppdelningen av händelser och poster i enskilda fält för indexering och sökning.

  • Implementera instrumentpaneler i realtid och Azure Monitor-aviseringar för att övervaka Azure-serverdelstjänster. Aviseringar meddelar dig proaktivt om specifika villkor i dina övervakningsdata, så att du kan identifiera och åtgärda problem innan kunderna stöter på dem. Du kan ange aviseringar för mått, loggar och aktivitetsloggen.

Application Insights är en funktion i Azure Monitor som ger utökningsbar hantering av programprestanda och övervakning för livewebbappar. Om din IoT-lösning använder anpassade Azure App Service, Azure Kubernetes Service eller Azure Functions program kan du använda Application Insights för appövervakning och analys.

Application Insights kan:

  • Identifiera prestandaavvikelser automatiskt.
  • Hjälp med att diagnostisera problem med hjälp av kraftfulla analysverktyg.
  • Visa vad användarna faktiskt gör med dina appar.
  • Hjälper dig att kontinuerligt förbättra appens prestanda och användbarhet.

Kontinuerlig övervakning

Kontinuerlig integrering och kontinuerlig distribution (CI/CD) är en DevOps-metod som levererar programvara snabbare och mer tillförlitligt för att ge kontinuerligt värde till användarna. Kontinuerlig övervakning (CM) är ett liknande begrepp som omfattar övervakning över alla faser och komponenter i en DevOps-cykel.

CM säkerställer kontinuerligt hälsa, prestanda och tillförlitlighet för dina appar och infrastruktur när de flödar genom utveckling, produktion och lansering till kunder. Mer information finns i:

Övervaka resurser

HA/DR för kritiska komponenter

När du utformar och skapar din IoT-lösning måste du uppfylla serviceavtalet för felåterställning i lösningsstacken. Ditt serviceavtal bör vägleda dig om vilka kritiska systemkomponenter som behöver HA/DR. Det finns flera metoder, från redundans i IoT-lösningsstacken till redundans för specifika lager. Kostnaden är också ett viktigt övervägande för att väga mot vikten av att uppfylla serviceavtal.

  • Azure IoT-tjänster har definierat mål för drifttid och tillgänglighet. Granska serviceavtalen för Azure IoT-tjänster som ingår i din lösning för att se om de uppfyller dina drifttidsmål. Till exempel har Azure IoT Hub ett serviceavtal på 99,9 %, vilket innebär att du bör planera för 1 minut och 36 sekunders potentiell stilleståndstid per dag. Den Azure IoT Hub SDK:n tillhandahåller inbyggd, konfigurerbar logik för att hantera återförsök och backoff.

  • Överväg att dela upp dina drifttidsmål i två kategorier: enhetshantering och datainmatningsåtgärder. Det kan till exempel vara viktigt för en enhet att skicka data till en IoT-hubb, även om enhetshanteringstjänster inte är tillgängliga. Mer information finns i tillförlitlighetsfunktionerna i Azure IoT Hub SDK.

  • Överväg att använda redundant maskinvara för sensorer, ström och lagring. Redundant maskinvara gör det möjligt för enheter att fungera om en kritisk komponent inte är tillgänglig. Maskinvara kan också hjälpa till med anslutningsproblem. Du kan till exempel använda en lagrings- och vidarebefordransmetod för data när anslutningen inte är tillgänglig. Den här funktionen är inbyggd i Azure IoT Edge.

  • Enheter måste också kunna hantera molnfel. Regionparkoppling i Azure tillhandahåller en HA/DR-strategi för IoT Hub som uppfyller många SLA-krav. Om regionparkoppling inte räcker kan du överväga att implementera en sekundär IoT-hubb. Du kan också använda DPS för att undvika hårdkodade IoT Hub konfigurationer på dina enheter. Om din primära IoT-hubb slutar fungera kan DPS tilldela dina enheter till en annan hubb.

  • Överväg att implementera ett pulsslagsmeddelandemönster för enheter som du förväntar dig är online för det mesta. Det här mönstret använder en anpassad IoT Hub med Azure Stream Analytics, Azure Logic Apps eller Azure Functions för att avgöra om ett pulsslag har misslyckats. Du kan använda pulsslag för att definiera Azure Monitor-aviseringar som vidtar åtgärder efter behov.

HA/DR-resurser

Nästa steg