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



Δεδομένου ότι αποθηκεύουμε πολλαπλές εκδόσεις μηνυμάτων, οι μηχανικοί του Sprout είναι επιφορτισμένοι με την «αναδημιουργία του κόσμου» πολλές φορές την ημέρα - μια ουσιαστική διαδικασία που απαιτεί επανάληψη σε ολόκληρο το σύνολο δεδομένων για να ενοποιήσει κάθε μέρος ενός κοινωνικού μηνύματος σε μια «πηγή αλήθειας».



Για παράδειγμα, παρακολουθείτε τα likes, τα σχόλια και τα retweets μιας ανάρτησης στο Twitter. Ιστορικά, βασιστήκαμε σε αυτοδιαχειριζόμενα συμπλέγματα Hadoop για να διατηρήσουμε και να επεξεργαστούμε τόσο μεγάλο όγκο δεδομένων. Κάθε σύμπλεγμα Hadoop θα είναι υπεύθυνο για διαφορετικά μέρη της πλατφόρμας Sprout - μια πρακτική που βασίζεται σε όλη την ομάδα μηχανικών Sprout για τη διαχείριση έργων μεγάλων δεδομένων, σε κλίμακα.

Κλειδιά για την προσέγγιση μεγάλων δεδομένων του Sprout

Το οικοσύστημά μας Hadoop εξαρτιόταν από το Apache Hbase, μια επεκτάσιμη και κατανεμημένη βάση δεδομένων NoSQL. Αυτό που κάνει το Hbase ζωτικής σημασίας για την προσέγγισή μας όσον αφορά την επεξεργασία μεγάλων δεδομένων είναι η ικανότητά του όχι μόνο να κάνει σαρώσεις γρήγορης εμβέλειας σε ολόκληρα σύνολα δεδομένων, αλλά να κάνει επίσης γρήγορες, τυχαίες αναζητήσεις μεμονωμένης εγγραφής.

Το Hbase μάς επιτρέπει επίσης να φορτώνουμε μαζικά δεδομένα και να ενημερώνουμε τυχαία δεδομένα, ώστε να μπορούμε να χειριζόμαστε πιο εύκολα μηνύματα που φτάνουν εκτός σειράς ή με μερικές ενημερώσεις, καθώς και άλλες προκλήσεις που συνοδεύουν τα δεδομένα μέσων κοινωνικής δικτύωσης. Ωστόσο, τα αυτοδιαχειριζόμενα συμπλέγματα Hadoop επιβαρύνουν τους μηχανικούς μας Infrastructure με υψηλά λειτουργικά κόστη, συμπεριλαμβανομένης της μη αυτόματης διαχείρισης ανάκτησης από καταστροφές, επέκτασης συμπλέγματος και διαχείρισης κόμβων.

Για να βοηθήσουν στη μείωση του χρόνου που προέρχεται από τη διαχείριση αυτών των συστημάτων με εκατοντάδες terabyte δεδομένων, οι ομάδες Υποδομής και Ανάπτυξης του Sprout ενώθηκαν για να βρουν μια καλύτερη λύση από την εκτέλεση αυτοδιαχειριζόμενων συστάδων Hadoop. Οι στόχοι μας ήταν:

  • Επιτρέψτε στους μηχανικούς του Sprout να δημιουργούν, να διαχειρίζονται και να χειρίζονται καλύτερα μεγάλα σύνολα δεδομένων
  • Ελαχιστοποιήστε την επένδυση χρόνου από τους μηχανικούς για τη μη αυτόματη ιδιοκτησία και συντήρηση του συστήματος
  • Μειώστε το περιττό κόστος των υπερβολικών προβλέψεων λόγω της επέκτασης του cluster
  • Παροχή καλύτερων μεθόδων αποκατάστασης και αξιοπιστίας από καταστροφές

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



Αξιολόγηση νέων εναλλακτικών προτύπων δεδομένων

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

Για την περίπτωση χρήσης μας για την αποθήκευση και την επεξεργασία μηνυμάτων κοινωνικής δικτύωσης που έχουν πολλές εκδόσεις ενός μηνύματος που ζουν δίπλα-δίπλα, οι αποθήκες δεδομένων είχαν ένα αναποτελεσματικό μοντέλο για τις ανάγκες μας. Δεν μπορέσαμε να προσαρμόσουμε αποτελεσματικά το υπάρχον μοντέλο μας στις αποθήκες δεδομένων και η απόδοση ήταν πολύ πιο αργή από ό,τι περιμέναμε. Η αναδιαμόρφωση των δεδομένων μας ώστε να προσαρμοστούν στο μοντέλο της αποθήκης δεδομένων θα απαιτούσε μεγάλα έξοδα για εκ νέου επεξεργασία στο χρονοδιάγραμμα που είχαμε.

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



Μείωση των γενικών εξόδων και συντήρησης με το AWS EMR

Δεδομένων των όσων μάθαμε για τις λύσεις αποθήκευσης δεδομένων και lakehouse, αρχίσαμε να αναζητούμε εναλλακτικά εργαλεία που εκτελούν το διαχειριζόμενο Hbase. Ενώ αποφασίσαμε ότι η τρέχουσα χρήση του Hbase ήταν αποτελεσματική για αυτό που κάνουμε στο Sprout, αναρωτηθήκαμε: «Πώς μπορούμε να τρέξουμε καλύτερα το Hbase για να μειώσουμε το λειτουργικό μας φόρτο, διατηρώντας παράλληλα τα κύρια πρότυπα χρήσης μας;»

Τότε αρχίσαμε να αξιολογούμε την υπηρεσία διαχείρισης Elastic Map Reduce (EMR) της Amazon για το Hbase. Η αξιολόγηση του EMR απαιτούσε την αξιολόγηση της απόδοσής του με τον ίδιο τρόπο που δοκιμάσαμε τις αποθήκες δεδομένων και τα lakehouses, όπως τη δοκιμή της απορρόφησης δεδομένων για να δούμε αν θα μπορούσε να καλύψει τις απαιτήσεις απόδοσής μας. Έπρεπε επίσης να δοκιμάσουμε την αποθήκευση δεδομένων, την υψηλή διαθεσιμότητα και την ανάκτηση από καταστροφές για να διασφαλίσουμε ότι το EMR ταιριάζει στις ανάγκες μας από άποψη υποδομής/διοικητικής.

Οι δυνατότητες του EMR βελτίωσαν την τρέχουσα αυτοδιαχειριζόμενη λύση μας και μας επέτρεψαν να επαναχρησιμοποιούμε τα τρέχοντα μοτίβα μας για εργασίες ανάγνωσης, γραφής και εκτέλεσης με τον ίδιο τρόπο που κάναμε με το Hbase. Ένα από τα μεγαλύτερα οφέλη του EMR είναι η χρήση του συστήματος αρχείων EMR (EMRFS), το οποίο αποθηκεύει δεδομένα στο S3 και όχι στους ίδιους τους κόμβους.

Μια πρόκληση που διαπιστώσαμε ήταν ότι το EMR είχε περιορισμένες επιλογές υψηλής διαθεσιμότητας, γεγονός που μας περιόριζε στην εκτέλεση πολλών κύριων κόμβων σε μία ζώνη διαθεσιμότητας ή ενός κύριου κόμβου σε πολλαπλές ζώνες διαθεσιμότητας. Αυτός ο κίνδυνος μετριάστηκε με τη μόχλευση του EMRFS, καθώς παρείχε πρόσθετη ανοχή σφαλμάτων για την ανάκτηση καταστροφών και την αποσύνδεση της αποθήκευσης δεδομένων από τις λειτουργίες υπολογισμού. Χρησιμοποιώντας το EMR ως τη λύση μας για το Hbase, είμαστε σε θέση να βελτιώσουμε την επεκτασιμότητα και την ανάκτηση αποτυχίας και να ελαχιστοποιήσουμε τη μη αυτόματη παρέμβαση που απαιτείται για τη διατήρηση των συστάδων. Τελικά, αποφασίσαμε ότι το EMR ήταν το καλύτερο για τις ανάγκες μας.


γεννήτρια ημερομηνίας γάμου

Η διαδικασία μετεγκατάστασης δοκιμάστηκε εύκολα εκ των προτέρων και εκτελέστηκε για τη μετεγκατάσταση δισεκατομμυρίων εγγραφών στα νέα συμπλέγματα EMR χωρίς διακοπές λειτουργίας πελατών. Τα νέα cluster παρουσίασαν βελτιωμένη απόδοση και μειωμένο κόστος κατά σχεδόν 40%. Για να διαβάσετε περισσότερα σχετικά με το πώς η μετάβαση στο EMR συνέβαλε στη μείωση του κόστους υποδομής και στη βελτίωση της απόδοσής μας, ρίξτε μια ματιά Μελέτη περίπτωσης του Sprout Social με το AWS.

Τι μάθαμε

Το μέγεθος και το εύρος αυτού του έργου έδωσε σε εμάς, την ομάδα Μηχανικών Αξιοπιστίας Βάσης Δεδομένων Υποδομής, την ευκαιρία να εργαστούμε διαλειτουργικά με πολλαπλές ομάδες μηχανικών. Αν και ήταν προκλητικό, αποδείχθηκε ένα απίστευτο παράδειγμα των έργων μεγάλης κλίμακας που μπορούμε να αντιμετωπίσουμε στο Sprout ως συνεργατικός οργανισμός μηχανικών. Μέσω αυτού του έργου, η ομάδα μας Infrastructure απέκτησε μια βαθύτερη κατανόηση του τρόπου με τον οποίο χρησιμοποιούνται, αποθηκεύονται και επεξεργάζονται τα δεδομένα του Sprout και είμαστε πιο εξοπλισμένοι για να βοηθήσουμε στην αντιμετώπιση μελλοντικών προβλημάτων. Έχουμε δημιουργήσει μια κοινή βάση γνώσεων σε πολλές ομάδες που μπορεί να μας βοηθήσει να χτίσουμε την επόμενη γενιά χαρακτηριστικών πελατών.

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

Μοιράσου Το Με Τους Φίλους Σου: