ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 169
Numărul 168 Numărul 167 Numărul 166 Numărul 165 Numărul 164 Numărul 163 Numărul 162 Numărul 161 Numărul 160 Numărul 159 Numărul 158 Numărul 157 Numărul 156 Numărul 155 Numărul 154 Numărul 153 Numărul 152 Numărul 151 Numărul 150 Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 169
Abonamente

Rețetă (I)IoT cu Azure

Cătălin Gheorghiu
Solution Architect @ EPAM



PROGRAMARE

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:

Criteriile se referă la:

  1. Facilitățile de management dispozitiv;

  2. Suportul pentru protocolul MQTT;

  3. Costul unui dispozitiv care poate fi conectat.

Ce este 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

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.

  1. 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.

  2. Limitări MQTT: Serviciul nu implementează integral specificațiile unui broker MQTT 5 și nu oferă suport nativ pentru subiecte MQTT ierarhice personalizate.

  3. Cerințe hardware și de securitate: Principala limitare poate fi puterea de procesare a dispozitivului, deoarece acesta trebuie să execute într-un timp rezonabil operațiile criptografice necesare. Comunicarea cu Azure IoT Hub este întotdeauna criptată. Platforme precum ESP32, Arduino și Raspberry Pi pot fi utilizate fără dificultăți majore, însă nivelul de suport pentru funcționalitățile avansate menționate la punctul 1 diferă în funcție de dispozitiv și de implementare. De asemenea, pot fi construite dispozitive mai simple și mai ieftine care să se conecteze la IoT Hub, cu condiția să îndeplinească cerințele minime de comunicare și securitate. Bonus: IoT Hub are reguli de procesare a mesajelor nu foarte sofisticate, dar care sunt relativ simplu de utilizat. În plus, are reguli de plată clare. ( De comparat, de exemplu, cu Stream Analytics).

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

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.

  1. 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.

  2. Protocolul default de comunicare cu cloud este AMPQ. Dar pentru că intern există un Iot Hub MQTT cu limitările cunoscute.

  3. Pe dispozitiv ar trebui să ruleze un număr redus de containere Docker, optimizate din punctul de vedere al dimensiunii (aproximativ 120-200 MB). Un container găzduiește runtime-ul IoT Edge, altul gestionează comunicația dintre containere, iar celelalte conțin aplicația propriu-zisă (modelul IA, interfața cu utilizatorul etc.). Acest lucru presupune cel puțin nivelul de performanță al unui Raspberry Pi 4, dacă nu chiar al unui dispozitiv mai puternic. În plus, un container Windows este considerabil mai mare, ceea ce explică alegerea Linux. În privința memoriei, vorbim oricum de ordinul gigabyților.

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

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.

  1. Vorbim de mesaje nu de dispozitiv. Deci, nu avem capabilități de rulare software pe dispozitiv sau monitorizare dispozitiv.

  2. 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.

  3. Dacă dispozitivul se poate conecta la un hub (IoT Hub, Event Hub), sau dacă "vorbește" mesaje MQTT (și multe din cutie fac asta sunt MQTT client) lucrează perfect cu Azure Event Grid.

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

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.

  1. 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.

  2. Implementare completă a unui broker MQTT v5 (și v3.5). Știe și Custom hierarchical topics cu wildcard .

  3. Configurația minimă: 4 cores + 16Gb. Cu un preț similar serverului.

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ă.

Rețeta în stilul magic quadrant Gartner

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.

NUMĂRUL 166 - AI for Programmers

Sponsori

  • Banca Transilvania
  • Betfair
  • MHP
  • .msg systems
  • P3 group
  • Cognizant Softvision
  • BMW TechWorks Romania

INTERVIURI