IoT este un mai mult decât un trend, a devenit o realitate care ne înconjoară. Acest lucru i-a determinat pe cei mai mari furnizori de cloud de pe piaţă (Amazon și Microsoft) să dezvolte platforme pentru IoT.
Scopul acestui articol este de a compara soluţiile curente din perspectiva feature-urilor și a capabilităţilor.
Cel mai interesant lucru din ultimii ani este modul în care au evoluat platformele IoT. La început, soluţiile erau orientate pe transport și comunicare, dar acum platformele IoT au evoluat și sunt integrate cu sisteme ce rulează în cloud, fiind interconectate cu alte sisteme.
Haideţi să analizăm soluţiile oferite de Amazon și Microsoft. Ambii furnizori oferă un hub folosit pentru a stabili și facilita comunicarea dintre dispozitive și sistemele backend.
La nivel de dispozitiv, fiecare furnizor oferă un set de librării sub formă de pachete ce le permite clienţilor să integreze mai repede dispozitivele lor cu platforma de comunicare. La nivel backend, funcţionalitatea de bază este aproape aceeași, cu unele mici diferenţe. Majoritatea sistemelor de procesare utilizate pentru procesare de date se regăsesc la ambii furnizori.
Este interesant modul în care se poziţionează acești furnizori față de IoT. Ambii se axează pe telemetrie și colectare de date de la dispozitive. Deși există suport complet pentru comunicare (comenzi și notificări) din backend spre dispozitiv, nici unul din ei nu oferă o comunicare în timp real, existând limitări din perspectiva numărului de mesaje care pot să fie schimbare cu fiecare dispozitiv în parte.
Nu vă miraţi dacă veţi găsi multe similarităţi între aceste două soluţii. Principalul interes al ambilor furnizori este acela de a deservi nevoile clienţilor. Din acest motiv, este normal ca atunci când un feature apare pe o platformă, cealaltă platformă să ofere un feature similar în cel mai scurt timp.
Per total, din punctul de vedere al organizării și al listei de core features oferta este similară.
Să analizăm funcționalitățile fiecărei platforme. Această listă conţine principalele funcționalități disponibile azi. Din cauza că noi funcționalități apar în fiecare zi, lista de mai jos devine invalidă din secunda doi.
Din perspectiva gestionării dispozitivelor, ambii furnizori oferă o listă similară de funcționalități. Aveți posibilitatea să specificați lista de atribute pentru fiecare dispozitiv și puteţi avea o imagine virtuală a dispozitivului în cloud. O funcționalitate utilă ce poate să fie găsită pe ambele platforme este abilitatea de a activa un dispozitiv și de a-i controla capabilităţile. Acest lucru este extrem de util pentru a crea un black list cu dispozitivele care nu au voie să se conecteze la platformă.
Azure IoT Hub oferă suport pentru pipeline-uri de comenzi ce trebuie trimise către dispozitiv, spre deosebire de AWS unde acest suport nu este oferit out-of-the-box. În acest ultim caz, pe AWS este nevoie de integrarea altor servicii externe.
Ambii furnizori oferă mecanisme bune de autentificare și autorizare. Pentru startupuri și companii mici ce nu folosesc Active Directory (AD), AWS este o opțiune bună. Microsoft este foarte atractiv când o companie utilizează AD. Suportul nativ AD combinat cu accesul bazat pe token pentru dispozitive simplifică integrarea cu aplicaţiile existente pe care o companie le are.
Lista protocoalelor ambilor furnizori cuprinde HTTPS, MQTT și AMQP. Azure este strâns legat de HTTPS, iar pentru HTTP nu există suport. Dacă aveţi nevoie de protocolul HTTP între dispozitive și Azure, acest lucru este posibil doar printr-un sistem intermediar între dispozitiv și Azure IoT Hub, numit gateway.
AWS și Azure se poziţionează clar: suport pentru toate platformele, începând cu Node.JS și C (ANSI C99), continuând cu Java și C#. Feature-urile SDK și API sunt aceleași pentru toate limbajele de programare. Nu veţi găsi feature-uri disponibile doar pentru un anumit limbaj de programare specific.
Pe piaţă, pe lângă o platformă de comunicare este nevoie și de sisteme inteligente precum Machine Learning, AI și Analytics. Azure și AWS oferă aceleași capabilităţi și folosesc aceleași platforme. Hadoop, Spark și R sunt limbaje comune pentru ambii furnizori.
Azure stochează toată informaţia dispozitivului în cadrul platformei. Ultima stare a dispozitivului este mereu disponibilă și poate să fie interogată în orice moment. Starea dispozitivului este disponibilă în Azure IoT Hub împreună cu ultima acţiune realizată, administratorul având control deplin asupra dispozitivului (creare, actualizare și ștergere).
Gestionarea identităţii se numește Thing Registry în AWS și este echivalentă celei oferite în Azure.
Comunicarea bi-direcţională este oferită și de AWS și de Azure, singura diferenţă fiind modul în care această funcţionalitate este implementată. AWS utilizează un set de reguli (rule engine). Dispozitivele conectate la platforma IoT AWS au un topic specific, asemănător cu ESB, ce joacă rolul unui broker de mesaje care trimite mesajele spre fiecare dispozitiv. Fiecare dispozitiv își publică starea prin actualizări ce sunt stocate în Thing Shadow.
Azure IoT Hub utilizează două endpointuri diferite pentru transmiterea și primirea de date de la dispozitive. Mesajele conţin un timestamp care marcheză momentul când mesajul a fost trimit. Pe baza acestui atribut, un mesaj expiră după o perioadă de timp configurată. Conceptul Thing Shadow poate fi găsit pe Azure IoT Hub drept Twin Device. Sunt de părere că în acest moment, Azure IoT Hub oferă o soluţie mai matură în ceea ce privește comunicarea dispozitivelor.
Din perspectiva comunicării, ambele soluţii folosesc aceleași funcționalități, doar că sunt implementate ușor diferit.
Securitatea este un subiect fierbinte în ziua de azi. Veţi găsi multe materiale pe această temă. Amintiţi-vă că Azure IoT Hub are la bază protocolul Transport Layer Security (TLS) ce oferă un canal de comunicare criptat ce garantează confidenţialitatea datelor. Clienţii pot avea propriile certificate X.509. Mai mult, endpointurile împreună cu dispozitivele sunt securizate folosind chei de securitate împreună cu certificate. Fiecare dispozitiv are o listă de acțiune pe care le poate face în cadrul platformei.
AWS folosește tot TLS pentru partea de autentificare cu platforma, oferind suport complet pentru autentificare mutuală. Clienţii pot atașa certificate dispozitivelor și au control la ce acțiuni pot să fie făcute de fiecare dispozitiv.
Fiecare furnizor oferă kituri starter cu hardware. Aceste kituri sunt ideale pentru a crea prototipuri și a valida idei. Iată o listă cu cei mai importanţi parteneri.
Fiecare furnizor oferă o colecţie de servicii pentru a-și ajuta clienţii să îți acopere toate nevoile de business pe care le au. Cele mai importante servicii oferite de Azure (IoT Suite) la nivel IoT sunt:
Stream Analytics
Machine Learning
Power BI
Azure Time Series Insights
Azure Storage
Azure Cosmos DB
Serviciile oferite de AWS acoperă funcționalități similare:
DynamoDB
Kinesis
Lambda
Acest subiect este unul fierbinte și complex. Calcularea costului unui E2E pentru o platformă IoT este dificilă, în special când trebuie să faci presupuneri (volum de date, cantitatea de date care intră și iese de pe platformă, număr de mesaje, mărime, complexitatea interogărilor). Dimensiunea mesajelor pentru AWS este 1KB în comparaţie cu Azure unde dimensiunea mesajelor este de 4 KB, ceea ce influenţează costul.
Dacă pui toate costurile la un loc, se poate constata că o platformă IoT poate fi cu 20-50% mai ieftină pe Azure decât pe AWS. Un tier gratuit este oferit de fiecare provider.
Cel mai bun mod de a încheia un astfel de articol nu este opinia autorului, deoarece ar putea fi irelevantă. Consider că un tabel comparativ cu cele doua platforme din perspectiva funcționalităților este cel mai util.