Πώς να αντέξετε αυξημένα φορτία στο σύστημα: μιλάμε για μεγάλης κλίμακας προετοιμασίες για τη Black Friday

Γεια σου Χαμπρ!

Το 2017, κατά τη διάρκεια της Black Friday, το φορτίο αυξήθηκε σχεδόν μιάμιση φορά και οι διακομιστές μας ήταν στο όριο τους. Κατά τη διάρκεια του έτους, ο αριθμός των πελατών αυξήθηκε σημαντικά και κατέστη σαφές ότι χωρίς προσεκτική προκαταρκτική προετοιμασία, η πλατφόρμα μπορεί απλώς να μην αντέξει τα φορτία του 2018.

Θέσαμε τον πιο φιλόδοξο δυνατό στόχο: θέλαμε να είμαστε πλήρως προετοιμασμένοι για οποιαδήποτε, ακόμη και τις πιο ισχυρές, εκρήξεις δραστηριότητας και αρχίσαμε να λανσάρουμε νέες ικανότητες εκ των προτέρων καθ' όλη τη διάρκεια του έτους.

Ο CTO μας Andrey Chizh (chizh_andrey) λέει πώς προετοιμαστήκαμε για τη Black Friday 2018, ποια μέτρα λάβαμε για να αποφύγουμε τις πτώσεις και, φυσικά, τα αποτελέσματα μιας τόσο προσεκτικής προετοιμασίας.

Πώς να αντέξετε αυξημένα φορτία στο σύστημα: μιλάμε για μεγάλης κλίμακας προετοιμασίες για τη Black Friday

Σήμερα θέλω να μιλήσω για τις προετοιμασίες για την Black Friday 2018. Γιατί τώρα, όταν οι περισσότερες από τις μεγάλες εκπτώσεις είναι πίσω μας; Ξεκινήσαμε να προετοιμαζόμαστε περίπου ένα χρόνο πριν από εκδηλώσεις μεγάλης κλίμακας και μέσω δοκιμής και λάθους βρήκαμε τη βέλτιστη λύση. Σας συνιστούμε να φροντίζετε εκ των προτέρων τις καυτές εποχές και να αποτρέπετε απάτες που μπορεί να εμφανιστούν την πιο ακατάλληλη στιγμή.
Το υλικό θα είναι χρήσιμο σε όλους όσους θέλουν να αποσπάσουν το μέγιστο κέρδος από τέτοια αποθέματα, επειδή Η τεχνική πλευρά του θέματος δεν είναι κατώτερη από την πλευρά του μάρκετινγκ εδώ.

Χαρακτηριστικά της επισκεψιμότητας σε μεγάλες πωλήσεις

Σε αντίθεση με τη δημοφιλή πεποίθηση, η Black Friday δεν είναι μόνο μια μέρα το χρόνο, αλλά σχεδόν μια ολόκληρη εβδομάδα: οι πρώτες εκπτωτικές προσφορές φτάνουν 7-8 ημέρες πριν από την πώληση. Η επισκεψιμότητα του ιστότοπου αρχίζει να αυξάνεται ομαλά καθ' όλη τη διάρκεια της εβδομάδας, φτάνει στο αποκορύφωμά της την Παρασκευή και μειώνεται αρκετά απότομα το Σάββατο στα κανονικά επίπεδα του καταστήματος.

Πώς να αντέξετε αυξημένα φορτία στο σύστημα: μιλάμε για μεγάλης κλίμακας προετοιμασίες για τη Black Friday

Αυτό είναι σημαντικό να ληφθεί υπόψη: τα ηλεκτρονικά καταστήματα γίνονται ιδιαίτερα ευαίσθητα σε τυχόν «επιβράδυνση» του συστήματος. Επιπλέον, η γραμμή ενημερωτικών δελτίων ηλεκτρονικού ταχυδρομείου μας παρουσίασε επίσης σημαντική αύξηση στον αριθμό των υποβολών.

Είναι στρατηγικής σημασίας για εμάς να περάσουμε τη Black Friday χωρίς ατυχήματα, γιατί... Η πιο σημαντική λειτουργικότητα των ιστοσελίδων και των ενημερωτικών δελτίων καταστημάτων εξαρτάται από τη λειτουργία της πλατφόρμας, και συγκεκριμένα:

  • Παρακολούθηση και έκδοση συστάσεων προϊόντων,
  • Έκδοση σχετικού υλικού (για παράδειγμα, εικόνες σχεδιασμού μπλοκ συστάσεων, όπως βέλη, λογότυπα, εικονίδια και άλλα οπτικά στοιχεία),
  • Παροχή εικόνων προϊόντων του απαιτούμενου μεγέθους (για τους σκοπούς αυτούς έχουμε το "ImageResizer" - ένα υποσύστημα που κατεβάζει μια εικόνα από τον διακομιστή καταστήματος, τη συμπιέζει στο απαιτούμενο μέγεθος και, μέσω διακομιστών προσωρινής αποθήκευσης, παράγει εικόνες του απαιτούμενου μεγέθους για κάθε προϊόν στο κάθε μπλοκ συστάσεων).

Μάλιστα, κατά τη διάρκεια της Black Friday 2019, ο φόρτος στην υπηρεσία αυξήθηκε κατά 40%, δηλ. ο αριθμός των συμβάντων που παρακολουθεί και επεξεργάζεται το σύστημα Retail Rocket σε ιστότοπους ηλεκτρονικών καταστημάτων έχει αυξηθεί από 5 σε 8 χιλιάδες αιτήματα ανά δευτερόλεπτο. Λόγω του ότι προετοιμαζόμασταν για πιο σοβαρά φορτία, επιβιώσαμε εύκολα από ένα τέτοιο κύμα.

Πώς να αντέξετε αυξημένα φορτία στο σύστημα: μιλάμε για μεγάλης κλίμακας προετοιμασίες για τη Black Friday

Γενική προετοιμασία

Η Black Friday είναι μια πολυάσχολη εποχή για όλο το λιανικό εμπόριο και το ηλεκτρονικό εμπόριο ειδικότερα. Ο αριθμός των χρηστών και η δραστηριότητά τους αυτή τη στιγμή αυξάνεται σημαντικά, επομένως, όπως πάντα, προετοιμαστήκαμε σχολαστικά για αυτήν την πολυάσχολη περίοδο. Ας προσθέσουμε εδώ το γεγονός ότι έχουμε πολλά ηλεκτρονικά καταστήματα συνδεδεμένα όχι μόνο στη Ρωσία, αλλά και στην Ευρώπη, όπου ο ενθουσιασμός είναι πολύ υψηλότερος και έχουμε ένα επίπεδο πάθους χειρότερο από τη βραζιλιάνικη σειρά. Τι πρέπει να γίνει για να είστε πλήρως προετοιμασμένοι για αυξημένα φορτία;

Εργασία με διακομιστές

Αρχικά, ήταν απαραίτητο να μάθουμε τι ακριβώς χρειαζόμασταν για να αυξήσουμε την ισχύ του διακομιστή. Ήδη τον Αύγουστο, αρχίσαμε να παραγγέλνουμε νέους διακομιστές ειδικά για τη Black Friday - συνολικά προσθέσαμε 10 επιπλέον μηχανήματα. Μέχρι τον Νοέμβριο βρίσκονταν σε πλήρη μάχη.

Ταυτόχρονα, μερικές από τις μηχανές κατασκευής εγκαταστάθηκαν ξανά για χρήση ως διακομιστές εφαρμογών. Τα προετοιμάσαμε αμέσως για να χρησιμοποιήσουν διαφορετικές λειτουργίες: τόσο για την έκδοση προτάσεων όσο και για την υπηρεσία ImageResizer, έτσι ώστε, ανάλογα με τον τύπο του φορτίου, καθεμία από αυτές να μπορεί να χρησιμοποιηθεί για έναν από αυτούς τους ρόλους. Στην κανονική λειτουργία, οι διακομιστές Application και ImageResizer έχουν σαφώς καθορισμένες λειτουργίες: οι πρώτοι εκδίδουν συστάσεις, οι δεύτεροι παρέχουν εικόνες για επιστολές και μπλοκ συστάσεων σε ιστότοπους ηλεκτρονικών αγορών. Στο πλαίσιο της προετοιμασίας για την Black Friday, αποφασίστηκε να δημιουργηθούν όλοι οι διακομιστές διπλής χρήσης προκειμένου να εξισορροπηθεί η κίνηση μεταξύ τους ανάλογα με τον τύπο λήψης.

Στη συνέχεια προσθέσαμε δύο μεγάλους διακομιστές για τον Kafka (Apache Kafka) και αποκτήσαμε ένα σύμπλεγμα 5 ισχυρών μηχανημάτων. Δυστυχώς, όλα δεν πήγαν τόσο ομαλά όσο θα θέλαμε: κατά τη διαδικασία συγχρονισμού δεδομένων, δύο νέα μηχανήματα κατέλαβαν ολόκληρο το πλάτος του καναλιού δικτύου και έπρεπε να καταλάβουμε επειγόντως πώς να πραγματοποιήσουμε τη διαδικασία προσθήκης γρήγορα και με ασφάλεια για το ολόκληρη την υποδομή. Για την επίλυση αυτού του ζητήματος, οι διαχειριστές μας έπρεπε να θυσιάσουν γενναία τα Σαββατοκύριακά τους.

Εργασία με δεδομένα

Εκτός από τους διακομιστές, αποφασίσαμε να βελτιστοποιήσουμε τα αρχεία για να ελαφρύνουμε το φόρτο και ένα μεγάλο βήμα για εμάς ήταν η μετάφραση στατικών αρχείων. Όλα τα στατικά αρχεία που φιλοξενούνταν προηγουμένως σε διακομιστές μετακινήθηκαν στο S3 + Cloudfront. Θέλουμε να το κάνουμε αυτό εδώ και πολύ καιρό, καθώς το φόρτο στον διακομιστή ήταν κοντά στις οριακές τιμές και τώρα παρουσιάστηκε μια μεγάλη ευκαιρία.

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

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

Σχέδια ανταπόκρισης σε δύσκολες καταστάσεις

Ανεξάρτητα από το πόσο ποιοτική είναι η προετοιμασία, τα fakaps είναι πάντα δυνατά. Και έχουμε αναπτύξει 3 σχέδια απόκρισης για πιθανές κρίσιμες καταστάσεις:

  • μείωση φορτίου,
  • απενεργοποίηση ορισμένων υπηρεσιών,
  • πλήρης διακοπή λειτουργίας της υπηρεσίας.

Σχέδιο Α: Μειώστε το φορτίο. Θα έπρεπε να είχε ενεργοποιηθεί εάν, λόγω αύξησης του φορτίου, οι διακομιστές μας ξεπέρασαν τους αποδεκτούς χρόνους απόκρισης. Σε αυτήν την περίπτωση, έχουμε προετοιμάσει μηχανισμούς για τη σταδιακή μείωση του φόρτου με εναλλαγή μέρους της επισκεψιμότητας σε διακομιστές της Amazon, οι οποίοι απλώς θα απαντούσαν σε όλα τα αιτήματα με «200 OK» και θα έδιναν μια κενή απάντηση. Καταλάβαμε ότι επρόκειτο για υποβάθμιση της ποιότητας της υπηρεσίας, αλλά η επιλογή μεταξύ του γεγονότος ότι η υπηρεσία δεν λειτουργεί καθόλου ή δεν εμφανίζει συστάσεις για περίπου το 10% της επισκεψιμότητας είναι προφανής.

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

Σχέδιο Γ: σε περίπτωση Αρμαγεδδώνα. Εάν παρουσιαστεί πλήρης αποτυχία συστήματος, έχουμε ετοιμάσει ένα σχέδιο που θα μας επιτρέψει να αποσυνδεθούμε με ασφάλεια από τους πελάτες μας. Οι αγοραστές καταστημάτων απλώς θα σταματήσουν να βλέπουν συστάσεις· η απόδοση του ηλεκτρονικού καταστήματος δεν θα υποφέρει με κανέναν τρόπο. Για να γίνει αυτό, θα πρέπει να επαναφέρουμε το αρχείο ενσωμάτωσης, έτσι ώστε οι νέοι χρήστες να σταματήσουν να αλληλεπιδρούν με την υπηρεσία. Δηλαδή, θα απενεργοποιούσαμε τον κύριο κώδικα παρακολούθησης, η υπηρεσία θα σταματούσε τη συλλογή δεδομένων και τον υπολογισμό προτάσεων και ο χρήστης θα έβλεπε απλώς μια σελίδα χωρίς αποκλεισμούς συστάσεων. Για όλους όσους έχουν λάβει προηγουμένως ένα αρχείο ενσωμάτωσης, παρέχουμε την επιλογή αλλαγής της εγγραφής DNS στο Amazon και το στέλεχος 200 OK.

Αποτελέσματα της

Αντιμετωπίσαμε ολόκληρο το φορτίο ακόμη και χωρίς την ανάγκη χρήσης πρόσθετων μηχανημάτων κατασκευής. Και χάρη στην εκ των προτέρων προετοιμασία, δεν χρειαστήκαμε κανένα από τα αναπτυγμένα σχέδια απόκρισης. Όμως όλη η δουλειά που γίνεται είναι ανεκτίμητη εμπειρία που θα μας βοηθήσει να αντιμετωπίσουμε τις πιο απροσδόκητες και τεράστιες εισροές κίνησης.
Όπως και το 2017, ο φόρτος στην υπηρεσία αυξήθηκε κατά 40% και ο αριθμός των χρηστών στα ηλεκτρονικά καταστήματα αυξήθηκε κατά 60% τη Μαύρη Παρασκευή. Όλες οι δυσκολίες και τα λάθη συνέβησαν κατά την προπαρασκευαστική περίοδο, η οποία έσωσε εμάς και τους πελάτες μας από απρόβλεπτες καταστάσεις.

Πώς αντιμετωπίζετε τη Black Friday; Πώς προετοιμάζεστε για κρίσιμα φορτία;

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο