Wprowadzenie do świata Azure IoT 

Bartosz Brandt | Usługi chmurowe | 18.01.2023

Azure IoT

Internet Rzeczy (ang. Internet of Things, w skrócie IoT) – to jedna z wiodących technologii w cyfrowej rewolucji. Właściwie każdy z nas ma z nim do czynienia w codziennym życiu. Dzięki komunikacji urządzeń i sprzętu w sieci, Internet Rzeczy jest obecny w naszej pracy, w domu, w miejscach publicznych, dając nam wiele możliwości w zakresie zbierania, monitorowania danych czy zarządzania inteligentnymi urządzeniami. Dostawcy usług chmurowych udostępniają usługi IoT w przystępnych modelach, dzięki którym developerzy mogą budować systemy Internetu Rzeczy i zarządzać nimi z jednego miejsca. W tym artykule chciałbym zwrócić waszą uwagę na ofertę Microsoftu. Czym jest Azure IoT? Jakie daje możliwości? Jaki jest koszt usług i gdzie zdobyć niezbędną wiedzę? Zapraszam do lektury!

Czym jest Azure IoT?

Skrót IoT (ang. Internet of Things) odnosi się do fizycznych urządzeń lub całej ich grupy, które za pomocą różnego rodzaju czujników i sensorów zbierają informacje z otaczającego je świata oraz komunikują się z innymi urządzeniami i systemami, wysyłając im dane za pomocą sieci Internet.

Azure IoT jest kolekcją serwisów udostępnianych w modelu PaaS (Platform as a Service) lub SaaS (Software as a Service) zarządzanych przez firmę Microsoft. Zasoby te mogą służyć do zbierania danych oraz monitorowania i komunikacji pomiędzy milionami różnych fizycznych urządzeń. W najprostszej konfiguracji system IoT oparty o chmurę można zbudować już z jednego urządzenia peryferyjnego, które komunikuje się z wybranym zasobem dostępnym w portfolio Azure IoT.

Poniższa grafika przedstawia dostępne technologie, serwisy oraz rozwiązania z zakresu urządzeń Internet of Things oferowane przez firmę Microsoft. W tym artykule postaram się przybliżyć kluczowe usługi.

Azure IoT
Rys. 1. Dostępne portfolio produktów Azure IoT, źródło: Microsoft

Dlaczego warto zainteresować się tematem Azure IoT?

W obecnych czasach urządzenia IoT obecne są w każdym obszarze naszego życia. Wykorzystujemy je w domach, samochodach, miejscach pracy czy w sektorze przemysłu. Postęp technologii i minimalizacja kosztów produkcji chipów w połączeniu z wszechobecną siecią Internet sprawia, że liczba dostępnych urządzeń wykorzystujących Internet Rzeczy rośnie w zawrotnym tempie. Prognozy przewidują, że będzie ono jeszcze szybsze – w 2023 roku według analityków zaobserwujemy 22-procentowy wzrost, a w 2025 liczba dostępnych urządzeń IoT wyniesie 27 mld.

Azure IoT
Rys. 2. Dostępne urządzenia IoT wraz z prognozą wzrostu do 2025, źródło: IoT Analytics

Rosnąca liczba dostępnych urządzeń IoT sprawia, że zarządzanie nimi, monitorowanie ich czy zbieranie danych z czujników staje się coraz bardziej problematyczne. Tutaj naprzeciw obecnie stawianym wymaganiom rynku wychodzi platforma Azure, oferując w swojej gamie wiele rozwiązań ułatwiających komunikację z milionami urządzeń peryferyjnych działających w czasie rzeczywistym. Firma Microsoft stara się optymalizować proces wdrażania swoich rozwiązań u klientów tak, aby następował on szybko i sprawnie, jednocześnie zmniejszając koszt jego wprowadzenia. Ułatwiają to między innymi udostępniane zestawy narzędzi dla programistów – tzn. SDK (ang. software development kit). Dostępne paczki pozwalają na łatwą obsługę:

  • urządzeń IoT w językach oprogramowania .NET, Python, Node.js, Java oraz C.
  • wbudowanych urządzeń z ograniczonymi zasobami pamięciowymi oraz obliczeniowymi.
  • serwisami do zarządzania komunikacją z urządzeniami IoT.

Szczegółowe informacje o dostępnych pakietach SDK można znaleźć bezpośrednio na stronie producenta.

