Πίνακας περιεχομένων:

AWS και IBM: Σύγκριση υπηρεσιών IoT: 4 βήματα
AWS και IBM: Σύγκριση υπηρεσιών IoT: 4 βήματα

Βίντεο: AWS και IBM: Σύγκριση υπηρεσιών IoT: 4 βήματα

Βίντεο: AWS και IBM: Σύγκριση υπηρεσιών IoT: 4 βήματα
Βίντεο: How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox 2024, Ιούλιος
Anonim
AWS και IBM: Σύγκριση υπηρεσιών IoT
AWS και IBM: Σύγκριση υπηρεσιών IoT

Σήμερα συγκρίνουμε δύο στοίβες που καθιστούν δυνατή την ανάπτυξη εφαρμογών IoT από την άποψη διαφορετικών προσφορών υπηρεσιών.

Βήμα 1: Λειτουργεί ως υπηρεσία

Λειτουργεί ως υπηρεσία
Λειτουργεί ως υπηρεσία

Το FaaS είναι μια κατηγορία υπηρεσιών cloud που χρησιμοποιείται για τη δημιουργία μιας αρχιτεκτονικής χωρίς διακομιστή. Το FaaS επιτρέπει στους πελάτες να αναπτύσσουν, να τρέχουν και να διαχειρίζονται λειτουργίες εφαρμογών χωρίς να δημιουργούν και να διατηρούν την υποδομή.

Η Amazon προσφέρει AWS Lambda, η IBM προσφέρει λειτουργίες IBM Cloud. Αυτές οι υπηρεσίες είναι αρκετά παρόμοιες, ωστόσο η Λάμδα ήταν η πρώτη αυτού του είδους. Χρησιμοποιώντας το FaaS μπορείτε να εκτελέσετε κομμάτια κώδικα στο cloud και κάθε υπηρεσία υποστηρίζει διαφορετικές γλώσσες προγραμματισμού.

Λειτουργίες 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 υποστηρίζει περισσότερες γλώσσες και με το docker είναι εύκολο στη χρήση σενάρια γραμμένα σε άλλες γλώσσες. Αυτό μπορεί να γίνει και με τη Λάμδα, αλλά δεν είναι άμεσο. Μπορείτε να διαβάσετε ένα παράδειγμα εδώ:

Και οι δύο υπηρεσίες έχουν όρια χρήσης, τις αναφέρουμε σε έναν πίνακα και επισημαίνουμε το καλύτερο.

Η τιμή βασίζεται σε GigaBytes ανά δευτερόλεπτο (RAM) με την προσθήκη του αριθμού των αιτημάτων για AWS Lambda. Κάθε υπηρεσία έχει δωρεάν πρόγραμμα και είναι σχεδόν ισοδύναμα. Όπως μπορείτε να δείτε, το Lambda είναι λίγο φθηνότερο για τα GB/s, αλλά έχει ένα κόστος που σχετίζεται με αιτήματα που οι λειτουργίες Cloud δεν έχουν, οπότε το κόστος είναι σχεδόν το ίδιο γενικά. Φυσικά, εάν πρέπει να εκτελέσετε εργασίες που τρώνε μνήμη και χρησιμοποιούν λίγα αιτήματα, θα πρέπει να χρησιμοποιήσετε το Lambda. Το κύριο πλεονέκτημα του IBM Cloud Function, κατά τη γνώμη μας, είναι ότι η στοίβα του είναι ανοιχτού κώδικα. Βασίζεται πλήρως στο Apache OpenWhisk και μπορεί επίσης να αναπτυχθεί σε ιδιωτική υποδομή.

Βήμα 2: Μηχανική εκμάθηση

Μηχανική εκμάθηση
Μηχανική εκμάθηση

Ένα πεδίο όπου οι στοίβες IBM και AWS προσφέρουν παρόμοιες υπηρεσίες είναι αυτό της μηχανικής μάθησης: η Amazon με το SageMaker και η IBM με τη μηχανική μάθηση Watson. Οι δύο υπηρεσίες μοιάζουν σε πολλές πτυχές: και οι δύο παρουσιάζονται ως εργαλεία για να βοηθήσουν τους επιστήμονες και τους προγραμματιστές δεδομένων να δημιουργήσουν, να εκπαιδεύσουν και στη συνέχεια να αναπτύξουν σε περιβάλλοντα έτοιμα για παραγωγή τα μοντέλα μηχανικής εκμάθησης, αλλά οι φιλοσοφίες που υιοθετούν οι δύο εταιρείες διαφέρουν αρκετά. Και οι δύο υπηρεσίες σάς επιτρέπουν να επιλέξετε ανάμεσα σε διαφορετικούς βαθμούς ελέγχου στα μοντέλα που χρησιμοποιείτε. Στο Watson ML, έχετε ορισμένα ενσωματωμένα μοντέλα που έχουν ήδη εκπαιδευτεί να εκτελούν ορισμένες πολύ συγκεκριμένες εργασίες: για παράδειγμα, εάν θέλετε να αναγνωρίσετε ποια αντικείμενα υπάρχουν σε μια εικόνα, απλά εισάγετε το μοντέλο VisualRecognitionV3 και μεταφέρετε σε αυτήν την εικόνα θέλω να αναλύσω. Μπορείτε επίσης να δημιουργήσετε ένα "προσαρμοσμένο μοντέλο", αλλά στο Watson ML αυτό σημαίνει κυρίως να πάρετε ένα ήδη κατασκευασμένο μοντέλο και να κάνετε την εκπαίδευσή μας σε αυτό, οπότε η προσαρμογή είναι αρκετά περιορισμένη. Είναι σημαντικό να σημειωθεί ότι ούτε το SageMaker ούτε το Watson ML δεν είναι οι μόνοι τρόποι εκμάθησης μηχανών στις στοίβες των προγραμματιστών τους, είναι απλώς υπηρεσίες που στοχεύουν στη διευκόλυνση της ζωής των προγραμματιστών. Η πλατφόρμα Watson ML υποστηρίζει επίσης πολλές από τις πιο δημοφιλείς βιβλιοθήκες μηχανικής μάθησης, ώστε να μπορείτε ακόμη και να δημιουργήσετε ένα μοντέλο από την αρχή με PyTorch, Tensorflow ή παρόμοιες βιβλιοθήκες. Είτε χρησιμοποιείτε αυτές τις βιβλιοθήκες απευθείας είτε χρησιμοποιείτε τα προκατασκευασμένα μοντέλα, δεν υπάρχει μέση λύση. Επίσης, η Watson ML δεν υποστηρίζει τη βιβλιοθήκη επιλογής της Amazon, Apache MXNet, η οποία έχει αντίθετα υποστήριξη πρώτης κατηγορίας στο SageMaker.

Η προσέγγιση του Amazon SageMaker, ακόμη και όταν χρησιμοποιείτε ενσωματωμένες επιλογές, είναι λίγο πιο χαμηλό επίπεδο: αντί να σας κάνει να επιλέξετε από προκατασκευασμένα μοντέλα, σας επιτρέπει να επιλέξετε από μια πληθώρα ήδη εφαρμοσμένων αλγορίθμων εκπαίδευσης, τους οποίους μπορείτε να χρησιμοποιήσετε κατά την κατασκευή σας μοντέλο με πιο παραδοσιακό τρόπο. Εάν αυτά δεν είναι αρκετά, μπορείτε επίσης να χρησιμοποιήσετε τον δικό σας αλγόριθμο. Αυτός ο τρόπος για να κάνετε πράγματα απαιτεί σίγουρα περισσότερη γνώση για το πώς γίνεται η μηχανική μάθηση σε σύγκριση με τη χρήση μόνο ενός εκπαιδευμένου μοντέλου στο Watson ML.

Με μια πρώτη ματιά μπορεί να φαίνεται ότι το Watson ML είναι ο «εύκολος και γρήγορος» τρόπος, με το Amazon SageMaker να είναι το πιο πολύπλοκο για ρύθμιση. Αυτό μπορεί να μην είναι απολύτως αληθές από ορισμένες απόψεις, καθώς το SageMaker είναι δομημένο να κάνει τα πάντα να λειτουργούν σε ένα Jupyter Notebook, ενώ για τις ίδιες δυνατότητες στο Watson ML πρέπει να ρυθμίσετε πολλές διαφορετικές υπο-υπηρεσίες από το UI του ιστού. Η προεπεξεργασία των δεδομένων διαθέτει επίσης ειδικούς χώρους στην υπηρεσία IBM, ενώ το SageMaker βασίζεται στο να τα κάνετε όλα από τον κώδικα του φορητού υπολογιστή σας. Αυτό συν το γεγονός ότι οι φορητοί υπολογιστές Jupyter δεν είναι ακριβώς η καλύτερη επιλογή από άποψη μηχανικής λογισμικού, μπορεί να εμποδίσει το SageMaker να κλιμακωθεί πολύ καλά στην παραγωγή. Και οι δύο υπηρεσίες έχουν αρκετά καλούς και απλούς μηχανισμούς για την ανάπτυξη του μοντέλου σας και τη διάθεση API για αυτό στον εξωτερικό κόσμο.

Εν κατακλείδι, το Watson ML αποδίδει καλύτερα σε τεράστια έργα όπου τα σημειωματάρια Jupyter αρχίζουν να δείχνουν τα όριά τους και όπου δεν χρειάζεστε μεγάλη προσαρμογή σε αυτό που κάνει το ίδιο το μοντέλο. Το SageMaker είναι πολύ καλύτερο όταν χρειάζεστε περισσότερη ευελιξία στον καθορισμό των αλγορίθμων, αλλά όταν το χρησιμοποιείτε πρέπει να λάβετε υπόψη το γεγονός ότι πρέπει να βασίζεστε σε Jupyter Notebooks, τα οποία ενδέχεται να μην κλιμακώνονται καλά στην παραγωγή. Μια λύση θα μπορούσε να είναι η αποσύνδεση του υπόλοιπου κώδικα από το μοντέλο όσο το δυνατόν περισσότερο, έτσι ώστε ο κώδικας στα πραγματικά σημειωματάρια να μην γίνει πολύ μεγάλος και να οργανώσουμε καλύτερα το λογισμικό μας σε άλλες ενότητες που χρησιμοποιούν απλώς το API του μοντέλου μας Το

Βήμα 3: Ροή δεδομένων & Analytics

Ροή δεδομένων & Analytics
Ροή δεδομένων & Analytics

Οι υπηρεσίες ροής δεδομένων είναι ζωτικής σημασίας για τον χειρισμό και την ανάλυση μεγάλων ροών δεδομένων σε πραγματικό χρόνο. Αυτή η ροή μπορεί να είναι από το σύννεφο στη συσκευή των χρηστών, όπως μια ροή βίντεο ή από τους χρήστες στο σύννεφο, όπως η τηλεμετρία και οι αναγνώσεις αισθητήρων IoT. Ειδικά στη δεύτερη περίπτωση, θα μπορούσαμε να έχουμε μια κατάσταση όπου μεμονωμένες πηγές ανεβάζουν μικρές ποσότητες δεδομένων, αλλά όταν εξετάζουμε τη συνολική απόδοση, που προέρχεται από όλες τις συσκευές, καταναλώνει σημαντικό εύρος ζώνης, επομένως είναι λογικό να χρησιμοποιούμε μια υπηρεσία εξειδικευμένη για τον χειρισμό τέτοιων ροές δεδομένων. Χωρίς να χειριστούμε άμεσα αυτήν τη συνεχή ροή, θα πρέπει να αποθηκεύσουμε τις εισερχόμενες πληροφορίες σε προσωρινή αποθήκευση και σε δεύτερη φορά να τις επεξεργαστούμε με κάποιο υπολογιστικό κινητήρα. Το πρόβλημα αυτής της τελευταίας προσέγγισης είναι ότι θα πρέπει να συντονίσουμε περισσότερες διαφορετικές υπηρεσίες για να επιτύχουμε αυτό που μια υπηρεσία ροής δεδομένων κάνει ήδη μόνη της, αυξάνοντας την πολυπλοκότητα της συντήρησης και της διαμόρφωσης της εφαρμογής. Επιπλέον, η αποθήκευση μπορεί καταρχήν να κάνει την εφαρμογή μας πλέον σε πραγματικό χρόνο, καθώς για την επεξεργασία ενός στοιχείου είναι απαραίτητο να υποβληθούν σε επεξεργασία και όλα τα άλλα στοιχεία πριν από αυτό, και η προσθήκη πολιτικών προτεραιότητας στο buffer μπορεί, ξανά, αυξάνουν δραστικά την πολυπλοκότητα. Συνοψίζοντας, οι υπηρεσίες ροής δεδομένων προσφέρουν διαχείριση ροής δεδομένων σε πραγματικό χρόνο, με εύκολη διαμόρφωση και μπορούν να παρέχουν αναλυτικά στοιχεία για τα εισερχόμενα δεδομένα. Εδώ συγκρίνουμε τις δύο κύριες υπηρεσίες ροής της στοίβας IBM και AWS, δηλαδή τις IBM Streams και AWS Kinesis.

Ξεκινάμε σημειώνοντας ότι όλες οι βασικές δυνατότητες που μπορεί να θέλουμε από μια υπηρεσία ροής προσφέρονται τόσο από την IBM όσο και από την AWS. Αυτά τα χαρακτηριστικά περιλαμβάνουν σχεδόν άπειρο ρυθμό επεξεργασίας, χαμηλή καθυστέρηση και ανάλυση δεδομένων σε πραγματικό χρόνο. Δεδομένου ότι μιλάμε για επαγγελματικές υπηρεσίες, και οι δύο προσφέρουν εργαλεία ποιότητας για ανάπτυξη και αυτοματοποίηση.

Μιλώντας για την ανάλυση δεδομένων, και οι δύο υπηρεσίες το προσφέρουν ως προαιρετικό, με αποτέλεσμα να πληρώνετε μόνο αν το χρειάζεστε ή όχι. Στην περίπτωση του Kinesis, όταν δεν χρειάζεστε αναλυτικά στοιχεία αλλά μόνο χειρισμό ροής δεδομένων, οι τιμές χρεώνονται ανά GB που υποβάλλονται σε επεξεργασία αντί για χρόνο επεξεργασίας, όπως στην περίπτωση της IBM. Η τιμολόγηση ανά GB θα είναι γενικά λιγότερο δαπανηρή από την τιμολόγηση ανά χρόνο, καθώς πληρώνετε μόνο για την εισερχόμενη κίνηση. Για το υπόλοιπο αυτής της ανάρτησης θα εξετάσουμε τόσο το IBM Streams όσο και το AWS Kinesis με ενεργοποιημένη τη δυνατότητα ανάλυσης δεδομένων.

Το Streams και το Kinesis παρέχουν ενσωμάτωση με διαφορετικές υπηρεσίες για την προεπεξεργασία και το φιλτράρισμα των εισερχόμενων δεδομένων πριν τα μεταβιβάσουν στην ανάλυση δεδομένων, αντίστοιχα με το Apache Edgent και το AWS Lambda. Ενώ αυτές οι υπηρεσίες διαφέρουν ριζικά η μία από την άλλη, θα τις συζητήσουμε μόνο από την άποψη των δύο υπηρεσιών ροής. Η θεμελιώδης διαφορά μεταξύ των δύο είναι ότι το Apache Edgent εκτελείται στη συσκευή, ενώ το AWS Lambda εκτελεί στο cloud. Αυτό φέρνει πολλά πλεονεκτήματα και μειονεκτήματα: από την πλευρά της Λάμδα έχουμε μια ευέλικτη και εύχρηστη υπηρεσία με απρόσκοπτη ενσωμάτωση στο Kinesis, αλλά απαιτεί τα δεδομένα να έχουν ήδη μεταφορτωθεί στο cloud, χάνοντας έτσι την αποδοτικότητα και πληρώνοντας επίσης το Kinesis για τα δεδομένα που τελικά θα απορριφθούν. Αντίθετα, από την πλευρά του Edgent, έχουμε ότι ο περισσότερος υπολογισμός γίνεται, καλά, στην άκρη του δικτύου (επομένως στις συσκευές) πριν ανεβάσουμε άχρηστα δεδομένα στο cloud. Το κύριο μειονέκτημα είναι ότι το Edgent είναι ένα μεγάλο πλαίσιο, το οποίο μπορεί να απαιτήσει χρόνο για τη ρύθμιση και θα μπορούσε να είναι πολύπλοκο για συντήρηση. Μια άλλη διαφορά που θα μπορούσε να είναι σχετική στην επιλογή μιας πλατφόρμας είναι ότι το Edgent είναι πλήρως ανοιχτού κώδικα, το Lambda όχι. Αυτό μπορεί να θεωρηθεί και ως επαγγελματίας, αφού η πρόσβαση στον κώδικα που θα εκτελέσετε εσείς ή ο πελάτης σας είναι πάντα θετική, και ως απάτη, διότι μπορεί να υπάρχουν καταστάσεις όπου χρειάζεστε επείγουσα υποστήριξη που δεν μπορεί να παρέχεται όλα τα περιβάλλοντα ανοιχτού κώδικα.

Άλλα χαρακτηριστικά που μπορούμε να αναφέρουμε είναι η αυτόματη κλιμάκωση των πόρων που διαθέτει η Kinesis. Πράγματι, το υλικό που προσφέρει αποτελείται από έναν αριθμό λεγόμενων Kinesis Processing Units (KPU) που λειτουργούν παράλληλα, όπου ένα KPU προσφέρει 1 vCore και 4 GB RAM. Ο αριθμός τους εξαρτάται από τις ανάγκες της εφαρμογής και κατανέμονται δυναμικά και αυτόματα (αυτό που πληρώνετε είναι όντως ο χρόνος cpu επί τον αριθμό των KPU), απλώς θυμηθείτε ότι είναι πολιτική της Kinesis να σας χρεώνει ένα KPU παραπάνω εάν χρησιμοποιείτε Java εφαρμογή. Αντίθετα, η IBM Streams δεν παρέχει αυτού του είδους την ευελιξία, προσφέροντάς σας ένα δοχείο με σταθερό υλικό, περισσότερες λεπτομέρειες όταν μιλάμε για τιμολόγηση. Από την άλλη πλευρά, το IBM Streams είναι πιο ανοιχτό από το Kinesis, αφού διασυνδέεται με το WAN μέσω κοινών χρησιμοποιούμενων πρωτοκόλλων, όπως HTTP, MQTT και ούτω καθεξής, ενώ το Kinesis είναι κλειστό στο οικοσύστημα AWS.

Ως τελική σύγκριση, ας μιλήσουμε για την τιμολόγηση και επιτρέψτε μου να πω ότι η IBM δεν λειτουργεί τέλεια σε αυτό το σημείο. Έχουμε διαμορφώσει διαφορετικές λύσεις για τρεις διαφορετικές κατηγορίες (βασικές, high-end, ultra-high-end) τόσο για IBM όσο και για AWS, και πρόκειται να συγκρίνουμε την τιμή τους. Στη βασική διαμόρφωση έχουμε ένα AWS KPU, που αναφέρθηκε προηγουμένως, έναντι μιας λύσης IBM με το ίδιο υλικό. Για τα high-end έχουμε 8 KPU που λειτουργούν παράλληλα για το Kinesis και 2 δοχεία πάντα παράλληλα για την IBM, το καθένα με 4 vCore και 12 GB RAM. Πάντα η IBM προσφέρει στο εξαιρετικά υψηλό επίπεδο ένα μόνο δοχείο με 16 vCore και 128 GB RAM, ενώ παραλείψαμε μια ισοδύναμη λύση για το AWS, καθώς εάν κάποια εφαρμογή απαιτεί αυτό το μεγάλο ποσό μνήμης RAM δεν θα μπορούσε να εκτελεστεί σε διαφορετικά KPU Το Οι τιμές που αναφέρουμε εκφράζονται σε $/μήνα λαμβάνοντας υπόψη τη χρήση 24/7. Για τη βασική διαμόρφωση που διαθέτουμε για IBM και AWS αντίστοιχα 164 $ και 490 $, για τα high-end 1320 $ και 3500 $, για το AWS εξαιρετικά υψηλών προδιαγραφών δεν λαμβάνεται υπόψη και υπάρχει μόνο η IBM με 6300 $. Από αυτά τα αποτελέσματα μπορούμε να δούμε ότι το Kinesis λειτουργεί καλύτερα για τον καθημερινό χρήστη έως και σε επίπεδο επιχείρησης, ενώ δεν έχει επιλογές για την άμεση διαχείριση των αναλύσεων δεδομένων που απαιτούν τεράστια υπολογιστική ισχύ. Το Kinesis προσφέρει καλύτερη απόδοση/$ λόγο από το IBM Streams, βοηθούμενο επίσης από τη δυναμική κατανομή μικρών μπλοκ πόρων μόνο όταν χρειάζεται, ενώ η IBM σας προσφέρει ένα σταθερό κοντέινερ. Με αυτόν τον τρόπο, εάν ο φόρτος εργασίας σας χαρακτηρίζεται από αιχμές, με την IBM αναγκάζεστε να υπερεκτιμήσετε τις ανάγκες της εφαρμογής σας και να ρυθμίσετε μια λύση στο χειρότερο σενάριο. Η IBM προσφέρει χρεώσεις ωρών αντί να πληρώνει ολόκληρο το μήνα, αλλά δεν αυτοματοποιείται ως Kinesis.

Βήμα 4: Αρχιτεκτονική IoT

Αρχιτεκτονική IoT
Αρχιτεκτονική IoT

Η διαμόρφωση για συσκευές για aws iot είναι αρκετά εύκολη σε σύγκριση με το ibm watson iot. Επειδή στο ibm watson iot ο έλεγχος ταυτότητας γίνεται ανά συσκευή με διακριτικό και μόλις εμφανίσει το διακριτικό δεν θα εμφανιστεί ποτέ ξανά. Η προσέγγιση του τμήματος τιμολόγησης ibm watson iot είναι αρκετά δαπανηρή σε σύγκριση με το aws iot. Έτσι, η τιμή στις χρεώσεις ibm watson iot βασίζεται σε κάθε συσκευή, αποθήκευση δεδομένων, κίνηση δεδομένων. Αλλά στο aws iot μπορούμε να πληρώσουμε το ποσό μία φορά και μπορούμε να προσθέσουμε περισσότερες συσκευές και δεδομένα που δημοσιεύονται από συσκευές και παραδίδονται σε συσκευές.

Ξεκινήστε με τη συσκευή σας- είτε πρόκειται για αισθητήρα, πύλη ή κάτι άλλο- και επιτρέψτε μας να σας βοηθήσουμε να συνδεθείτε με το cloud.

Τα δεδομένα της συσκευής σας είναι πάντα ασφαλή όταν συνδέεστε στο cloud χρησιμοποιώντας ανοιχτό, ελαφρύ πρωτόκολλο ανταλλαγής μηνυμάτων MGTT ή HTTP. Με τη βοήθεια πρωτοκόλλων και node-red μπορούμε να συνδέσουμε τη συσκευή μας με πλατφόρμα iot και να έχουμε πρόσβαση σε ζωντανά και ιστορικά δεδομένα.

Χρησιμοποιήστε τα ασφαλή API για να συνδέσετε τις εφαρμογές σας με δεδομένα από τις συσκευές σας.

Δημιουργήστε εφαρμογές εντός της συγκεκριμένης υπηρεσίας cloud για ερμηνεία δεδομένων.

Συνιστάται: