Turinys:

AWS ir IBM: daiktų interneto paslaugų palyginimas: 4 žingsniai
AWS ir IBM: daiktų interneto paslaugų palyginimas: 4 žingsniai

Video: AWS ir IBM: daiktų interneto paslaugų palyginimas: 4 žingsniai

Video: AWS ir IBM: daiktų interneto paslaugų palyginimas: 4 žingsniai
Video: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, Liepa
Anonim
AWS ir IBM: daiktų interneto paslaugų palyginimas
AWS ir IBM: daiktų interneto paslaugų palyginimas

Šiandien mes lyginame du kaminus, kurie leidžia kurti daiktų interneto programas, atsižvelgiant į skirtingus paslaugų pasiūlymus.

1 žingsnis: veikia kaip paslauga

Funkcijos kaip paslauga
Funkcijos kaip paslauga

„FaaS“yra debesijos paslaugų kategorija, naudojama kuriant „be serverio“architektūrą. „FaaS“leidžia klientams kurti, vykdyti ir valdyti programų funkcijas be infrastruktūros kūrimo ir priežiūros.

„Amazon“siūlo „AWS Lambda“, IBM - „IBM Cloud Functions“. Šios paslaugos yra gana panašios, tačiau „Lambda“buvo pirmoji tokia. Naudodami „FaaS“galite paleisti kodo fragmentus debesyje ir kiekviena paslauga palaiko skirtingas programavimo kalbas.

IBM debesies funkcijos: „JavaScript“, „Swift“, „Java“, „Go“, „Php“, „Python“, „Ruby“. per „Runtime“API

„IBM“palaiko daugiau kalbų, o naudojant „docker“lengva naudoti kitomis kalbomis parašytus scenarijus. Tai galima padaryti ir naudojant „Lambda“, bet ne iš karto. Pavyzdį galite perskaityti čia:

Abi paslaugos turi naudojimo apribojimus, mes juos pateikiame lentelėje ir paryškiname geriausius.

Kaina pagrįsta gigabaitais per sekundę (RAM), pridėjus „AWS Lambda“užklausų skaičių. Kiekviena paslauga turi nemokamą planą ir yra beveik lygiavertė. Kaip matote, „Lambda“yra šiek tiek pigesnė už GB/s, tačiau ji turi išlaidų, susijusių su užklausomis, kurių „Cloud Functions“neturi, todėl jos kaina yra beveik tokia pati. Žinoma, jei jums reikia atlikti užduotis, kurios atima atmintį ir naudoja mažai užklausų, turėtumėte naudoti „Lambda“. Pagrindinis „IBM Cloud Function“pranašumas, mūsų nuomone, yra tas, kad jo krūva yra atvirojo kodo. Jis visiškai pagrįstas „Apache OpenWhisk“ir taip pat gali būti diegiamas privačioje infrastruktūroje.

2 žingsnis: mašinų mokymasis

Mašinų mokymasis
Mašinų mokymasis

Sritis, kurioje IBM ir AWS paketai siūlo panašias paslaugas, yra mašinų mokymasis: „Amazon“su „SageMaker“ir IBM su „Watson Machine Learning“. Abi paslaugos daugeliu atžvilgių yra labai panašios: abi pateikiamos kaip įrankiai, padedantys duomenų mokslininkams ir kūrėjams sukurti, apmokyti ir tada įdiegti į gamybą paruoštą aplinką savo mašinų mokymosi modelius, tačiau abiejų bendrovių filosofijos gana skiriasi. Abi paslaugos leidžia pasirinkti tarp skirtingų naudojamų modelių valdymo laipsnių. „Watson ML“turite keletą integruotų modelių, kurie jau yra apmokyti atlikti labai konkrečias užduotis: pavyzdžiui, jei norite atpažinti, kokie objektai yra paveikslėlyje, tiesiog importuokite „VisualRecognitionV3“modelį ir perduokite jam savo nuotrauką nori analizuoti. Taip pat galite sukurti „pasirinktinį modelį“, tačiau „Watson ML“tai dažniausiai reiškia imti jau sukurtą modelį ir atlikti jo mokymą, todėl pritaikymas yra gana ribotas. Tačiau svarbu pastebėti, kad nei „SageMaker“, nei „Watson ML“nėra vieninteliai mašininio mokymosi būdai kūrėjams, jie yra tik paslaugos, skirtos palengvinti kūrėjų gyvenimą. „Watson ML“platforma taip pat palaiko daugelį populiariausių mašininio mokymosi bibliotekų, todėl netgi galite sukurti modelį nuo nulio naudodami „PyTorch“, „Tensorflow“ar panašias bibliotekas. Jūs arba naudojate tas bibliotekas tiesiogiai, arba naudojate iš anksto sukurtus modelius, nėra vidurio kelio. Taip pat „Watson ML“nepalaiko „Amazon“pasirinktos bibliotekos „Apache MXNet“, kuri vietoj „SageMaker“palaiko pirmos klasės palaikymą.

