IoT Hub i doskonałość operacyjna
azure IoT Hub to zarządzana usługa hostowana w chmurze, która działa jako centralne centrum komunikatów do komunikacji między aplikacją IoT a dołączonymi urządzeniami. Miliony urządzeń i ich rozwiązań zaplecza można połączyć niezawodnie i bezpiecznie. Prawie każde urządzenie można połączyć z usługą IoT Hub.
Usługa IoT Hub obsługuje monitorowanie, aby ułatwić śledzenie tworzenia urządzeń, połączeń urządzeń i awarii urządzeń.
Usługa IoT Hub obsługuje również następujące wzorce obsługi komunikatów:
- Telemetria z urządzenia do chmury
- Przekazywanie plików z urządzeń
- Metody żądania odpowiedzi w celu kontrolowania urządzeń z chmury
Aby uzyskać więcej informacji na temat usługi IoT Hub, zapoznaj się z tematem Pojęcia dotyczące IoT i usługi Azure IoT Hub.
Aby zrozumieć, jak usługa IoT Hub promuje doskonałość operacyjną, zapoznaj się z następującymi tematami:
- samouczek : konfigurowanie i używanie metryk i dzienników za pomocą usługi IoT Hub
- monitorowanie usługi Azure IoT Hub
- Śledzenie komunikatów z urządzenia do chmury w usłudze Azure IoT przy użyciu śledzenia rozproszonego (wersja próbna)
- sprawdzanie usługi IoT Hub i kondycji zasobów
Poniższe sekcje dotyczą usługi Azure IoT Hub i doskonałości operacyjnej:
- Zagadnienia dotyczące projektowania
- Lista kontrolna konfiguracji
- Zalecane opcje konfiguracji
Zagadnienia dotyczące projektowania
Aby uzyskać więcej informacji na temat umowy dotyczącej poziomu usług usługi Azure IoT Hub, zapoznaj się z umową SLA dla usługi Azure IoT Hub.
Lista kontrolna
Czy skonfigurowano usługę Azure IoT Hub z myślą o doskonałości operacyjnej?
- Utwórz drugą usługę IoT Hub w innym regionie i zaimplementuj logikę routingu na urządzeniu.
- Użyj protokołu
AMQP
lubMQTT
podczas częstego wysyłania zdarzeń. - Użyj tylko certyfikatów zweryfikowanych przez główny urząd certyfikacji w środowisku produkcyjnym, jeśli używasz certyfikatów X.509 dla połączenia urządzenia.
- Aby uzyskać maksymalną przepływność, użyj maksymalnej liczby partycji (
32
) podczas tworzenia usługi IoT Hub, jeśli planujesz użyć wbudowanego punktu końcowego. - W przypadku skalowania zwiększ poziom i przydzielone jednostki IoT Hub zamiast dodawać więcej niż jeden IoT Hub na region.
- W scenariuszach o wysokiej przepustowości używaj zdarzeń wsadowych.
- Jeśli potrzebujesz minimalnego możliwego opóźnienia, nie używaj routingu i odczytuj zdarzeń z wbudowanego punktu końcowego.
- W ramach strategii dostępności i odzyskiwania po awarii w całym rozwiązaniu rozważ użycie opcji odzyskiwania po awarii usługi IoT Hub między regionami.
- Jeśli używasz zestawu SDK do wysyłania zdarzeń do IoT Hubs, upewnij się, że wyjątki zgłaszane przez politykę ponawiania (
EventHubsException
lubOperationCancelledException
) są prawidłowo przechwytywane. - Aby uniknąć przerw w telemetrii z powodu ograniczania przepustowości i w pełni używanego limitu przydziału, rozważ dodanie niestandardowego rozwiązania do automatycznego skalowania.
Zalecenia dotyczące konfiguracji
Podczas konfigurowania usługi Azure IoT Hub należy wziąć pod uwagę następujące zalecenia dotyczące zwiększania doskonałości operacyjnej:
Zalecenie | Opis |
---|---|
Skonfiguruj drugi IoT Hub w innym regionie i utwórz logikę routingu na urządzeniu. | Te konfiguracje można dodatkowo ulepszyć za pomocą usługi Concierge. |
Użyj protokołu AMQP lub MQTT podczas częstego wysyłania zdarzeń. |
AMQP i MQTT mają wyższe koszty sieci podczas inicjowania sesji, jednak HTTPS wymaga dodatkowych obciążeń związanych z protokołem TLS dla każdego żądania.
AMQP i MQTT osiągają wyższą wydajność dla często publikujących. |
Użyj tylko certyfikatów zweryfikowanych przez główny urząd certyfikacji w środowisku produkcyjnym, jeśli używasz certyfikatów X.509 dla połączenia urządzenia. | Upewnij się, że istnieją procesy aktualizacji certyfikatu przed ich wygaśnięciem. |
Aby uzyskać maksymalną przepływność, użyj maksymalnej liczby partycji (32 ) podczas tworzenia usługi IoT Hub, jeśli planujesz użyć wbudowanego punktu końcowego. |
Liczba partycji urządzenie-chmura dla punktu końcowego zgodnego z centrum zdarzeń odzwierciedla stopień równoległości podrzędnej, którą można osiągnąć. Umożliwi to skalowanie w górę do 32 współbieżnych jednostek przetwarzania i zapewni najwyższą dostępność wysyłania i odbierania. Nie można zmienić tej liczby po utworzeniu. |
W przypadku skalowania zwiększ warstwę i przydzielone jednostki usługi IoT Hub zamiast dodawać więcej niż jedną usługę IoT Hub na region. | Dodanie więcej niż jednego centrum IoT Na region nie zapewnia dodatkowej odporności, ponieważ wszystkie centra mogą działać w tym samym klastrze bazowym. |
W scenariuszach o wysokiej przepływności użyj zdarzeń wsadowych. | Usługa dostarczy odbiorcom tablicę zawierającą wiele zdarzeń zamiast jednej z jednym zdarzeniem. Aplikacja zużywana musi przetwarzać te tablice. |
Jeśli potrzebujesz minimalnego możliwego opóźnienia, nie używaj routingu i odczytuj zdarzeń z wbudowanego punktu końcowego. | W przypadku korzystania z routingu komunikatów w usłudze IoT Hub opóźnienie dostarczania komunikatów zwiększa się. Średnio opóźnienie nie powinno przekraczać 500 ms , ale nie ma żadnej gwarancji dla opóźnienia dostarczania. |
W ramach strategii dostępności i odzyskiwania po awarii w całym rozwiązaniu rozważ użycie opcjiodzyskiwania po awarii między regionami dla IoT Hub |
Ta opcja spowoduje przeniesienie punktu końcowego usługi IoT Hub do sparowanego regionu świadczenia usługi Azure. Tylko rejestr urządzeń jest replikowany. Zdarzenia nie są replikowane w regionie wtórnym. Czas odzyskiwania (RTO) dla procedury failover zainicjowanej przez klienta wynosi od 10 minut do kilku godzin. W przypadku failover zainicjowanego przez firmę Microsoft, RTO wynosi 2-26 godzin. Proszę się upewnić, że RTZ jest zgodny z wymaganiami klienta i pasuje do szerszej strategii dostępności. Jeśli wymagane jest wyższe RTO, rozważ zaimplementowanie wzorca trybu failover po stronie klienta. |
W przypadku używania zestawu SDK do wysyłania zdarzeń do usługi IoT Hub upewnij się, że wyjątki zgłaszane przez politykę ponawiania (EventHubsException lub OperationCancelledException ) są prawidłowo przechwytywane. |
W przypadku korzystania z HTTPS zaimplementuj właściwy wzorzec ponawiania prób. |