Najlepsze rozwiązania dotyczące architektury dla usługi Azure IoT Hub
Azure IoT Hub to zarządzana usługa oparta na chmurze, która służy jako centralne centrum komunikatów do komunikacji między aplikacją IoT a połączonymi urządzeniami. Możesz niezawodnie połączyć niemal każde urządzenie i jego rozwiązania zaplecza z centrum IoT na dużą skalę.
W tym artykule założono, że jako architekt zapoznaliśmy się z technologiami i usługami , których można użyć do tworzenia rozwiązań IoT i wybrania usługi IoT Hub jako usługi platformy Azure IoT dla obciążenia. Wskazówki zawarte w tym artykule oferują zalecenia architektoniczne odnoszące się do zasad filarów Well-Architected Framework.
Ważny
Jak używać tego przewodnika
Każda sekcja zawiera listę kontrolną projektu , która przedstawia zagadnienia dotyczące architektury wraz ze strategiami projektowania zlokalizowanymi w zakresie technologii.
Dostępne są również zalecenia dotyczące możliwości technologicznych, które mogą pomóc zmaterializować te strategie. Zalecenia nie reprezentują wyczerpującej listy wszystkich konfiguracji dostępnych dla usługi IoT Hub i jej zależności. Zamiast tego przedstawiają listę kluczowych zaleceń odnoszących się do perspektyw projektowania. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.
zakres technologii
Ten przegląd koncentruje się na powiązanych decyzjach dotyczących następujących zasobów platformy Azure:
- Azure IoT Hub
- Usługa Azure IoT Hub Device Provisioning Service (DPS)
- Usługa Azure Device Update dla usługi IoT Hub
- Azure IoT Edge
- Azure Digital Twins
- Azure Sphere
- Usługa Microsoft Defender dla IoT
Niezawodność
Celem filaru niezawodności jest zapewnienie ciągłej funkcjonalności przez budowanie wystarczającej odporności i możliwość szybkiego odzyskiwania po awariach.
zasady projektowania niezawodności zapewniają ogólną strategię projektowania stosowaną dla poszczególnych składników, przepływów systemowych i całego systemu.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem niezawodności. Określ jego znaczenie dla wymagań biznesowych, pamiętając o wydajności usługi IoT Hub. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
Projektowanie urządzeń pod kątem odporności. Zaprojektuj urządzenia, aby spełniały wymagania dotyczące czasu pracy i dostępności kompleksowego rozwiązania. Upewnij się, że urządzenie IoT może działać wydajnie z sporadycznymi połączeniami z chmurą.
Projektowanie pod kątem wymagań biznesowych. Rozważ konsekwencje związane z kosztami wprowadzania modyfikacji architektury w celu spełnienia umów dotyczących poziomu usług. Na przykład w celu zwiększenia niezawodności i wysokiej dostępności można zaimplementować redundancje między regionami oraz automatyczny system skalowania. Uważnie zastanów się nad kompromisami.
Implementowanie bezpiecznych, prostych procedur aktualizacji. Utwórz strategię dla operatorów do zarządzania urządzeniami w rozwiązaniu IoT przedsiębiorstwa. Operatory IoT wymagają prostych i niezawodnych narzędzi i rozwiązań aktualizacji.
Obserwowanie kondycji aplikacji. Zdefiniuj wskaźniki poziomu usług (SLI) i cele poziomu usług (SLO) na podstawie możliwości obserwowania. Dodaj procesy inspekcji, monitorowania i alertów oprócz procesów uwzględnionych w usłudze IoT Hub.
Implementowanie wysokiej dostępności i odzyskiwania po awarii dla krytycznych składników. Zaplanuj odporne komponenty sprzętowe i programowe, które zwiększają nadmiarowość, w tym nadmiarowość międzyregionalną.
Planowanie pojemności. Zaplanuj przydziały i ograniczenia usług oraz uwzględnij opóźnienia występujące między wykrywaniem a akcją. Ustanów testy porównawcze w skali produkcyjnej w celu zapewnienia nieprzerwanego przepływu danych.
Zalecenia
Zalecenie | Korzyść |
---|---|
Oblicz wymaganą pojemność usługi IoT Hub, taką jak liczba komunikatów dziennie i inne limity. Jeśli obciążenie ma zmienne wymagania dotyczące pojemności, zaimplementuj mechanizm skalowania automatycznego, aby zwiększyć i zmniejszyć pojemność na podstawie zapotrzebowania. Aby uzyskać więcej informacji, zobacz Wybieranie odpowiedniej warstwy i rozmiaru usługi IoT Hub dla rozwiązania. | Dynamiczne skalowanie pomaga zoptymalizować użycie zasobów. Pomaga to zagwarantować, że rozwiązanie pozostanie elastyczne i niezawodne bez nadmiernej aprowizacji zasobów. |
Dodaj strategię ponownego łączenia urządzenia do usługi IoT Hub, aby zaprojektować odporne aplikacje. Aby uzyskać więcej informacji, zobacz Zarządzanie ponownymi połączeniami urządzeń. | Urządzenia IoT często polegają na sporadycznych lub niestabilnych połączeniach sieciowych. Strategia ponownego łączenia umożliwia odzyskanie obciążenia bez interwencji użytkownika, co zwiększa dostępność. |
Oceń kompromisy różnych opcji wysokiej dostępności i odzyskiwania po awarii w usłudze IoT Hub. W zależności od celów czasu pracy rozwiązania IoT określ opcje, które najlepiej odpowiadają celom biznesowym. Wybierz między trybem failover zainicjowanym przez firmę Microsoft, trybem ręcznym failoveri wysoką dostępnością między regionami. | Strategia failover ułatwia szybkie przełączenie obciążenia na instancję zapasową, co minimalizuje wpływ na użytkowników i operacje biznesowe. |
Użyj DPS , aby zarządzać urządzeniami i przypisywać je do centrum IoT. | DPS to usługa wspomagająca, która umożliwia aprowizację zero-touch typu just-in-time bez konieczności interwencji człowieka. Usługa DPS umożliwia aprowizację milionów urządzeń w sposób wysoce bezpieczny i skalowalny. |
Użyj usługi Device Update w usłudze IoT Hub do zarządzania bezprzewodowymi aktualizacjami dla urządzeń IoT. Upewnij się, że strategia aktualizacji obejmuje stopniowe wdrażanie, odporne aktualizacje A/B, szczegółowe zarządzanie i narzędzia do raportowania. | Takie podejście pomaga zapewnić bezpieczne, bezpieczne i niezawodne aktualizacje dla urządzeń IoT, co zmniejsza przestoje i poprawia wydajność operacyjną. Pomaga zachować zgodność urządzeń i szybko zidentyfikować i rozwiązać błędy aktualizacji, co zwiększa ogólną niezawodność systemu. |
Zaimplementuj rozwiązania DevOps, aby zarządzać rozwiązaniami IoT, w tym ciągłą integracją i ciągłym wdrażaniem (CI/CD), monitorowaniem i automatycznymi aktualizacjami. — Użyj metodyki DevOps, aby skompilować i zwolnić aplikacje usługi IoT Edge. — Użyj Azure Monitor, aby monitorować i pobierać alerty z danych zbieranych przez usługę IoT Hub. — Użyj automatycznego zarządzania urządzeniami w usłudze IoT Hub, aby zautomatyzować zarządzanie urządzeniami na dużą skalę. |
Rozwiązania DevOps zwiększają niezawodność i wydajność rozwiązań IoT. Umożliwiają one szybkie wdrażanie, ciągłe monitorowanie i automatyczne aktualizacje. Te funkcje zmniejszają przestoje, zwiększają wydajność systemu oraz wdrażają aktualizacje i zmiany w bezpieczny i spójny sposób. |
Bezpieczeństwo
Celem filaru Zabezpieczenia jest zapewnienie poufności, integralności i dostępności gwarancji dla pracy.
Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów, stosując podejścia do projektu technicznego usługi IoT Hub.
Lista kontrolna projektu
Rozpocznij strategię projektowania w oparciu o listę kontrolną przeglądu projektu dla zabezpieczeń i identyfikuj luki w zabezpieczeniach oraz mechanizmy kontroli, aby podnieść poziom bezpieczeństwa. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
Użyj silnej tożsamości do uwierzytelniania urządzeń i użytkowników. Zaimplementuj rozwiązania w celu zwiększenia bezpieczeństwa. Na przykład należy:
- Posiadaj sprzętowy rdzeń zaufania dla zaufanej tożsamości.
- Rejestrowanie urządzeń.
- Wystawianie poświadczeń odnawialnych.
- Użyj uwierzytelniania bez hasła lub wieloskładnikowego (MFA).
Automatyzowanie i używanie kontroli dostępu z najniższymi uprawnieniami. Ogranicz wpływ naruszonych urządzeń, tożsamości lub niezatwierdzonych zadań.
Oceń kondycję urządzenia. Oceń kondycję urządzenia, aby kontrolować dostęp lub identyfikować urządzenia do korygowania. Sprawdź konfiguracje zabezpieczeń, oceń luki w zabezpieczeniach i niezabezpieczone hasła, monitoruj zagrożenia i anomalie oraz twórz bieżące profile ryzyka.
Zaimplementuj aktualizacje urządzeń. Implementowanie ciągłych aktualizacji w celu zachowania dobrej kondycji urządzeń. Użyj scentralizowanego rozwiązania do zarządzania konfiguracją i zgodnością oraz niezawodnego mechanizmu aktualizacji, aby upewnić się, że urządzenia są up-to—data i dobra kondycja.
Monitorowanie zabezpieczeń systemu i planowanie reagowania na zdarzenia. Proaktywne monitorowanie nieautoryzowanych lub zagrożonych urządzeń oraz reagowanie na pojawiające się zagrożenia.
Upewnij się, że połączenia są wysoce bezpieczne. Upewnij się, że wszystkie dane przesyłane między urządzeniem IoT a usługami IoT w chmurze są poufne i odporne na naruszenia.
Zalecenia
Zalecenie | Korzyść |
---|---|
Zastosuj kryteria zerowego zaufania dla urządzeń. Urządzenia łączące się z usługą IoT Hub powinny: — Zawiera sprzętowy moduł zabezpieczeń w celu zapewnienia silnej tożsamości. - Wykorzystaj poświadczenia odnawialne. — Wymuszanie kontroli dostępu z najniższymi uprawnieniami. - Emituj odpowiednie sygnały zdrowotne dla dostępu warunkowego. — Powiadom operatorów, aby odwołali urządzenie z usługi IoT Hub w przypadku naruszenia zabezpieczeń. Urządzenia powinny zawierać następujące elementy: - Aktualizuj agentów odpowiedzialnych za aktualizacje zabezpieczeń. — Możliwości zarządzania urządzeniami na potrzeby konfiguracji opartej na chmurze i zautomatyzowanej reakcji na zabezpieczenia. - Tylko niezbędne funkcje umożliwiają zminimalizowanie fizycznego śladu ataku. - ochrona danych magazynowanych za pomocą standardowych algorytmów szyfrowania. |
Kryteria zerowego zaufania dla urządzeń łączących się z usługą IoT Hub zwiększają bezpieczeństwo i niezawodność. Sprzętowe moduły zabezpieczeń, poświadczenia odnawialne i najmniej uprzywilejowana kontrola dostępu minimalizują nieautoryzowany dostęp i naruszone urządzenia. Sygnały zdrowotne dla agentów dostępu warunkowego i aktualizacji pomagają zapewnić, że urządzenia pozostają bezpieczne i zgodne z normami. Zarządzanie urządzeniami opartymi na chmurze i automatyczna odpowiedź na zabezpieczenia, a także agenci zabezpieczeń, wzmacniają stan zabezpieczeń. Niewielki ślad podczas ataków fizycznych i ochrona danych magazynowanych chroni poufne informacje i pomaga zachować integralność systemu. |
Użyj certyfikatów X.509 do uwierzytelniania urządzeń w usłudze IoT Hub. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie tożsamości przy użyciu certyfikatów X.509. | Uwierzytelnianie oparte na architekturze X.509 w środowiskach produkcyjnych zapewnia większe bezpieczeństwo w porównaniu z tokenami zabezpieczającymi. |
Zastosuj koncept warstwowego dostępu o najmniejszych uprawnieniach dla urządzeń IoT. Użyj segmentacji sieci do grupowania urządzeń IoT. Ta praktyka ogranicza wpływ potencjalnego naruszenia zabezpieczeń. Można na przykład połączyć urządzenia IoT z "siecią IoT" dla urządzeń, takich jak drukarki, telefony VoIP i telewizory inteligentne. Zachowaj tę sieć IoT oddzielnie od innych zasobów organizacji, do których uzyskują dostęp pracownicy. Mikrosegmentacja sieci umożliwia logiczne oddzielenie dedykowanych środowisk technologii operacyjnych od sieci firmowej technologii informatycznej. Aby utworzyć tę separację, użyj architektury sieci obwodowej, która obejmuje zapory. Dojrzałe organizacje mogą również implementować zasady mikro segmentacji w wielu warstwach modelu Purdue, zazwyczaj przy użyciu zapór nowej generacji. |
Segmentacja sieci grupuje urządzenia IoT, które mogą ograniczyć wpływ naruszenia zabezpieczeń. Mikrosegmentacja sieci izoluje mniej wydajne urządzenia w warstwie sieciowej, za bramą lub na osobnym segmencie sieci. |
Użyj usługi Microsoft Defender dla IoT jako pierwszej linii obrony, aby ułatwić ochronę zasobów na platformie Azure. Defender for IoT to bez agentów platforma zabezpieczeń warstwy sieciowej, która zapewnia ciągłe odnajdywanie zasobów, zarządzanie lukami w zabezpieczeniach i wykrywanie zagrożeń dla urządzeń IoT. |
Usługa Defender for IoT zapewnia ciągłe monitorowanie i wykrywanie zagrożeń w celu szybkiego identyfikowania nieautoryzowanych lub naruszonych urządzeń. Zwiększa ona ogólne bezpieczeństwo i odporność sieci IoT. |
Użyj usługi IoT Hub z usługą Azure Sphere jako moduł ochrony, aby pomóc zabezpieczyć inne urządzenia, w tym istniejące starsze systemy, na których nie można polegać na zaufanej łączności. Moduł ochrony usługi Azure Sphere wdraża się razem z aplikacją i łączy się z istniejącymi urządzeniami przez Ethernet, port szeregowy lub Bluetooth Low Energy (BLE). Urządzenia nie muszą mieć bezpośredniej łączności z Internetem. |
Moduł ochrona usługi Azure Sphere umożliwia zaimplementowanie wysoce bezpiecznej łączności na istniejących urządzeniach bez uwidaczniania tych urządzeń w Internecie. Ta ochrona obejmuje zaszyfrowaną transmisję danych, wysoce bezpieczne aktualizacje systemu operacyjnego i aplikacji oraz uwierzytelnianie w celu zapewnienia komunikacji tylko z zaufanymi hostami. |
Użyj bram IoT Edge, aby wymusić silne wzorce tożsamości dla urządzeń o ograniczonych możliwościach. Usługa IoT Edge zapewnia połączenie środowiska uruchomieniowego brzegowego z usługą IoT Hub i obsługuje certyfikaty jako silne tożsamości urządzeń. Usługa IoT Edge obsługuje standard PKCS#11 dla tożsamości produkcyjnych urządzeń i innych tajemnic w module TPM (Trusted Platform Module) lub sprzętowym module zabezpieczeń. |
Bramy usługi IoT Edge pomagają wymuszać silne wzorce tożsamości, dzięki czemu tylko uwierzytelnione i autoryzowane urządzenia mogą komunikować się w sieci. Ta funkcja zwiększa bezpieczeństwo i integralność ekosystemu IoT. |
Optymalizacja kosztów
Optymalizacja kosztów koncentruje się na wykrywaniu wzorców wydatków, określaniu priorytetów inwestycji w krytycznych obszarach i optymalizacji w innych w celu spełnienia budżetu organizacji przy jednoczesnym spełnieniu wymagań biznesowych.
Zasady projektowania optymalizacji kosztów zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów i podejmowania kompromisów zgodnie z potrzebami w projekcie technicznym związanym z usługą IoT Hub i jego środowiskiem.
Lista kontrolna projektu
Rozpocznij swoją strategię projektowania, opierając się na liście kontrolnej przeglądu projektu pod kątem optymalizacji kosztów inwestycji. Dostosuj projekt tak, aby obciążenie było dostosowane do budżetu przydzielonego dla obciążenia. Projekt powinien korzystać z odpowiednich możliwości platformy Azure, monitorować inwestycje i znajdować możliwości optymalizacji w czasie.
Opracowywanie dyscypliny zarządzania kosztami. Aby zrozumieć całkowity koszt posiadania (TCO), należy uwzględnić zarówno koszty funkcjonalne, jak i niefunkcjonalne w planie.
Używaj standardowych strategii i podejść branżowych. W przypadku branż specyficznych dla IoT, takich jak produkcja, należy zastosować standardowe branżowe strategie i podejścia do budowy struktur, systemów IoT, inteligentnych miast lub sieci energetycznych. Takie podejście pomaga zoptymalizować koszty.
Omówienie kosztów ochrony rozwiązania IoT. Usługa IoT obejmuje cały proces, od sprzętu do usług w chmurze, dzięki czemu na każdym etapie są naliczane koszty związane z zabezpieczeniami. Na przykład można ponieść koszty jednostek mikroprocesora (MPU), urządzeń, technologii telekomunikacyjnych, technologii chmury i technologii operacyjnej.
Projektowanie pod kątem optymalizacji szybkości. Zdefiniuj plany implementacji dla każdego ogólnego zagadnienia dotyczącego rozwiązania IoT w celu optymalizacji kosztów.
Monitorowanie i optymalizowanie w czasie. Ciągłe monitorowanie i optymalizowanie kosztów usługi IoT Hub. Po wdrożeniu rozwiązania należy wykonywać bieżące działania optymalizacji kosztów.
Szacowanie realistycznych kosztów. Wybierz odpowiednią warstwę i rozmiar usługi IoT Hub dla faz rozwoju i operacyjnych rozwiązania IoT.
Ocena kosztów jednorazowych w porównaniu z kosztami cyklicznymi. Rozważ korzyści związane z kosztami jednorazowymi w porównaniu z kosztami cyklicznymi. Na przykład techniki hackingu stale ewoluują, dzięki czemu można użyć niezawodnego komercyjnego systemu operacyjnego i modułu, takiego jak Azure Sphere. W przypadku jednorazowej płatności takie usługi zapewniają bieżące miesięczne poprawki zabezpieczeń urządzeń.
Optymalizowanie użycia zasobów. Zaimplementuj mechanizmy skalowania automatycznego , aby dostosować pojemność usługi IoT Hub na podstawie zapotrzebowania. Takie podejście pomaga zapewnić efektywne użycie zasobów i kontrolę kosztów.
Użyj pojemności zarezerwowanej. Oceń rozmiar i częstotliwość ładunków komunikatów, aby upewnić się, że IoT Hub jest odpowiednio dostosowany i przygotowany do skalowania.
Implementowanie alertów dotyczących kosztów i budżetów. Konfigurowanie alertów kosztów i budżetów w usłudze Microsoft Cost Management w celu efektywnego śledzenia i kontrolowania wydatków. Użyj interfejsów API zarządzania kosztami dla IoT Hub i DPS.
Zalecenia
Zalecenie | Korzyść |
---|---|
Zapoznaj się z limitami przydziałów usługi IoT Hub i ograniczeniami przepustowości oraz z tym, jak wpływają na całkowity koszt posiadania, gdy rozwiązanie działa na dużą skalę w środowisku produkcyjnym. Model kosztów powinien uwzględniać urządzenia, infrastrukturę, operacje i monitorowanie na dużą skalę w środowisku produkcyjnym. |
Każda usługa ma własny zestaw przydziałów i limitów ograniczania przepustowości. Zapoznaj się z tymi limitami w usłudze IoT Hub, aby zoptymalizować koszty. |
Poznaj ekosystem urządzeń i różne zaangażowane role, takie jak producenci sprzętu, deweloperzy aplikacji i operatorzy do planowania. Urządzenia mogą wahać się od małych 8-bitowych procesorów MCU do zaawansowanych procesorów x86, takich jak te znajdujące się na komputerach stacjonarnych. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące konfiguracji urządzeń w ramach rozwiązania IoT. Wybrany sprzęt zależy od wielu zmiennych. Zapoznaj się z kluczowymi modułami różnicowymi sprzętowymi na urządzeniu IoT, aby zmniejszyć koszty. |
Zrozumienie zakresu urządzeń i kluczowych różnic sprzętowych ułatwia efektywniejsze przydzielanie zasobów. Gwarantuje to, że używasz odpowiednich urządzeń do właściwych zadań, co prowadzi do lepszej wydajności i wydajności kosztów. |
Użyj IoT Plug and Play, aby skrócić czas opracowywania sprzętu i wdrażania. Zaadoptuj ontologię przemysłową Digital Twin Definition Language (DTDL), który jest modelem używanym przez urządzenie do przedstawiania jego możliwości w aplikacji obsługującej IoT Plug and Play. | Konstruktorzy rozwiązań mogą używać usługi IoT Plug and Play do integracji urządzeń IoT z usługą IoT Hub bez ręcznej konfiguracji. |
Użyj usługi Device Update dla IoT Hub, aby dostarczać bezprzewodowe aktualizacje i zdalnie zarządzać urządzeniami. | Rozwiązanie do zdalnej aktualizacji oprogramowania układowego lub oprogramowania urządzenia pomaga zmniejszyć długoterminowe koszty pracy ręcznej. |
Używaj łączników dla usług platformy Azure, takich jak Power Apps, Power Automate i Azure Logic Apps. Usługi IoT Hub i Azure Event Grid razem zapewniają łączniki do implementacji wymagań w ramach Logic Apps i Power Automate. |
Łączniki umożliwiają bezproblemową integrację między urządzeniami IoT i różnymi usługami platformy Azure, co umożliwia zautomatyzowane przepływy pracy i ulepszone możliwości przetwarzania danych. |
Użyj symulatorów urządzeń i skonfiguruj środowisko testowania obciążenia, aby przetestować rozwiązanie na dużą skalę produkcyjną i zrozumieć koszt rozwiązania. Przykłady kodu symulacji, takie jak Symulator telemetrii urządzenia Azure IoT, ułatwiają testowanie i szacowanie kosztów na dużą skalę przy użyciu różnych parametrów. |
Symulatory urządzeń mogą pomóc w oszczędzaniu kosztów na dużą skalę w modelu, testowaniu i symulowaniu wyników w scenariuszu. |
Aby zmniejszyć rozmiary i koszty transmisji: - Wybierz odpowiedni protokół dla urządzeń IoT. - Kompresuj dane telemetryczne na brzegu sieci. - komunikaty grupowe na urządzeniu. - Wybierz między utrzymywaniem aktywnych połączeń lub ponownym ich nawiązywaniem, gdy urządzenia się wybudzają. Jeśli koszt jest krytyczny, użyj funkcji bliźniaczej urządzenia , aby asynchronicznie wymieniać informacje o stanie. W przypadku urządzeń IoT zasilanych z baterii można wybrać między utrzymywaniem połączeń żywych lub ponownym łączeniem, gdy urządzenia się budzą. Użyj komunikatów o zachowaniu aktywności lub komunikatów pulsu, aby sprawdzić stan urządzenia, ale rozważ dodatkowe koszty transmisji sieci. Ponowne nawiązywanie połączenia używa około 6 KB danych w celu nawiązania połączenia TLS, uwierzytelnienia urządzenia i pobrania bliźniaka urządzenia. Ale oszczędza pojemność baterii, jeśli urządzenie budzi się tylko raz lub dwa razy dziennie. |
Optymalny protokół dla danego scenariusza umożliwia urządzeniom zmniejszenie rozmiarów transmisji i kosztów w warstwie transportu. |
Dowiedz się, jak używać analizy ścieżek gorących, ciepłych i zimnych na potrzeby danych IoT oraz stosować architekturę lambda . Użyj wbudowanej funkcji routingu komunikatów w usłudze IoT Hub. | Rozwiązania IoT mogą przechowywać duże ilości danych. Koszty magazynu stanowią dużą część ogólnego kosztu rozwiązania. Wybierz odpowiedni plan przetwarzania i magazynu na podstawie scenariusza biznesowego. |
Doskonałość operacyjna
Doskonałość operacyjna koncentruje się przede wszystkim na procedurach dotyczących praktyk programistycznych, możliwości obserwacji i zarządzania wydaniami.
Zasady projektowania doskonałości operacyjnej zapewniają strategię wysokopoziomowego projektowania w celu osiągnięcia tych celów dla wymagań operacyjnych obciążenia roboczego.
Lista kontrolna projektu
Rozpocznij strategię projektowania opartą na liście kontrolnej przeglądu projektu dla Doskonałości Operacyjnej w celu definiowania procesów obserwowalności, testowania i wdrażania związanych z IoT Hub.
Angażuj się w operacje ciągłe i skalowanie. Upewnij się, że rozwiązanie IoT może:
- Pomyślnie zarządzaj automatyczną aprowizacją urządzeń.
- Integracja z innymi systemami zaplecza.
- Obsługa różnych ról, takich jak deweloperzy rozwiązań, administratorzy rozwiązań i operatorzy.
- Wydajne dostosowywanie i skalowanie zmian na żądanie, takich jak nowo wdrożone urządzenia IoT lub większa przepływność pozyskiwania.
Optymalizowanie procesów kompilacji i wydawania. Pomyślne rozwiązanie IoT dla przedsiębiorstwa wymaga strategii do ustanowienia i aktualizacji konfiguracji pojedynczego urządzenia lub floty urządzeń. Konfiguracja urządzenia obejmuje właściwości urządzenia, ustawienia połączenia, relacje i oprogramowanie układowe. Operatorzy IoT wymagają prostych i niezawodnych narzędzi do aktualizowania konfiguracji urządzenia lub floty urządzeń w dowolnym momencie w okresie istnienia urządzenia.
Omówienie kondycji operacyjnej. Użyj rejestrowania, monitorowania i alertów rozwiązań IoT, aby określić, czy rozwiązanie działa zgodnie z oczekiwaniami i pomaga w rozwiązywaniu problemów w całym cyklu życia rozwiązania.
Użyj automatyzacji i metodyki DevOps. Urządzenie IoT jest zasadniczo małym komputerem, który ma wyspecjalizowany sprzęt i oprogramowanie. Urządzenia IoT są często ograniczone w sprzęcie. Na przykład mogą mieć ograniczoną pamięć lub pojemność obliczeniową. Automatyzacja i metodyka DevOps pomagają zapewnić prawidłowe przekazywanie i wdrażanie systemu operacyjnego i oprogramowania na urządzeniach i bramach IoT, co minimalizuje przestoje operacyjne. Automatyzacja i metodyka DevOps umożliwiają monitorowanie cyklu życia urządzeń IoT i zarządzanie nimi.
Zalecenia
Zalecenie | Korzyść |
---|---|
Użyj automatyczne zarządzanie urządzeniami usługi IoT Hub lub automatycznych wdrożeń usługi IoT Edge w celu zaimplementowania ciągłych aktualizacji istniejących lub nowych urządzeń oraz konfiguracji urządzeń usługi IoT Edge, takich jak właściwości, ustawienia specyficzne dla aplikacji lub relacje. Aby zaktualizować istniejące urządzenie lub konfigurację urządzenia IoT Edge na podstawie jednorazowego lub cyklicznego harmonogramu, użyj zaplanowanych zadań IoT Hub. Aby zaktualizować istniejące oprogramowanie układowe urządzenia, oprogramowanie układowe usługi IoT Edge, aplikację lub aktualizacje pakietów bezprzewodowo, użyj Device Update dla usług IoT Hub. Mają ręczną metodę aktualizacji dla urządzeń IoT. Ze względu na zmiany certyfikatu głównego lub problemy z łącznością może być konieczne ręczne zaktualizowanie urządzeń przez fizyczne połączenie z komputerem lokalnym lub przy użyciu lokalnego protokołu łączności, takiego jak BLE. |
Automatyczne zarządzanie urządzeniami w usłudze IoT Hub i automatyczne wdrożenia usługi IoT Edge zapewniają wysoce wydajny, bezpieczny i niezawodny sposób automatyzowania wdrożeń konfiguracji dla floty lub określonej grupy urządzeń. Aby zapewnić, że urządzenia mają określone konfiguracje, usługi stale monitorują nowe i istniejące docelowe urządzenia oraz ich konfiguracje na podstawie tagów. Zaplanowane zadania usługi IoT Hub zapewniają optymalny sposób aktualizowania konfiguracji dla floty lub określonej grupy urządzeń w zaplanowanym czasie. Usługa Device Update dla usługi IoT Hub efektywnie aktualizuje flotę lub określoną grupę urządzeń. |
Skonfiguruj warstwę gromadzenia danych i inne warstwy zaplecza rozwiązania chmurowego IoT w celu efektywnego obsługiwania oczekiwanych i nieoczekiwanych potrzeb pojemności. Jeśli twoje rozwiązanie jest połączone z połączonym produktem, upewnij się, że może obsługiwać wahania oczekiwanego obciążenia w usłudze IoT Hub i skojarzonych warstwach zaplecza. | Inicjatywy marketingowe, takie jak sprzedaż lub promocje, i wydarzenia sezonowe, takie jak święta, mogą wprowadzać szczyty obciążenia. Aby upewnić się, że rozwiązanie może być skalowane w celu obsługi szczytów, przetestuj odmiany obciążenia pod kątem oczekiwanych i nieoczekiwanych zdarzeń. |
Utwórz scentralizowany interfejs użytkownika zarządzania przy użyciu interfejsów API REST uwidocznionych w interfejsach API REST usługi IoT Hub, aby ułatwić zespołom operacyjnym zarządzanie flotami urządzeń. | Scentralizowane rozwiązanie do zarządzania urządzeniami usprawnia administrowanie, monitorowanie i działanie urządzeń IoT, co pomaga zapewnić efektywne zarządzanie cyklem życia i spójną konfigurację rozwiązania IoT. Zintegrowany interfejs użytkownika pomaga również zespołom operacyjnym efektywnie zarządzać flotami urządzeń, co zmniejsza złożoność operacyjną i zwiększa ogólną niezawodność systemu. |
Użyj scentralizowanego dostawcy tożsamości, takiego jak Microsoft Entra ID, aby utworzyć tożsamości zarządzane . Zezwalaj tylko odpowiednim użytkownikom w tych rolach na wykonywanie działań związanych z zarządzaniem lub operacją, takich jak tworzenie i aprowizowanie nowych urządzeń, wysyłanie poleceń do sprzętu w terenie, wdrażanie aktualizacji i modyfikowanie uprawnień użytkownika. | Identyfikator Entra firmy Microsoft na potrzeby uwierzytelniania zapewnia lepsze zabezpieczenia i łatwość użycia w porównaniu z tradycyjnymi tokenami zabezpieczającymi. Aby kontrolować dostęp do usługi IoT Hub, możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure w usłudze Microsoft Entra ID. |
W rozwiązaniu opartym na usłudze IoT Hub możesz użyć identyfikatora Entra firmy Microsoft do uwierzytelniania żądań w interfejsach API usługi IoT Hub, takich jak tworzenie tożsamości urządzeń lub wywoływanie metod bezpośrednich. Możesz opracować niestandardowy interfejs użytkownika zarządzania dla operatorów rozwiązań i administratorów. Ten interfejs użytkownika uwierzytelnia użytkowników względem identyfikatora Entra firmy Microsoft i wysyła żądania interfejsu API do zaplecza rozwiązania IoT w ich imieniu. | Niestandardowe interfejsy użytkownika do zarządzania poprawiają bezpieczeństwo przez uwzględnienie kontroli dostępu opartej na rolach oraz innych zabezpieczeń. Usprawniają one również środowisko użytkownika, zapewniając intuicyjne interfejsy, które upraszczają złożone zadania. |
Użyj systemów rejestrowania, monitorowania i alertowania usługi IoT Hub, aby określić, czy rozwiązanie działa zgodnie z oczekiwaniami oraz pomaga w rozwiązywaniu problemów. Aby uzyskać więcej informacji na temat metryk i dzienników tworzonych przez usługę IoT Hub, zobacz dokumentacja danych monitorowania usługi IoT Hub. | Monitorowanie i rejestrowanie pomaga określić, czy urządzenia lub systemy napotykają błędy, są prawidłowo skonfigurowane, generują dokładne dane i spełniają zdefiniowane SLO. |
Użyj zasad i procesów DevOps CI/CD, aby zwiększyć produktywność i utworzyć bezproblemowy szybki cykl rozwoju oprogramowania. Wdrażanie metodyki DevOps dla aplikacji usługi IoT Edge przy użyciu wbudowanych zadań usługi IoT Edge w usłudze Azure Pipelines. Aby uzyskać więcej informacji, zobacz CI/CD do urządzeń IoT Edge. | Narzędzia i procesy DevOps w usługach IoT Hub i IoT Edge ułatwiają automatyzację cyklu życia oprogramowania brzegowego. |
Zdefiniuj proces ponownego udostępniania i wycofywania urządzeń IoT. Aby uzyskać więcej informacji. zobacz pojęcia dotyczące ponownego aprowizowania urządzeń IoT Hub. Cykl życia urządzenia IoT obejmuje definiowanie procedur ponownego aprowizowania istniejących urządzeń w innych lokalizacjach lub celach i bezpieczne anulowanie aprowizacji w razie potrzeby. | Proces ponownej aprowizacji i anulowania aprowizacji dla urządzeń IoT ułatwia zarządzanie ich cyklem życia. Te procesy pomagają zachować ciągłość operacji podczas migrowania informacji o stanie urządzenia i konfiguracji między centrami IoT. Ta praktyka pomaga zapewnić, że urządzenia będą nadal działać prawidłowo po przeniesieniu. |
Przetestuj przełączenie awaryjne i przywracanie po awarii usługi IoT Hub w celu zapewnienia wysokiej dostępności. Kroki odzyskiwania dokumentu dla przełączenia awaryjnego zainicjowanego przez Microsoft oraz ręcznego przełączenia awaryjnego. Codify and automate the steps needed to recover or failover the application to a secondary Azure region during failures (Ujednolicić i automatyzować kroki wymagane do odzyskania lub przełączania aplikacji w tryb failover do pomocniczego regionu platformy Azure podczas awarii). Ta praktyka pomaga zapewnić skuteczne reagowanie na awarie i zminimalizowanie wpływu. Podobnie skodyfikuj i zautomatyzuj kroki do przywrócenia aplikacji do regionu podstawowego po rozwiązaniu problemu. |
Testy procedur przełączania awaryjnego i powrotu po awarii pomagają zapewnić, że rozwiązanie IoT może obsługiwać błędy i utrzymywać wysoką dostępność, co minimalizuje wpływ awarii. Udokumentowane kroki odzyskiwania zarówno dla przełączeń awaryjnych inicjowanych przez firmę Microsoft, jak i przeprowadzanego ręcznie, zapewniają jasne i ustrukturyzowane podejście do obsługi sytuacji awaryjnych, co zapewnia, że członkowie zespołu będą świadomi procedur i mogą je skutecznie implementować. |
Użyj języka infrastruktury jako kodu (IaC), takiego jak szablony Bicep lub Azure Resource Manager (szablony usługi ARM), aby zdefiniować i przechowywać wszystkie IoT Hub, DPS i konfiguracje infrastruktury zaplecza. Zdefiniuj całą infrastrukturę jako IaC, aby umożliwić spójne wdrażanie zasobów w różnych środowiskach. Użyj zarządzania tożsamościami i dostępem (IAM) lub narzędzi zarządzania, takich jak Azure RBAC lub Azure Policy, aby kontrolować dostęp do zapisu w Twojej infrastrukturze. Ogranicz ustawienia konfiguracji lub aktualizacje infrastruktury do zautomatyzowanego procesu. Użyj tego podejścia, aby zobaczyć, jakie zmiany występują w środowiskach i kiedy. |
Powtarzalny i przewidywalny proces aprowizowania i konfigurowania zasobów rozwiązania IoT, takich jak usługa IoT Hub lub DPS, pomaga zmniejszyć liczbę błędów i przestojów. Narzędzia DevOps, takie jak Azure DevOps lub GitHub, mogą ułatwić śledzenie konfiguracji, IaC i wersji oprogramowania układowego. Śledzenie wersji pomaga zidentyfikować wersje oprogramowania układowego, konfiguracji i IaC w każdym środowisku. |
Utwórz środowiska testowe korzystające z tego samego oprogramowania układowego, ustawień konfiguracji i IaC co środowiska produkcyjne. Aby łatwo tworzyć te środowiska, użyj IaC i zautomatyzuj procesy tak bardzo, jak to możliwe. | Dopasowywanie środowisk testowych i produkcyjnych ułatwia opracowywanie i testowanie nowych funkcji oraz gorących poprawek. |
Wydajność
Efektywność wydajności polega na utrzymaniu doświadczenia użytkownika nawet wtedy, gdy występuje wzrost obciążenia dzięki zarządzaniu pojemnością. Strategia obejmuje skalowanie zasobów, identyfikowanie i optymalizowanie potencjalnych wąskich gardeł oraz optymalizowanie pod kątem szczytowej wydajności.
Zasady projektowania efektywności wydajności dostarczają wysokopoziomową strategię projektowania, której celem jest osiągnięcie tych celów wydajnościowych w kontekście oczekiwanego użycia.
Lista kontrolna projektu
Rozpocznij strategię projektowania w oparciu o listę kontrolną przeglądu wzornictwa oraz efektywności działania, aby zdefiniować punkt odniesienia na podstawie kluczowych wskaźników wydajności dla usługi IoT Hub.
Projektowanie z myślą o skalowaniu horyzontalnym. Rozwiązanie IoT może zaczynać się od kilkuset urządzeń lub komunikatów i zwiększać się do milionów urządzeń i komunikatów na minutę. Usługa IoT Hub i powiązane usługi w chmurze mogą łatwo obsługiwać zwiększone obciążenia, ale urządzenia i bramy IoT zwiększają złożoność. Przed sfinalizowaniem rozwiązania można projektować i wdrażać urządzenia IoT. Branże takie jak przemysłowy IoT mają urządzenia, które trwają kilka lat, często dziesięciolecia. Zastąpienie urządzeń w celu zaktualizowania pojemności może spowodować znaczne koszty, więc należy zaplanować z wyprzedzeniem.
Testowanie wydajności na wczesnym etapie. Przetestuj wcześnie i przetestuj często, aby szybko identyfikować problemy. Poznaj zmienne, które mogą powodować złożoność, takie jak czujniki, urządzenia i bramy w różnych lokalizacjach geograficznych o różnych cechach, szybkości i niezawodności komunikacji. Zaplanuj tę złożoność testowania. Przetestuj pod kątem scenariuszy awarii, takich jak rozłączenie sieci. Przeprowadź testy obciążeniowe i przeciążeniowe wszystkich komponentów urządzeń, elementów krawędziowych i chmurowych w Twojej usłudze IoT Hub i powiązanych usługach chmurowych.
Ciągłe monitorowanie wydajności w środowisku produkcyjnym. Aby monitorować różne typy urządzeń w wielu regionach geograficznych, użyj rozwiązania do monitorowania rozproszonego. Równoważenie kosztów pamięci i wydajności względem ilości informacji, które są monitorowane i wysyłane do chmury. Dostrajanie transmisji dla scenariuszy diagnostycznych i monitorowanie na wielu poziomach i warstwach. Uwidaczniaj metryki bramy dla rozwiązań przemysłowych lub opartych na bramie.
Zalecenia
Zalecenie | Korzyść |
---|---|
Optymalizowanie możliwości sprzętowych. Uaktualnienia sprzętu i zamienniki mogą zwiększyć koszty i czas. Umożliwia wcześniejsze ustawianie rozmiaru urządzeń IoT dla wymaganej pojemności i funkcjonalności. Aby zoptymalizować istniejące możliwości sprzętowe, użyj wydajnych języków i struktur, takich jak Embedded C i Rust Embedded. Podczas opracowywania dla urządzeń ograniczonych lub gdy większość stosu zabezpieczeń i komunikacji jest dostępna na urządzeniu, użyj zestawu SDK języka C usługi Azure IoT Embedded. |
Zadania intensywnie korzystające z obliczeń i danych wejściowych, które są uruchamiane na określonym sprzęcie, mogą znacznie zwiększyć wydajność. Na przykład algorytmy uczenia maszynowego uruchamiane na lokalnych procesorach GPU mogą odciążać przetwarzanie z procesora centralnego, co umożliwia szybsze i bardziej wydajne obliczenia. Wydajne języki i struktury mogą poprawić wydajność i zmniejszyć zużycie zasobów. SDK urządzeń Azure IoT dla języka C efektywnie zarządza wszystkimi niezbędnymi składnikami, umożliwiając łączenie z bramą w chmurze. Zestawy SDK urządzeń Azure IoT obsługują wymagane tłumaczenie komunikatów, obsługę błędów i mechanizmy ponawiania prób dla odpornego połączenia, co optymalizuje korzystanie z istniejących możliwości sprzętowych. |
Rozważ uruchomienie niektórych obciążeń na brzegu sieci, w zależności od ograniczeń systemowych, takich jak przepływność sieci lub opóźnienie. | Obciążenia na krawędzi zmniejszają opóźnienie i poprawiają reakcję, ponieważ przetwarzają dane bliżej miejsca ich generowania. Takie podejście minimalizuje potrzebę ciągłej łączności z chmurą, co przynosi korzyści w scenariuszach, w których występuje sporadyczny lub ograniczony dostęp do sieci. Pomaga również odciążać przetwarzanie z chmury, co zmniejsza użycie przepustowości i związane z nimi koszty. |
Nie należy łączyć wszystkich urządzeń jednocześnie, na przykład po awarii zasilania regionalnego. | Podczas ponawiania próby należy użyć obcinanego wycofywania wykładniczego, który wprowadza zakłócenia. Takie podejście rozkłada próby ponownego nawiązywania połączenia w czasie, co pomaga zapobiec przeciążeniu sieci i przeciążeniu serwera. Tworzy bardziej stabilny i niezawodny proces ponownego łączenia, co zmniejsza ryzyko wystąpienia innych awarii lub obniżenia wydajności. Prawidłowo zarządzane próby ponownego nawiązania połączenia mogą pomóc w utrzymaniu ogólnej kondycji i wydajności usługi IoT Hub. |
Optymalizowanie scenariuszy trybu offline. Zapewnij urządzeniom wystarczającą ilość informacji i kontekstu, aby działały bez połączenia w chmurze i przechowywały dane lokalnie, dzięki czemu mogą odzyskiwać dane po rozłączeniu i ponownym uruchomieniu. Użyj bliźniaczych par urządzeń i modułów, aby synchronizować asynchronicznie informacje o stanie między urządzeniami a chmurą w przypadku urządzeń, które mają sporadyczne połączenia z IoT Hub. Ustaw czas wygaśnięcia (TTL) na danych, aby upewnić się, że wygasłe dane zostaną automatycznie usunięte. Ta praktyka zmniejsza potrzebę ręcznej interwencji. Jeśli pamięć urządzeń brzegowych osiągnie maksymalną pojemność, należy zastosować strategię usuwania z pamięci podręcznej, taką jak zasada „pierwsze weszło, ostatnie wyszło”, „ostatnie weszło, pierwsze wyszło” lub strategię opartą na priorytetach, aby pomóc w efektywnym zarządzaniu pamięcią. Rozważ użycie oddzielnego dysku lub kontrolera dysku do przechowywania danych, aby środowisko uruchomieniowe lub aplikacja urządzenia mogły kontynuować pracę, nawet jeśli ma mało miejsca do magazynowania. |
Urządzenie, które może przechowywać dane lokalnie, w tym dzienniki i buforowane dane telemetryczne zgodnie z priorytetem, gdy nie jest połączone, pomaga zachować funkcjonalność podczas rozłączeń. Odrzuć mniej ważne dane, gdy urządzenie nie jest połączone, aby zmniejszyć wymagania dotyczące magazynu lokalnego i czas synchronizacji po ponownym połączeniu urządzenia. Oddzielny dysk lub kontroler dysku do przechowywania danych pomaga zagwarantować, że ograniczenia magazynu nie przerywają operacji krytycznych. |
Optymalizowanie wydajności obsługi komunikatów. Usługa IoT Hub oblicza dzienny limit liczby komunikatów na podstawie rozmiaru wiadomości 4 KB. Wysyłanie mniejszych komunikatów pozostawia część nieużywanej pojemności. Aby zoptymalizować użycie, należy dążyć do rozmiarów komunikatów zbliżonych do 4 KB. Aby zmniejszyć łączną liczbę komunikatów, pogrupuj mniejsze komunikaty z urządzenia do chmury w większe komunikaty. Należy jednak pamiętać o wprowadzonym opóźnieniu podczas łączenia komunikatów. Aby zaimplementować przetwarzanie wsadowe na poziomie aplikacji, połącz wiele mniejszych komunikatów na urządzeniu podrzędnym i wyślij większe komunikaty do bramy brzegowej. Użyj metod bezpośrednich w przypadku interakcji z odpowiedzią na żądanie, które mogą zakończyć się powodzeniem lub niepowodzeniem natychmiast po przekroczeniu limitu czasu określonego przez użytkownika. Użyj tego podejścia w scenariuszach, w których przebieg akcji różni się w zależności od tego, czy urządzenie odpowiedziało. Użyj podwójnych modeli urządzeń, aby uzyskać informacje o stanie urządzenia, w tym metadane i konfiguracje. Usługa IoT Hub utrzymuje bliźniacze reprezentacje urządzenia dla każdego połączonego urządzenia. |
Liczba i rozmiar komunikatów z urządzenia do chmury to ważny parametr wydajności rozwiązania IoT. Usługa IoT Hub definiuje limity komunikatów na warstwę, co wpływa na wydajność i koszty rozwiązania. Przetwarzanie wsadowe pomaga ograniczyć obciążenie komunikatów i zmniejszyć liczbę operacji zapisu do lokalnej pamięci dysku brzegowego. |
Zrozumienie limitów wiadomości i ograniczeń szybkości przesyłania. Warstwa usługi IoT Hub ustawia limity dla każdej jednostki bramy w chmurze. Limit wiadomości definiuje utrzymaną przepływność i stałe tempo wysyłania dla poziomu. Usługa IoT Hub może obsługiwać obciążenia, które przekraczają te limity przydziału przez krótki czas w celu odpornego obsłużenia wzrostów lub przewyższeń obciążenia. Innym ważnym limitem jest godzinowe lub dzienne obciążenie usługi lub ograniczenie przepustowości. Limity przepustowości chronią centrum IoT przed nadmiernym obciążeniem w dłuższym czasie. |
Zrozum limity komunikatów i ograniczanie, aby upewnić się, że Twoje rozwiązanie IoT działa w ramach określonych limitów. Ta praktyka uniemożliwia przeciążenie i utrzymanie wydajności. Efektywnie zarządzaj obciążeniem, aby móc obsłużyć wzrosty i przekroczenia obciążenia bez wpływu na ogólną stabilność systemu. Takie podejście pomaga zachować niezawodne i wydajne rozwiązanie IoT i zapobiega potencjalnym przerwom w działaniu usługi z powodu nadmiernego obciążenia. |
Optymalizowanie przetwarzania komunikatów. Zoptymalizuj format używany do wysyłania danych do chmury. Rozważ korzyści wynikające z optymalizacji formatów danych i zmniejszenia przetwarzania w chmurze pod kątem kosztów przepustowości. Rozważ użycie wzbogacania komunikatów usługi IoT Hub w celu dodania kontekstu do komunikatów urządzenia. Wykonaj przetwarzanie zdarzeń o krytycznym czasie na pozyskanych danych podczas ich nadejścia, zamiast przechowywać nieprzetworzone dane i wymagać złożonych zapytań w celu uzyskania danych. W przypadku przetwarzania zdarzeń wymagających szybkiej reakcji należy wziąć pod uwagę skutki późnego pojawienia się danych i metodę określania okien czasowych. Oceń swoje podejście na podstawie przypadku użycia, takiego jak obsługa alarmów krytycznych i wzbogacanie komunikatów. Wybierz usługę IoT Hub w warstwie Podstawową lub Standardową na podstawie wymagań dotyczących rozwiązania. Informacje o funkcjach, których warstwa Podstawowa nie obsługuje. Rozważ użycie usługi Event Grid do routingu zdarzeń publikowania i subskrybowania. Aby uzyskać więcej informacji, zobacz Reagowanie na zdarzenia IoT Hub używając Event Grid do wyzwalania akcji oraz Porównanie trasowania wiadomości i Event Grid dla IoT Hub. |
Przed przechowywaniem możesz potrzebować przetłumaczyć, przetworzyć lub wzbogacić komunikaty z urządzenia lub bramy o dodatkowe informacje. Ten krok może być czasochłonny, dlatego należy ocenić wpływ na wydajność. Niektóre zalecenia powodują konflikt, takie jak używanie kompresji do optymalizacji transferu danych, a nie unikanie przetwarzania w chmurze podczas odszyfrowywania komunikatów. Zrównoważ te zalecenia i oceń je pod kątem innych filarów architektury i wymagań dotyczących rozwiązań. |
Użyj kolejek priorytetowych IoT Edge, aby nadać priorytet ważnym danym, które wysyłasz do usługi IoT Hub. Usługa IoT Edge buforuje komunikaty, gdy nie ma łączności. Po przywróceniu połączenia najpierw wysyła wszystkie buforowane komunikaty w kolejności priorytetu, a następnie nowe komunikaty. Użyj routingu komunikatów usługi IoT Hub, aby rozdzielać trasy dla różnych priorytetów danych w zależności od scenariusza użycia. Routing komunikatów w usłudze IoT Hub dodaje opóźnienie. Zapisz i wyślij dane o niskim priorytecie w dłuższych odstępach czasu lub użyj przesyłania wsadowego albo przesyłania plików . Wykrywanie złośliwego oprogramowania w przekazanych plikach zwiększa opóźnienie. Oddzielaj komunikaty na podstawie ograniczeń czasowych. Na przykład wysyłaj komunikaty do usługi IoT Hub bezpośrednio, gdy istnieje ograniczenie czasowe, a korzystaj z przesyłania plików za pośrednictwem usługi IoT Hub lub wsadowego transferu danych, takich jak Azure Data Factory, gdy nie ma ograniczenia czasowego. Można użyć modułu Azure Blob Storage w usłudze IoT Edge do uploadowania plików. |
Niektóre dane wysyłane przez urządzenia do chmury mogą być ważniejsze niż inne dane. Klasyfikowanie i obsługa danych na podstawie priorytetu w celu zwiększenia wydajności. Na przykład czujnik termostatu wysyła temperaturę, wilgotność i inne dane telemetryczne, ale także wysyła alert, gdy temperatura odbiega od zdefiniowanego zakresu. System klasyfikuje komunikat alarmu jako wysoki priorytet i obsługuje go inaczej niż dane telemetryczne temperatury. |
Użyj usługi DPS, aby skonfigurować połączenie z centrum IoT podczas aprowizacji, gdy połączenie usługi IoT Hub nie jest już dostępne lub podczas ponownego uruchamiania urządzenia. Użyj polityki równomiernie ważonej dystrybucji , aby dostosować wagę przydzielania zasobów w zależności od przypadku użycia. To podejście optymalizuje alokację zasobów. |
Usługa DPS pomaga zapewnić bezpieczną i wydajną aprowizację urządzeń. Przygotowywanie urządzeń na przestrzeni czasu lub w mniejszych partiach pomaga zrównoważyć obciążenie i przydział systemu DPS, co zapewnia bezproblemowy proces onboardingu. Przydzielanie urządzeń do usługi IoT Hub w różnych regionach na podstawie opóźnienia zwiększa wydajność i skraca czas połączenia. Zaimplementowanie strategii buforowania dla łańcucha połączenia DPS zmniejsza operacje ponownego łączenia, zwiększając ogólną wydajność systemu. |
Optymalizowanie przetwarzania brzegowego i przetwarzania w chmurze. Wykorzystaj lokalne zasoby obliczeniowe, aby uruchamiać obciążenia w czasie rzeczywistym i niemal w czasie rzeczywistym lub małe, zoptymalizowane procesy z niskimi opóźnieniami mające ograniczenia czasowe, na urządzeniach lub na brzegu sieci. W przypadku większych obciążeń lub obciążeń, które wymagają dodatkowych danych zewnętrznych lub zależności obliczeniowych, użyj zasobów w chmurze. Na przykład możesz uruchomić algorytm uczenia maszynowego na urządzeniach brzegowych, aby zliczyć osób w strumieniu wideo i wysłać zdarzenie zawierające liczbę do chmury. Takie podejście zapewnia szybkie lokalne przetwarzanie i wydajną analizę trendów opartą na chmurze. Użyj modułu usługi Azure Stream Analytics IoT Edge do uruchamiania obciążeń analitycznych, takich jak wykrywanie anomalii, na brzegu sieci. Ta praktyka pomaga oznaczyć zdarzenia wykrytymi anomaliami przed wysłaniem ich do chmury, co zwiększa ogólną wydajność systemu. Zrozumienie obciążenia brzegowego, które obejmuje wiele połączonych urządzeń końcowych. Węzeł brzegowy musi przekazywać dalej lub przetwarzać wszystkie komunikaty i buforować wszystkie dane, jeśli występują sporadyczne połączenia w chmurze. Aby ocenić wpływ na wydajność rozwiązania, przetestuj rozwiązanie przy użyciu oczekiwanej maksymalnej liczby urządzeń podrzędnych i komunikatów dla każdego węzła brzegowego. Zapoznaj się również z wpływem na wydajność, jaki może mieć tłumaczenie lub wzbogacanie komunikatów na urządzeniach brzegowych, IoT Hub lub przetwarzanie zdarzeń w chmurze. Należy odpowiednio zaplanować utrzymanie wydajności systemu. |
Uruchamianie obciążeń w czasie rzeczywistym i niemal w czasie rzeczywistym na krawędzi zapewnia przetwarzanie o małych opóźnieniach i natychmiastowe czasy odpowiedzi, co ma kluczowe znaczenie dla aplikacji wrażliwych na czas. Testowanie przy użyciu oczekiwanej maksymalnej liczby urządzeń podrzędnych i komunikatów gwarantuje, że węzeł brzegowy może obsłużyć obciążenie i utrzymać wydajność. |
Aby zoptymalizować wydajność danych w chmurze o dużej ilości, użyj wbudowanej integracji usług między usługą IoT Hub i miejscami docelowymi danych, takimi jak Azure Data Lake Storage i Azure Data Explorer. Te usługi są zoptymalizowane pod kątem wysokiej wydajności przepustowości. Użyj zestawu SDK usługi Event Hubs, aby utworzyć niestandardowe pozyskiwanie z centrum IoT. Zestaw SDK zawiera procesor zdarzeń, który może ponownie równoważyć urządzenia i hosty. Użyj odpowiedniej liczby partycji i grup odbiorców usługi IoT Hub dla liczby równoczesnych czytników danych i wymaganej przepływności. Oddziel magazyn wymagany do pozyskiwania danych i przetwarzania zdarzeń z magazynu wymaganego do raportowania i integracji. Użyj magazynu danych, który odpowiada Twoim potrzebom na podstawie wymaganej przepływności, rozmiaru, okresu przechowywania, woluminu danych, wymagań CRUD i replikacji regionalnej. Przykłady przechowywania obejmują usługę Data Lake Storage, Azure Data Explorer, Azure SQL i Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz Wybierz magazyn danych Azure dla swojej aplikacji. |
Zoptymalizowana wydajność danych w chmurze o dużej ilości danych gwarantuje, że rozwiązanie IoT może wydajnie obsługiwać duże ilości danych. Wbudowana integracja usługi i zestaw SDK usługi Event Hubs ułatwiają pozyskiwanie i przetwarzanie danych. Właściwa konfiguracja partycji i grup odbiorców usługi IoT Hub oraz oddzielnego magazynu w różnych celach ułatwia lepsze zarządzanie danymi. Odpowiedni magazyn danych oparty na konkretnych potrzebach pomaga zachować wydajność, skalowalność i niezawodność rozwiązania IoT. |
Oddziel strumień przyjmowania rozwiązania IoT od procesu integracji. Upewnij się, że złożone zapytania lub obciążenia nie wpływają na wydajność pozyskiwania danych w usłudze IoT Hub. Użyj dobrze zdefiniowanych i wersjonowanych interfejsów API, aby uzyskać dostęp do informacji o usłudze IoT Hub dotyczących bliźniaków urządzeń, bliźniaków modułów, zadań i routingu komunikatów. Uniemożliwiaj użytkownikom końcowym tworzenie zapytań zdefiniowanych przez użytkownika w magazynie usługi IoT Hub. Rozważ użycie oddzielnych magazynów danych na potrzeby integracji i raportowania. | Oddzielenie potoku pozyskiwania danych rozwiązania IoT od przetwarzania integracyjnego zapewnia, że złożone zapytania lub obciążenia z warstwy integracyjnej nie wpływają na wydajność przetwarzania danych. Takie podejście zapewnia wydajność i niezawodność usługi IoT Hub. |
Usługa Azure Monitor umożliwia zbieranie metryk usługi IoT Hub i wysyłanie alertów dotyczących metryk krytycznych. Skonfiguruj alerty usługi Azure Monitor zgodnie z twoimi limitami skalowania, takimi jak liczba wysyłanych komunikatów z urządzenia do chmury na sekundę. Ustaw alert na wartość procentową limitu, na przykład 75%, aby powiadomić Cię z wyprzedzeniem. Skonfiguruj alerty usługi Azure Monitor dla dzienników i metryk, takich jak liczba błędów ograniczania przepustowości. Ustaw alerty usługi Azure Service Health, aby wyzwalać powiadomienia po zmianie stanu usługi IoT Hub. | Metryki i alerty usługi IoT Hub dla metryk krytycznych zapewniają proaktywne monitorowanie rozwiązania IoT i zarządzanie nim. Alerty oparte na limitach skalowania i procent tych limitów pomagają powiadomić Cię przed osiągnięciem limitów skalowalności, dzięki czemu można wprowadzić terminowe korekty. Alerty dotyczące dzienników i metryk, takich jak błędy ograniczania przepustowości, ułatwiają szybkie identyfikowanie i rozwiązywanie problemów. Alerty, gdy zmiany stanu usługi IoT Hub zapewniają świadomość potencjalnych zakłóceń i umożliwiają podjęcie niezbędnych działań w celu zachowania niezawodności i wydajności rozwiązania IoT. |
Zasady platformy Azure
Platforma Azure udostępnia obszerny zestaw wbudowanych zasad związanych z usługą IoT Hub i jej zależnościami. Niektóre z wcześniejszych zaleceń można poddawać audytowi za pomocą usługi Azure Policy. Możesz na przykład sprawdzić, czy:
- Usługa IoT Hub ma wyłączone lokalne metody uwierzytelniania dla interfejsów API usługi.
- Dostęp do sieci publicznej jest wyłączony dla instancji aprowizacji urządzeń IoT Hub, aby nie był dostępny za pośrednictwem publicznego Internetu.
- Dostęp do usługi IoT Hub można uzyskać tylko z prywatnego punktu końcowego.
- Dzienniki zasobów w usłudze IoT Hub są włączone. Te dzienniki ponownie tworzą ślady aktywności, które mogą pomóc w zbadaniu po incydencie bezpieczeństwa lub kompromitacji sieci.
Aby uzyskać kompleksowe zarządzanie, zapoznaj się z wbudowanymi definicjami dla usługi Azure Policy dotyczącej Internet of Things oraz z innymi zasadami, które mogą mieć wpływ na bezpieczeństwo rozwiązania IoT.
Rekomendacje usługi Azure Advisor
Azure Advisor to spersonalizowany konsultant ds. chmury, który pomaga stosować najlepsze rozwiązania w celu zoptymalizowania wdrożeń platformy Azure. Zalecenia doradcy są dostosowane do filarów Well-Architected Framework.
Aby uzyskać więcej informacji, zobacz zalecenia w Azure Advisor.
Następny krok
dokumentacja usługi IoT Hub