Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Τα σύννεφα είναι σαν ένα μαγικό κουτί - ρωτάτε τι χρειάζεστε και οι πόροι εμφανίζονται απλά από το πουθενά. Εικονικές μηχανές, βάσεις δεδομένων, δίκτυο - όλα αυτά ανήκουν μόνο σε εσάς. Υπάρχουν και άλλοι ένοικοι σύννεφων, αλλά στο Σύμπαν σας είστε ο μόνος κυρίαρχος. Είστε σίγουροι ότι θα λαμβάνετε πάντα τους απαιτούμενους πόρους, δεν λαμβάνετε υπόψη κανέναν και καθορίζετε ανεξάρτητα πώς θα είναι το δίκτυο. Πώς λειτουργεί αυτή η μαγεία που κάνει το σύννεφο να κατανέμει ελαστικά πόρους και να απομονώνει εντελώς τους ενοικιαστές μεταξύ τους;

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Το σύννεφο AWS είναι ένα πολύ-υπερσύνθετο σύστημα που εξελίσσεται εξελικτικά από το 2006. Μέρος αυτής της εξέλιξης έγινε Βασίλι Παντιούχιν - Amazon Web Services Architect. Ως αρχιτέκτονας, έχει μια εσωτερική ματιά όχι μόνο στο τελικό αποτέλεσμα, αλλά και στις προκλήσεις που ξεπερνά το AWS. Όσο μεγαλύτερη είναι η κατανόηση του τρόπου λειτουργίας του συστήματος, τόσο μεγαλύτερη είναι η εμπιστοσύνη. Επομένως, ο Vasily θα μοιραστεί τα μυστικά των υπηρεσιών cloud AWS. Παρακάτω είναι ο σχεδιασμός των φυσικών διακομιστών AWS, η ελαστική επεκτασιμότητα της βάσης δεδομένων, μια προσαρμοσμένη βάση δεδομένων Amazon και μέθοδοι για την αύξηση της απόδοσης των εικονικών μηχανών με ταυτόχρονη μείωση της τιμής τους. Η γνώση των αρχιτεκτονικών προσεγγίσεων της Amazon θα σας βοηθήσει να χρησιμοποιήσετε τις υπηρεσίες AWS πιο αποτελεσματικά και μπορεί να σας δώσει νέες ιδέες για να δημιουργήσετε τις δικές σας λύσεις.

Σχετικά με τον ομιλητή: Vasily Pantyukhin (Hen) ξεκίνησε ως διαχειριστής Unix σε εταιρείες .ru, εργάστηκε σε μεγάλο υλικό Sun Microsystem για 6 χρόνια και κήρυττε έναν κόσμο με επίκεντρο τα δεδομένα στην EMC για 11 χρόνια. Φυσικά εξελίχθηκε σε ιδιωτικά σύννεφα και το 2017 μετακόμισε στα δημόσια. Τώρα παρέχει τεχνικές συμβουλές για να βοηθήσει στη ζωή και την ανάπτυξη στο σύννεφο AWS.

Αποποίηση ευθύνης: όλα τα παρακάτω είναι προσωπική άποψη του Vasily και ενδέχεται να μην συμπίπτουν με τη θέση των Υπηρεσιών Ιστού της Amazon. Εγγραφή βίντεο Η αναφορά στην οποία βασίζεται το άρθρο είναι διαθέσιμη στο κανάλι μας στο YouTube.

Γιατί μιλάω για τη συσκευή Amazon;

Το πρώτο μου αυτοκίνητο είχε χειροκίνητο κιβώτιο ταχυτήτων. Ήταν υπέροχο λόγω της αίσθησης ότι μπορούσα να οδηγήσω το αυτοκίνητο και να έχω τον απόλυτο έλεγχο πάνω του. Μου άρεσε επίσης που καταλάβαινα τουλάχιστον κατά προσέγγιση την αρχή της λειτουργίας του. Φυσικά, φαντάστηκα τη δομή του κουτιού αρκετά πρωτόγονη - κάτι σαν κιβώτιο ταχυτήτων σε ποδήλατο.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

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

