Агуулгын хүснэгт:

AWS ба IBM: IoT үйлчилгээний харьцуулалт: 4 алхам
AWS ба IBM: IoT үйлчилгээний харьцуулалт: 4 алхам

Видео: AWS ба IBM: IoT үйлчилгээний харьцуулалт: 4 алхам

Видео: AWS ба IBM: IoT үйлчилгээний харьцуулалт: 4 алхам
Видео: Сравнение протоколов TCP и UDP 2024, Долдугаар сарын
Anonim
AWS ба IBM: IoT үйлчилгээний харьцуулалт
AWS ба IBM: IoT үйлчилгээний харьцуулалт

Өнөөдөр бид янз бүрийн үйлчилгээний саналын үүднээс IoT програмыг хөгжүүлэх боломжтой хоёр стекийг харьцуулж байна.

Алхам 1: Үйлчилгээний үүрэг

Үйлчилгээний үүрэг
Үйлчилгээний үүрэг

FaaS нь "сервергүй" архитектурыг бий болгоход хэрэглэгддэг үүл үйлчилгээний ангилал юм. FaaS нь үйлчлүүлэгчдэд дэд бүтцийг бий болгох, засварлахгүйгээр програмын функцийг хөгжүүлэх, ажиллуулах, удирдах боломжийг олгодог.

Amazon нь AWS Lambda, IBM нь IBM Cloud Functions -ийг санал болгодог. Эдгээр үйлчилгээнүүд хоорондоо маш төстэй боловч Ламбда ийм төрлийн анхных байв. FaaS -ийг ашигласнаар та үүлэнд кодын хэсгүүдийг ажиллуулж болох бөгөөд үйлчилгээ бүр өөр өөр програмчлалын хэлийг дэмждэг.

IBM Cloud функцууд: JavaScript, Swift, Java, Go, Php, Python, Ruby,. NET (C# F# гэх мэт), Docker AWS Lambda -ээр дамжуулан: JavaScript, Java, C#, F#, Go, Python, Ruby, PowerShell, Any Runtime API -ээр дамжуулан

IBM илүү олон хэлийг дэмждэг бөгөөд докер ашиглан бусад хэл дээр бичигдсэн скриптүүдийг ашиглахад хялбар байдаг. Үүнийг Ламбда дээр бас хийж болно, гэхдээ энэ нь шууд биш юм. Та эндээс жишээ уншиж болно:

Хоёр үйлчилгээ хоёулаа ашиглалтын хязгаартай тул бид тэдгээрийг хүснэгтэд мэдээлж, хамгийн сайныг нь онцлон тэмдэглэв.

Үнэ нь AWS Lambda -ийн хүсэлтийн тоог нэмсэн секунд тутамд GigaBytes (RAM) дээр үндэслэсэн бөгөөд үйлчилгээ бүр үнэгүй төлөвлөгөөтэй бөгөөд тэдгээр нь бараг тэнцүү юм. Таны харж байгаагаар Lambda нь GB/s -ийн хувьд арай хямд боловч Cloud Functions -ийн шаардлагыг хангаагүй тул өртөг нь ерөнхийдөө ижил байна. Мэдээжийн хэрэг, хэрэв та санах ой иддэг, цөөн тооны хүсэлт ашигладаг ажлуудыг гүйцэтгэх шаардлагатай бол Lambda -г ашиглах хэрэгтэй. IBM Cloud Function -ийн гол давуу тал нь бидний стек бол нээлттэй эх сурвалж юм. Энэ нь Apache OpenWhisk дээр бүрэн суурилагдсан бөгөөд хувийн дэд бүтцэд ашиглах боломжтой.

Алхам 2: Машины сургалт

Машины сургалт
Машины сургалт

IBM ба AWS стекүүд ижил төстэй үйлчилгээг санал болгодог салбар бол машин сургах салбар юм: Amazon нь SageMaker -тэй, IBM нь Ватсон машин сургалтын системтэй. Энэ хоёр үйлчилгээ нь олон талаараа ижил төстэй байдаг: хоёулаа өөрсдийгөө өгөгдөл судлаач, хөгжүүлэгчдэд машин сургалтын загвараа бий болгох, сургах, үйлдвэрлэлд нэвтрүүлэхэд туслах хэрэгсэл болгон танилцуулдаг боловч хоёр компанийн ашигладаг философи нь хоорондоо ялгаатай байдаг. Хоёр үйлчилгээ хоёулаа ашигладаг загваруудынхаа өөр өөр түвшний хяналтыг сонгох боломжийг танд олгоно. Watson ML дээр танд маш тодорхой даалгавруудыг гүйцэтгэхээр бэлтгэгдсэн хэд хэдэн суулгасан загварууд байдаг: жишээлбэл, хэрэв та зураг дээр ямар обьектууд байгааг олж мэдэхийг хүсч байвал VisualRecognitionV3 загварыг импортолж, өөрийнхөө зургийг түүнд дамжуулна уу. дүн шинжилгээ хийхийг хүсч байна. Та мөн "захиалгат загвар" бүтээж болно, гэхдээ Ватсон ML -ийн хувьд энэ нь ихэвчлэн аль хэдийн бүтээгдсэн загварыг авч, үүн дээр манай сургалтыг хийх гэсэн утгатай тул тохируулга нь хязгаарлагдмал байдаг. SageMaker эсвэл Watson ML аль аль нь хөгжүүлэгчдийнхээ стек дээр машин сурах цорын ганц арга зам биш бөгөөд зөвхөн хөгжүүлэгчдийн амьдралыг хөнгөвчлөх зорилготой үйлчилгээ гэдгийг анхаарах нь чухал юм. Watson ML платформ нь хамгийн алдартай машин сурах олон номын санг дэмждэг тул та PyTorch, Tensorflow эсвэл үүнтэй төстэй номын сангийн тусламжтайгаар загварыг эхнээс нь бүтээж болно. Та эдгээр номын санг шууд ашигладаг, эсвэл урьдчилан хийсэн загварыг ашигладаг бол дунд үндэс байхгүй. Watson ML нь Amazon -ийн сонгосон номын сан болох Apache MXNet -ийг дэмждэггүй бөгөөд үүний оронд SageMaker дээр нэгдүгээр зэрэглэлийн дэмжлэгтэй байдаг.

Amazon SageMaker-ийн арга барил нь суулгасан сонголтуудыг ашиглаж байсан ч арай доогуур түвшинд байдаг: урьдчилан бэлтгэсэн загваруудаас сонголт хийхээс илүүтэйгээр аль хэдийн хэрэгжүүлсэн сургалтын алгоритмуудаас сонголт хийх боломжийг олгодог бөгөөд үүнийг ашиглан бүтээхдээ ашиглаж болно. илүү уламжлалт аргаар загварчлах. Хэрэв эдгээр нь хангалтгүй бол та өөрийн алгоритмыг ашиглаж болно. Ийм зүйл хийх нь Watson ML -д бэлтгэгдсэн загварыг ашиглахтай харьцуулахад машиныг хэрхэн яаж сурах талаар илүү их мэдлэг шаарддаг.

Эхлээд харахад Watson ML бол "хялбар бөгөөд хурдан" арга юм шиг санагдаж болох бөгөөд Amazon SageMaker -ийг суулгахад илүү төвөгтэй арга юм. SageMaker нь бүх зүйлийг Jupyter тэмдэглэлийн дэвтэр дээр ажиллуулахаар зохион бүтээгдсэн байдаг тул энэ нь зарим талаараа тийм ч үнэн биш байж магадгүй юм, гэхдээ Watson ML-ийн ижил шинж чанаруудын хувьд та вэб интерфейсээс олон төрлийн дэд үйлчилгээг тохируулах хэрэгтэй болно. Мэдээллийн урьдчилсан боловсруулалт нь IBM үйлчилгээнд зориулагдсан тусгай зайтай байдаг бол SageMaker таны тэмдэглэлийн дэвтэр дээрх кодыг ашиглан бүгдийг хийдэг. Үүнээс гадна Jupyter -ийн дэвтэр нь програм хангамжийн инженерийн үүднээс авч үзвэл хамгийн сайн сонголт биш тул SageMaker -ийг үйлдвэрлэлд маш сайн масштаблахаас сэргийлж магадгүй юм. Хоёр үйлчилгээ хоёулаа таны загварыг байрлуулах, API -ийг гадаад ертөнцөд ашиглах боломжтой болгох маш сайн, энгийн механизмтай.

Дүгнэж хэлэхэд, Watson ML нь Jupyter -ийн дэвтэрүүд хязгаараа харуулж эхэлдэг бөгөөд загвар өөрөө хийдэг зүйлээ өөрчлөх шаардлагагүй төслүүдэд илүү сайн ажилладаг. SageMaker нь алгоритмыг тодорхойлоход илүү уян хатан байдал шаардагдах үед хамаагүй дээр байдаг, гэхдээ үүнийг ашиглахдаа үйлдвэрлэлд төдийлөн сайн биш байж болох Jupyter Notebook -т найдах хэрэгтэй гэдгийг анхаарч үзэх хэрэгтэй. Үлдсэн кодыг загвараас аль болох салгах нь шийдэл байж болох бөгөөд ингэснээр бодит тэмдэглэлийн дэвтэр дээрх код хэт том болохгүй бөгөөд бид програмынхаа загварыг API ашигладаг бусад модулиудад илүү сайн зохион байгуулах боломжтой болно..

Алхам 3: Өгөгдлийн урсгал ба анализ

Өгөгдлийн урсгал ба анализ
Өгөгдлийн урсгал ба анализ

Өгөгдөл дамжуулах үйлчилгээ нь мэдээллийн их урсгалыг бодит цаг хугацаанд зохицуулах, дүн шинжилгээ хийхэд чухал үүрэгтэй. Энэ урсгал нь видео дамжуулах гэх мэт үүлнээс хэрэглэгчийн төхөөрөмж рүү эсвэл IoT телеметрийн болон мэдрэгчийн уншилт гэх мэт хэрэглэгчээс үүл рүү дамжих боломжтой. Ялангуяа хоёр дахь тохиолдолд, бид ганц эх сурвалжаас бага хэмжээний өгөгдөл байршуулах нөхцөлтэй байж болох ч бүх төхөөрөмжөөс дамждаг нийт дамжуулах чадварыг авч үзвэл энэ нь ихээхэн хэмжээний зурвасын өргөнийг зарцуулдаг тул үүнийг зохицуулах тусгай үйлчилгээг ашиглах нь зүйтэй юм. мэдээллийн урсгал. Энэхүү тасралтгүй урсгалыг шууд зохицуулахгүйгээр бид ирж буй мэдээллийг түр хадгалах санд буферлаж, хоёр дахь удаагаа тооцооллын зарим хөдөлгүүрээр боловсруулах шаардлагатай болно. Энэхүү сүүлийн аргын асуудал бол өгөгдөл дамжуулах ганц үйлчилгээ аль хэдийн дангаар нь хийж чаддаг болохын тулд бид өөр өөр үйлчилгээнүүдийг уялдуулж, програмын засвар үйлчилгээ, тохиргооны нарийн төвөгтэй байдлыг нэмэгдүүлэх болно. Нэмж дурдахад, буфер хийх нь зарчмын хувьд манай програмыг бодит цаг хугацаанд ашиглахаа больсон болно, учир нь аливаа зүйлийг боловсруулахын тулд бусад бүх зүйлийг боловсруулж, буферт давуу эрх олгох бодлогыг нэмж оруулах шаардлагатай болно., нарийн төвөгтэй байдлыг эрс нэмэгдүүлэх. Дүгнэж хэлэхэд, өгөгдөл дамжуулах үйлчилгээ нь өгөгдлийн урсгалыг бодит цаг хугацаанд, хялбар тохируулгаар санал болгодог бөгөөд ирж буй өгөгдөлд дүн шинжилгээ хийх боломжийг олгодог. Энд бид IBM ба AWS стекийн үндсэн хоёр дамжуулах үйлчилгээ болох IBM Streams ба AWS Kinesis -ийг харьцуулж үзье.

Дамжуулах үйлчилгээнээс бидний хүсч болох бүх үндсэн шинж чанаруудыг IBM болон AWS хоёуланг нь санал болгодог гэдгийг бид тэмдэглэж эхлэв. Эдгээр онцлог шинж чанарууд нь бараг хязгааргүй боловсруулалтын хурд, бага хоцрогдол, бодит цагийн мэдээллийн анализ юм. Бид мэргэжлийн үйлчилгээний талаар ярьж байгаа тул хоёулаа байрлуулах, автоматжуулах үйлдвэрлэлийн зэрэглэлийн хэрэгслүүдийг санал болгодог.

Өгөгдлийн аналитикын талаар ярихад хоёр үйлчилгээ хоёулаа үүнийг нэмэлт хэлбэрээр санал болгодог бөгөөд энэ нь танд хэрэгтэй эсэхээс үл хамааран төлбөр төлөх боломжийг олгодог. Kinesis -ийн хувьд танд дүн шинжилгээ хийх шаардлагагүй, зөвхөн өгөгдлийн урсгалыг зохицуулах шаардлагатай бол IBM -ийн нэгэн адил үнийг боловсруулах хугацаа биш харин боловсруулсан ГБ тутамд тооцдог. ГБ -ийн үнэ ерөнхийдөө тухайн үеийн үнээс хамаагүй бага байх болно, учир нь та зөвхөн ирж буй урсгалыг л төлж байгаа болно. Энэ нийтлэлийн үлдсэн хэсэгт бид өгөгдөлд дүн шинжилгээ хийх функцийг идэвхжүүлсэн IBM Streams болон AWS Kinesis хоёуланг нь авч үзэх болно.

Streams ба Kinesis нь орж ирж буй өгөгдлийг Apache Edgent болон AWS Lambda-ийн өгөгдлийн анализд дамжуулахаас өмнө урьдчилан боловсруулж, шүүх зорилгоор өөр өөр үйлчилгээнүүдийг нэгтгэдэг. Эдгээр үйлчилгээнүүд хоорондоо эрс ялгаатай боловч бид тэдгээрийг зөвхөн хоёр дамжуулах үйлчилгээний үүднээс авч үзэх болно. Энэ хоёрын үндсэн ялгаа нь Apache Edgent төхөөрөмж дээр ажилладаг бол AWS Lambda үүлэн дээр ажилладаг. Энэ нь олон давуу болон сул талуудыг авчирдаг: Ламбда талаас бид Kinesis-тэй уялдаатай уян хатан, ашиглахад хялбар үйлчилгээтэй боловч өгөгдлийг үүл рүү аль хэдийн байршуулахыг шаарддаг бөгөөд ингэснээр үр ашиг, Kinesis-ийн төлбөрийг алдах болно. эцэст нь устгагдах өгөгдлийн хувьд. Edgent талаас нь авч үзвэл үүл дээр ашиггүй өгөгдөл байршуулахаас өмнө ихэнх тооцооллыг сүлжээний ирмэг дээр (ийм төхөөрөмж дээр) хийдэг. Гол сул тал бол Edgent бол том хүрээ бөгөөд үүнийг суулгахад цаг хугацаа шаардагдах бөгөөд засвар үйлчилгээ хийхэд төвөгтэй байж магадгүй юм. Платформ сонгоход хамааралтай байж болох өөр нэг ялгаа нь Edgent нь бүрэн нээлттэй эх сурвалжтай, Lambda биш юм. Үүнийг мэргэжлийн хүмүүс гэж үзэж болно, учир нь та эсвэл таны үйлчлүүлэгчийн гүйцэтгэх кодыг ашиглах нь үргэлж эерэг зүйл бөгөөд хоёуланг нь хуурамчаар үйлддэг, учир нь танд яаралтай дэмжлэг үзүүлэх шаардлагагүй нөхцөл байдал байж магадгүй юм. бүх нээлттэй эхийн орчин.

Бидний дурдаж болох бусад онцлог шинж чанар бол хуваарилагдсан нөөцийг Kinesis-ийн автоматаар өргөтгөх чадвар юм. Үнэн хэрэгтээ түүний санал болгож буй техник хангамж нь зэрэгцээ ажилладаг Kinesis боловсруулах нэгжүүдээс бүрддэг бөгөөд нэг KPU нь 1 vCore ба 4GB RAM санал болгодог. Тэдний тоо нь програмын хэрэгцээнээс хамаардаг бөгөөд динамикаар, автоматаар хуваарилагддаг (таны төлж буй төлбөр нь CPU -ийн тооноос хэд дахин их байдаг), хэрэв та Java ашигладаг бол нэг KPU -г илүү цэнэглэх нь Kinesis -ийн бодлого гэдгийг санаарай. програм. IBM Streams нь үүний оронд ийм уян хатан байдлыг хангаж өгдөггүй бөгөөд үнийн талаар ярихдаа илүү нарийвчилсан мэдээлэл бүхий савыг танд санал болгодог. Нөгөө талаар, IBM Streams нь Kinesis -ээс илүү нээлттэй байдаг, учир нь HTTP, MQTT гэх мэт түгээмэл хэрэглэгддэг протоколуудаар WAN -тэй холбогддог бол Kinesis нь AWS экосистемд хаалттай байдаг.

Эцсийн харьцуулалтын хувьд үнийн талаар ярилцъя, IBM энэ талаар сайн ажилладаггүй гэдгийг хэлье. Бид IBM болон AWS хоёуланг нь гурван үндсэн ангилалд (үндсэн, дээд зэрэглэлийн, хэт өндөр зэрэглэлийн) өөр шийдлүүдийг тохируулсан бөгөөд тэдний үнийг харьцуулах гэж байна. Үндсэн тохиргоонд бид ижил тоног төхөөрөмжтэй IBM шийдлийн эсрэг өмнө дурдсан нэг AWS KPU байна. Өндөр түвшний хувьд бид Kinesis-тэй зэрэгцээ ажилладаг 8 KPU-тай, IBM-тэй үргэлж 2 контейнертэй бөгөөд тус бүр нь 4 vCores, 12GB RAM-тэй. Үргэлж IBM нь 16 vCores, 128GB RAM-тай хэт өндөр чанартай нэг контейнерийг санал болгодог бол бид AWS-тэй тэнцэх шийдлийг орхигдуулсан, учир нь хэрэв зарим аппликешнд ийм их хэмжээний RAM шаардлагатай бол үүнийг өөр өөр KPU дээр ажиллуулах боломжгүй юм.. Бидний мэдээлж буй үнийг 24/7 хэрэглээг харгалзан $/сард илэрхийлнэ. IBM ба AWS-ийн үндсэн тохиргооны хувьд 164 $ ба 490 $, дээд зэрэглэлийн 1320 $ ба 3500 $, хэт өндөр түвшний AWS-ийг тооцдоггүй бөгөөд зөвхөн 6300 доллартай IBM байдаг. Эдгээр үр дүнгээс харахад Kinesis нь өдөр тутмын хэрэглэгчдэд аж ахуйн нэгжийн түвшинд хүртэл илүү сайн ажилладаг боловч асар их тооцоолох хүч шаарддаг өгөгдлийн аналитикийг шууд удирдах сонголтууд байдаггүй. Kinesis нь IBM Streams -ээс илүү сайн гүйцэтгэл/долларын харьцааг өгдөг бөгөөд зөвхөн шаардлагатай үед нөөцийн жижиг блокуудыг динамик хуваарилахад тусалдаг бол IBM танд тогтмол контейнер санал болгодог. Ийм байдлаар, хэрэв таны ажлын ачаалал дээд цэгтээ хүрсэн бол IBM -ийн тусламжтайгаар та програмынхаа хэрэгцээг хэт өндөр үнэлж, хамгийн муу тохиолдолд шийдлийг тохируулах хэрэгтэй болно. IBM нь бүтэн сар төлөхийн оронд цагийн төлбөр санал болгодог боловч үүнийг Kinesis болгон автоматжуулаагүй болно.

Алхам 4: IoT архитектур

IoT архитектур
IoT архитектур

Aws iot төхөөрөмжүүдийн тохиргоо нь ibm watson iot -той харьцуулахад маш хялбар байдаг. Учир нь ibm watson iot -д нэвтрэлт танилт нь жетонтой төхөөрөмж бүрт байдаг бөгөөд токенийг харуулсны дараа дахин харуулахгүй болно. Ibm Watson Iiot -ийн үнийг дахин үнэлэх нь aws iot -той харьцуулахад нэлээд үнэтэй юм. Тиймээс, ibm watson iot төлбөрийн үнэ нь төхөөрөмж бүрийн хувьд, өгөгдлийн хадгалалт, өгөгдлийн урсгалыг харгалзан үздэг. Гэхдээ бид энэ мөнгийг нэг удаа төлж, төхөөрөмжөөс нийтэлсэн, төхөөрөмжид хүргэх бусад төхөөрөмж, өгөгдлийг нэмж оруулах боломжтой болно.

Мэдрэгч, гарц эсвэл өөр зүйл байгаа эсэхээс үл хамааран төхөөрөмжөөсөө эхэлж, үүлтэй холбогдоход бидэнд тусална уу.

Та нээлттэй, хөнгөн MGTT зурвасын протокол эсвэл HTTP ашиглан үүл рүү холбогдох үед таны төхөөрөмжийн өгөгдөл үргэлж найдвартай байдаг. Протокол болон улаан-улаан өнгийн тусламжтайгаар бид төхөөрөмжөө iot платформтой холбож, амьд болон түүхэн өгөгдөлд хандах боломжтой болно.

Аппуудаа төхөөрөмжөөсөө өгөгдөлтэй холбохын тулд манай аюулгүй API -г ашиглаарай.

Өгөгдлийг тайлбарлахын тулд бидний өгсөн үүлний үйлчилгээнд програм үүсгэ.

Зөвлөмж болгож буй: