Cum alegem ce tip de tehnologii Azure vom folosi pentru soluția noastră (I)IoT? ȘI Azure e o opțiune de luat în seama pentru acest tip de soluții.
Aceasta este tema acestui articol. Mai întâi, să vedem ce tehnologii sunt disponibile și, pe urmă, să găsim niște criterii pe care să le utilizăm pentru a clasifica aceste tehnologii.
Tehnologiile pe care le vom compara:
Azure IoT Hub;
Azure IoT Edge;
Event Grid;
Criteriile se referă la:
Facilitățile de management dispozitiv;
Suportul pentru protocolul MQTT;
MQTT (Message Queuing Telemetry Transport), conform mqtt.org este: " un protocol de mesagerie standardizat de OASIS pentru Internet of Things (IoT). Acesta este conceput ca un mecanism de transport lightweight al mesajelor de tip publisher/subscriber, fiind ideal pentru conectarea dispozitivelor de la distanță, având o amprentă de cod redusă și necesitând o lățime de bandă minimă."
Conectează dispozitivele prin rutarea mesajelor printr-un broker central, care decuplează producătorii de date (publishers) de consumatori (subscribers). Fără a mai intra în detalii, MQTT este, momentan, cel mai folosit protocol, este recunoscut chiar și ca standard ISO.
Azure IoT Hub este un serviciu Azure care acționează ca un hub central de mesaje într-o soluție IoT bazată pe cloud. Acesta permite o comunicare bidirecțională fiabilă și sigură, la scară largă, între o aplicație IoT și dispozitivele conectate la aceasta. Protocoalele folosite pentru comunicare sunt: AMPQ, MQTT, HTTP și chiar pot fi definite ca protocoale custom.
Capabilități de administrare a dispozitivelor: IoT Hub oferă funcționalități precum actualizări OTA ("over-the-air"), apelarea de la distanță a metodelor implementate pe dispozitiv și blocarea accesului unui dispozitiv. Totuși, utilizarea acestor funcții depinde de capabilitățile hardware și software ale dispozitivului. De exemplu, dispozitivul trebuie să permită actualizări OTA, iar firmware-ul trebuie să fie dezvoltat într-un limbaj pentru care există bibliotecile și componentele necesare.
Limitări MQTT: Serviciul nu implementează integral specificațiile unui broker MQTT 5 și nu oferă suport nativ pentru subiecte MQTT ierarhice personalizate.
Scenariu de utilizare: atunci când ai device-uri off the shelf sau dispozitive dezvoltate intern, care vor fi produse și implementate în număr mare. Un exemplu îl reprezintă rețelele de senzori utilizate în agricultură sau în logistică.
Dacă vorbim și despre IA, în cele mai multe cazuri modelele sunt rulate în cloud. Totuși, există și modele optimizate pentru dispozitive cu resurse limitate.
Azure IoT Edge este o device-focused runtime, care vă permite să implementați, să rulați și să monitorizați aplicații în containere Linux. OK! nu neapărat din punct de vedere practic Linux. Vom vedea de ce Linux este preferat/suportat.
Să repetăm "rulați și să monitorizați aplicații în containere Linux". Poți face asta din portalul Azure. Firmware, în acest caz, este mai aproape de un sistem de operare.
Protocolul default de comunicare cu cloud este AMPQ. Dar pentru că intern există un Iot Hub MQTT cu limitările cunoscute.
Scenariu de utilizare: hardware mai performant, care nu este neapărat conectat permanent la rețea. Un exemplu îl reprezintă instalațiile petroliere. Dacă vorbim despre IA, un container care include un model reprezintă o soluție elegantă și ușor de implementat, permițând rularea modelului on the edge și distribuirea sa într-un mod controlat.
Azure Event Grid este un serviciu managed publish-subscriber, "real-time", cu scalabilitate ridicată, destinat distribuirii mesajelor. Event Grid oferă modele flexibile de consum al mesajelor și utilizează protocoalele MQTT (Message Queuing Telemetry Transport) și HTTP.
Vorbim de mesaje nu de dispozitiv. Deci, nu avem capabilități de rulare software pe dispozitiv sau monitorizare dispozitiv.
Implementare completă a unui broker MQTT v5 (și v3.5). Știe și Custom hierarchical topics cu wildcard și Authentication based-on certificates și Entra ID service.
Bonus: Un mecanism sofisticat de retry reprezintă una dintre funcționalitățile Event Grid.
Scenariu de utilizare: în special în scenarii care implică integrarea mai multor dispozitive. Un exemplu îl reprezintă un shop floor, unde există diferite mașini care trebuie să comunice între ele, fie prin orchestrare, fie prin coregrafie. În acest caz, nu discutăm în mod explicit despre IA.
Azure IoT Operations este un data plane unificat pentru edge. Este noua arhitectură IoT bazată pe viziunea unificată Microsoft Edge construită on top of Azure Arc-enabled K8s.
Avem o versiune la scara largă a IoT Edge. În loc de numai containere avem Kubernetes și management cu Azure Arc. În acest caz Firmware este un sistem de operare.
Implementare completă a unui broker MQTT v5 (și v3.5). Știe și Custom hierarchical topics cu wildcard .
Scenariu de utilizare: un shop floor relativ modern. De exemplu, într-o fabrică medie există adesea un server insuficient utilizat, care poate rula IoT Operations, în timp ce PLC-urile reprezintă restul dispozitivelor. Azure Arc este posibil să fie deja folosit pentru management, astfel că adoptarea IoT Operations reprezintă un pas firesc înainte. Distribuirea modelelor IA pentru a rula on the edge într-un scenariu Kubernetes este banală: mai este adăugat doar un container. Prin urmare, IA on the edge devine un scenariu obișnuit.
Simplificând, IoT Operations poate fi privit ca un succesor al IoT Edge atunci când sunt disponibile resurse hardware semnificative, de la putere de procesare la memorie. Fiind bazat pe Azure Arc, utilizat pe scară largă pentru administrarea PC-urilor și a serverelor, acesta oferă și o imagine asupra nivelului de capabilități hardware pe care îl presupune pentru dispozitivele pe care rulează.
Ca o concluzie, putem afirma că focusul actual se orientează înspre dispozitive cu sistem de operare relativ puternice și implicit mai scumpe. În anul acesta, MQTT este protocolul de comunicație la modă. Soluțiile bazate pe containere au o eleganță care le face populare. Și dacă folosești containere, soluțiile de management ale containerelor apar și ele în zona (I)IoT, Kubernetes. Totodată, există dorința de avea capabilitatea de a rula modele IA on the edge. Indirect se pare că scenariul sometimes connected este în continuare cel mai comun, chiar în (I)IoT. Încă nu am ajuns la nivelul de conectare și încredere ca aceste sisteme să fie întotdeauna online.
Sper că am adus puțină lumină în subiectul legat de ce anume să alegi din Azure pentru o soluție (I)IoT.
de Vlad Petrean
de Ovidiu Mățan