Obsah:

AWS a IBM: Porovnanie služieb IoT: 4 kroky
AWS a IBM: Porovnanie služieb IoT: 4 kroky

Video: AWS a IBM: Porovnanie služieb IoT: 4 kroky

Video: AWS a IBM: Porovnanie služieb IoT: 4 kroky
Video: Маска подсети – объяснение 2024, November
Anonim
AWS a IBM: Porovnanie služieb IoT
AWS a IBM: Porovnanie služieb IoT

Dnes porovnávame dva komíny, ktoré umožňujú vyvíjať aplikácie IoT z pohľadu rôznych ponúk služieb.

Krok 1: Funguje ako služba

Funguje ako služba
Funguje ako služba

FaaS je kategória cloudových služieb používaných na vybudovanie „serverovej“architektúry. FaaS umožňuje zákazníkom vyvíjať, prevádzkovať a spravovať funkčnosti aplikácií bez budovania a údržby infraštruktúry.

Amazon ponúka AWS Lambda, IBM ponúka cloudové funkcie IBM. Tieto služby sú si veľmi podobné, avšak Lambda bola prvou tohto druhu. Pomocou FaaS môžete spúšťať časti kódu v cloude a každá služba podporuje rôzne programovacie jazyky.

Cloudové funkcie IBM: JavaScript, Swift, Java, Go, Php, Python, Ruby,. NET (C# F# atď.), Akékoľvek prostredníctvom Docker AWS Lambda: JavaScript, Java, C#, F#, Go, Python, Ruby, PowerShell, akékoľvek cez Runtime API

IBM podporuje viac jazykov as dockerom sa dajú ľahko používať skripty napísané v iných jazykoch. To sa dá urobiť aj s Lambdou, ale nie je to bezprostredné. Príklad si môžete prečítať tu:

Obe služby majú limity použitia, uvádzame ich v tabuľke a zvýrazňujeme tie najlepšie.

Cena je založená na GigaBytes za sekundu (RAM) s pripočítaním počtu požiadaviek na AWS Lambda. Každá služba má bezplatný plán a sú takmer ekvivalentné. Ako vidíte, Lambda je o niečo lacnejšia pre GB/s, ale má náklady súvisiace so žiadosťami, ktoré Cloud Functions nemá, takže náklady sú vo všeobecnosti takmer rovnaké. Samozrejme, ak potrebujete spustiť úlohy, ktoré zaberajú pamäť a používajú málo požiadaviek, mali by ste použiť Lambda. Hlavnou výhodou IBM Cloud Function je podľa nášho názoru to, že jeho balík je open source. Je úplne založený na Apache OpenWhisk a môže byť nasadený aj na súkromnej infraštruktúre.

Krok 2: Strojové učenie

Strojové učenie
Strojové učenie

Oblasť, v ktorej komplexy IBM a AWS ponúkajú podobné služby, je oblasť strojového učenia: Amazon s programom SageMaker a IBM so systémom Watson Machine Learning. Tieto dve služby sú v mnohých aspektoch veľmi podobné: obe sa prezentujú ako nástroje, ktoré pomáhajú vedcom a vývojárom v oblasti dát vybudovať, školiť a potom nasadiť do strojovo pripraveného prostredia ich modely strojového učenia, ale filozofie, ktoré tieto dve spoločnosti prijali, sa dosť líšia. Obe služby vám umožňujú vybrať si medzi rôznymi stupňami ovládania modelov, ktoré používate. Vo Watson ML máte niekoľko vstavaných modelov, ktoré sú už vyškolené na vykonávanie niektorých veľmi špecifických úloh: napríklad ak chcete rozpoznať, ktoré objekty sa na obrázku nachádzajú, stačí importovať model VisualRecognitionV3 a odovzdať mu obrázok, ktorý chcieť analyzovať. Môžete si tiež vytvoriť „vlastný model“, ale vo Watson ML to väčšinou znamená vziať si už postavený model a absolvovať o ňom školenie, takže prispôsobenie je dosť obmedzené. Je dôležité si uvedomiť, že ani SageMaker, ani Watson ML nie sú jediné spôsoby, ako vykonávať strojové učenie na balíkoch ich vývojárov, ale sú to len služby, ktorých cieľom je uľahčiť vývojárom život. Platforma Watson ML podporuje aj mnohé z najobľúbenejších knižníc strojového učenia, takže si dokonca môžete postaviť model od začiatku pomocou knižníc PyTorch, Tensorflow alebo podobných. Buď použijete tieto knižnice priamo, alebo použijete vopred pripravené modely, neexistuje žiadna stredná cesta. Watson ML tiež nepodporuje výberovú knižnicu Amazonu Apache MXNet, ktorá má namiesto toho prvotriednu podporu v programe SageMaker.

Prístup programu Amazon SageMaker, aj keď používa vstavané možnosti, je o niečo nižší: namiesto toho, aby ste si vyberali z vopred pripravených modelov, umožňuje vám vybrať si z množstva už implementovaných školiacich algoritmov, ktoré môžete použiť pri vytváraní svojho model tradičnejším spôsobom. Ak to nestačí, môžete použiť aj svoj vlastný algoritmus. Tento spôsob robenia vecí určite vyžaduje viac znalostí o tom, ako sa strojové učenie vykonáva, v porovnaní s použitím iba vycvičeného modelu vo Watson ML.

Na prvý pohľad sa môže zdať, že Watson ML je „ľahký a rýchly“spôsob, pričom komplexnejšie je nastavenie programu Amazon SageMaker. Z niektorých uhlov pohľadu to nemusí byť úplne pravda, pretože SageMaker je štruktúrovaný tak, aby všetko bežalo na prenosnom počítači Jupyter, zatiaľ čo pre rovnaké funkcie v programe Watson ML musíte z webového používateľského rozhrania nastaviť mnoho rôznych čiastkových služieb. Predspracovanie údajov má tiež vyhradené medzery v službe IBM, zatiaľ čo SageMaker sa spolieha na to, že to všetko urobíte z kódu vo svojom prenosnom počítači. To plus skutočnosť, že prenosné počítače Jupyter nie sú z hľadiska softvérového inžinierstva práve najlepšou voľbou, môže zabrániť tomu, aby sa SageMaker vo výrobe veľmi dobre škáloval. Obe služby majú celkom dobré a jednoduché mechanizmy na nasadenie vášho modelu a sprístupnenie rozhraní API preň vo vonkajšom svete.

Na záver možno povedať, že Watson ML funguje lepšie v obrovských projektoch, kde notebooky Jupyter začínajú ukazovať svoje limity a kde nepotrebujete veľké prispôsobenie toho, čo samotný model robí. SageMaker je oveľa lepší, keď potrebujete väčšiu flexibilitu pri definovaní algoritmov, ale pri jeho použití musíte vziať do úvahy skutočnosť, že sa musíte spoliehať na prenosné počítače Jupyter, ktoré sa vo výrobe nemusia dobre škálovať. Riešením by mohlo byť oddelenie zvyšku kódu od modelu čo najviac, aby kód v skutočných prenosných počítačoch nebol príliš veľký a mohli sme lepšie organizovať náš softvér v ostatných moduloch, ktoré jednoducho používajú API nášho modelu..

Krok 3: Streamovanie údajov a analýza

Streamovanie údajov a analytika
Streamovanie údajov a analytika

Služby streamovania údajov sú kľúčové pri spracovaní a analýze veľkých tokov údajov v reálnom čase. Tento tok môže byť z cloudu do zariadenia používateľa, napríklad streamovaním videa, alebo z používateľov do cloudu, napríklad telemetria IoT a údaje zo senzorov. Zvlášť v druhom prípade by sme mohli mať situáciu, keď jednotlivé zdroje nahrávajú malé množstvo údajov, ale keď vezmeme do úvahy celkovú priepustnosť pochádzajúcu zo všetkých zariadení, spotrebuje značnú šírku pásma, a preto má zmysel používať špecializovanú službu na zvládnutie takýchto toky údajov. Bez priameho spracovania tohto nepretržitého toku by sme museli uložiť prichádzajúce informácie do dočasného úložiska a v druhom čase ich spracovať pomocou nejakého výpočtového jadra. Problém tohto posledného prístupu je, že by sme museli koordinovať viac rôznych služieb, aby sme dosiahli to, čo jedna služba toku údajov už robí sama, čo zvyšuje zložitosť údržby a konfigurácie aplikácie. Ukladanie do vyrovnávacej pamäte môže navyše v zásade spôsobiť, že naša aplikácia prestane byť v reálnom čase, pretože na spracovanie položky je potrebné, aby boli spracované aj všetky ostatné položky pred ňou a pridanie politiky prednosti do vyrovnávacej pamäte znova, drasticky zvýšte zložitosť. Stručne povedané, služby streamovania údajov ponúkajú spracovanie toku údajov v reálnom čase s jednoduchou konfiguráciou a môžu poskytovať analýzu prichádzajúcich údajov. Tu porovnávame dve hlavné streamovacie služby balíka IBM a AWS, konkrétne IBM Streams a AWS Kinesis.

Na úvod si všimneme, že všetky základné funkcie, ktoré by sme od streamovacej služby mohli chcieť, ponúka spoločnosť IBM aj AWS. Medzi tieto funkcie patrí prakticky nekonečná rýchlosť spracovania, nízka latencia a analýza údajov v reálnom čase. Keďže hovoríme o profesionálnych službách, oba ponúkajú nástroje na nasadenie a automatizáciu na úrovni výroby.

Keď hovoríme o analytike údajov, obe služby ju ponúkajú ako voliteľnú možnosť, vďaka ktorej platíte iba za to, či ju potrebujete alebo nie. V prípade Kinesis, keď nepotrebujete analytiku, ale iba spracovanie toku údajov, sú ceny účtované za spracovaný GB namiesto času spracovania, ako v prípade IBM. Ceny za GB budú spravidla lacnejšie ako ceny za čas, pretože platíte iba za prichádzajúcu návštevnosť. Vo zvyšku tohto príspevku budeme zvažovať IBM Streams a AWS Kinesis s povolenou funkciou analýzy údajov.

Streamy a Kinesis poskytujú integráciu s rôznymi službami na predbežné spracovanie a filtrovanie prichádzajúcich údajov pred ich odoslaním do analytiky údajov, respektíve s Apache Edgent a AWS Lambda. Aj keď sa tieto služby navzájom radikálne líšia, budeme o nich diskutovať iba z pohľadu týchto dvoch streamovacích služieb. Zásadný rozdiel medzi nimi je v tom, že Apache Edgent sa vykonáva na zariadení, zatiaľ čo AWS Lambda sa spúšťa v cloude. To prináša množstvo výhod a nevýhod: zo strany Lambda máme flexibilnú a ľahko použiteľnú službu s bezproblémovou integráciou s Kinesis, vyžaduje si však, aby boli údaje už nahrané do cloudu, čím sa stráca účinnosť a platí sa aj Kinesis za údaje, ktoré budú nakoniec zahodené. Zo strany Edgent namiesto toho máme, že väčšina výpočtov sa vykonáva na okraji siete (teda na zariadeniach) pred odoslaním zbytočných údajov do cloudu. Hlavnou nevýhodou je, že Edgent je rozsiahly rámec, ktorého nastavenie môže vyžadovať čas a jeho údržba môže byť zložitá. Ďalší rozdiel, ktorý by mohol byť relevantný pri výbere platformy, je ten, že Edgent je plne otvorený zdroj, Lambda nie. Možno to považovať za profesionála, pretože prístup k kódu, ktorý vy alebo váš zákazník vykonáte, je vždy pozitívna vec, a to ako nevýhoda, pretože môžu nastať situácie, keď potrebujete naliehavú podporu, ktorú nie je možné poskytnúť v všetky prostredia s otvoreným zdrojovým kódom.

Medzi ďalšie funkcie, ktoré môžeme spomenúť, patrí automatická škálovateľnosť pridelených zdrojov spoločnosťou Kinesis. Hardvér, ktorý ponúka, je zložený z niekoľkých paralelne bežiacich takzvaných kinezových procesorových jednotiek (KPU), kde jeden KPU ponúka 1 vCore a 4 GB pamäte RAM. Ich počet závisí od potrieb aplikácie a sú dynamicky a automaticky prideľované (to, čo zaplatíte, je čas CPU a počet KPU), nezabudnite však, že je zásadou Kinesis účtovať vám o jeden KPU viac, ak používate jazyk Java. aplikácia. IBM Streams namiesto toho neposkytuje tento druh flexibility, pretože vám ponúka kontajner s pevným hardvérom, ďalšie podrobnosti, keď hovoríme o cenách. Na druhej strane, IBM Streams je otvorenejší ako Kinesis, pretože je prepojený s WAN prostredníctvom bežne používaných protokolov, ako sú HTTP, MQTT a tak ďalej, zatiaľ čo Kinesis je pre ekosystém AWS uzavretý.

Ako konečné porovnanie si povedzme o cenách a dovoľte mi povedať, že IBM v tomto bode nefunguje dobre. Nakonfigurovali sme rôzne riešenia pre tri rôzne kategórie (základné, špičkové, ultra špičkové) pre IBM aj AWS a ideme porovnávať ich cenu. V základnej konfigurácii máme jeden AWS KPU, ktorý bol spomenutý vyššie, proti riešeniu IBM s rovnakým hardvérom. Pre high-end máme 8 KPU, ktoré bežia paralelne pre Kinesis a 2 kontajnery vždy paralelne pre IBM, každý so 4 vCore a 12 GB RAM. Spoločnosť IBM vždy ponúka v ultra high-end jeden kontajner so 16 vCore a 128 GB RAM, pričom sme vynechali ekvivalentné riešenie pre AWS, pretože ak niektorá aplikácia vyžaduje toto veľké množstvo pamäte RAM, nebolo možné ju spustiť na rôznych KPU.. Ceny, ktoré uvádzame, sú vzhľadom na nepretržité používanie vyjadrené v dolároch/mesiac. Pre základnú konfiguráciu máme pre IBM a AWS 164 $ a 490 $, pre high-end 1320 $ a 3500 $, pre ultra high-end AWS sa neberie do úvahy a existuje iba IBM s 6300 $. Z týchto výsledkov vidíme, že Kinesis funguje lepšie pre bežných používateľov až po podnikovú úroveň, pričom nemá dostatok možností na priame spracovanie analytiky údajov, ktorá vyžaduje obrovské množstvo výpočtového výkonu. Kinesis ponúka lepší pomer výkon/dolár ako IBM Streams, k čomu pomáha aj dynamické prideľovanie malých blokov zdrojov iba v prípade potreby, pričom IBM vám ponúka pevný kontajner. Týmto spôsobom, ak je vaše pracovné zaťaženie charakterizované špičkami, v IBM ste nútení preceňovať potreby svojich aplikácií a konfigurovať riešenie v najhoršom prípade. Spoločnosť IBM ponúka namiesto platenia za celý mesiac poplatky za hodiny, ale nie je automatizovaná ako Kinesis.

Krok 4: Architektúra IoT

IoT architektúra
IoT architektúra

Konfigurácia zariadení pre aws iot je v porovnaní s ibm watson iot celkom jednoduchá. Pretože v ibm watson iot je autentifikácia na zariadenie s tokenom a keď raz token zobrazí, už sa nikdy nezobrazí. Príchod k cenovej časti opäť ibm watson iot je v porovnaní s aws iot dosť nákladný. Cena v ibm watsonových poplatkoch za používanie závisí od zariadenia, úložiska dát a dátového prenosu. V blízkom čase však môžeme sumu jednorazovo zaplatiť a môžeme pridať ďalšie zariadenia a údaje zverejnené zo zariadení a dodané do zariadení.

Začnite svojim zariadením- či už je to senzor, brána alebo niečo iné- a my vám pomôžeme spojiť sa s cloudom.

Údaje o vašom zariadení sú vždy zabezpečené, keď sa pripájate k cloudu pomocou otvoreného, ľahkého protokolu správ MGTT alebo HTTP. Pomocou protokolov a node-red môžeme prepojiť naše zariadenie s platformou iot a získať prístup k živým a historickým údajom.

Na prepojenie aplikácií s údajmi z vašich zariadení použite naše zabezpečené rozhrania API.

Vytvárajte aplikácie v rámci danej cloudovej služby na interpretáciu údajov.

Odporúča: