Niezawodność obciążenia IoT
Obciążenia IoT, takie jak wszystkie obciążenia, mogą działać nieprawidłowo. Najważniejsze zagadnienia dotyczące niezawodności dobrze zaprojektowanych rozwiązań IoT to szybkość wykrywania zmian i szybkie wznawianie operacji.
Aplikacje IoT są często dystrybuowane na dużą skalę i mogą działać w zawodnych sieciach bez trwałego dostępu lub wglądu w kompleksowe przepływy danych. Ze względu na te czynniki należy zaprojektować architekturę IoT z uwzględnieniem dostępności i odporności.
Tworzenie niezawodnego rozwiązania IoT wymaga dokładnego rozważenia urządzeń, usług w chmurze i sposobu ich interakcji. Wybór sprzętu, łączności i protokołów urządzeń oraz usług w chmurze wpływa na wymagania i możliwości rozwiązania dotyczące niezawodności.
Ocena niezawodności obciążenia IoT
Aby ocenić obciążenie IoT za pomocą obiektywów filaru niezawodności platformy Well-Architected Framework, wypełnij pytania dotyczące niezawodności obciążeń IoT w przeglądzie usługi Azure Well-Architected. Po zidentyfikowaniu kluczowych zaleceń dotyczących niezawodności rozwiązania IoT skorzystaj z poniższej zawartości, aby ułatwić wdrożenie zaleceń.
Zasady projektowania
Pięć filarów doskonałości architektury stanowi podstawę metodologii projektowania obciążeń IoT. Te filary służą jako kompas dla kolejnych decyzji projektowych w kluczowych obszarach projektowania IoT. Poniższe zasady projektowania rozszerzają filar jakości platformy Azure Well-Architected Framework — niezawodność.
Zasada projektowania | Zagadnienia do rozważenia |
---|---|
Projektowanie urządzeń pod kątem odporności | Zaprojektuj urządzenia, aby spełnić 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 | Konsekwencje związane z kosztami są nieuniknione podczas wprowadzania modyfikacji architektury w celu spełnienia umów dotyczących poziomu usług (SLA). Na przykład aby zapewnić większą niezawodność i wysoką dostępność, można zaimplementować nadmiarowość między regionami i zautomatyzowany system do automatycznego skalowania. Należy dokładnie rozważyć ten kompromis. |
Bezpieczne, proste procedury aktualizacji | Rozwiązanie IoT przedsiębiorstwa powinno zapewnić strategię zarządzania urządzeniami przez operatorów. 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 do przeprowadzania inspekcji, monitorowania i zgłaszania alertów poza usługami w chmurze. |
Wysoka dostępność i odzyskiwanie po awarii (HA/DR) dla krytycznych składników. | Odporne składniki sprzętowe i programowe, które tworzą nadmiarowość, w tym nadmiarowość między regionami. |
Planowanie pojemności | Zaplanuj limity przydziału usług i ograniczenia przepustowości, opóźnienie między akcją wykrywania i ustanów testy porównawcze na dużą skalę produkcyjną, aby obsługiwać nieprzerwany przepływ danych. |
Warstwy architektury IoT
Zasady projektowania niezawodności pomagają wyjaśnić zagadnienia, aby zapewnić, że obciążenie IoT spełnia wymagania w podstawowych warstwach architektury IoT. Aby osiągnąć ogólną niezawodność rozwiązania, każda warstwa powinna mieć akceptowalny poziom niezawodności.
Warstwa urządzenia i bramy
W ramach ogólnego rozwiązania IoT zaprojektuj urządzenia tak, aby spełniały kompleksowe wymagania dotyczące czasu pracy i dostępności rozwiązania. Urządzenia i bramy są dostępne w wielu formach. Urządzenia i bramy IoT mogą wykonywać zbieranie danych, kontrolę nadzoru i analizę krawędzi.
Zbieranie danych łączy urządzenia z czujnikami lub subskrybuje je do danych telemetrycznych z systemów podrzędnych i wypycha zebrane dane do chmury. Projekt rozwiązania IoT powinien zapewnić niezawodne zarządzanie urządzeniami i niezawodną komunikację z urządzenia do chmury.
Urządzenia, które zapewniają kontrolę nadzoru nie tylko zbierają dane do wysyłania do chmury, ale także podejmują działania na podstawie tych danych. Urządzenia wysyłają dane z powrotem do maszyn lub środowiska, aby podejmować działania nadzorcze. Niezawodność aplikacji kontroli nadzorczej ma kluczowe znaczenie.
Projekt urządzenia
Projektowanie i wybieranie urządzeń IoT w celu niezawodnego działania w oczekiwanych warunkach operacyjnych w oczekiwanych okresach istnienia. Niezawodne urządzenie powinno działać zgodnie ze specyfikacjami sprzętu i oprogramowania, a wszelkie awarie powinny zostać wykryte i zarządzane przez środki zaradcze, naprawy lub wymiany. Projektowanie urządzeń pod kątem niezawodności, ale także planowanie awarii.
Cykl wsparcia technicznego urządzenia
Ograniczone okresy istnienia usługi wpływają na niezawodność rozwiązania. Oceń konsekwencje awarii urządzenia w rozwiązaniu i zdefiniuj strategię cyklu życia urządzenia zgodnie z wymaganiami rozwiązania.
Ocena wpływu awarii urządzenia obejmuje:
- Ważność, taka jak pojedyncze punkty awarii.
- Prawdopodobieństwo, takie jak średni czas między awariami.
- Wykrywanie, takie jak tryb awarii i analiza efektów.
- Akceptowalny okres przestoju.
Akceptowalny przestój operacyjny określa szybkość i zakres konserwacji urządzeń. Dostępność lub długowieczność urządzenia i dostawcy części jest ważnym czynnikiem dla cyklu życia urządzenia.
Bardziej modularny projekt, tym łatwiej jest zamienić części systemu, zwłaszcza jeśli niektóre części stają się przestarzałe wcześniej niż inne. Alternatywne lub wielodostępne łańcuchy dostaw składników i modułów mają kluczowe znaczenie dla niezawodnych rozwiązań.
Wymagania dotyczące środowiska
Warunki, w których działa urządzenie, wpływają na jego niezawodność. Zdefiniuj wymagania dotyczące środowiska i użyj urządzeń z odpowiednimi specyfikacjami funkcji. Specyfikacje te obejmują parametry, takie jak zakres temperatury działania, wilgotność, ocena ochrony ruchu przychodzącego (IP), odporność na zakłócenia elektromagnetyczne (EMI) oraz odporność na wstrząsy i wibracje.
Profil operacyjny
Obciążenie wydajności wpływa na zachowanie operacyjne urządzeń, a tym samym ich niezawodność. Zdefiniuj profile operacyjne, które szacują zachowanie w okresie istnienia urządzenia i odpowiednio oceniają niezawodność urządzeń. Takie profile obejmują tryby pracy, takie jak transmisja bezprzewodowa lub tryby niskiego zasilania oraz warunki środowiskowe, takie jak temperatura, w okresie istnienia urządzenia.
W normalnych warunkach operacyjnych urządzenie i oprogramowanie powinny działać bezpiecznie w określonych profilach operacyjnych. Urządzenia muszą być w stanie obsługiwać i przetwarzać wszystkie zewnętrzne czujniki i przetwarzanie danych, których wymaga rozwiązanie. Unikaj uruchamiania przy limicie możliwości urządzeń.
Przepisy i standardy
Urządzenia dla określonych branż podlegają obowiązującym przepisom i normom. Zdefiniuj przepisy i standardy oraz upewnij się, że urządzenia spełniają wymagania dotyczące zgodności i zgodności. Przepisy obejmują certyfikację i oznakowanie, takie jak FCC lub CE. Standardy obejmują aplikacje branżowe lub agencyjne, takie jak ATEX i MIL-SPEC, oraz zgodność z bezpieczeństwem, na przykład IEC 61508.
Warstwa zarządzania urządzeniami i modelowania
Usługi w chmurze zapewniają każdemu urządzeniu tożsamość i zarządzają urządzeniami na dużą skalę. Chmura jest często końcowym punktem ruchu przychodzącego danych dla wszystkich komunikatów przepływających z urządzeń. W rozwiązaniach IoT usługi w chmurze muszą zapewnić niezawodność urządzeń IoT w celu zintegrowania i przesyłania danych.
Warunki łączności urządzeń, w tym nadrzędne do chmury i podrzędne sieci lokalne, powinny być częścią projektowania niezawodności rozwiązania IoT. Oceń potencjalny wpływ przerw w łączności lub interferencji i odpowiednio zdefiniuj strategię łączności.
Strategia łączności powinna obejmować niezawodność, na przykład funkcje rezerwowe i zarządzanie rozłączaniem oraz buforowanie kopii zapasowej w celu ograniczenia zależności chmury dla funkcji krytycznych lub bezpieczeństwa.
Poniższe rozwiązania projektowe, obsługa błędów i monitorowanie odnoszą się do łączności.
Projekt łączności
Rozwiązanie IoT powinno umożliwić przepływ informacji między sporadycznie połączonymi urządzeniami i usługami opartymi na chmurze. Upewnij się, że urządzenia IoT mogą działać wydajnie z sporadycznymi połączeniami z chmurą.
Najlepsze rozwiązania obejmują następujące zalecenia:
- Zaimplementuj logikę ponawiania i wycofywania w oprogramowaniu urządzenia.
- Synchronizowanie stanu urządzenia z chmurą.
- Upewnij się, że możesz przechowywać dane na urządzeniach, jeśli rozwiązanie nie może tolerować utraty danych.
- Użyj próbkowania danych i symulacji, aby mierzyć pojemność sieci i punkty odniesienia wymagań dotyczących magazynu.
Implementacja łączności
Zestawy SDK urządzeń Usługi Azure IoT udostępniają biblioteki klienckie, których można używać na urządzeniach lub bramach, aby uprościć łączność z usługami Azure IoT. Zestawy SDK umożliwiają instrumentację klientów urządzeń IoT, które:
- Połącz się z chmurą.
- Zapewnienie spójnego środowiska programistycznego klienta na różnych platformach.
- Upraszczanie typowych zadań łączności przez abstrakcja szczegółów podstawowych protokołów i wzorców przetwarzania komunikatów, takich jak wycofywanie wykładnicze z roztrzaśniętą i logiką ponawiania prób.
Monitorowanie łączności
Problemy z łącznością urządzeń IoT mogą być trudne do rozwiązania z powodu wielu możliwych punktów awarii. Logika aplikacji, sieci fizyczne, protokoły, sprzęt, Azure IoT Hub i inne usługi w chmurze mogą mieć problemy.
Możliwość wykrywania i ustalania źródła problemu jest krytyczna. Jednak rozwiązanie IoT na dużą skalę może mieć tysiące urządzeń, więc nie jest praktyczne ręczne sprawdzanie poszczególnych urządzeń. Usługa Azure Monitor i Azure Event Grid mogą pomóc zdiagnozować problemy z łącznością w IoT Hub.
Zasoby łączności
- Zarządzanie łącznością i niezawodna obsługa komunikatów za pomocą zestawów SDK urządzeń usługi Azure IoT Hub
- Monitorowanie, diagnozowanie i rozwiązywanie problemów z łącznością urządzeń Azure IoT Hub
- Obsługa błędu przejściowego
- Obsługa błędów dla odpornych aplikacji na platformie Azure
- Wzorzec wyłącznika — wzorce projektowe chmury
- Wzorzec transakcji wyrównywczej — wzorce projektowe chmury
- Wzorzec ograniczania przepustowości — wzorce projektowe chmury
Pozyskiwanie i warstwa komunikacji
Warstwa pozyskiwania i komunikacji IoT obejmuje limity przydziału i limity usług, pojemność, ograniczanie przepustowości i skalowanie automatyczne.
Projekt nadmiarowej pojemności
Podczas planowania progów i alertów należy wziąć pod uwagę opóźnienie między wykrywaniem a podjętą akcją. Upewnij się, że system i operatorzy mają wystarczająco dużo czasu, aby reagować na żądania zmiany. W przeciwnym razie może na przykład zostać wykryta potrzeba zwiększenia liczby jednostek, ale system może zakończyć się niepowodzeniem, tracąc komunikaty, zanim wzrost będzie mógł obowiązywać.
Planowanie limitu przydziału usługi
Podobnie jak we wszystkich usługach platformy, IoT Hub i usługa IoT Hub Device Provisioning Service (DPS) wymuszają limity przydziału i ograniczenia przepustowości na określonych operacjach, dzięki czemu platforma Azure może zapewnić przewidywalne poziomy usług i koszty usług. Przydziały i ograniczenia są powiązane z warstwą usługi i liczbą wdrożonych jednostek, dzięki czemu można zaprojektować rozwiązanie przy użyciu odpowiedniej liczby zasobów. Przejrzyj przydziały i ograniczenia z wyprzedzeniem oraz odpowiednio zaprojektuj zasoby IoT Hub i DPS.
Testy porównawcze w skali produkcyjnej
Wraz ze wzrostem liczby urządzeń lub ilości danych brama w chmurze musi być skalowana w celu zapewnienia nieprzerwanego przepływu danych. Ze względu na rozproszony charakter rozwiązań IoT, liczbę urządzeń i ilość danych ważne jest ustanowienie testów porównawczych skali dla ogólnego rozwiązania. Te testy porównawcze pomagają zaplanować ryzyko związane z pojemnością. Użyj symulatora telemetrii urządzenia usługi Azure IoT , aby symulować woluminy skalowania produkcyjnego.
Skalowanie automatyczne w celu dynamicznego dostosowywania do limitów przydziału
Zaletą korzystania ze składników platformy jako usługi (PaaS) jest możliwość skalowania w górę i w dół z niewielkim nakładem pracy zgodnie z potrzebami. Aby zapewnić najniższy koszt i nakład pracy operacyjnej, rozważ wdrożenie zautomatyzowanego systemu w celu skalowania zasobów w górę i w dół przy użyciu różnych potrzeb rozwiązania.
Zarządzanie limitami przydziału i ograniczaniem przepustowości
Aby zapewnić niezawodność rozwiązania, stale monitoruj użycie zasobów pod kątem limitów przydziałów i ograniczeń w celu wykrycia wzrostu użycia, które wskazują na konieczność skalowania. W zależności od wymagań biznesowych można stale monitorować użycie zasobów i powiadamiać operatora o osiągnięciu progów lub zaimplementować zautomatyzowany system do automatycznego skalowania.
Pojemność i skalowanie zasobów
- Omówienie limitów przydziałów i ograniczania przydziałów Azure IoT Hub
- Limity przydziału i limity w usłudze Azure IoT Hub Device Provisioning Service
- Automatyczne skalowanie Azure IoT Hub — przykłady kodu
- Symulator telemetrii urządzeń usługi Azure IoT — przykłady kodu
- IoT Hub adresy IP
- Najlepsze rozwiązania dotyczące konfiguracji urządzeń w rozwiązaniu IoT
- Wybieranie odpowiedniej warstwy usługi IoT Hub dla używanego rozwiązania
- Limity przydziału i limity usługi Azure IoT Central
- IoT Hub limity przydziału i ograniczanie przepustowości: ograniczenia operacji
- IoT Hub limity przydziału i ograniczanie przepustowości: inne limity
Warstwa transportu
Aby nawiązać połączenie z usługą w chmurze na potrzeby danych, kontroli i zarządzania, urządzenia muszą mieć dostęp do sieci. W zależności od typu rozwiązania IoT niezawodność łączności może być twoim obowiązkiem lub dostawcą usług sieciowych. Sieci mogą mieć sporadyczne problemy z łącznością, a urządzenia muszą odpowiednio zarządzać swoim zachowaniem.
Warstwa DevOps
Rozwiązanie IoT przedsiębiorstwa powinno zapewnić strategię dla operatorów do zarządzania systemem. Aby rozwiązać problemy z niezawodnością, zarządzanie IoT i operacje powinny używać procesów DevOps do obsługi aktualizacji, możliwości obserwacji i monitorowania oraz implementacji wysokiej dostępności/odzyskiwania po awarii.
Aktualizacje
Aspekt urządzenia rozwiązań IoT przedstawia wyzwania w porównaniu z rozwiązaniami opartymi na chmurze. Na przykład musi istnieć sposób ciągłego aktualizowania urządzeń w celu rozwiązania luk w zabezpieczeniach i zmian aplikacji.
Ze względu na rozproszony charakter rozwiązań IoT ważne jest przyjęcie bezpiecznych i bezpiecznych zasad wdrażania aktualizacji. Operatory IoT wymagają prostych i niezawodnych narzędzi i rozwiązań aktualizacji.
Rozwiązanie do aktualizacji urządzeń musi obsługiwać:
- Stopniowe wdrażanie aktualizacji za pomocą kontrolek grupowania urządzeń i planowania.
- Obsługa odpornych aktualizacji urządzeń A/B na potrzeby bezproblemowego wycofywania.
- Szczegółowe narzędzia do zarządzania aktualizacjami i raportowania.
- Optymalizacja sieci oparta na dostępnej przepustowości.
Aktualizacja urządzenia dla IoT Hub to usługa, która umożliwia bezpieczne, bezpieczne i niezawodne aktualizacje urządzeń IoT (over-the-air, OTA). Usługa Device Update dla IoT Hub może grupować urządzenia i określać, które urządzenia powinny otrzymywać aktualizację. Operatorzy mogą wyświetlać stan wdrożeń aktualizacji i czy każde urządzenie pomyślnie stosuje wymagane aktualizacje.
Jeśli aktualizacja zakończy się niepowodzeniem, usługa Device Update pomaga operatorom zidentyfikować urządzenia, które zakończyły się niepowodzeniem i wyświetlić szczegóły błędu. Możliwość identyfikowania, które urządzenia zakończyły się niepowodzeniem, może wyeliminować godziny próby ręcznego wskazania źródła awarii.
Usługa Device Update monitoruje stan wdrożeń i aktualizacji urządzeń oraz raportuje, ile urządzeń jest zgodnych z najwyższą dostępną aktualizacją zgodną z wersją.
Obserwacja i monitorowanie
Aby zarządzać ogólną niezawodnością rozwiązania i definiować procedury alertów, należy monitorować każdy składnik rozwiązania IoT. Wszystkie usługi Azure IoT publikują metryki opisujące kondycję i dostępność usługi. Aby ustanowić kompleksową obserwację, należy również wziąć pod uwagę metryki, które są potrzebne po stronie urządzenia. Użyj tych metryk w ramach ogólnego monitorowania niezawodności rozwiązania.
Monitorowanie i diagnostyka aplikacji IoT mają kluczowe znaczenie dla dostępności i odporności. Jeśli coś się nie powiedzie, musisz wiedzieć, że nie powiodło się, gdy się nie powiodło i dlaczego. Monitorując działanie aplikacji IoT i urządzeń w dobrej kondycji, można wykrywać i rozwiązywać problemy z niezawodnością.
Aby wyeliminować problemy wpływające na niezawodność aplikacji IoT, musisz mieć możliwość przechwytywania dzienników i sygnałów, które ułatwiają wykrywanie problemów w operacjach kompleksowej. Użyj rejestrowania i monitorowania, aby określić, czy rozwiązanie IoT działa zgodnie z oczekiwaniami i pomaga rozwiązywać problemy ze składnikami rozwiązania.
Następujące akcje obsługują obserwację rozwiązań IoT:
- Ustanów mechanizm zbierania i analizowania metryk wydajności i alertów.
- Konfigurowanie urządzeń, usług w chmurze i aplikacji w celu zbierania i nawiązywania połączenia z usługą Azure Monitor.
- Monitorowanie usług zaplecza platformy Azure przy użyciu pulpitów nawigacyjnych i alertów w czasie rzeczywistym.
- Definiowanie ról i obowiązków dotyczących monitorowania i działania na zdarzeniach i alertach. Aby uzyskać więcej informacji, zobacz Role, obowiązki i uprawnienia.
- Implementowanie ciągłego monitorowania.
Azure Monitor
Usługa Azure Monitor to zalecana platforma monitorowania i wizualizacji dla rozwiązań Azure IoT. Można skonfigurować urządzenia, usługi w chmurze i aplikacje, niezależnie od lokalizacji wdrożenia, aby wypychać komunikaty dzienników bezpośrednio lub za pomocą wbudowanych łączników do usługi Azure Monitor.
Użyj wbudowanej integracji metryk usługi Azure Monitor na potrzeby zdalnego monitorowania urządzeń IoT Edge. Aby włączyć tę funkcję na urządzeniach, dodaj moduł moduł zbierający IoT Edge metryk do wdrożenia i skonfiguruj go do zbierania i transportu metryk modułu do usługi Azure Monitor.
Za pomocą usługi Azure Monitor możesz monitorować stan środowiska IoT Hub, upewnić się, że działa prawidłowo i sprawdzić, czy urządzenia nie są ograniczane lub występują problemy z połączeniem. IoT Hub zapewnia metryki użycia, takie jak liczba używanych komunikatów i liczba połączonych urządzeń. Te dane można przekazać do usługi Azure Monitor w celu analizy i alertu innych usług.
Jeśli rozwiązanie korzysta z usługi Azure IoT Central, możesz użyć metryk usługi IoT Central, aby ocenić kondycję połączonych urządzeń i aktywnych eksportów danych. Aplikacje usługi IoT Central domyślnie włączają metryki, do których można uzyskać dostęp z Azure Portal. Usługa Azure Monitor uwidacznia i udostępnia kilka sposobów interakcji z tymi metrykami.
Usługa Azure Monitor udostępnia niestandardowe analizowanie dzienników w celu ułatwienia dekompozycji zdarzeń i rekordów w poszczególnych polach do indeksowania i wyszukiwania.
Zaimplementuj pulpity nawigacyjne w czasie rzeczywistym i alerty usługi Azure Monitor, aby monitorować usługi zaplecza platformy Azure. Alerty proaktywnie powiadamiają o określonych warunkach w danych monitorowania, aby można było zidentyfikować i rozwiązać problemy przed ich napotkaniami przez klientów. Można ustawić alerty dotyczące metryk, dzienników i dziennika aktywności.
Application Insights to funkcja usługi Azure Monitor, która zapewnia rozszerzone zarządzanie wydajnością aplikacji i monitorowanie na żywo aplikacji internetowych. Jeśli rozwiązanie IoT używa niestandardowych Azure App Service, Azure Kubernetes Service lub Azure Functions aplikacji, możesz użyć usługi Application Insights do monitorowania i analizy aplikacji.
Usługa Application Insights może wykonywać następujące czynności:
- Automatycznie wykrywaj anomalie wydajności.
- Pomoc w diagnozowaniu problemów przy użyciu zaawansowanych narzędzi analitycznych.
- Pokaż, co użytkownicy rzeczywiście robią z aplikacjami.
- Pomoc w ciągłym ulepszaniu wydajności i użyteczności aplikacji.
Monitorowanie ciągłe
Ciągła integracja i ciągłe wdrażanie (CI/CD) to praktyka metodyki DevOps, która zapewnia oprogramowanie szybciej i niezawodnie w celu zapewnienia ciągłej wartości użytkownikom. Ciągłe monitorowanie (CM) to podobna koncepcja, która obejmuje monitorowanie we wszystkich fazach i składnikach cyklu DevOps.
Cm stale zapewnia kondycję, wydajność i niezawodność aplikacji i infrastruktury, gdy przepływają przez programowanie, produkcję i wydawanie klientom. Aby uzyskać więcej informacji, zobacz:
- Siedem najlepszych rozwiązań dotyczących ciągłego monitorowania za pomocą usługi Azure Monitor
- Ciągła integracja i ciągłe wdrażanie na urządzeniach usługi Azure IoT Edge
Monitorowanie zasobów
- Monitorowanie Azure IoT Hub
- Monitorowanie dokumentacji danych Azure IoT Hub
- Śledzenie komunikatów z urządzenia do chmury usługi Azure IoT za pomocą rozproszonego śledzenia
- Sprawdzanie kondycji usługi Azure IoT Hub i zasobów
- Zbieranie i transport metryk — Azure IoT Edge
Wysoka dostępność/odzyskiwanie po awarii dla krytycznych składników
Podczas projektowania i tworzenia rozwiązania IoT należy spełnić umowę SLA na potrzeby odzyskiwania po awarii w stosie rozwiązania. Umowa SLA powinna zawierać wskazówki dotyczące krytycznych składników systemu wymagających wysokiej dostępności/odzyskiwania po awarii. Istnieje wiele podejść, od nadmiarowości w stosie rozwiązań IoT po nadmiarowość dla określonych warstw. Koszt jest również ważną kwestią do rozważenia w odniesieniu do znaczenia spełnienia umów SLA.
Usługi Azure IoT mają zdefiniowane cele dotyczące czasu działania i dostępności. Zapoznaj się z umowami SLA dla usług Azure IoT, które są częścią twojego rozwiązania, aby sprawdzić, czy spełniają twoje cele dotyczące czasu pracy. Na przykład Azure IoT Hub ma umowę SLA na 99,9%, co oznacza, że należy zaplanować 1 minutę i 36 sekund potencjalnego przestoju na dzień. Zestaw SDK Azure IoT Hub zapewnia wbudowaną, konfigurowalną logikę do obsługi ponownych prób i wycofywania.
Rozważ podzielenie celów czasu pracy na dwie kategorie: zarządzanie urządzeniami i operacje pozyskiwania danych. Na przykład urządzenie może mieć kluczowe znaczenie dla pomyślnego wysyłania danych do centrum IoT, nawet jeśli usługi zarządzania urządzeniami są niedostępne. Aby uzyskać więcej informacji, zobacz funkcje niezawodności zestawu SDK Azure IoT Hub.
Rozważ użycie nadmiarowego sprzętu dla czujników, zasilania i magazynu. Nadmiarowy sprzęt umożliwia urządzeniom działanie, jeśli krytyczny składnik jest niedostępny. Sprzęt może również pomóc w rozwiązywaniu problemów z łącznością. Na przykład można użyć metody przechowywania i przekazywania danych, gdy łączność nie jest dostępna. Usługa Azure IoT Edge ma wbudowaną tę funkcję.
Urządzenia muszą również obsługiwać awarie w chmurze. Parowanie regionów platformy Azure zapewnia strategię wysokiej dostępności/odzyskiwania po awarii dla IoT Hub, która spełnia wiele wymagań umowy SLA. Jeśli parowanie regionów nie jest wystarczające, rozważ zaimplementowanie pomocniczego centrum IoT. Możesz również użyć usługi DPS, aby uniknąć zakodowanych na stałe konfiguracji IoT Hub na urządzeniach. Jeśli podstawowe centrum IoT ulegnie awarii, usługa DPS może przypisać urządzenia do innego centrum.
Rozważ zaimplementowanie wzorca komunikatu pulsu dla urządzeń, które przez większość czasu będą w trybie online. Ten wzorzec używa niestandardowej trasy IoT Hub z usługami Azure Stream Analytics, Azure Logic Apps lub Azure Functions w celu określenia, czy puls się nie powiódł. Puls umożliwia zdefiniowanie alertów usługi Azure Monitor, które podejmują działania zgodnie z potrzebami.
Zasoby wysokiej dostępności/odzyskiwania po awarii
- Zarządzanie łącznością i niezawodna obsługa komunikatów za pomocą zestawów SDK urządzeń usługi Azure IoT Hub
- Wysoka dostępność i odzyskiwanie po awarii usługi IoT Hub
- IoT Hub w regionie wysokiej dostępności/odzyskiwania po awarii
- IoT Hub wysokiej dostępności/odzyskiwania po awarii między regionami
- Jak sklonować centrum Azure IoT Hub do innego regionu
- Testowanie aplikacji pod kątem dostępności i odporności