Referenční architektura Azure IoT

Blob Storage
Functions
IoT Hub
Logic Apps
Stream Analytics

Tato referenční architektura ukazuje doporučenou architekturu pro aplikace IoT v Azure využívající komponenty PaaS (platforma jako služba).

Diagram architektury

Aplikace IoT je možné popsat jako věci (zařízení) odesílající data, ze kterých se generují přehledy. Z těchto přehledů se generují akce vedoucí ke zlepšení podnikání nebo procesů. Příkladem je motor (věc) odesílající data o teplotě. Tato data se použijí k vyhodnocení, jestli má motor očekávaný výkon (přehled). Tento přehled se použije k aktivnímu určení priority plánu údržby motoru (akce).

Tato referenční architektura využívá komponenty Azure PaaS (platforma jako služba). Další doporučenou možností pro sestavování řešení IoT v Azure je:

  • IoT Central Azure. IoT Central je plně spravované řešení SaaS (software jako služba). Abstrahuje technické volby a umožňuje soustředit se výhradně na řešení. Tato jednoduchost je vykoupená menšími možnostmi přizpůsobení než v případě řešení založeného na modelu PaaS.

Existují dva základní způsoby zpracování telemetrických dat – kritická cesta a studená cesta. Liší se v požadavcích na latenci a přístup k datům.

  • Kritická cesta analyzuje příchozí data téměř v reálném čase. V případě kritické cesty se telemetrická data musí zpracovat s velmi nízkou latencí. Kritická cesta se obvykle implementuje s využitím modulu pro zpracování streamů. Výstup může aktivovat upozornění nebo se může zapsat do strukturovaného formátu, který je možné dotazovat pomocí analytických nástrojů.
  • Studená cesta provádí dávkové zpracování v delších intervalech (každou hodinu nebo každý den). Studená cesta obvykle zpracovává velké objemy dat, ale nemusí poskytovat výsledky tak rychle jako kritická cesta. V případě studené cesty se nezpracovaná telemetrická data zachytávají a předávají do dávkového procesu.

Architektura

Tato architektura se skládá z následujících komponent. Některé aplikace nemusí vyžadovat všechny zde uvedené komponenty.

Zařízení IoT. Zařízení se můžou bezpečně registrovat v cloudu a připojovat se ke cloudu za účelem odesílání a přijímání dat. Některá zařízení můžou být hraniční zařízení, která provádí určité zpracování dat na samotném zařízení nebo v hraniční bráně. Pro účely zpracování na hraničních zařízení doporučujeme Azure IoT Edge.

Cloudová brána. Cloudová brána zajišťuje cloudové centrum, které zařízením umožňuje bezpečně se připojit ke cloudu a odesílat data. Poskytuje také možnosti správy zařízení, včetně příkazů a ovládání zařízení. Jako cloudovou bránu doporučujeme IoT Hub. IoT Hub je hostovaná cloudová služba, která přijímá události ze zařízení a funguje jako zprostředkovatel zpráv mezi zařízeními a back-endovými službami. IoT Hub zajišťuje zabezpečené připojení, příjem událostí, obousměrnou komunikaci a správu zařízení.

Zřizování zařízení. Pro účely registrace a připojování velkých sad zařízení doporučujeme použít službu IoT Hub Device Provisioning Service (DPS). DPS umožňuje přiřazovat a registrovat zařízení ke konkrétním koncovým bodům služby Azure IoT Hub ve velkém měřítku.

Zpracování streamů. Zpracování streamů analyzuje velké streamy datových záznamů a vyhodnocuje pravidla pro tyto streamy. Pro účely zpracování streamů doporučujeme Azure Stream Analytics. Stream Analytics dokáže provádět komplexní analýzy ve velkém měřítku s využitím funkcí pro práci s časovými intervaly, agregací streamů a spojování externích zdrojů dat. Další možností je Apache Spark v Azure Databricks.

Strojové učení umožňuje spouštění prediktivních algoritmů nad historickými telemetrickými daty a zajišťuje tak například scénáře prediktivní údržby. Pro účely strojového učení doporučujeme službu Azure Machine Learning.

Teplé úložiště cest uchovává data, která musí mít zařízení okamžitě k dispozici pro účely generování sestav a vizualizace. Jako teplé úložiště cest doporučujeme Cosmos DB. Cosmos DB je globálně distribuovaná databáze pro více modelů.

Studené úložiště cest uchovává data, která se ukládají na delší dobu a používají k dávkovému zpracování. Jako studené úložiště cest doporučujeme Azure Blob Storage. Data je možné archivovat po neomezenou dobu a s nízkými náklady v úložišti objektů blob, kde jsou snadno přístupná pro účely dávkového zpracování.

Transformace dat manipuluje s datovým proudem telemetrie nebo ho agreguje. Mezi příklady patří transformace protokolu, například převod binárních dat do formátu JSON nebo kombinování datových bodů. Pokud je potřeba data transformovat před tím, než dorazí do služby IoT Hub, doporučujeme použít protokolovou bránu (není zobrazená). Jinak je data možné transformovat po přijetí ve službě IoT Hub. V takovém případě doporučujeme používat řešení Azure Functions, které má vestavěnou integraci se službami IoT Hub, Cosmos DB a Blob Storage.

Integrace obchodních procesů provádí akce na základě přehledů z dat zařízení. Může se jednat například o ukládání informačních zpráv, upozorňování, odesílání e-mailů nebo SMS zpráv nebo integraci s CRM. Pro účely integrace obchodních procesů doporučujeme použít Azure Logic Apps.

Správa uživatelů omezuje, kteří uživatelé nebo skupiny můžou na zařízeních provádět akce, jako je upgrade firmwaru. Kromě toho definuje možnosti uživatelů v aplikacích. K ověřování a autorizaci uživatelů doporučujeme použít Azure Active Directory.

Sledování zabezpečení Azure Security Center pro IoT poskytuje ucelené řešení zabezpečení pro úlohy IoT a zjednodušuje jejich ochranu tím, že nabízí sjednocenou viditelnost a kontrolu, prevenci adaptivních hrozeb a inteligentní detekci hrozeb a odezvu napříč úlohami ze zařízení ze seznamu na základě hran a také přes cloudy.

Aspekty zabezpečení

Aplikace IoT by se měly sestavovat ze samostatných služeb, které se můžou nezávisle škálovat. Zvažte následující body týkající se škálovatelnosti:

IoTHub. U služby IoT Hub zvažte následující faktory škálování:

  • Maximální denní kvóta zpráv odeslaných do služby IoT Hub.
  • Kvóta připojených zařízení v jedné instanci služby IoT Hub.
  • Propustnost příjmu — jak rychle může IoT Hub přijímat zprávy.
  • Propustnost zpracování — jak rychle se příchozí zprávy zpracovávají.

Každé centrum IoT se zřizuje s určitým počtem jednotek na konkrétní úrovni. Úroveň a počet jednotek určují maximální denní kvótu zpráv, které můžou zařízení do centra odesílat. Další informace najdete v tématu Kvóty a omezování služby IoT Hub. Kapacitu centra můžete vertikálně navýšit bez přerušení stávajících operací.

Stream Analytics. Úlohy Stream Analytics se škálují nejlépe, pokud jsou v kanálu Stream Analytics paralelní ve všech bodech, od vstupu přes dotazování až po výstup. Úplně paralelní úloha umožňuje Stream Analytics rozdělit práci mezi několik výpočetních uzlů. Jinak musí Stream Analytics sloučit data streamu do jednoho místa. Další informace najdete v tématu Využití paralelizace dotazů v Azure Stream Analytics.

IoT Hub automaticky rozděluje zprávy zařízení podle ID zařízení. Všechny zprávy z určitého zařízení vždy dorazí do stejného oddílu, ale jeden oddíl bude obsahovat zprávy z několika zařízení. Proto je jednotkou paralelizace ID oddílu.

Funkce. Při čtení z koncového bodu služby Event Hubs platí maximální počet instancí funkce na oddíl centra událostí. Maximální rychlost zpracování určuje, jak rychle dokáže jedna instance funkce zpracovat události z jednoho oddílu. Funkce by zprávy měla zpracovávat v dávkách.

Cosmos DB. Pokud chcete horizontálně rozšířit kapacitu kolekce Cosmos DB, vytvořte kolekci s klíčem oddílu a vložte tento klíč oddílu do všech dokumentů, které zapisujete. Další informace najdete v tématu Osvědčené postupy při výběru klíče oddílu.

  • Pokud pro každé zařízení ukládáte a aktualizujete jeden dokument, dobrým klíčem oddílu je ID zařízení. Zápisy se rovnoměrně distribuují mezi klíče. Velikost každého oddílu je striktně omezená, protože pro každou hodnotu klíče existuje jeden dokument.
  • Pokud pro každou zprávu zařízení ukládáte samostatný dokument, použitím ID zařízení jako klíče oddílu byste rychle překročili omezení 10 GB na oddíl. V takovém případě je lepším klíčem oddílu ID zprávy. Obvykle budete do dokumentů stále vkládat ID zařízení pro účely indexování a dotazování.