Ένα άλλο μυστήριο εμφανίστηκε στη ζωή μου, γιατί σταμάτησα εντελώς να καταλαβαίνω πώς λειτουργεί το αυτοκίνητό μου. Ένα σύγχρονο αυτοκίνητο είναι μια πολύπλοκη συσκευή. Το αυτοκίνητο προσαρμόζεται ταυτόχρονα σε δεκάδες διαφορετικές παραμέτρους: πάτημα γκαζιού, φρένο, στυλ οδήγησης, ποιότητα δρόμου. Δεν καταλαβαίνω πια πώς λειτουργεί.

Όταν άρχισα να δουλεύω στο cloud του Amazon, ήταν επίσης ένα μυστήριο για μένα. Μόνο αυτό το μυστήριο είναι μια τάξη μεγέθους μεγαλύτερο, επειδή υπάρχει ένας οδηγός στο αυτοκίνητο και στο AWS υπάρχουν εκατομμύρια από αυτούς. Όλοι οι χρήστες οδηγούν, πατούν το γκάζι και φρενάρουν ταυτόχρονα. Είναι εκπληκτικό που πάνε όπου θέλουν - είναι θαύμα για μένα! Το σύστημα προσαρμόζεται αυτόματα, κλιμακώνεται και προσαρμόζεται ελαστικά σε κάθε χρήστη έτσι ώστε να του φαίνεται ότι είναι μόνος σε αυτό το Σύμπαν.

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

Τι να συζητήσουμε

Επέλεξα μια διαφοροποιημένη προσέγγιση - επέλεξα 4 ενδιαφέρουσες υπηρεσίες για τις οποίες αξίζει να μιλήσουμε.

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

Λειτουργίες χωρίς διακομιστή (Λάμδα) είναι ίσως η πιο επεκτάσιμη υπηρεσία στο cloud.

Κλιμάκωση βάσης δεδομένων. Θα σας πω πώς χτίζουμε τις δικές μας επεκτάσιμες βάσεις δεδομένων.

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

Σημείωση. Αυτό το άρθρο θα συζητήσει τη βελτιστοποίηση διακομιστή και την κλιμάκωση της βάσης δεδομένων. Θα εξετάσουμε την κλίμακα δικτύου στο επόμενο άρθρο. Πού βρίσκονται οι λειτουργίες χωρίς διακομιστή; Μια ξεχωριστή μεταγραφή δημοσιεύτηκε γι 'αυτούς "Μικρό, αλλά έξυπνο. Μικροεικονικό Unboxing Firecracker" Μιλάει για πολλές διαφορετικές μεθόδους κλιμάκωσης και συζητά λεπτομερώς τη λύση Firecracker - μια συμβίωση των καλύτερων ιδιοτήτων μιας εικονικής μηχανής και κοντέινερ.

Διακομιστές

Το σύννεφο είναι εφήμερο. Αλλά αυτό το εφήμερο εξακολουθεί να έχει μια φυσική ενσωμάτωση - διακομιστές. Αρχικά, η αρχιτεκτονική τους ήταν κλασική. Τυπικό chipset x86, κάρτες δικτύου, Linux, Xen hypervisor στον οποίο εκτελούνταν εικονικές μηχανές.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Το 2012, αυτή η αρχιτεκτονική αντιμετώπισε αρκετά καλά τα καθήκοντά της. Το Xen είναι ένας εξαιρετικός hypervisor, αλλά έχει ένα σημαντικό μειονέκτημα. Είναι αρκετά υψηλό κόστος για εξομοίωση συσκευής. Καθώς γίνονται διαθέσιμες νέες, ταχύτερες κάρτες δικτύου ή μονάδες SSD, αυτό το γενικό κόστος γίνεται πολύ υψηλό. Πώς να αντιμετωπίσετε αυτό το πρόβλημα; Αποφασίσαμε να δουλέψουμε σε δύο μέτωπα ταυτόχρονα - βελτιστοποίηση τόσο του υλικού όσο και του hypervisor. Το έργο είναι πολύ σοβαρό.

Βελτιστοποίηση υλικού και hypervisor

Το να κάνετε τα πάντα ταυτόχρονα και να το κάνετε καλά δεν θα λειτουργήσει. Το τι ήταν το «καλό» ήταν επίσης ασαφές αρχικά.

Αποφασίσαμε να ακολουθήσουμε μια εξελικτική προσέγγιση - αλλάζουμε ένα σημαντικό στοιχείο της αρχιτεκτονικής και το ρίχνουμε στην παραγωγή.

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

Ο μετασχηματισμός ξεκίνησε το 2013 με το πιο περίπλοκο πράγμα - το δίκτυο. ΣΕ S3 Σε περιπτώσεις, μια ειδική κάρτα Network Accelerator προστέθηκε στην τυπική κάρτα δικτύου. Συνδέθηκε κυριολεκτικά με ένα κοντό καλώδιο loopback στον μπροστινό πίνακα. Δεν είναι όμορφο, αλλά δεν φαίνεται στο σύννεφο. Αλλά η άμεση αλληλεπίδραση με το υλικό βελτίωσε θεμελιωδώς το jitter και την απόδοση δικτύου.

Στη συνέχεια αποφασίσαμε να βελτιώσουμε την πρόσβαση σε μπλοκ αποθήκευσης δεδομένων EBS - Elastic Block Storage. Είναι ένας συνδυασμός δικτύου και αποθήκευσης. Η δυσκολία είναι ότι ενώ οι κάρτες Network Accelerator υπήρχαν στην αγορά, δεν υπήρχε επιλογή απλά να αγοράσετε υλικό Storage Accelerator. Έτσι, στραφήκαμε σε μια startup Εργαστήρια Annapurna, ο οποίος ανέπτυξε ειδικά τσιπ ASIC για εμάς. Επιτρέπουν την τοποθέτηση απομακρυσμένων τόμων EBS ως συσκευές NVMe.

Σε περιπτώσεις C4 λύσαμε δύο προβλήματα. Το πρώτο είναι ότι εφαρμόσαμε ένα θεμέλιο για το μέλλον της πολλά υποσχόμενης, αλλά νέας εκείνη την εποχή, τεχνολογίας NVMe. Δεύτερον, ξεφορτώσαμε σημαντικά τον κεντρικό επεξεργαστή μεταφέροντας την επεξεργασία των αιτημάτων στο EBS σε μια νέα κάρτα. Αποδείχθηκε καλά, έτσι τώρα τα Annapurna Labs είναι μέρος της Amazon.

Μέχρι τον Νοέμβριο του 2017, συνειδητοποιήσαμε ότι ήρθε η ώρα να αλλάξουμε τον ίδιο τον hypervisor.

Ο νέος hypervisor αναπτύχθηκε με βάση τροποποιημένες μονάδες πυρήνα KVM.

Κατέστησε δυνατή τη θεμελιώδη μείωση του γενικού κόστους της εξομοίωσης συσκευών και την απευθείας εργασία με νέα ASIC. Περιπτώσεις S5 ήταν οι πρώτες εικονικές μηχανές με νέο hypervisor που τρέχει κάτω από την κουκούλα. Τον ονομάσαμε Nitro.

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

Όλοι οι νέοι τύποι εικονικών μηχανών που έχουν εμφανιστεί από τον Νοέμβριο του 2017 τρέχουν σε αυτόν τον hypervisor. Τα στιγμιότυπα Bare Metal δεν έχουν hypervisor, αλλά ονομάζονται και Nitro, αφού χρησιμοποιούν εξειδικευμένες κάρτες Nitro.

Τα επόμενα δύο χρόνια, ο αριθμός των τύπων παρουσιών Nitro ξεπέρασε μερικές δωδεκάδες: A1, C5, M5, T3 και άλλα.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων
Τύποι περιπτώσεων.

Πώς λειτουργούν οι σύγχρονες μηχανές Nitro

Έχουν τρία κύρια στοιχεία: τον υπερεπόπτη Nitro (συζητήθηκε παραπάνω), το τσιπ ασφαλείας και τις κάρτες Nitro.

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

Νίτρο κάρτες - Υπάρχουν τέσσερις τύποι αυτών. Όλα έχουν αναπτυχθεί από την Annapurna Labs και βασίζονται σε κοινά ASIC. Μερικά από τα υλικολογισμικά τους είναι επίσης κοινά.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων
Τέσσερις τύποι καρτών Nitro.

Μία από τις κάρτες έχει σχεδιαστεί για να λειτουργεί δίκτυοVPC. Αυτό είναι ορατό στις εικονικές μηχανές ως κάρτα δικτύου ENA - Elastic Network Adapter. Ενσωματώνει επίσης την κυκλοφορία κατά τη μετάδοση της μέσω ενός φυσικού δικτύου (θα μιλήσουμε για αυτό στο δεύτερο μέρος του άρθρου), ελέγχει το τείχος προστασίας των ομάδων ασφαλείας και είναι υπεύθυνο για τη δρομολόγηση και άλλα πράγματα δικτύου.

Οι επιλεγμένες κάρτες λειτουργούν με μπλοκ αποθήκευσης EBS και δίσκους που είναι ενσωματωμένοι στον διακομιστή. Εμφανίζονται στην εικονική μηχανή επισκέπτη ως Προσαρμογείς NVMe. Είναι επίσης υπεύθυνοι για την κρυπτογράφηση δεδομένων και την παρακολούθηση του δίσκου.

Το σύστημα καρτών Nitro, hypervisor και τσιπ ασφαλείας είναι ενσωματωμένο σε δίκτυο SDN ή Δίκτυο που καθορίζεται από λογισμικό. Υπεύθυνος για τη διαχείριση αυτού του δικτύου (Επιφάνεια Ελέγχου) κάρτα ελεγκτή.

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων
Τσιπ Inferentia Machine Learning Processor.

Κλιμακόμενη βάση δεδομένων

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

  • SQL — οι πελάτες και οι αποστολείς αιτημάτων εργάζονται σε αυτό.
  • Προμήθειες συναλλαγές - όλα είναι ξεκάθαρα εδώ, ACID και όλα αυτά.
  • Προσωρινή αποθήκευση, το οποίο παρέχεται από buffer pools.
  • Ξύλευση — παρέχει εργασία με αρχεία καταγραφής επανάληψης. Στη MySQL ονομάζονται Bin Logs, στο PosgreSQL - Write Ahead Logs (WAL).
  • Αποθήκευση – απευθείας εγγραφή στο δίσκο.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων
Επίπεδη δομή βάσης δεδομένων.

Υπάρχουν διάφοροι τρόποι κλιμάκωσης βάσεων δεδομένων: διαμοιρασμός, αρχιτεκτονική Κοινόχρηστο τίποτα, κοινόχρηστοι δίσκοι.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Ωστόσο, όλες αυτές οι μέθοδοι διατηρούν την ίδια μονολιθική δομή βάσης δεδομένων. Αυτό περιορίζει σημαντικά την κλιμάκωση. Για να λύσουμε αυτό το πρόβλημα, αναπτύξαμε τη δική μας βάση δεδομένων − Amazon-Aurora. Είναι συμβατό με MySQL και PostgreSQL.

Amazon-Aurora

Η κύρια αρχιτεκτονική ιδέα είναι να διαχωριστούν τα επίπεδα αποθήκευσης και καταγραφής από την κύρια βάση δεδομένων.

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

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

Ένα παραδοσιακό DBMS εγγράφει δεδομένα σε ένα σύστημα αποθήκευσης με τη μορφή μπλοκ. Στο Amazon Aurora, δημιουργήσαμε έξυπνο αποθηκευτικό χώρο που μπορεί να μιλήσει γλώσσα επανάληψη καταγραφής. Στο εσωτερικό, η αποθήκευση μετατρέπει τα αρχεία καταγραφής σε μπλοκ δεδομένων, παρακολουθεί την ακεραιότητά τους και δημιουργεί αυτόματα αντίγραφα ασφαλείας.

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

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

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

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Τακτοποιήσαμε την αποθήκευση.

Πώς να κλιμακώσετε τα επίπεδα DBMS

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

Ας υποθέσουμε ότι έχουμε μια εφαρμογή που επικοινωνεί με το DBMS μέσω ενός κύριου κόμβου.

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Στη συνέχεια, αλλάζουμε την εφαρμογή από τον παλιό κύριο κόμβο στον νέο. Προκύπτουν προβλήματα.

  • Αυτό θα απαιτήσει σημαντικό χρόνο διακοπής της εφαρμογής.
  • Ο νέος κύριος κόμβος θα έχει ψυχρή κρυφή μνήμη. Η απόδοση της βάσης δεδομένων θα είναι μέγιστη μόνο μετά την προθέρμανση της προσωρινής μνήμης.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Πώς να βελτιώσετε την κατάσταση; Ρυθμίστε έναν διακομιστή μεσολάβησης μεταξύ της εφαρμογής και του κύριου κόμβου.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Τι θα μας δώσει αυτό; Τώρα όλες οι εφαρμογές δεν χρειάζεται να ανακατευθύνονται χειροκίνητα στον νέο κόμβο. Ο διακόπτης μπορεί να γίνει με διακομιστή μεσολάβησης και είναι ουσιαστικά ταχύτερος.

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

Τελική λύση με το Amazon Aurora χωρίς διακομιστή

Πώς λύσαμε αυτά τα προβλήματα;

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

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

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

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

Ένας κόμβος με την απαιτούμενη ισχύ είναι διαθέσιμος. Τα buffer pools αντιγράφονται σε αυτό και το σύστημα αρχίζει να περιμένει μια ασφαλή στιγμή για να αλλάξει.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Εργασία με τα βιογραφικά της βάσης δεδομένων.

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

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

Πώς η AWS μαγειρεύει τις ελαστικές υπηρεσίες της. Κλιμάκωση διακομιστών και βάσης δεδομένων

Παρεμπιπτόντως, το Amazon Aurora σάς επιτρέπει να εξοικονομήσετε χρήματα και να απενεργοποιήσετε τη βάση δεδομένων όταν δεν χρησιμοποιείται, για παράδειγμα, τα Σαββατοκύριακα. Μετά τη διακοπή του φορτίου, το DB μειώνει σταδιακά την ισχύ του και σβήνει για κάποιο χρονικό διάστημα. Όταν το φορτίο επιστρέψει, θα ανέβει ξανά ομαλά.

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

Επί HighLoad++ Ο Vasily Pantyukhin θα δώσει μια έκθεση "Χιούστον, έχουμε πρόβλημα. Σχεδιασμός συστημάτων για αποτυχία, μοτίβα ανάπτυξης για εσωτερικές υπηρεσίες cloud της Amazon" Ποια μοτίβα σχεδίασης για κατανεμημένα συστήματα χρησιμοποιούνται από τους προγραμματιστές της Amazon, ποιοι είναι οι λόγοι για τις αποτυχίες της υπηρεσίας, τι είναι η αρχιτεκτονική που βασίζεται σε κυψέλες, η συνεχής εργασία, η τυχαία μερίδα - θα είναι ενδιαφέρον. Λιγότερο από ένα μήνα μέχρι το συνέδριο - κλείστε τα εισιτήριά σας. 24 Οκτωβρίου τελική αύξηση τιμής.

Πηγή: www.habr.com

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