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

Γιατί το MongoDB είναι «θεμελιωδώς καλύτερο» για προγραμματιστές

Χρειάζεται ένα ορισμένο ποσό chutzpah - ΟΚ, τα βουνά του - για να εφεύρει ένα νέο είδος βάσης δεδομένων και να υποθέσει ότι θα αναλάβει τον κόσμο. Ή ίσως να μην υποθέσουμε, ακριβώς, αλλά, όπως το έθεσε ο συνιδρυτής της MongoDB, Eliot Horowitz, σε μια συνέντευξή του, «Αν κάποιος επρόκειτο να το κάνει, είχαμε την καλύτερη πιθανότητα κάποιου εκεί έξω».

Όχι η Oracle, με τις δεκαετίες κυριαρχίας της σε σχεσιακές βάσεις δεδομένων (RDBMS). Όχι η IBM, με μια εξερχόμενη επιχείρηση βάσεων δεδομένων, αλλά ορδές ταλαντούχων μηχανικών. Όχι η Microsoft, η οποία έδωσε νέα ζωή στον κόσμο του RDBMS με τον SQL Server. Ούτε καν ανοιχτού κώδικα ξεκινά τη MySQL και την ολοένα και πιο δημοφιλή PostgreSQL.

Όχι, ήταν ο Horowitz και ο Dwight Merriman, δύο New Yorkers που ήθελαν να κάνουν ένα νέο γύρισμα στην πλατφόρμα ως υπηρεσία (PaaS), αλλά κάπως, αντίθετα, δημιούργησαν μια βάση δεδομένων. «Ο κόσμος της βάσης δεδομένων αλλάζει για πάντα εξαιτίας αυτού που κάναμε», είπε ο Horowitz, το οποίο μπορεί να ακούγεται αλαζονικό εκτός από το γεγονός ότι είναι αλήθεια. Γιατί είναι αλήθεια, ωστόσο, αξίζει να βουτήξετε βαθιά για να το καταλάβετε.

Ο Horowitz αποσύρθηκε πρόσφατα από το MongoDB μετά από 13 χρόνια με την εταιρεία και το προϊόν, παρέχοντας έναν κατάλληλο χρόνο για να αξιολογήσει το έργο που έκανε.

«Ωθήσαμε τη βιομηχανία»

Αλλά ας υποστηρίξουμε μια στιγμή πρώτα. Είναι εύκολο να δείτε πράγματα όπως η κατάταξη δημοτικότητας της βάσης δεδομένων DB-Engines και να καταλήξετε σε λάθος συμπέρασμα. "Το MongoDB είναι η πέμπτη πιο δημοφιλής βάση δεδομένων και εξακολουθεί να είναι το ένα τρίτο τόσο ευρέως χρησιμοποιούμενο όσο το Oracle και το MySQL!" Δεδομένου του πόσο απρόθυμες επιχειρήσεις πρέπει να αλλάξουν βάσεις δεδομένων δοκιμασμένες από μάχη, ακόμη και αυτό το επίπεδο υιοθέτησης είναι εντυπωσιακό. Οι βάσεις δεδομένων είναι το "κολλώδες" προϊόν σε έναν οργανισμό, το λιγότερο πιθανό να αλλάξει. Έτσι, για το MongoDB να μετακινήσει παλαιότερες βάσεις δεδομένων που είχαν υιοθετηθεί ευρέως (DB2, Ingres, κ.λπ.) για δεκαετίες, και να συνεχίσει να αυξάνεται σε δημοτικότητα σε σχέση με τους ανθεκτικούς RDBMS όπως το Oracle…; Είναι μεγάλη υπόθεση.

Ωστόσο, ένας ακόμη ισχυρότερος δείκτης της επιρροής του MongoDB είναι το πόσο αυτοί οι κατεστημένοι υπεύθυνοι έχουν ξεκινήσει.

«Κάθε άλλο παραδοσιακό προϊόν, τα Postgres, η MySQL, ακόμη και ο Oracle και ο SQL Server, έχουν λάβει πολλές από τις ιδέες MongoDB και προσπαθούν να τις καταστρέψουν με τον δικό τους τρόπο», δήλωσε ο Horowitz. «Ακόμη και προγραμματιστές που λένε,« δεν θα χρησιμοποιούσα ποτέ το MongoDB! Απλώς πρόκειται να χρησιμοποιήσω τα Postgres επειδή έχει JSONB και όλα αυτά τα άλλα πράγματα. »" Όπως τόνισε ο Horowitz, πράγματα όπως το JSONB υπάρχουν ακριβώς επειδή η MongoDB ώθησε τη βιομηχανία να τα υιοθετήσει. Για εκείνους που «μισούν τη MongoDB αλλά δεν έχουν εκνευριστεί για το JSONB» ο Χόροβιτς απλώς λέει, «Είστε ευπρόσδεκτοι».

Αλλά, πάλι, η ύβρισα. Ή chutzpah. Ή ό, τι ήταν αυτό που ώθησε τον Horowitz και τον Merriman να προχωρήσουν παρά τα πάντα -τα παντα - στη βιομηχανία που έχει συσταθεί για να εξασφαλίσει την αποτυχία τους. Από που προέκυψε αυτό;

«Οι βάσεις δεδομένων αναρροφήθηκαν και κάποιος έπρεπε να το διορθώσει»

Ο Horowitz και ο Merriman είχαν συνεργαστεί σε μερικές εταιρείες, συμπεριλαμβανομένων των DoubleClick και Shopwiki και, όπως εξήγησε ο Horowitz, η βάση δεδομένων συνέχισε να παρεμποδίζει. Ή, για να είμαι πιο αμβλύ, "Χρησιμοποιώντας βάσεις δεδομένων απορροφημένες, και κάποιος έπρεπε να το διορθώσει και αν κανείς άλλος δεν θα το έκανε, θα μπορούσε να είναι και εγώ και ο Dwight. Γνωρίζαμε ότι είχαμε ένα καλό σουτ. Ήταν πολύ μακριά από ένα slam dunk, αλλά ... αν κάποιος επρόκειτο να το κάνει, είχαμε την καλύτερη πιθανότητα κάποιου εκεί έξω. "

Το προφανές πράγμα που πρέπει να κάνουμε σε αυτό το σημείο θα ήταν να οικοδομήσουμε ένα καλύτερο RDBMS. για να καλύψει τα κενά που άφησαν οι MySQL και Postgres, και οι δύο είχαν αυξηθεί σε δημοτικότητα. Αλλά αυτό έκανε ο Χόροβιτς δεν θέλω να κάνω. Ήθελε να δημιουργήσει μια εντελώς διαφορετική προσέγγιση στα δεδομένα, που αντιστοιχούσε στον τρόπο προγραμματισμού των προγραμματιστών και όχι στην ανάγκη κάποιου συστήματος ERP για τακτοποιημένες σειρές και στήλες.

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

Το MongoDB, είπε ο Horowitz, προσέφερε στους προγραμματιστές μια σωτηρία.

"Εάν παίρνετε άτομα που δεν έχουν χρησιμοποιήσει ποτέ μια βάση δεδομένων πριν και τους διδάξετε το MongoDB και μετά τους διδάξετε μια σχεσιακή βάση δεδομένων, το MongoDB είναι πολύ πιο εύκολο και πιο διαισθητικό γι 'αυτούς." Ναι, εάν εργάζεστε με ένα σύστημα λογιστικής ή καθολικού, το RDBMS έχει σχεδιαστεί για τέτοιες εφαρμογές και λειτουργούν καλά. «Αλλά για οτιδήποτε άλλο, το σχεσιακό μοντέλο δεν λειτουργεί», δήλωσε ο Horowitz.

Εάν χρησιμοποιείτε μια γλώσσα προγραμματισμού και μια βάση δεδομένων, το περίεργο είναι ότι με το MongoDB, κατά κάποιο τρόπο, το [MongoDB] API μοιάζει πολύ περισσότερο με τη γλώσσα προγραμματισμού σας από τη βάση δεδομένων. Επομένως, είναι πολύ εύκολο να το παραλάβετε. Για πολλές από τις βασικές έννοιες όπως η ευρετηρίαση και τα ερωτήματα, ναι, είναι μια διαφορετική γλώσσα ερωτήματος και η ευρετηρίαση είναι ελαφρώς διαφορετική, αλλά, ουσιαστικά, η ευρετηρίαση είναι παρόμοια. Τα βασικά του MongoDB είναι εξαιρετικά εύκολο να τα βρείτε.

Τα τελευταία 13 χρόνια, πολλά από αυτά που είχε να κάνει η εταιρεία του, είπε ο Χόροβιτς, επανεκπαιδεύει όσους μεγάλωσαν στο RDBMS και πρέπει να μάθουν έναν νέο τρόπο. Αλλά για όσους είναι νέοι στις βάσεις δεδομένων, «το MongoDB είναι πολύ πιο διαισθητικό από άλλες βάσεις δεδομένων. Ταιριάζει πολύ καλύτερα στον τρόπο που σκέφτονται οι άνθρωποι. " Ως εκ τούτου, ο Χόροβιτς συνέχισε: "Εάν ξεκινάτε από το μηδέν, θα πρέπει σχεδόν πάντα να χρησιμοποιείτε το MongoDB, κατά τη γνώμη μου."

«Το σύννεφο ήταν πάντα το όραμα»

Ερωτηθείς αν μπορούσε να εντοπίσει πότε ήξερε ότι το στοίχημα MongoDB θα αποδώσει, ο Χόροβιτς το σκέφτηκε για λίγο και στη συνέχεια είπε, "Απρίλιος 2010". Τότε ήταν που η MongoDB φιλοξένησε μια εκδήλωση στο Σαν Φρανσίσκο που εξαντλήθηκε σε λιγότερο από 48 ώρες. "Οι άνθρωποι αγαπούσαν τις βασικές έννοιες και όλα έγιναν πολύ πιο εύκολα." Μέχρι εκείνο το σημείο, ο Χόροβιτς κατέστησε σαφές, υπήρχαν στιγμές που ανησυχούσε «Αυτό το πράγμα θα λειτουργήσει ποτέ;» Αλλά τον Απρίλιο του 2010, ήξερε ότι η απάντηση ήταν ένα ηχηρό «Ναι».

Αυτό δεν σημαίνει ότι χτύπησε το cruise control. «Ακόμα και τότε ξέραμε ότι θα χρειαστούν 10 χρόνια για να προσθέσουμε τα χαρακτηριστικά που θέλαμε και ότι οι επιχειρήσεις θα χρειαζόταν».

Ένα από αυτά τα χαρακτηριστικά ήταν το cloud.

Δεδομένης της έναρξης του MongoDB ως επίδοξου PaaS, ίσως δεν προκαλεί έκπληξη το γεγονός ότι ο Horowitz υποδηλώνει ότι το cloud βρισκόταν στον χάρτη πορείας από την πρώτη μέρα. «Λίγο λίγο μετά ξεκινήσαμε να χτίζουμε το MongoDB, ξεκινήσαμε επίσης να χτίζουμε την Υπηρεσία Παρακολούθησης MongoDB, η οποία παρείχε τα θεμέλια για την Atlas», η βάση δεδομένων της MongoDB ως υπηρεσία που αντιπροσωπεύει τώρα το 42% των εσόδων της εταιρείας. "Στόχος μας ήταν να έχουμε πάντα μια πλήρη βάση δεδομένων."

Ένα μεγάλο μέρος αυτού συνδέεται με το όραμα της εταιρείας να διευκολύνει τη ζωή των προγραμματιστών. "Ως προγραμματιστές, γνωρίζαμε ότι κανείς δεν θα ήθελε να διαχειριστεί η ίδια τη βάση δεδομένων αν μπορούσε να κάνει κάποιον να το κάνει για αυτούς που είναι εξίσου ασφαλές και αξιόπιστο." Ωστόσο, η πλήρης υλοποίηση αυτού του οράματος θα πρέπει να περιμένει, διότι ακόμη και μια καλά χρηματοδοτούμενη εκκίνηση όπως το MongoDB δεν μπορούσε να κάνει τα πάντα ταυτόχρονα. «Έπρεπε να επενδύσουμε όλο τον χρόνο και την ενέργειά μας για να κάνουμε σωστή τη βάση δεδομένων, διαφορετικά δεν θα συνέβαινε. Γι 'αυτό ξεκινήσαμε να παίζουμε με την παρακολούθηση ως υπηρεσία, για να βεβαιωθούμε ότι καταλάβαμε πώς να εκτελέσουμε μια υπηρεσία cloud σε κλίμακα. " Επιπρόσθετα, η εταιρεία έστρεψε τα άκρα με πράγματα όπως χειρισμό πιστωτικών καρτών και συστήματα υποστήριξης για να «εξασκηθείτε στο να τα κάνετε έτσι ώστε όταν ήμασταν έτοιμοι να ξεκινήσουμε το Atlas για πραγματικό, δεν ξεκινούσε από το μηδέν».

Τελικά, ο Horowitz πιστεύει ότι «το ποσοστό των ατόμων που χρησιμοποιούν το MongoDB χρησιμοποιώντας το Atlas θα είναι σχεδόν 100 τοις εκατό», αν και είναι απίθανο να είναι ποτέ 100 τοις εκατό. Με τη «συντριπτική πλειονότητα» εφαρμογών που μετακινούνται στο cloud, «Δεν υπάρχει λόγος να μην χρησιμοποιήσετε το Atlas», υποστηρίζει ο Horowitz.

"Δεν υπάρχει τρόπος να ισχυριστείτε ότι δεν πετύχαμε"

Ερωτηθείς από πού μπορεί να προέλθει το επόμενο MongoDB, ο Χόροβιτς δεν αναγνώρισε έναν ανταγωνιστή τόσο ως καθοδηγητική αρχή, η ίδια που τον ώθησε και τον Merriman να χτίσουν το MongoDB: «Πρέπει να κάνετε κάτι θεμελιωδώς καλύτερο από κάτι άλλο. Αν βγήκες με κάτι που έκανε ό, τι έκανε το MongoDB ή το Postgres, αλλά ήταν 10 φορές φθηνότερο ή 10 φορές πιο γρήγορα, θα ήταν πολύ συναρπαστικό. " Τούτου λεχθέντος, πρόσθεσε, "Δεν φαντάζομαι πώς μπορείτε να νικήσετε το MongoDB στο μοντέλο δεδομένων αυτή τη στιγμή."

Αλλά αυτό που μπορεί να είναι ενδιαφέρον, υποστήριξε ο Horowitz, θα ήταν ριζικά διαφορετικές αρχιτεκτονικές βάσεων δεδομένων που μπορούν να επωφεληθούν από τη δημόσια υποδομή cloud για να κάνουν τα πράγματα πολύ πιο φθηνά. «Πολλοί άνθρωποι εργάζονται σε αυτό, αλλά κανείς δεν το έκανε πραγματικά. Δεν υπάρχει τίποτα εκεί έξω που να είναι αρχικά αρχιτεκτονικά διαφορετικό. "

Αυτό μας φέρνει πίσω στο σημείο που ξεκινήσαμε. "Αν σκεφτείτε τι πρόκειται να κάνουμε, το οποίο έκανε τις βάσεις δεδομένων ουσιαστικά ευκολότερες και θεμελιωδώς καλύτερες για τους προγραμματιστές, δεν υπάρχει τρόπος να ισχυριστείτε ότι δεν πετύχαμε", δήλωσε ο Horowitz. "Το MongoDB είναι πολύ ανώτερο από οτιδήποτε άλλο υπήρχε όταν ξεκινήσαμε." Κάποιοι μπορεί να διαφωνήσουν, αλλά λίγοι θα διαφωνούσαν με την επόμενη δήλωσή του: «Ο κόσμος της βάσης δεδομένων αλλάζει για πάντα λόγω αυτού που κάναμε. Αυτό είναι πολύ φοβερό. "

$config[zx-auto] not found$config[zx-overlay] not found