Azure Time Series Insights (TSI) je služba pro analýzy, ukládání a vizualizace pro data časových řad a poskytuje možnosti zahrnující filtrování a agregaci jako SQL, což řeší nutnost uživatelsky definovaných funkcí. Time Series Insights poskytuje Průzkumník dat pro vizualizaci a dotazování dat i rozhraní REST API pro dotazy. Kromě dat Time Series je také TSI vhodná pro řešení, která vyžadují dotazování agregací pro velké datové sady dat. Díky podpoře pro vícevrstvé úložiště, bohatá rozhraní API, model a integraci s ekosystémem Azure IoT, průzkumníkem pro vizualizace a rozšiřitelnost prostřednictvím Power BI atd. TSI je naše doporučení pro ukládání a analýzu dat Time Series.

Důležité informace o zabezpečení

Důvěryhodná a zabezpečená komunikace

Všechny informace přijaté ze zařízení nebo odeslané do zařízení musí být důvěryhodné. Pokud zařízení nepodporuje následující kryptografické funkce, mělo by být omezené na místní sítě a veškerá komunikace v síti by měla procházet přes hraniční bránu:

  • Šifrování dat s využitím prokazatelně zabezpečeného, veřejně analyzovaného a běžně implementovaného symetrického šifrovacího algoritmu.
  • Digitální podpis s využitím prokazatelně zabezpečeného, veřejně analyzovaného a běžně implementovaného symetrického podpisového algoritmu.
  • Podpora protokolu TLS 1.2 pro komunikační trasy založené na protokolu TCP nebo jiném datovém proudu nebo protokolu DTLS 1.2 pro komunikační trasy založené na datagramech. Podpora zpracování certifikátů X.509 je volitelná a v případě protokolu TLS se dá nahradit za režim předsdíleného klíče s efektivnějším využitím výpočetních a přenosových prostředků, který je možné implementovat s podporou algoritmů AES a SHA-2.
  • Aktualizovatelné klíče v úložišti klíčů a na jednotlivých zařízeních. Všechna zařízení musí mít jedinečný obsah klíčů nebo tokeny, které je identifikují v systému. Klíče by měly být bezpečně uložené na samotném zařízení (například s využitím zabezpečeného úložiště klíčů). Zařízení by mělo mít možnost klíče nebo tokeny aktualizovat, a to pravidelně nebo v reakci na krizové situace, jako je narušení systému.
  • Software firmwaru a aplikací na zařízení musí umožňovat, aby aktualizace opravovaly zjištěná ohrožení zabezpečení.

Řada zařízení je však příliš omezená a těmto požadavkům nevyhovuje. V takovém případě by se měla použít hraniční brána. Zařízení se zabezpečeně připojují k hraniční bráně přes místní síť a brána umožňuje zabezpečenou komunikaci s cloudem.

Fyzická ochrana před neoprávněnou manipulací

Důrazně doporučujeme, aby návrh zařízení zahrnoval funkce, které chrání před pokusy o fyzickou manipulaci a které pomůžou zajistit integritu zabezpečení a důvěryhodnost celého systému.

Například:

  • Vyberte mikrořadiče/mikroprocesory nebo pomocný hardware, které poskytují zabezpečené úložiště a používání materiálu kryptografických klíčů, jako je integrace čipu TPM (Trusted Platform Module).
  • Zabezpečený zavaděč spouštění a zabezpečené načítání softwaru ukotvené v modulu TPM.
  • Použití senzorů, které detekují pokusy o neoprávněné vniknutí a manipulaci s prostředím zařízení, s funkcemi upozorňování a potenciálního digitálního samozničení zařízení.

Další aspekty zabezpečení najdete v tématu Architektura zabezpečení Internetu věcí (IoT).

Monitorování a protokolování

Systémy protokolování a monitorování se používají k určení, jestli řešení funguje, a pomáhají s řešením problémů. Systémy protokolování a monitorování pomáhají zodpovědět následující provozní otázky:

  • Jsou zařízení nebo systémy v chybovém stavu?
  • Jsou zařízení nebo systémy správně nakonfigurované?
  • Generují zařízení nebo systémy přesná data?
  • Splňují systémy očekávání firmy i koncových zákazníků?

Nástroje pro protokolování a monitorování se obvykle skládají z následujících čtyř komponent:

  • Nástroje pro vizualizaci výkonu systému a časových os umožňující monitorování systému a základní řešení potíží.
  • Příjem dat uložených ve vyrovnávací paměti umožňující ukládání dat protokolů do vyrovnávací paměti.
  • Úložiště trvalosti umožňující ukládání dat protokolů.
  • Možnosti vyhledávání a dotazování umožňující zobrazení dat protokolů pro účely podrobného řešení potíží.

Systémy monitorování poskytují přehledy o stavu, zabezpečení, stabilitě a výkonu řešení IoT. Tyto systémy můžou poskytovat také podrobnější zobrazení, které zaznamenává změny konfigurace komponent a poskytuje extrahovaná data protokolování, která můžou odhalit potenciální ohrožení zabezpečení, zlepšit proces správy incidentů a pomoct vlastníkovi systému řešit potíže. Komplexní řešení monitorování zahrnují možnost dotazování informací z konkrétních subsystémů nebo agregace napříč několika subsystémy.

Vývoj systému monitorování by měl začít definováním požadavků na bezproblémový provoz, dodržování legislativních předpisů a audit. Shromážděné metriky můžou zahrnovat:

  • Fyzická zařízení, hraniční zařízení a komponenty infrastruktury hlásící změny konfigurace.
  • Aplikace hlásící změny konfigurace, protokoly auditu zabezpečení, frekvence požadavků, doby odezvy, chybovosti a statistiky uvolňování paměti pro spravované jazyky.
  • Databáze, úložiště trvalosti a mezipaměti hlásící výkon při dotazování a zápisech, změny schématu, protokol auditu zabezpečení, zámky nebo zablokování, výkon indexů a využití procesorů, paměti a disků.
  • Spravované služby (IaaS, PaaS, SaaS a FaaS) hlásící metriky stavu a změny konfigurace, které ovlivňují stav a výkon závislého systému.

Vizualizace metrik monitorování upozorňují operátory na nestability systému a usnadňují reakci na incidenty.

Trasování telemetrie

Trasování telemetrie umožňuje operátorům sledovat cestu částí telemetrických dat celým systémem od jejich vytvoření. Trasování je důležité při ladění a řešení potíží. V případě řešení IoT, která využívají Azure IoT Hub a sady SDK pro zařízení IoT Hub, můžou diagramy trasování vznikat jako zprávy ve směru cloud-zařízení a vkládat se do datového proudu telemetrie.

protokolování

Systémy protokolování hrají zcela zásadní roli při zjišťování, jaké akce nebo aktivity určité řešení provedlo a k jakým chybám došlo, a můžou být nápomocné při opravě těchto chyb. Analýza protokolů může pomoct s pochopením a nápravou chybových podmínek, zlepšením výkonových charakteristik a zajištěním dodržování platných předpisů a právních úprav.

Přestože protokolování prostého textu s sebou nese menší počáteční náklady na vývoj, parsování a čtení je pro počítač složitější. Doporučujeme použít strukturované protokolování, protože shromážděné informace jsou parsovatelné počítačem i lidsky čitelné. Strukturované protokolování přidává k informacím o protokolech situační kontext a metadata. Ve strukturovaném protokolování jsou prvořadé vlastnosti formátované jako páry klíč-hodnota nebo s pevným schématem, které zlepšují možnosti vyhledávání a dotazování.

Důležité informace o DevOps

Použijte infrastrukturu jako kód (IaC). IaC je správa infrastruktury (sítí, virtuálních počítačů, nástrojů pro vyrovnávání zatížení a topologie připojení) s deklarativním přístupem. Šablony by měly být ve verzi a musí být součástí kanálu vydání. Nejspolehlivější procesy nasazení jsou automatizované a idempotentní. Jedním ze způsobů, jak vytvořit šablonu Azure Resource Manager pro zřizování prostředků IoT a infrastruktury.

K automatizaci nasazení infrastruktury můžete použít Azure DevOps Services, Jenkinse nebo jiná řešení CI/CD. Azure Pipelines je součástí Azure DevOps Services a spouští automatizovaná sestavení, testy a nasazení.

Zvažte fázování úloh nasazením do různých fází a spuštěním ověření v každé fázi, než se přesunete k další fázi. Tímto způsobem můžete nabízení aktualizací do produkčních prostředí vysoce řízeným způsobem a minimalizovat neočekávané problémy s nasazením. Modro-zelené nasazení a testovací verze jsou doporučené strategie nasazení pro aktualizaci živých produkčních prostředí. Zvažte také dobrou strategii vrácení zpět v případě selhání nasazení. Můžete například automaticky znovu nasadit dřívější úspěšné nasazení z historie nasazení. Dobrým příkladem je parametr příznaku --rollback-on-error v Azure CLI.

Zvažte monitorování řešení pomocí Azure Monitor. Azure Monitor hlavním zdrojem monitorování a protokolování pro všechny služby Azure, poskytuje diagnostické informace pro prostředky Azure. Můžete například monitorovat operace, které prochádí ve vašem centru IoT. Existují konkrétní metriky a události, Azure Monitor podporují, a také služby, schémata a kategorie pro diagnostické protokoly Azure.

Další informace najdete v části DevOps v tématu Microsoft Azure Well-Architected Framework.

Důležité informace o nákladech

Obecně platí, že k odhadu nákladů použijte cenovou kalkulačku Azure. Další důležité informace jsou popsány v části Náklady v Microsoft Azure Well-Architected Framework.

Existují způsoby, jak optimalizovat náklady související se službami používanými v této referenční architektuře.

Azure IoT Hub

V této architektuře IoT Hub cloudová brána, která ingestuje události ze zařízení. IoT Hub se liší v závislosti na typu operace. Vytvoření, aktualizace, vložení a odstranění jsou zdarma. Účtují se úspěšné operace, jako jsou zprávy zařízení-cloud a cloud-zařízení.

Úspěšné odeslání zpráv ze zařízení do cloudu se při příchozím přenosu dat do cloudu účtují v 4kB IoT Hub. Například 6kB zpráva se účtuje jako dvě zprávy.

IoT Hub uchovává informace o stavu každého připojeného zařízení v dokumentu JSON dvojčete zařízení. Účtují se operace čtení z dokumentu s dvojitou podmnožinou zařízení.

IoT Hub nabízí dvě úrovně: Basic a Standard.

Pokud vaše architektura IoT používá možnosti obousměrné komunikace, zvažte použití úrovně Standard . Tato vrstva také nabízí bezplatnou edici, která je pro účely testování nejvíce vhodná.

Pokud potřebujete jenom jednosměrnou komunikaci ze zařízení do cloudu, použijte úroveň Basic , která je levnější.

Další informace najdete v tématu IoT Hub ceny.

Azure Stream Analytics

Azure Stream Analytics se používá pro vyhodnocení zpracování a pravidel streamování. Ceny Azure Stream Analytics se účtují podle počtu jednotek streamování (SU) za hodinu, které přicházejí do výpočtů, paměti a propustnosti potřebných ke zpracování dat. Azure Stream Analytics na IoT Edge se účtuje na úlohu. Fakturace začíná při nasazení Stream Analytics úlohy do zařízení bez ohledu na stav úlohy, spuštění, selhání nebo zastavení.

Další informace o cenách najdete v tématu Stream Analytics ceny.

Azure Functions

Azure Functions slouží k transformaci dat poté, co dosáhne IoT Hub. Z hlediska nákladů je doporučeno použít plán spotřeby , protože platíte pouze za výpočetní prostředky, které používáte. Poplatky se účtují na základě využití prostředků za sekundu pokaždé, když událost aktivuje provedení funkce. Zpracování několika událostí v jednom provedení nebo dávkách může snížit náklady.

Azure Logic Apps

V této architektuře se Logic Apps používá pro integraci obchodních procesů.

Ceny Logic Apps fungují na modelu průběžných plateb. Triggery, akce a spuštění konektoru jsou měřeny pokaždé, když se spustí aplikace logiky. Všechny úspěšné a neúspěšné akce, včetně triggerů, se považují za spuštění.

Například vaše aplikace logiky zpracovává 1000 zpráv denně. Pracovní postup pěti akcí bude stát méně než 6 USD.

Další informace najdete v tématu Logic Apps ceny.

Úložiště dat

Pro studené úložiště cest Azure Blob Storage nákladově nejefektivnější možnost.

V případě teplého úložiště cest zvažte použití Azure Cosmos DB. Další informace najdete v tématu Cosmos DB .

Další kroky