Μετάβαση στο περιεχόμενο
EuroVPSEuroVPS
Περιοχή πελατών

Μια μεταφορά είναι έργο, όχι ticket.

Η πλατφόρμα υψηλής επισκεψιμότητας ενός εκδότη, ανασχεδιασμένη για κλίμακα, δοκιμασμένη υπό φορτίο και μεταφερμένη στο bare metal μας. Το ορατό για τον πελάτη αποτέλεσμα ήταν ένα παράθυρο περίπου πέντε λεπτών μέσα σε μια επιχείρηση δύο ωρών.

Από EuroVPS EngineeringΤο μηχανοστάσιο

8 λεπτά ανάγνωσης
Σε αυτό το άρθρο 4 ενότητες
Εν συντομία
  • Ο όμιλος sites υψηλής επισκεψιμότητας ενός μεγάλου εκδότη έπρεπε να μετακομίσει datacenter στο bare metal μας, ανασχεδιασμένος για κλίμακα στον δρόμο. Η κίνηση από έκτακτες ειδήσεις είναι η δουλειά τους, και κάθε αναγνώστης θα έβλεπε ένα κακό cutover.
  • Σχεδιάσαμε πρώτα την πλατφόρμα: ένα edge cache δύο επιπέδων σε all-flash SAN, έναν load balancer ρυθμισμένο για πολύ υψηλούς αριθμούς συνδέσεων, ένα επίπεδο βάσης δεδομένων με διαχωρισμό read/write, και ένα επίπεδο object cache.
  • Μετά την αποδείξαμε με δοκιμή φορτίου πλήρους κλίμακας, πριν μετακινηθεί έστω ένας πραγματικός αναγνώστης.
  • Το cutover ήταν μια επιχείρηση δύο ωρών με ορατό για τον πελάτη παράθυρο DNS περίπου πέντε λεπτών, με διαδρομή rollback σε κάθε φάση.

Πρόκειται για ειδησεογραφικά και lifestyle sites όπου η κορύφωση της κίνησης είναι η ίδια η δουλειά. Μια μεταφορά που τα ρίχνει, ή τα ξανασηκώνει πιο αργά, είναι ορατή σε κάθε αναγνώστη στη μέση μιας έκτακτης είδησης. Αυτό δεν επρόκειτο ποτέ να είναι ticket. Ήταν έργο με μια νύχτα cutover.

Γιατί μία ομάδα για όλη τη δουλειά

Η δουλειά χρειαζόταν δύο πράγματα ταυτόχρονα, από μία ομάδα: τη μηχανική για τον ανασχεδιασμό των επιπέδων caching και βάσης δεδομένων, και την ιδιόκτητη υποδομή (all-flash enterprise SAN, ένα πραγματικό fabric δικτύου) για να προσγειωθεί. Φέραμε τους μηχανικούς και το μέταλλο μαζί, και η νύχτα του cutover ήταν δική μας ευθύνη.

Η πλατφόρμα, όπως σχεδιάστηκε

Ο σχεδιαστικός στόχος ήταν τρία πράγματα ταυτόχρονα: ανασχεδιασμός για κλίμακα σε cache και βάση δεδομένων, cutover με ελάχιστο, οριοθετημένο παράθυρο, και μεταφορά κάθε κομματιού του νέου σχεδιασμού ανέπαφου μέσα από το cutover. Να τι έγινε.

Η ΠΛΑΤΦΟΡΜΑ, ΟΠΩΣ ΠΡΟΣΓΕΙΩΘΗΚΕ
Τι έγινε το stack του εκδότη

Edge cache Varnish δύο επιπέδων

ένα μεγάλο επίπεδο σε all-flash enterprise SAN, συν ένα επίπεδο στη μνήμη

HAProxy μπροστά

ρυθμισμένος για πολύ υψηλούς αριθμούς συνδέσεων

ProxySQL σε κάθε web node

διαχωρισμός read/write: τα reads μοιράζονται, τα writes μένουν ασφαλή

Cluster Percona XtraDB

replication βασισμένο σε certification, σχεδόν σύγχρονο

Valkey + Sentinel

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

Το ντετερμινιστικό κερδίζει το κομψό

Η βάση δεδομένων μετακινήθηκε με φρέσκο hot backup αντί με live replication catch-up. Ήταν σχεδιαστική απόφαση με δηλωμένο σκεπτικό: ένα backup είναι ντετερμινιστικό, οπότε ό,τι βρίσκεται στο backup είναι ό,τι έχει το νέο cluster, χωρίς κατάσταση replication να ξεμπλέξουμε την πιο ακατάλληλη στιγμή. Η πιο κομψή διαδρομή υπάρχει, και την απορρίψαμε σκόπιμα. Τη νύχτα του cutover θέλετε τη μετακίνηση της οποίας το αποτέλεσμα ήδη ξέρετε.

Για να μετακινηθούν τα δεδομένα γρήγορα, μεταφέρθηκαν σε δύο άλματα: μέσω δημόσιου internet σε ένα staging relay, και μετά μέσω εσωτερικού LAN σε line rate, μετατρέποντας μια αντιγραφή περιορισμένη από την κρυπτογράφηση σε λίγα λεπτά. Στον προορισμό, το cluster ανακατασκευάστηκε από το backup και συγχρονίστηκε ξανά κόμβο προς κόμβο.

Και ένας συγχρονισμός filesystem έφερε μια χειρουργική λίστα εξαιρέσεων ώστε η μεταφορά να μην μπορεί να πατήσει τη διαμόρφωση του νέου σπιτιού: το config του database pointer, το drop-in του object cache και η εγκατάσταση cache δύο επιπέδων διατηρήθηκαν όλα ρητά. Το ένα κομμάτι κατάστασης που ένα restore βάσης σβήνει αθόρυβα, η ενεργοποίηση του plugin cache-purge, είχε χαρτογραφηθεί εκ των προτέρων με την επανενεργοποίησή του έτοιμη να πυροδοτηθεί. Αυτό σημαίνει να σχεδιάζεις το cutover δύο φορές: μία προς τα εμπρός, και μία για ό,τι θα μπορούσε να δαγκώσει στον δρόμο.

RELAY

Τα δεδομένα, σε δύο άλματα

Δημόσιο internet σε staging relay, μετά εσωτερικό LAN σε line rate. Λεπτά, όχι ώρες.

REBUILD

Cluster επαναφερμένο από το hot backup

Συγχρονισμένο ξανά κόμβο προς κόμβο.

SYNC

Μετακίνηση filesystem, με προστασία

Μια λίστα εξαιρέσεων προστατεύει τη νέα αρχιτεκτονική από το να πατηθεί.

CUTOVER

Το DNS αλλάζει

Το ορατό παράθυρο: περίπου πέντε λεπτά.

RE-ARM

Η μία ρύθμιση που σβήνεται αθόρυβα, επανενεργοποιημένη

Στην ώρα της, γιατί είχε χαρτογραφηθεί εκ των προτέρων.

“Δεν μετακινήσαμε τους servers σας. Ξαναχτίσαμε την πλατφόρμα σας και την προσγειώσαμε στη δική μας, σε ένα παράθυρο περίπου πέντε λεπτών, σχεδιασμένο εκ των προτέρων.”

Τι έγινε η σχέση

Η μεταφορά ήταν το σημείο εισόδου, όχι το τέλος. Τα αδελφά sites ακολούθησαν το ίδιο μοτίβο, και η λειτουργική πειθαρχία ήρθε ως μέρος της κατασκευής και όχι ως μεταγενέστερο upsell: συχνά hot backups βάσης δεδομένων και διατηρούμενα snapshots filesystem, ρυθμισμένα edge caches, ένα επίπεδο παρακολούθησης επιδόσεων για όλον τον στόλο, και επικύρωση με δοκιμή φορτίου πριν από το λανσάρισμα. Η σχέση κατέληξε σε «λειτουργούμε και εξελίσσουμε την πλατφόρμα», όχι «τη φιλοξενούμε».

Ευθείες απαντήσεις

Μπορείτε να μεταφέρετε ένα site υψηλής επισκεψιμότητας χωρίς να το ρίξετε;+

Σχεδιάζουμε ένα οριοθετημένο παράθυρο και το δηλώνουμε εκ των προτέρων. Σε αυτό το έργο: περίπου πέντε λεπτά ορατής για τον πελάτη διάδοσης DNS μέσα σε μια επιχείρηση δύο ωρών.

Backup-restore ή replication για μεταφορά βάσης δεδομένων;+

Και τα δύο είναι θεμιτά. Εδώ επιλέξαμε φρέσκο hot backup επειδή είναι ντετερμινιστικό: ό,τι βρίσκεται στο backup είναι ό,τι έχει το νέο cluster, χωρίς κατάσταση replication να ξεμπλέξουμε στη μέση του cutover. Η κομψή διαδρομή δεν είναι πάντα η ασφαλής.

Τι πρέπει να περιλαμβάνει ένα σχέδιο rollback μεταφοράς;+

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

Ανασχεδιάζετε κατά τη μεταφορά ή απλώς μετακινείτε πράγματα;+

Αν η μετακίνηση αξίζει ένα έργο, συνήθως αξίζει και τον ανασχεδιασμό. Αυτή η πλατφόρμα απέκτησε edge cache δύο επιπέδων, επίπεδο βάσης με διαχωρισμό read/write και επίπεδο object cache στον δρόμο. Το lift-and-shift είναι μερικές φορές σωστό, αλλά είναι απόφαση, όχι προεπιλογή.

Σχεδιάζετε μετακόμιση; Φέρτε μας την πλατφόρμα, όχι ένα ticket.

Σχεδιασμός, δοκιμή φορτίου, playbook cutover, σχοινιά rollback. Θα σας πούμε το ειλικρινές παράθυρο πριν από τη νύχτα, και θα κρατάμε το δίχτυ.

Μιλήστε με έναν μηχανικό

Φτάσατε στο τέλος.

Βάλτε την ανάγνωση σε εφαρμογή

Τι τρέχετε;

Πείτε μας για τον φόρτο εργασίας, την κίνηση και τις απαιτήσεις ανάκαμψης. Ξεκινήστε από το εργαλείο διαμόρφωσης server ή συζητήστε τις λεπτομέρειες με έναν μηχανικό.

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

8 λεπτά ακόμη