Poza samymi zasobami umożliwiającymi komunikację z aparaturą Internetu Rzeczy Azure oferuje narzędzia, które pozwalają w prosty sposób analizować, przetwarzać, przechowywać i wizualizować odbierane dane.

Kim jest DevOps

Kim jest DevOps i jak wspiera projekty IT? 

 

Przeczytaj artykuł

Microsoft, dzięki wachlarzowi swoich usług, pozwala developerom na stworzenie rozwiązania dostosowanego do indywidualnych wymagań stawianych przez klientów. Oferując przy tym prostotę w konfiguracji gotowego do działania środowiska. Poniższy diagram przedstawia, jakie możliwości w składaniu kompozycji zasobów oferuje platforma Azure:

Azure IoT
Rys. 3. Dostępne rozwiązania IoT na platformie Azure. Źródło: Microsoft

Warto dodać, że rozwiązania oparte o zasoby z zakresu Azure IoT pozwalają zapewnić bezpieczne połączenie dla milionów urządzeń.

Azure IoT Hub

IoT Hub jest głównym zasobem składającym się na rozwiązania z obszaru Azure IoT. Jest to usługa udostępniana w modelu PaaS pozwalająca na dwukierunkową komunikację pomiędzy urządzeniami IoT a chmurą. Za pomocą bezpiecznego połączenia umożliwia obsługę transferu ogromnej liczby danych oraz ciągły monitoring praktycznie dowolnych urządzeń.

IoT Hub wspiera kilka kanałów komunikacyjnych. Są to między innymi:

Dane telemetryczne oraz alerty 

Są to wiadomości wysyłane z urządzenia do chmury (ang. device-to-cloud). Po wysłaniu przez aparat tego typu wiadomości trafia ona do wewnętrznej kolejki IoT Hub, gdzie może być przechowywana do 7 dni. Następnie zewnętrzny serwis, np. aplikacja kliencka, za pomocą wbudowanego w IoT Hub punktu końcowego jest w stanie odebrać oczekujące wiadomości. Kanał ten przeznaczony jest szczególnie do obsługi wiadomości wysyłanych z dużą częstotliwością o maksymalnym rozmiarze do 256 KB. Najprostszym sposobem na przesyłanie tego typu wiadomości jest użycie na docelowym urządzeniu wspomnianej wcześniej paczki SDK w preferowanym języku programowania, która udostępnia prosty i czytelny interfejs komunikacyjny.

Wiadomości sterujące urządzeniami

Jest to komunikacja, która w przeciwieństwie do wyżej opisanej służy do przekazywania wiadomości z chmury, np. aplikacji klienckiej, do urządzenia (ang. cloud-to-device). W tym przypadku zasób IoT Hub również jest pośrednikiem komunikacji i wysyłane wiadomości trafiają w pierwszej kolejności do wspomnianej kolejki. W zależności od konfiguracji mogą oczekiwać na odebranie przez urządzenie do kilku dni. Jest to szczególnie przydatne w przypadku urządzeń, które nie mają zapewnionego ciągłego dostępu do sieci.

Przesyłanie plików z urządzeń

Kanał ten służy do przekazywania różnego rodzaju plików. Mogą to być np. nagrania wideo czy też – w celu ograniczenia zużywanego transferu – skompresowane paczki zawierające dane telemetryczne. Przekazywane z urządzenia pliki trafiają bezpośrednio do skonfigurowanego w IoT Hub kontenera na zasobie Azure Blob Storage.

Monitoring konfiguracji oraz stanów urządzeń

Kanał ten został przez inżynierów Azure nazwany Device Twins. Służy przede wszystkim do przechowywania metadanych urządzenia w chmurze, monitorowania aktualnego stanu połączenia z urządzeniem i upewniania się, czy np. odbywa się ono przez sieć komórkową, czy Wi-Fi, oraz synchronizowania długotrwałych przepływów, takich jak stan etapów wgrywania nowej wersji dla urządzenia sprzętowego (firmware).

IoT Edge

Azure IoT Edge jest usługą używaną do wstępnej analizy danych przed ich wysłaniem do powyżej opisanego zasobu IoT Hub. Usługi te przeznaczone są dla klientów, którzy chcą przeprowadzić część agregacji danych bezpośrednio na urządzeniu, zamiast dokonywać ich w chmurze. Poprzez przeniesienie części obliczeń na graniczne urządzenia (IoT Edge Devices) można zminimalizować liczbę przesyłanych poprzez sieć danych, co może nieść ze sobą spore oszczędności w przypadku miejsc z trudno dostępną siecią. Dodatkową zaletą takiego rozwiązania może być między innymi możliwość wcześniejszej reakcji na zmianę statusu bądź wykrycie ustawionego limitu na danym parametrze.

Opisywana usługa składa się ze środowiska uruchomieniowego wraz z modułami brzegowymi, które są używane bezpośrednio na urządzeniu. Po stronie chmury znajduje się interfejs służący do zdalnego monitorowania urządzeń i zarządzania nimi przez usługę IoT Edge. 

Dodatkowym atutem jest fakt, że środowisko uruchomieniowe usługi IoT Edge jest całkowicie bezpłatne i oferowane jako rozwiązanie typu open-source.

IoT – protokoły komunikacyjne

Urządzenia IoT służą przeważnie do zbierania danych z czujników i wysyłają je do backendowych serwisów, które następnie zajmują się ich przetwarzaniem. Opisywany typ urządzeń często posiada cechy takie jak:

  • fizyczna lokalizacja w miejscu trudno dostępnym dla człowieka.
  • ograniczenia w dostępie do sieci Internet.
  • brak możliwości obsługi przez człowieka (często są to urządzenia wbudowane).
  • brak graficznego interfejsu użytkownika.
  • wymaganie specyficznych dla danego przemysłu protokołów.

Chcąc na nie odpowiedzieć, firma Microsoft zaleca używanie dedykowanych pakietów SDK ułatwiających rozpoczęcie pracy z aparaturą IoT. Zarówno paczki SDK, jak i sam zasób IoT Hub wspierają popularne protokoły komunikacyjne takie jak:

  • MQTT (Message Queue Telemetry Transport).
  • MQTT przez WebSocket.
  • AMQP (Advanced Message Queuing Protocol).
  • AMQP przez WebSocket.
  • HTTPS.

Rozwiązania bezpieczeństwa Azure IoT

Internet Rzeczy, prócz nieograniczonych wręcz możliwości, stwarza też wiele zagrożeń. Firmy stają przed nowymi wyzwaniami w zakresie bezpieczeństwa – do tej pory skupiało się ono na oprogramowaniu, a przy IoT dochodzi dodatkowa składowa, jaką jest połączony z oprogramowaniem świat rzeczywisty.

Aby odpowiednio zdefiniować zagrożenia, konieczne jest ich modelowanie, m.in. za pomocą Azure Digital Twins. Procedura ta składa się z kilku kroków – modelowania aplikacji, zdefiniowania zagrożeń, ich ograniczenia i sprawdzenia wprowadzonych środków zaradczych. Celem jest zrozumienie, w jaki sposób atakujący mogą naruszyć system, i upewnienie się, że wdrożono konieczne zabezpieczenia.

Pozaj również powiązane produkty z portfolio Azure, które pomogą zadbać o bezpieczeństwo, takie jak Azure Defender dla IoT, Azure Sentinel czy Azure IoT Central.

Bezpieczeństwo IoT

O ile urządzenia IoT mogą wydawać się zbyt małe czy wyspecjalizowane, by stanowić zagrożenie, prawdziwym niebezpieczeństwem jest ich powiązanie z siecią i możliwość ataku. Może on doprowadzić do kradzieży danych czy zakłócenia świadczenia usług, ale też wyrządzić szkody fizyczne w obiektach, a nawet stanowić zagrożenie dla obsługujących je lub zależnych od nich ludzi.

Podejmowane ataki można podzielić na 5 głównych obszarów:

  1. Spoofing – podszywanie się, gdzie haker może anonimowo manipulować urządzeniem, przejąć je lub częściowo przechwycić przesył i obserwować dane z urządzenia.
  2. Tampering – manipulowanie urządzeniami, podczas którego atakujący może wymienić oprogramowanie na urządzeniu.
  3. Disclosure – ujawnianie informacji; gdzie atak polega na podsłuchiwaniu transmisji, przechwytywaniu informacji bez autoryzacji lub zagłuszaniu sygnału i odmowie uzyskania informacji. 
  4. Denial of service – odmowa usługi, np. przez zakłócanie częstotliwości radiowych lub odcięcie przewodów; skutkiem może być niezdolność urządzenia do działania lub komunikacji.
  5. Elevation of privilege – przechwycenie uprawnień, np. gdy urządzenie wyspecjalizowane do określonych czynności zostaje zmuszone do robienia czegoś innego.

Ochrona struktur IoT zakłada kompleksowe podejście z wykorzystaniem odpowiednich technologii i protokołów.

Zaleca się trzystopniowe podejście do ochrony danych, urządzeń i połączeń: 

  1. Bezpieczne udostępnianie urządzeń. 
  2. Bezpieczne połączenie między urządzeniami i chmurą.
  3. Zabezpieczenie danych w chmurze podczas przetwarzania i przechowywania.

Najczęściej zadawane pytania (FAQ)

Czym jest cloud intelligence?

Cloud intelligence jest szeroko pojętym przetwarzaniem danych w chmurze z wykorzystaniem między innymi sztucznej inteligencji oraz uczenia maszynowego. Platforma Azure oferuje wiele zasobów wspierających pracę z inteligentnym przetwarzaniem, co w połączeniu z opisywanymi rozwiązaniami IoT pozwala na zbudowanie ciekawych kompozycji spełniających nawet najbardziej wyszukane wymagania.

Co jest lepsze: AWS IoT czy Azure IoT?

Która chmura jest lepsza dla  IoT? Nie da się jednoznacznie określić, który dostawca chmurowy jest lepszy dla rozwiązań typu IoT. Obie firmy udostępniają bardzo podobny zakres usług. Każdy projekt jest indywidualny i dopiero znając szczegóły jego specyfikacji, można potwierdzić, która platforma pozwoli je spełnić oraz który dostawca okaże się w danym przypadku tańszy.

Czy dostęp do Azure IoT jest bezpłatny? / Microsoft Azure IoT – jakie są koszty?

Część z oferowanych przez firmę Microsoft usług pakietu Azure IoT jest bezpłatna, między innymi pakiety paczek SDK czy dostęp do IoT Edge. W przypadku głównego zasobu, jakim jest IoT Hub, koszt jego użycia uzależniony jest od liczby dostępnych wiadomości do przekazania w ciągu doby. Istnieje również darmowy rodzaj, wspierający do 8000 wiadomości na 24 godziny, który w zupełności powinien wystarczyć, aby rozpocząć integrację ze światem Azure IoT. Szczegółowe informacje na temat kosztów można znaleźć bezpośrednio w cenniku.

Gdzie znajdę potrzebne źródła i dokumentację?

Najlepszym miejscem do szukania dodatkowych informacji oraz aktualnej dokumentacji Azure IoT są oficjalne strony firmy Microsoft. Jest to przede wszystkim cały dział poświęcony Internet of Things. Dokumentacja pakietów SDK wraz z całym kodem dostępna jest w serwisie GitHub.

Jak zdobyć certyfikat Azure IoT?

Aby zostać certyfikowanym developerem Azure IoT, należy zdać egzamin oferowany przez firmę Microsoft AZ-220. Więcej informacji o samym egzaminie można znaleźć bezpośrednio na stronie.

Jak poprawić bezpieczeństwo urządzeń Internetu Rzeczy?

Po pierwsze, należy poznać najbardziej prawdopodobne zagrożenia, niezależnie od tego, czy są one możliwe w cyberprzestrzeni, czy w rzeczywistości.
Po drugie, należy rozpoznać ryzyka, które niosą ze sobą wspomniane zagrożenia. Kluczowe jest przyznanie wysokich priorytetów tym, które najbardziej zagrażają biznesowi.
Po trzecie, należy wybrać konkretną strategię ochrony IoT, która przyniesie największe korzyści. Warto zaufać ekspertom, którzy w odpowiedni sposób zbadają poziom aktualnych zabezpieczeń i pomogą we wprowadzeniu zmian, kluczowych dla bezpieczeństwa danego środowiska.

Azure

Azure Serverless workflow orchestration

Przeczytaj artykuł

Autorem wpisu jest:

Senior .NET Engineer / Technical Leader

Od blisko 10 lat związany z programowaniem przy użyciu platformy .NET. Ostatnie 6 lat głównie pochłania go temat chmury Azure, w tym między innymi komunikacja z IoT Hubem. Prywatnie majsterkowicz niebojący się chwycić kielni czy tworzyć rozwiązań Smart Home.  

Dodaj komentarz: