Spis treści
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.
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.
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.
Przeczytaj atykuł: Kim jest DevOps i jak wspiera projekty IT?
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:
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.
Przeczytaj także: Azure DevOps – jak zacząć karierę?
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:
- Spoofing – podszywanie się, gdzie haker może anonimowo manipulować urządzeniem, przejąć je lub częściowo przechwycić przesył i obserwować dane z urządzenia.
- Tampering – manipulowanie urządzeniami, podczas którego atakujący może wymienić oprogramowanie na urządzeniu.
- Disclosure – ujawnianie informacji; gdzie atak polega na podsłuchiwaniu transmisji, przechwytywaniu informacji bez autoryzacji lub zagłuszaniu sygnału i odmowie uzyskania informacji.
- 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.
- 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ń:
- Bezpieczne udostępnianie urządzeń.
- Bezpieczne połączenie między urządzeniami i chmurą.
- 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. u003cstrongu003eIstnieje 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 IoTu003c/strongu003e. Szczegółowe informacje na temat kosztów można znaleźć bezpośrednio u003ca href=u0022https://azure.microsoft.com/en-us/pricing/details/iot-hub/u0022 target=u0022_blanku0022 rel=u0022noreferrer noopeneru0022u003ew cenniku.u003c/au003e
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 u003ca href=u0022https://learn.microsoft.com/en-us/azure/iot-fundamentalsu0022 target=u0022_blanku0022 rel=u0022noreferrer noopeneru0022u003eInternet of Things.u003c/au003e Dokumentacja pakietów SDK wraz z całym kodem dostępna jest w serwisie u003ca href=u0022https://github.com/u0022 target=u0022_blanku0022 rel=u0022noreferrer noopeneru0022u003eGitHubu003c/au003e.
Jak zdobyć certyfikat Azure IoT?
Aby zostać certyfikowanym developerem Azure IoT, należy zdać egzamin oferowany przez firmę u003ca href=u0022https://learn.microsoft.com/en-us/certifications/exams/az-220u0022 target=u0022_blanku0022 rel=u0022noreferrer noopeneru0022u003eMicrosoft AZ-220u003c/au003e. 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.u003cbru003eu003cbru003ePo drugie, należy rozpoznać ryzyka, które niosą ze sobą wspomniane zagrożenia. u003cstrongu003eKluczowe jest przyznanie wysokich priorytetów tym, które najbardziej zagrażają biznesowi.u003c/strongu003eu003cbru003eu003cbru003ePo 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.