„Amazon SageMaker“požiūris, net ir naudojant įmontuotas parinktis, yra šiek tiek žemesnis: užuot verčiantis rinktis iš iš anksto sukurtų modelių, jis leidžia pasirinkti iš daugybės jau įdiegtų mokymo algoritmų, kuriuos galite naudoti kurdami modelį labiau tradiciniu būdu. Jei to nepakanka, taip pat galite naudoti savo algoritmą. Šis darbo būdas tikrai reikalauja daugiau žinių apie tai, kaip atliekamas mašininis mokymasis, palyginti su tiesiog išmokto modelio naudojimu „Watson ML“.

Iš pirmo žvilgsnio gali atrodyti, kad „Watson ML“yra „lengvas ir greitas“būdas, o „Amazon SageMaker“yra sudėtingiausias. Kai kuriais atžvilgiais tai gali būti ne visai tiesa, nes „SageMaker“sukurta taip, kad viskas veiktų „Jupyter“nešiojamajame kompiuteryje, o norint naudotis tomis pačiomis „Watson ML“funkcijomis, turite nustatyti daugybę skirtingų paslaugų iš žiniatinklio vartotojo sąsajos. Išankstiniam duomenų apdorojimui taip pat yra skirtos vietos „IBM“paslaugoje, o „SageMaker“priklauso nuo to, kad visa tai atliksite iš nešiojamojo kompiuterio kodo. Tai ir faktas, kad „Jupyter“nešiojamieji kompiuteriai nėra geriausias pasirinkimas programinės įrangos inžinerijos požiūriu, gali neleisti „SageMaker“labai gerai keisti gamybą. Abi paslaugos turi gana gerus ir paprastus mechanizmus, kaip įdiegti jūsų modelį ir padaryti jį pasiekiamus išoriniame pasaulyje.

Apibendrinant galima pasakyti, kad „Watson ML“geriau veikia didžiuliuose projektuose, kuriuose „Jupyter“nešiojamieji kompiuteriai pradeda rodyti savo ribas ir kur nereikia daug pritaikyti to, ką daro pats modelis. „SageMaker“yra daug geresnis, kai jums reikia daugiau lankstumo apibrėžiant algoritmus, tačiau jį naudodami turite atsižvelgti į tai, kad turite pasikliauti „Jupyter“nešiojamaisiais kompiuteriais, kurių gamyba gali būti netinkama. Sprendimas galėtų būti kiek įmanoma atsieti likusią kodo dalį nuo modelio, kad tikrasis nešiojamasis kompiuteris nebūtų per didelis ir galėtume geriau organizuoti savo programinę įrangą kituose moduliuose, kurie tiesiog naudoja mūsų modelio API.

3 veiksmas: duomenų srautas ir analizė

Duomenų srautas ir analizė
Duomenų srautas ir analizė

Duomenų srautinio perdavimo paslaugos yra labai svarbios tvarkant ir analizuojant didelius duomenų srautus realiuoju laiku. Šis srautas gali būti iš debesies į naudotojų įrenginį, pvz., Vaizdo transliacija, arba iš vartotojų į debesį, pvz., Daiktų interneto telemetrija ir jutiklių rodmenys. Ypač antruoju atveju galime susidurti su situacija, kai pavieniai šaltiniai įkelia nedidelius duomenų kiekius, tačiau, atsižvelgiant į bendrą visų įrenginių pralaidumą, jis sunaudoja daug pralaidumo, todėl prasminga naudoti paslaugą, specializuotą tokiems duomenims tvarkyti. duomenų srautus. Tiesiogiai neapdorodami šio nuolatinio srauto, turėtume buferizuoti gaunamą informaciją į laikiną saugyklą ir antrą kartą apdoroti ją naudodami tam tikrą skaičiavimo variklį. Šio paskutinio požiūrio problema yra ta, kad turėtume koordinuoti daugiau skirtingų paslaugų, kad pasiektume tai, ką viena duomenų srauto paslauga jau daro viena, padidindama programos priežiūros ir konfigūracijos sudėtingumą. Be to, buferizavimas iš esmės gali padaryti mūsų programą nebeveikiančią realiuoju laiku, nes norint apdoroti elementą, būtina, kad visi kiti elementai prieš jį taip pat būtų apdorojami, ir pridėjus pirmenybės politiką prie buferio, smarkiai padidinti sudėtingumą. Apibendrinant galima pasakyti, kad duomenų srautinio perdavimo paslaugos siūlo duomenų srautų tvarkymą realiuoju laiku, nesudėtingą konfigūraciją ir gali pateikti gaunamų duomenų analizę. Čia palyginame dvi pagrindines „IBM“ir „AWS“kamino srautinio perdavimo paslaugas, būtent „IBM Streams“ir „AWS Kinesis“.

Pirmiausia pažymime, kad visas pagrindines srautinio perdavimo paslaugos funkcijas galime pasiūlyti tiek IBM, tiek AWS. Šios funkcijos apima praktiškai neribotą apdorojimo greitį, mažą delsą ir duomenų analizę realiuoju laiku. Kadangi mes kalbame apie profesionalias paslaugas, jie abu siūlo gamybos lygio įrankius diegimui ir automatizavimui.

Kalbant apie duomenų analizę, abi paslaugos siūlo ją kaip neprivalomą, todėl mokate tik tuo atveju, ar jums to reikia, ar ne. „Kinesis“atveju, kai jums nereikia analizės, o tik duomenų srauto tvarkymo, kainos imamos už apdorotą GB, o ne apdorojimo laiką, kaip IBM atveju. Kaina už GB paprastai bus pigesnė nei kaina už vieną kartą, nes mokate tik už gaunamą srautą. Likusioje šio įrašo dalyje mes apsvarstysime „IBM Streams“ir „AWS Kinesis“su įgalinta duomenų analizės funkcija.

„Streams“ir „Kinesis“teikia integraciją su skirtingomis paslaugomis, skirtomis iš anksto apdoroti ir filtruoti gaunamus duomenis prieš perduodant juos duomenų analizei, atitinkamai naudojant „Apache Edgent“ir „AWS Lambda“. Nors šios paslaugos iš esmės skiriasi viena nuo kitos, mes jas aptarsime tik dviejų transliacijos paslaugų požiūriu. Esminis skirtumas tarp šių dviejų yra tas, kad „Apache Edgent“vykdo įrenginyje, o „AWS Lambda“- debesyje. Tai suteikia daug privalumų ir trūkumų: iš „Lambda“pusės mes turime lanksčią ir lengvai naudojamą paslaugą, sklandžiai integruotą su „Kinesis“, tačiau ji reikalauja, kad duomenys jau būtų įkelti į debesį, taip prarandant efektyvumą ir mokant „Kinesis“duomenims, kurie galiausiai bus atmesti. Iš Edgento pusės mes turime, kad dauguma skaičiavimų atliekami tinklo pakraštyje (taigi įrenginiuose) prieš įkeliant nenaudingus duomenis į debesį. Pagrindinis trūkumas yra tas, kad „Edgent“yra didelė sistema, kuriai nustatyti gali prireikti laiko ir kurią gali būti sudėtinga prižiūrėti. Kitas skirtumas, kuris gali būti svarbus renkantis platformą, yra tas, kad „Edgent“yra visiškai atviro kodo, o „Lambda“- ne. Tai gali būti laikoma profesionalu, nes prieiga prie jūsų ar jūsų kliento vykdomo kodo visada yra teigiamas dalykas, ir kaip apgaulė, nes gali būti situacijų, kai jums reikia skubios pagalbos, kurios negalima suteikti visos atvirojo kodo aplinkos.

Kitos funkcijos, kurias galime paminėti, yra „Kinesis“automatinis skiriamų išteklių mastelio keitimas. Iš tikrųjų jo siūlomą aparatūrą sudaro keli lygiagrečiai veikiantys vadinamieji kinezės apdorojimo įrenginiai (KPU), kuriuose vienas KPU siūlo 1 „vCore“ir 4 GB RAM. Jų skaičius priklauso nuo programos poreikių ir yra dinamiškai bei automatiškai paskirstomas (tai, ką jūs mokate, iš tikrųjų yra procesoriaus laikas, padaugintas iš KPU skaičiaus), tik atminkite, kad „Kinesis“politika yra apmokestinti jus vienu KPU daugiau, jei naudojate „Java“taikymas. Vietoj to, „IBM Streams“nesuteikia tokio lankstumo ir siūlo daugiau informacijos, kai kalbame apie kainas. Kita vertus, „IBM Streams“yra atviresnė nei „Kinesis“, nes ji jungiasi prie WAN per įprastus naudojamus protokolus, tokius kaip HTTP, MQTT ir pan., O „Kinesis“yra uždaryta AWS ekosistemai.

Galutiniame palyginime pakalbėkime apie kainodarą ir leiskite man pasakyti, kad IBM šiuo klausimu neveikia puikiai. Mes sukonfigūravome skirtingus sprendimus trims skirtingoms kategorijoms (pagrindinė, aukščiausios klasės, itin aukščiausios klasės) tiek IBM, tiek AWS ir palyginsime jų kainą. Pagrindinėje konfigūracijoje turime vieną AWS KPU, minėtą anksčiau, prieš IBM sprendimą su ta pačia aparatine įranga. Aukščiausios klasės įrenginiams „Kinesis“veikia lygiagrečiai veikiantys 8 KPU, o „IBM“-2 lygiagrečiai, kiekviename-4 vCores ir 12 GB RAM. „IBM“visada siūlo itin aukštos klasės vieną konteinerį su 16 vCores ir 128 GB RAM, o mes praleidome lygiavertį AWS sprendimą, nes jei kai kurioms programoms reikalingas toks didelis RAM kiekis, jos negalima paleisti skirtingais KPU.. Kainos, apie kurias pranešame, yra išreikštos doleriais per mėnesį, atsižvelgiant į naudojimąsi visą parą. Pagrindinei konfigūracijai turime IBM ir AWS atitinkamai 164 USD ir 490 USD, aukščiausios klasės 1320 USD ir 3500 USD, ypač aukščiausios klasės AWS neatsižvelgiama, o yra tik IBM su 6300 USD. Iš šių rezultatų matome, kad „Kinesis“geriau tinka kasdieniam vartotojui iki įmonės lygio, tuo tarpu jam trūksta galimybių tiesiogiai tvarkyti duomenų analizę, kuriai reikia didžiulės skaičiavimo galios. „Kinesis“užtikrina geresnį našumo ir dolerio santykį nei „IBM Streams“, o tai taip pat padeda dinamiškas mažų išteklių blokų paskirstymas tik tada, kai to reikia, o IBM siūlo fiksuotą sudėtinį rodinį. Tokiu būdu, jei jūsų darbo krūviui būdingi pikas, su IBM esate priversti pervertinti savo programų poreikius ir sukonfigūruoti sprendimą blogiausiu atveju. IBM siūlo valandinius mokesčius, užuot mokėjusi visą mėnesį, tačiau ji nėra automatizuota kaip „Kinesis“.

4 žingsnis: daiktų interneto architektūra

IoT architektūra
IoT architektūra

„Aws iot“įrenginių konfigūracija yra gana paprasta, palyginti su „ibm watson iot“. Kadangi „ibm watson iot“autentifikavimas atliekamas kiekvienam įrenginiui su žetonu, o kai jis parodys prieigos raktą, jis daugiau niekada nebus rodomas. Grįžtant prie kainų dalies, „ibm watson iot“yra gana brangi, palyginti su „aws iot“. Taigi, kaina ibm watson iot mokesčiuose yra pagrįsta vienu įrenginiu, duomenų saugykla, duomenų srautu. Deja, galime sumokėti sumą vieną kartą ir pridėti daugiau įrenginių ir duomenų, paskelbtų iš įrenginių ir pristatytų į įrenginius.

Pradėkite nuo savo įrenginio, nesvarbu, ar tai būtų jutiklis, vartai, ar kažkas kita, ir leiskite mums padėti jums prisijungti prie debesies.

Jūsų įrenginio duomenys visada yra saugūs, kai prisijungiate prie debesies naudodami atvirą, lengvą MGTT pranešimų protokolą arba HTTP. Naudodami protokolus ir mazgą raudonai, galime prijungti savo įrenginį prie „iot“platformos ir pasiekti tiesioginius bei istorinius duomenis.

Naudokite mūsų saugias API, kad sujungtumėte programas su duomenimis iš savo įrenginių.

Kurkite programas mūsų nurodytoje debesies paslaugoje duomenims interpretuoti.

Rekomenduojamas: