Προγραμματισμός

Κριτική: Το IBM Bluemix συγκεντρώνει το Cloud Foundry

Όταν εξέτασα το Cloud Foundry PaaS (πλατφόρμα ως υπηρεσία) το περασμένο καλοκαίρι, επικεντρώθηκα στις εφαρμογές ανοιχτού κώδικα, Pivotal και ActiveState. Σε αυτήν την κριτική, θα εξετάσω το IBM Bluemix, ένα πολύπλευρο PaaS που φιλοξενείται στο SoftLayer, το οποίο συνδυάζει το Cloud Foundry με μια βελτιωμένη διαδικτυακή διεπαφή χρήστη και υπηρεσίες από την IBM και τρίτα μέρη.

Οι πιο ξεχωριστές υπηρεσίες στο Bluemix βασίζονται στο Watson, ένα γνωστικό σύστημα που παρέχει επεξεργασία φυσικής γλώσσας, δημιουργία και αξιολόγηση υποθέσεων και δυναμική μάθηση. Αρκετές από τις άλλες υπηρεσίες και ενσωματώσεις στο Bluemix συμπληρώνουν κενά στην έκδοση ανοιχτού κώδικα του Cloud Foundry - για παράδειγμα, αυτόματη κλιμάκωση, κινητά, μεγάλα δεδομένα και υπηρεσίες εταιρικής ενοποίησης.

Σημειώστε ότι τα κενά έχουν καλυφθεί χωρίς να διακλαδώσετε τον κωδικό Cloud Foundry. Στην πραγματικότητα, ο Bala Rajaraman, ο CTO του Bluemix, μου είπε ειλικρινά: «Δεν θα κάνουμε πιρούνι». Το πρόγραμμα γραμμής εντολών διαμόρφωσης εφαρμογής cf που εγκατέστησα για το Open Found Cloud Foundry και το Pivotal CF είναι το ίδιο με αυτό του Bluemix. Το πρόγραμμα γραμμής εντολών bosh PaaS που εγκατέστησα για το Open Found Cloud Foundry είναι το ίδιο με αυτό που χρησιμοποιούν οι μηχανικοί Bluemix εσωτερικά - αλλά οι χρήστες του Bluemix δεν θα χρειαστεί ποτέ να μάθουν bosh, καθώς η πρόθεση της IBM με το Bluemix είναι να προστατεύσει τους χρήστες από τη διαχείριση PaaS, επικεντρωθείτε στην υπηρεσία και επιτρέψτε στους χρήστες να δημιουργούν απλώς εφαρμογές

Εγκρίνω αυτήν τη στάση. Ως προγραμματιστής, βρήκα να μαθαίνω έναν αγώνα, και ένιωσα ότι η βαριά ανύψωση στη διαμόρφωση ενός PaaS έπρεπε να αφεθεί στις λειτουργίες. Για μένα, η υπόσχεση του PaaS και του devops είναι η διαμόρφωση χαμηλής τριβής και η διαχείριση της υποδομής για την κατασκευή και ανάπτυξη λογισμικού. Το να κάνεις έναν προγραμματιστή να ξοδεύει ένα σημαντικό μέρος του χρόνου του στην επιχειρησιακή τεχνική που απαιτείται για να δημιουργήσει ένα PaaS νικά τον θεμελιώδη σκοπό της κατοχής ενός PaaS. Συγχρόνως, μου αρέσει η δυνατότητα εκτέλεσης ενός PaaS single-VM "microcloud" σε φορητό υπολογιστή για πειράματα, γι 'αυτό βλέπω επίσης την αξία των εικόνων ActiveState Stackato και PaaS VM με δυνατότητα λήψης.

Επειδή το Bluemix βασίζεται σε μη τροποποιημένο Cloud Foundry, μοιράζεται όλη την αρχιτεκτονική Cloud Foundry: Droplets, DEAs (Droplet Execution Agents), buildpacks και ούτω καθεξής, που εκτελούνται σε μια εικονική μηχανή. Το τμήμα Cloud Foundry εμφανίζεται στο γαλάζιο πλαίσιο VM στην κάτω αριστερή πλευρά του διαγράμματος αρχιτεκτονικής παρακάτω (Σχήμα 1).

Το Bluemix μοιράζεται περισσότερα από την αρχιτεκτονική του Cloud Foundry: μοιράζεται τα πακέτα και τις υπηρεσίες Cloud Foundry που διατίθενται στις άλλες υλοποιήσεις του Cloud Foundry, προσθέτοντας παράλληλα κάποιες από τις δικές τους. Θα τα χωρίσουμε όλα αυτά σε λέβητες, γνωστές αλλού ως γρήγορες εκκινήσεις ή ένα κατάστημα εφαρμογών. ώρες εκτέλεσης, γνωστά αλλού ως buildpacks. και υπηρεσίες. Το Bluemix περιλαμβάνει υπηρεσίες για Watson, mobile, devops, Web και εφαρμογές, ενσωμάτωση, διαχείριση δεδομένων, μεγάλα δεδομένα, ασφάλεια, business analytics και IoT (το Internet of things). Θα τα ερευνήσω παρακάτω.

Διάφορα μέρη μπορούν να υποστηρίξουν υπηρεσίες Bluemix: IBM, κοινότητα ή εταιρεία τρίτου μέρους. Οι πειραματικές υπηρεσίες είναι δωρεάν, ασταθείς και υπόκεινται σε αλλαγές που ενδέχεται να μην είναι συμβατές προς τα πίσω. Έτσι, δεν συνιστώνται για παραγωγή. Οι υπηρεσίες beta είναι δωρεάν, αλλά δεν έχουν δοκιμαστεί εκτενώς στη φύση. Όλες οι υπηρεσίες Watson ταξινομούνται επί του παρόντος ως beta.

Λέβητες Bluemix

Όπως μπορείτε να δείτε στο Σχήμα 2, το Bluemix προσφέρει επί του παρόντος 13 διαφορετικά «boilerplates» ή πακέτα γρήγορης εκκίνησης. Ενώ τα περισσότερα έχουν γεύση IBM, αυτό δεν είναι απαραίτητα κακό.

Ορισμένες από τις λέβητες που προσφέρονται ενδέχεται να απαιτούν κάποια εξήγηση. Για παράδειγμα, το Internet of Things Foundation Starter παρέχει ένα στρώμα δεδομένων NoSQL JSON Cloudant (συμβατό με CouchDB) και μια εφαρμογή Node-RED που φιλοξενείται σε ένα SDK για το χρόνο εκτέλεσης του Node.js. Το Node-RED είναι ένα εργαλείο για τη σύνδεση συσκευών υλικού, API και διαδικτυακών υπηρεσιών. Το Node-RED Starter είναι παρόμοιο, αλλά υποστηρίζεται από την κοινότητα.

Το Java Cache Web Starter συνδυάζει το Liberty for Java, ένα ελαφρύ προφίλ WebSphere, μια υπηρεσία DataCache και μια υπηρεσία παρακολούθησης και Analytics. Στο δωρεάν επίπεδο, η DataCache είναι μόνο 50MB και η υπηρεσία Παρακολούθησης και Analytics δεν διαθέτει την πιο βαθιά παρακολούθηση και διάγνωση απόδοσης.

Το Mobile Cloud boilerplate συνδυάζει Node.js, Mobile Application Security, IBM Push messaging και Mobile Data (με ένα πολυλειτουργικό Cloudant back end). Περιλαμβάνει SDK για Android, iOS και JavaScript. Στο δωρεάν επίπεδο, περιορίζεται σε 2 GB αποθηκευτικού χώρου, 1 εκατομμύριο ειδοποιήσεις push το μήνα και 375 GB-ώρες το μήνα. Το MobileFirst Services Starter είναι παρόμοιο, αλλά περιλαμβάνει ειδοποιήσεις push και ασφάλεια ειδικά για iOS 8.

Οι τρεις εκκινητές Web Modeling User συνδυάζουν την υπηρεσία Watson User Modeling με χρόνο εκτέλεσης και κάποιο δείγμα κώδικα. Το Watson User Modeling χρησιμοποιεί γλωσσικές αναλύσεις για να εξαγάγει ένα σύνολο προσωπικοτήτων και κοινωνικών χαρακτηριστικών από τον τρόπο που ένα άτομο επικοινωνεί, με στόχο την εξατομίκευση των επικοινωνιών.

Το Vaadin είναι ένα πλαίσιο εφαρμογών Ιστού ανοιχτού κώδικα για πλούσιες εφαρμογές Διαδικτύου. Ο εκκινητής Vaadin εκτελεί το πλαίσιο στο Liberty για Java και χρησιμοποιεί μια βάση δεδομένων DB2.

Χρόνοι εκτέλεσης Bluemix, γνωστά και ως buildpacks

Η επιλογή των χρόνων εκτέλεσης που προσφέρονται στο Bluemix περιλαμβάνει τα επτά ονόματα buildpacks που φαίνονται στο Σχήμα 3, καθώς και οποιοδήποτε άλλο buildpack που έχει εγκριθεί για το Cloud Foundry. Έξι από τους χρόνους εκτέλεσης που εμφανίζονται θα πρέπει να είναι εξοικειωμένοι με εσάς. το έβδομο, το Sinatra, είναι ένα DSL (γλώσσα για συγκεκριμένο τομέα) για τη δημιουργία εφαρμογών Ιστού στο Ruby γρήγορα και με ελάχιστη προσπάθεια.

Το PHP buildpack υποστηρίζει PHP 5.4, 5.5 και 5.6. Nginx 1.5, 1.6 και 1.7; και Apache HTTPD 2.4. Η έκδοση Python που υποστηρίζεται στο PHP buildpack είναι 2.6.6, η οποία δεν είναι πραγματικά τρέχουσα. Το Python buildpack, από την άλλη πλευρά, υποστηρίζει δώδεκα εκδόσεις του Pypy, καθώς και μερικές δεκάδες εκδόσεις καθεμία από τις Python 2 και Python 3.

Τα πακέτα κοινότητας για το Cloud Foundry περιλαμβάνουν τους χρόνους εκτέλεσης Clojure, Haskell, Mono και Erlang. Πρακτικά, η μόνη δημοφιλής γλώσσα διακομιστή εφαρμογών συμβατή με Linux που δεν βρήκα υποστηριζόμενη στο Cloud Foundry είναι η Perl.

Υπηρεσίες Watson

Οι επτά υπηρεσίες Watson που προσφέρονται επί του παρόντος στο Bluemix (Εικόνα 4) είναι η επέκταση έννοιας, η αναγνώριση γλώσσας, η αυτόματη μετάφραση, ο συντονισμός μηνυμάτων, η ερώτηση και η απάντηση, η εξαγωγή σχέσεων και η μοντελοποίηση χρηστών. Όλα είναι ακόμα σε έκδοση beta. Περιέγραψα το User Modeling νωρίτερα. Θα καλύψω τα υπόλοιπα εδώ.

Το Concept Expansion αναλύει το κείμενο και ερμηνεύει το νόημά του με βάση τη χρήση σε άλλα, παρόμοια περιβάλλοντα. Για παράδειγμα, θα μπορούσε να ερμηνεύσει το "The Big Apple" ως "Νέα Υόρκη". Μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός λεξικού σχετικών λέξεων και εννοιών, έτσι ώστε οι ευφημισμοί, οι συνομιλίες ή αλλιώς ασαφείς φράσεις να μπορούν να κατανοηθούν και να αναλυθούν καλύτερα. Αυτή η δωρεάν υπηρεσία Bluemix beta διαθέτει ένα προκαθορισμένο σύνολο δεδομένων και τομέα, οπότε είναι άχρηστο για παραγωγή.

Η υπηρεσία αναγνώρισης γλώσσας εντοπίζει τη γλώσσα στην οποία γράφεται το κείμενο. Αυτό βοηθά στην ενημέρωση των επόμενων βημάτων, όπως μετάφραση, φωνή σε κείμενο ή άμεση ανάλυση. Η υπηρεσία μπορεί να χρησιμοποιηθεί σε συνδυασμό με την υπηρεσία Μηχανικής Μετάφρασης. Σήμερα, η υπηρεσία μπορεί να αναγνωρίσει 25 γλώσσες.

Η υπηρεσία Μηχανικής Μετάφρασης μετατρέπει την εισαγωγή κειμένου σε μία γλώσσα σε γλώσσα προορισμού για τον χρήστη. Η μετάφραση είναι διαθέσιμη στα Αγγλικά, Πορτογαλικά Βραζιλίας, Ισπανικά, Γαλλικά και Αραβικά.

Η υπηρεσία Message Resonance αναλύει το προσχέδιο περιεχομένου και βαθμολογεί πόσο καλά είναι πιθανό να ληφθεί από ένα συγκεκριμένο κοινό-στόχο. Αυτή η ανάλυση βασίζεται σε περιεχόμενο που έχει γραφτεί από το ίδιο το κοινό-στόχο, όπως θαυμαστές μιας συγκεκριμένης αθλητικής ομάδας ή νέους γονείς. Αν και οι μελλοντικές εκδόσεις θα επιτρέψουν στους χρήστες να παρέχουν τα δικά τους δεδομένα κοινότητας, σήμερα η ανάλυση μπορεί να γίνει μόνο εναντίον ατόμων που δραστηριοποιούνται στο cloud computing ή στο cloud computing. Αυτό καθιστά την υπηρεσία beta άχρηστη για παραγωγή σε τομείς διαφορετικούς από το cloud computing.

Η υπηρεσία Ερωτήσεων και Απαντήσεων ερμηνεύει και απαντά σε ερωτήσεις χρηστών που βασίζονται απευθείας σε πρωτεύουσες πηγές δεδομένων (φυλλάδια, ιστοσελίδες, εγχειρίδια, αρχεία) που έχουν επιλεγεί και συγκεντρωθεί σε ένα σύνολο δεδομένων ή "corpus". Η υπηρεσία επιστρέφει υποψήφιες απαντήσεις με σχετικά επίπεδα εμπιστοσύνης και συνδέσμους προς αποδεικτικά στοιχεία. Τα τρέχοντα δεδομένα για το Bluemix επικεντρώνονται στις βιομηχανίες ταξιδιών και υγειονομικής περίθαλψης, καθιστώντας τα άχρηστα για άλλους τομείς.

Η Εξαγωγή σχέσης αναλύει προτάσεις στις διάφορες συνιστώσες τους και εντοπίζει τις σχέσεις μεταξύ των συστατικών. Μπορεί να επεξεργαστεί νέους όρους (όπως ονόματα ατόμων σε μια ροή ειδήσεων) που δεν έχει αναλύσει ποτέ προηγουμένως μέσω ανάλυσης με βάση τα συμφραζόμενα. Τα συστατικά της φράσης περιλαμβάνουν μέρη του λόγου (ουσιαστικό, ρήμα, επίθετο, σύζευξη) και συναρτήσεις (θέματα, αντικείμενα, κατηγορίες). Η υπηρεσία χαρτογραφεί τις σχέσεις μεταξύ των στοιχείων έτσι ώστε οι χρήστες ή οι μηχανές ανάλυσης να κατανοούν ευκολότερα την έννοια των μεμονωμένων προτάσεων και εγγράφων.

Η υπηρεσία beta βελτιστοποιείται για άρθρα ειδήσεων ή άλλο κείμενο που σχετίζεται με ειδήσεις στα Αγγλικά ή στα Ισπανικά, μέσω ξεχωριστών API. δεν μπορείτε να το χρησιμοποιήσετε για έναν αυθαίρετο τομέα και περιμένετε να λάβετε καλές απαντήσεις. Όπως μπορείτε να δείτε στο Σχήμα 5, δεν επιστρέφει πάντα καλές απαντήσεις ακόμη και για άρθρα ειδήσεων. κατά πάσα πιθανότητα, μόλις προμηθεύσετε το δικό σας εκπαιδευτικό σύνολο, θα είστε σε θέση να συντονίσετε την υπηρεσία στον τομέα που σας ενδιαφέρει.

Συνολικά, οι υπηρεσίες beta Watson στο Bluemix φαίνονται δελεαστικές, αλλά δεν είναι ακόμη έτοιμες για την πρώτη στιγμή. Αυτό συμβαδίζει με τον τρόπο που παρουσιάστηκαν.

Υπηρεσίες κινητών και εφαρμογών

Έχουμε ήδη συζητήσει έξι από τις οκτώ υπηρεσίες κινητής τηλεφωνίας που διατίθενται στο Bluemix. Ένα άλλο είναι η Διασφάλιση ποιότητας για κινητά, η οποία επιτρέπει τη δοκιμή εφαρμογών για κινητά, την επικύρωση των χρηστών και τη βελτιστοποίηση των σχολίων ποιότητας με ανάλυση συναισθημάτων διανομή υπεράνω αέρα αυτοματοποιημένη αναφορά σφαλμάτων · και αναφορές σφαλμάτων εντός εφαρμογής και σχόλια χρηστών. Και υπάρχει το Twilio, μια υπηρεσία φωνής, ανταλλαγής μηνυμάτων και VoIP τρίτων.

Υπάρχουν 19 υπηρεσίες Web και εφαρμογών στο Bluemix. Αυτά είναι πάρα πολλά για να συζητήσουμε εδώ, αλλά μερικά από αυτά αναφέρουν. Το RapidApps είναι μια υπηρεσία beta περιορισμένης λειτουργικότητας που ισχυρίζεται ότι σας επιτρέπει να "αναπτύξετε γρήγορα εφαρμογές που βασίζονται σε δεδομένα και για κινητές συσκευές χρησιμοποιώντας οπτικά εργαλεία - χωρίς κωδικοποίηση". Το RapidApps υποτίθεται ότι απευθύνεται σε επιχειρηματικούς αναλυτές. φαίνεται να απέχει πολύ από το μαγείρεμα σε αυτό το σημείο, αλλά θα μπορούσε να είναι ενδιαφέρον στο μέλλον.

Η υπηρεσία Business Rules λαμβάνει κανόνες φυσικής γλώσσας που δημιουργείτε σε ένα Rule Designer και τους εκτελεί όταν καλείται από την εφαρμογή σας. Αυτό φαίνεται επίσης να απευθύνεται σε επιχειρηματικούς αναλυτές, αλλά είναι σε καλύτερη κατάσταση από το RapidApps σε αυτό το σημείο.

Υπηρεσίες Devops

Οι οκτώ υπηρεσίες devops στο BlueMix περιλαμβάνουν πέντε από την IBM και τρεις από τρίτους. Η υπηρεσία Track and Plan σάς επιτρέπει να δημιουργείτε ιστορίες, εργασίες και ελαττώματα για να περιγράψετε και να παρακολουθήσετε την εργασία του έργου, καθώς και να χρησιμοποιήσετε ευέλικτα εργαλεία σχεδιασμού για την καθυστέρηση, τις κυκλοφορίες και τα σπριντ του προϊόντος. Αυτή η υπηρεσία σας δίνει ουσιαστικά Rational Team Concert για το αποθετήριο Git ή Jazz.

Η υπηρεσία Delivery Pipeline σάς επιτρέπει να αυτοματοποιήσετε build και αναπτύξεις, εκτέλεση δοκιμών, να διαμορφώσετε scripts build και να αυτοματοποιήσετε την εκτέλεση δοκιμών μονάδας. Μου αρέσει ο τρόπος με τον οποίο αυτές οι δύο υπηρεσίες ενσωματώνουν τη διεπαφή Jazz με το Bluemix.

Συζητήσαμε την υπηρεσία παρακολούθησης και ανάλυσης στο πλαίσιο του εκκινητή Java Cache Web. Η Αυτόματη κλιμάκωση για το πρόσθετο Bluemix σάς επιτρέπει να αυξάνετε ή να μειώνετε αυτόματα την ικανότητα υπολογισμού της εφαρμογής σας. Το Μητρώο χρηστών εφαρμογών σάς επιτρέπει να προστατεύετε την εφαρμογή πόρων σας ή να αναπτύσσετε την εφαρμογή πελάτη σας βάσει του OAuth 2.0. Οι τρεις υπηρεσίες devops τρίτων είναι BlazeMeter, Load Impact και New Relic.

Αλλες υπηρεσίες

Υπάρχουν μόνο δύο υπηρεσίες ενοποίησης στο Bluemix, αλλά και οι δύο είναι ενδιαφέρουσες. Το Cloud Integration επιτρέπει στους χρήστες να ενσωματώνουν υπηρεσίες cloud με εταιρικά συστήματα εγγραφής. Εκθέτει τα συστήματα back-end ως REST API που θα χρησιμοποιηθούν από εφαρμογές. Η πειραματική υπηρεσία κοντέινερ σάς επιτρέπει να εκτελείτε κοντέινερ Docker στο Bluemix, το οποίο πιθανώς ανοίγει το Bluemix σε σχεδόν οτιδήποτε.

Από τις 10 υπηρεσίες διαχείρισης δεδομένων στο Bluemix, δύο είναι για τη MySQL (μία ανοιχτή πηγή, μία ανεκτική σε σφάλματα), δύο για Postgres (ditto), τρεις για βάσεις δεδομένων NoSQL και μία για DB2 Οι υπόλοιπες δύο υπηρεσίες διαχείρισης δεδομένων είναι το Object Storage (beta, με βάση το OpenStack Swift) και το DataWorks. Το τελευταίο περιλαμβάνει API που φορτώνουν δεδομένα, καθαρίζουν τις ταχυδρομικές διευθύνσεις των ΗΠΑ και ταξινομούν δεδομένα.

Πίνακας βαθμολογίαςΕυκολία στη χρήση (20%) Εύρος υποστήριξης (20%) Διαχείριση (20%) Τεκμηρίωση (15%) Εγκατάσταση και ρύθμιση (15%) αξία (10%) Συνολική βαθμολογία
IBM Bluemix999899 8.9