Αυτό είναι ένα guest post που γράφτηκε από κοινού με τον Raghu Boppanna από το Vanguard.
At Εμπροσθοφυλακή, η επιχειρηματική γραμμή Enterprise Advice βελτιώνει τα αποτελέσματα των επενδυτών μέσω της ψηφιακής πρόσβασης σε ανώτερες, εξατομικευμένες και προσιτές οικονομικές συμβουλές. Το κατέστησαν δυνατό, εν μέρει, οδηγώντας οικονομίες κλίμακας σε όλο τον κόσμο για επενδυτές με μια εξαιρετικά ανθεκτική και αποτελεσματική τεχνική πλατφόρμα. Η Vanguard επέλεξε μια αρχιτεκτονική πολλών περιοχών για αυτόν τον φόρτο εργασίας για να βοηθήσει στην προστασία από βλάβες των περιφερειακών υπηρεσιών. Για λόγους υψηλής διαθεσιμότητας, υπάρχει ανάγκη να διατεθούν τα δεδομένα που χρησιμοποιούνται από τον φόρτο εργασίας όχι μόνο στην κύρια περιοχή, αλλά και στη δευτερεύουσα περιοχή με ελάχιστη καθυστέρηση αναπαραγωγής. Σε περίπτωση βλάβης της υπηρεσίας στην κύρια περιοχή, η λύση θα πρέπει να μπορεί να αποτύχει στη δευτερεύουσα περιοχή με όσο το δυνατόν λιγότερη απώλεια δεδομένων και τη δυνατότητα συνέχισης της απορρόφησης δεδομένων.
Το Vanguard Cloud Technology Office και η AWS συνεργάστηκαν για να δημιουργήσουν μια λύση υποδομής στο AWS που πληρούσε τις απαιτήσεις ανθεκτικότητας τους. Η λύση πολλαπλών περιοχών επιτρέπει έναν ισχυρό μηχανισμό αστοχίας, με ενσωματωμένη παρατηρησιμότητα και ανάκτηση. Η λύση υποστηρίζει επίσης ροή δεδομένων από πολλαπλές πηγές σε διαφορετικές ροές δεδομένων Kinesis. Επί του παρόντος, η λύση επεκτείνεται στις διάφορες γραμμές επιχειρηματικών ομάδων για τη βελτίωση της ανθεκτικότητας του φόρτου εργασίας τους.
Η περίπτωση χρήσης που συζητείται εδώ απαιτεί Change Data Capture (CDC) για ροή δεδομένων από μια απομακρυσμένη πηγή δεδομένων (mainframe DB2) σε Ροές δεδομένων Amazon Kinesis, γιατί από αυτά τα δεδομένα εξαρτάται η επιχειρηματική ικανότητα. Το Kinesis Data Streams είναι μια πλήρως διαχειριζόμενη, μαζικά επεκτάσιμη, ανθεκτική και χαμηλού κόστους υπηρεσία ροής που μπορεί να συλλαμβάνει και να μεταδίδει συνεχώς μεγάλες ποσότητες δεδομένων από πολλαπλές πηγές και καθιστά τα δεδομένα διαθέσιμα για κατανάλωση μέσα σε χιλιοστά του δευτερολέπτου. Η υπηρεσία έχει κατασκευαστεί για να είναι εξαιρετικά ανθεκτική και χρησιμοποιεί πολλαπλές Ζώνες Διαθεσιμότητας για την επεξεργασία και την αποθήκευση δεδομένων.
Η λύση που συζητείται σε αυτήν την ανάρτηση εξηγεί πώς η AWS και η Vanguard καινοτόμησαν για να δημιουργήσουν μια ανθεκτική αρχιτεκτονική για την επίτευξη των στόχων τους για υψηλή διαθεσιμότητα.
Επισκόπηση λύσεων
Η λύση χρησιμοποιεί AWS Lambda για την αναπαραγωγή δεδομένων από ροές δεδομένων Kinesis στην κύρια περιοχή σε μια δευτερεύουσα περιοχή. Σε περίπτωση οποιασδήποτε απομείωσης της υπηρεσίας που επηρεάζει τον αγωγό CDC, η διαδικασία ανακατεύθυνσης προωθεί τη δευτερεύουσα περιοχή σε πρωτογενή για τους παραγωγούς και τους καταναλωτές. Χρησιμοποιούμε Παγκόσμιοι πίνακες Amazon DynamoDB για σημεία ελέγχου αναπαραγωγής που επιτρέπει την επανέναρξη της ροής δεδομένων από το σημείο ελέγχου και διατηρεί επίσης μια κύρια σημαία διαμόρφωσης περιοχής που αποτρέπει έναν άπειρο βρόχο αναπαραγωγής των ίδιων δεδομένων εμπρός και πίσω.
Η λύση παρέχει επίσης την ευελιξία στους καταναλωτές του Kinesis Data Streams να χρησιμοποιούν την κύρια ή οποιαδήποτε δευτερεύουσα περιοχή στον ίδιο λογαριασμό AWS.
Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική αναφοράς.
Ας δούμε αναλυτικά κάθε στοιχείο:
- Επεξεργαστής CDC (παραγωγός) – Σε αυτήν την αρχιτεκτονική αναφοράς, ο παραγωγός αναπτύσσεται Amazon Elastic Compute Cloud (Amazon EC2) τόσο στην κύρια όσο και στη δευτερεύουσα περιοχή και είναι ενεργό στην κύρια περιοχή και σε κατάσταση αναμονής στη δευτερεύουσα περιοχή. Καταγράφει δεδομένα CDC από την εξωτερική πηγή δεδομένων (όπως μια βάση δεδομένων DB2 όπως φαίνεται στην παραπάνω αρχιτεκτονική) και μεταδίδεται σε ροές δεδομένων Kinesis στην κύρια περιοχή. Το Vanguard χρησιμοποιεί ένα 3rd εργαλείο πάρτι Qlik Replicate ως επεξεργαστή CDC. Παράγει ένα καλά διαμορφωμένο ωφέλιμο φορτίο, συμπεριλαμβανομένης της χρονικής σφραγίδας δέσμευσης DB2 στη ροή δεδομένων Kinesis, επιπλέον των πραγματικών δεδομένων σειρών από την απομακρυσμένη πηγή δεδομένων. (
example-stream-1
σε αυτό το παράδειγμα). Ο παρακάτω κώδικας είναι ένα δείγμα ωφέλιμου φορτίου που περιέχει μόνο το πρωτεύον κλειδί της εγγραφής που άλλαξε και τη χρονική σήμανση δέσμευσης (για λόγους απλότητας, τα υπόλοιπα δεδομένα της σειράς του πίνακα δεν εμφανίζονται παρακάτω):{ "eventSource": "aws:kinesis", "kinesis": { "ApproximateArrivalTimestamp": "Mon July 18 20:00:00 UTC 2022", "SequenceNumber": "49544985256907370027570885864065577703022652638596431874", "PartitionKey": "12349999", "KinesisSchemaVersion": "1.0", "Data": "eyJLZXkiOiAxMjM0OTk5OSwiQ29tbWl0VGltZXN0YW1wIjogIjIwMjItMDctMThUMjA6MDA6MDAifQ==" }, "eventId": "shardId-000000000000:49629136582982516722891309362785181370337771525377097730", "invokeIdentityArn": "arn:aws:iam::6243876582:role/kds-crr-LambdaRole-1GZWP67437SD", "eventName": "aws:kinesis:record", "eventVersion": "1.0", "eventSourceARN": "arn:aws:kinesis:us-east-1:6243876582:stream/kds-stream-1/consumer/kds-crr:6243876582", "awsRegion": "us-east-1" }
Η αποκωδικοποιημένη τιμή Base64 του
Data
είναι όπως ακολουθεί. Η πραγματική εγγραφή Kinesis θα περιέχει όλα τα δεδομένα σειράς της σειράς του πίνακα που άλλαξαν, εκτός από το πρωτεύον κλειδί και τη χρονική σήμανση δέσμευσης.{"Key": 12349999,"CommitTimestamp": "2022-07-18T20:00:00"}
Η
CommitTimestamp
στοData
Το πεδίο χρησιμοποιείται στο σημείο ελέγχου αναπαραγωγής και είναι κρίσιμο για την ακριβή παρακολούθηση του αριθμού των δεδομένων ροής που έχουν αντιγραφεί στη δευτερεύουσα περιοχή. Το σημείο ελέγχου μπορεί στη συνέχεια να χρησιμοποιηθεί για τη διευκόλυνση ενός failover του επεξεργαστή CDC (παραγωγού) και για να συνεχίσει με ακρίβεια την παραγωγή δεδομένων από τη χρονική σήμανση του σημείου ελέγχου αναπαραγωγής και μετά.Η εναλλακτική λύση στη χρήση μιας απομακρυσμένης πηγής δεδομένων
CommitTimestamp
(εάν δεν είναι διαθέσιμο) είναι να χρησιμοποιήσετε τοApproximateArrivalTimestamp
(που είναι η χρονική σήμανση όταν η εγγραφή γράφεται πραγματικά στη ροή δεδομένων). - Συνάρτηση λάμδα αντιγραφής διαπεριοχής – Η λειτουργία αναπτύσσεται τόσο σε πρωτεύουσες όσο και σε δευτερεύουσες περιοχές. Έχει ρυθμιστεί με μια αντιστοίχιση πηγής συμβάντος στη ροή δεδομένων που περιέχει δεδομένα CDC. Η ίδια λειτουργία μπορεί να χρησιμοποιηθεί για την αναπαραγωγή δεδομένων πολλαπλών ροών. Καλείται με μια παρτίδα εγγραφών από το Kinesis Data Streams και αναπαράγει την παρτίδα σε μια περιοχή αντιγραφής στόχου (η οποία παρέχεται μέσω του περιβάλλοντος διαμόρφωσης Lambda). Για λόγους κόστους, εάν τα δεδομένα CDC παράγονται ενεργά μόνο στην κύρια περιοχή, η δεσμευμένη συγχρονισμός της συνάρτησης στη δευτερεύουσα περιοχή μπορεί να μηδενιστεί και να τροποποιηθεί κατά τη διάρκεια περιφερειακής ανακατεύθυνσης. Η λειτουργία έχει Διαχείριση ταυτότητας και πρόσβασης AWS Άδειες ρόλου (IAM) για να κάνετε τα εξής:
- Διαβάστε και γράψτε στους καθολικούς πίνακες DynamoDB που χρησιμοποιούνται σε αυτήν τη λύση, στον ίδιο λογαριασμό.
- Διαβάστε και γράψτε στο Kinesis Data Streams και στις δύο Περιφέρειες στον ίδιο λογαριασμό.
- Δημοσίευση προσαρμοσμένων μετρήσεων σε amazoncloudwatch και στις δύο Περιφέρειες στον ίδιο λογαριασμό.
- Σημείο ελέγχου αναπαραγωγής – Το σημείο ελέγχου αναπαραγωγής χρησιμοποιεί τον καθολικό πίνακα DynamoDB τόσο στην κύρια όσο και στη δευτερεύουσα περιοχή. Χρησιμοποιείται από τη συνάρτηση Lambda αναπαραγωγής μεταξύ περιοχών για να διατηρείται η χρονική σήμανση δέσμευσης της τελευταίας εγγραφής αναπαραγωγής ως σημείο ελέγχου αναπαραγωγής για κάθε ροή που έχει διαμορφωθεί για αναπαραγωγή. Για αυτήν την ανάρτηση, δημιουργούμε και χρησιμοποιούμε έναν καθολικό πίνακα που ονομάζεται
kdsReplicationCheckpoint
. - Διαμόρφωση Ενεργής Περιοχής – Η ενεργή περιοχή χρησιμοποιεί τον καθολικό πίνακα DynamoDB τόσο σε κύριες όσο και σε δευτερεύουσες περιοχές. Χρησιμοποιεί την εγγενή δυνατότητα αναπαραγωγής μεταξύ των περιοχών του καθολικού πίνακα για την αναπαραγωγή της διαμόρφωσης. Είναι προσυμπληρωμένο με δεδομένα σχετικά με το ποια είναι η κύρια περιοχή για μια ροή, για να αποτραπεί η αναπαραγωγή πίσω στην κύρια περιοχή από τη συνάρτηση Lambda στην περιοχή αναμονής. Αυτή η διαμόρφωση ενδέχεται να μην απαιτείται εάν η συνάρτηση Lambda στην περιοχή αναμονής έχει δεσμευμένη ταυτόχρονη ρύθμιση μηδενική, αλλά μπορεί να χρησιμεύσει ως έλεγχος ασφαλείας για την αποφυγή άπειρου βρόχου αναπαραγωγής των δεδομένων. Για αυτήν την ανάρτηση, δημιουργούμε έναν καθολικό πίνακα που ονομάζεται
kdsActiveRegionConfig
και βάλτε ένα στοιχείο με τα ακόλουθα δεδομένα:{ "stream-name": "example-stream-1", "active-region" : "us-east-1" }
- Ροές δεδομένων Kinesis – Η ροή στην οποία ο επεξεργαστής CDC παράγει τα δεδομένα. Για αυτήν την ανάρτηση, χρησιμοποιούμε μια ροή που ονομάζεται
example-stream-1
και στις δύο Περιφέρειες, με τις ίδιες πολιτικές διαμόρφωσης θραυσμάτων και πρόσβασης.
Ακολουθία βημάτων στην αντιγραφή μεταξύ περιοχών
Ας δούμε εν συντομία πώς ασκείται η αρχιτεκτονική χρησιμοποιώντας το παρακάτω διάγραμμα ακολουθίας.
Η ακολουθία αποτελείται από τα ακόλουθα βήματα:
- Ο επεξεργαστής CDC (σε
us-east-1
) διαβάζει τα δεδομένα CDC από την απομακρυσμένη πηγή δεδομένων. - Ο επεξεργαστής CDC (σε
us-east-1
) μεταδίδει τα δεδομένα CDC σε ροές δεδομένων Kinesis (σεus-east-1
). - Η συνάρτηση Lambda αντιγραφής πολλαπλών περιοχών (σε us-east-1) καταναλώνει τα δεδομένα από τη ροή δεδομένων (σε
us-east-1
). Το βελτιωμένο μοτίβο ανεμιστήρα συνιστάται για αποκλειστική και αυξημένη απόδοση για αναπαραγωγή μεταξύ περιοχών. - Η συνάρτηση αντιγραφέα λάμδα (σε
us-east-1
) επικυρώνει την τρέχουσα περιοχή της με τη διαμόρφωση ενεργής περιοχής για τη ροή που καταναλώνεται, με τη βοήθεια τουkdsActiveRegionConfig
Καθολικός πίνακας DynamoDBΤο ακόλουθο δείγμα κώδικα (σε Java) μπορεί να βοηθήσει στην απεικόνιση της συνθήκης που αξιολογείται:// Fetch the current AWS Region from the Lambda function’s environment String currentAWSRegion = System.getenv(“AWS_REGION”); // Read the stream name from the first Kinesis Record once for the entire batch being processed. This is done because we are reusing the same Lambda function for replicating multiple streams. String currentStreamNameConsumed = kinesisRecord.getEventSourceARN().split(“:”)[5].split(“/”)[1]; // Build the DynamoDB query condition using the stream name Map<String, Condition> keyConditions = singletonMap(“streamName”, Condition.builder().comparisonOperator(EQ).attributeValueList(AttributeValue.builder().s(currentStreamNameConsumed).build()).build()); // Query the DynamoDB Global Table QueryResponse queryResponse = ddbClient.query(QueryRequest.builder().tableName("kdsActiveRegionConfig").keyConditions(keyConditions).attributesToGet(“ActiveRegion”).build());
- Η συνάρτηση αξιολογεί την απόκριση από το DynamoDB με τον ακόλουθο κώδικα:
// Evaluate the response if (queryResponse.hasItems()) { AttributeValue activeRegionForStream = queryResponse.items().get(0).get(“ActiveRegion”); return currentAWSRegion.equalsIgnoreCase(activeRegionForStream.s()); }
- Ανάλογα με την απόκριση, η συνάρτηση εκτελεί τις ακόλουθες ενέργειες:
- Αν η απάντηση είναι
true
, η συνάρτηση αντιγραφέα παράγει τις εγγραφές στο Kinesis Data Streams μέσαus-east-2
με διαδοχικό τρόπο.- Εάν υπάρχει αποτυχία, παρακολουθείται ο αριθμός σειράς της εγγραφής και η επανάληψη διακόπτεται. Η συνάρτηση επιστρέφει τη λίστα των αποτυχημένων αριθμών ακολουθίας. Επιστρέφοντας τον αποτυχημένο αριθμό ακολουθίας, η λύση χρησιμοποιεί τη δυνατότητα του Σημείο ελέγχου λάμδα για να μπορέσετε να συνεχίσετε την επεξεργασία μιας παρτίδας εγγραφών με μερικές αποτυχίες. Αυτό είναι χρήσιμο κατά τον χειρισμό τυχόν προβλημάτων υπηρεσίας, όπου η συνάρτηση προσπαθεί να αναπαράγει τα δεδομένα σε όλες τις Περιφέρειες για να διασφαλίσει την ισοτιμία ροής και καμία απώλεια δεδομένων.
- Εάν δεν υπάρχουν αποτυχίες, επιστρέφεται μια κενή λίστα, η οποία υποδεικνύει ότι η παρτίδα ήταν επιτυχής.
- Αν η απάντηση είναι
false
, η συνάρτηση αντιγραφέα επιστρέφει χωρίς να πραγματοποιήσει καμία αναπαραγωγή. Για να μειώσετε το κόστος των κλήσεων λάμδα, μπορείτε να ορίσετε τη δεσμευμένη ταυτόχρονη λειτουργία της συνάρτησης στην περιοχή DR (us-east-2
) στο μηδέν. Αυτό θα αποτρέψει την κλήση της συνάρτησης. Όταν κάνετε failover, μπορείτε να ενημερώσετε αυτήν την τιμή σε έναν κατάλληλο αριθμό βάσει της απόδοσης CDC και να ορίσετε τη δεσμευμένη ταυτόχρονη λειτουργία της συνάρτησης στοus-east-1
στο μηδέν για να μην εκτελεστεί άσκοπα.
- Αν η απάντηση είναι
- Μετά την παραγωγή όλων των εγγραφών στο Kinesis Data Streams
us-east-2
, τα σημεία ελέγχου της λειτουργίας αντιγραφέα προς τοkdsReplicationCheckpoint
Παγκόσμιος πίνακας DynamoDB (σεus-east-1
) με τα ακόλουθα στοιχεία:{ "streamName": "example-stream-1", "lastReplicatedTimestamp": "2022-07-18T20:00:00" }
- Η συνάρτηση επιστρέφει μετά την επιτυχή επεξεργασία της παρτίδας εγγραφών.
Σκέψεις απόδοσης
Οι προσδοκίες απόδοσης της λύσης θα πρέπει να γίνονται κατανοητές σε σχέση με τους ακόλουθους παράγοντες:
- Επιλογή περιοχής – Η καθυστέρηση αναπαραγωγής είναι ευθέως ανάλογη με την απόσταση που διανύουν τα δεδομένα, επομένως κατανοήστε την επιλογή Περιοχής σας
- Ταχύτητα – Η εισερχόμενη ταχύτητα των δεδομένων ή ο όγκος των δεδομένων που αναπαράγονται
- Μέγεθος ωφέλιμου φορτίου – Το μέγεθος του ωφέλιμου φορτίου που αναπαράγεται
Παρακολούθηση της αναπαραγωγής μεταξύ περιοχών
Συνιστάται να παρακολουθείτε και να παρατηρείτε την αναπαραγωγή καθώς συμβαίνει. Μπορείτε να προσαρμόσετε τη συνάρτηση Lambda ώστε να δημοσιεύει προσαρμοσμένες μετρήσεις στο CloudWatch με τις ακόλουθες μετρήσεις στο τέλος κάθε επίκλησης. Η δημοσίευση αυτών των μετρήσεων τόσο στην κύρια όσο και στη δευτερεύουσα περιοχή συμβάλλει στην προστασία του εαυτού σας από βλάβες που επηρεάζουν την παρατηρησιμότητα στην κύρια περιοχή.
- Διακίνηση – Το τρέχον μέγεθος παρτίδας επίκλησης Λάμδα
- ReplicationLagSeconds – Η διαφορά μεταξύ της τρέχουσας χρονικής σφραγίδας (μετά την επεξεργασία όλων των εγγραφών) και της
ApproximateArrivalTimestamp
του τελευταίου δίσκου που επαναλήφθηκε
Το παρακάτω παράδειγμα μετρικό γράφημα CloudWatch δείχνει ότι η μέση καθυστέρηση αναπαραγωγής ήταν 2 δευτερόλεπτα με απόδοση 100 εγγραφών που αναπαράγονται από us-east-1
προς την us-east-2
.
Κοινή στρατηγική failover
Κατά τη διάρκεια οποιωνδήποτε βλαβών που επηρεάζουν τον αγωγό CDC στην κύρια Περιφέρεια, η επιχειρησιακή συνέχεια ή οι ανάγκες ανάκαμψης από καταστροφές μπορεί να υπαγορεύσουν μια αστοχία αγωγού στη δευτερεύουσα (αναμονή) Περιοχή. Αυτό σημαίνει ότι πρέπει να γίνουν μερικά πράγματα ως μέρος αυτής της διαδικασίας ανακατεύθυνσης:
- Εάν είναι δυνατόν, διακόψτε όλες τις εργασίες CDC στο εργαλείο επεξεργαστή CDC
us-east-1
. - Ο επεξεργαστής CDC πρέπει να αποτύχει στη δευτερεύουσα περιοχή, έτσι ώστε να μπορεί να διαβάσει τα δεδομένα CDC από την απομακρυσμένη πηγή δεδομένων ενώ λειτουργεί εκτός της περιοχής αναμονής.
- Η
kdsActiveRegionConfig
Ο καθολικός πίνακας DynamoDB πρέπει να ενημερωθεί. Για παράδειγμα, για το ρεύμαexample-stream-1
που χρησιμοποιείται στο παράδειγμά μας, η ενεργή περιοχή αλλάζει σεus-east-2
:
{ "stream-name": "example-stream-1", "active-Region" : "us-east-2"
}
- Όλα τα σημεία ελέγχου ροής πρέπει να διαβάζονται από το
kdsReplicationCheckpoint
Παγκόσμιος πίνακας DynamoDB (σεus-east-2
), και οι χρονικές σημάνσεις από κάθε ένα από τα σημεία ελέγχου χρησιμοποιούνται για την έναρξη των εργασιών CDC στο εργαλείο παραγωγής στοus-east-2
Περιοχή. Αυτό ελαχιστοποιεί τις πιθανότητες απώλειας δεδομένων και συνεχίζει με ακρίβεια τη ροή των δεδομένων CDC από την απομακρυσμένη πηγή δεδομένων από τη χρονική σήμανση του σημείου ελέγχου και μετά. - Εάν χρησιμοποιείτε δεσμευμένη συγχρονισμό για τον έλεγχο των κλήσεων λάμδα, ορίστε την τιμή στο μηδέν στην κύρια περιοχή(
us-east-1
) και σε μια κατάλληλη μη μηδενική τιμή στη δευτερεύουσα περιοχή(us-east-2
).
Στρατηγική αποτυχίας πολλαπλών βημάτων της Vanguard
Ορισμένα από τα εργαλεία τρίτων που χρησιμοποιεί η Vanguard έχουν μια διαδικασία CDC δύο βημάτων ροής δεδομένων από μια απομακρυσμένη πηγή δεδομένων σε έναν προορισμό. Το εργαλείο επιλογής της Vanguard για τον επεξεργαστή CDC ακολουθεί αυτήν την προσέγγιση δύο βημάτων:
- Το πρώτο βήμα περιλαμβάνει τη ρύθμιση μιας εργασίας ροής καταγραφής που διαβάζει τα δεδομένα από την απομακρυσμένη πηγή δεδομένων και παραμένει σε μια θέση σταδιοποίησης.
- Το δεύτερο βήμα περιλαμβάνει τη ρύθμιση μεμονωμένων εργασιών καταναλωτή που διαβάζουν δεδομένα από τη θέση τοποθέτησης — η οποία θα μπορούσε να είναι ενεργοποιημένη Σύστημα αρχείων ελαστικού Amazon (Amazon EFS) ή Amazon FSx, για παράδειγμα—και μεταδώστε το στον προορισμό. Η ευελιξία εδώ είναι ότι καθεμία από αυτές τις εργασίες καταναλωτή μπορεί να ενεργοποιηθεί για ροή από διαφορετικές χρονικές σημάνσεις δέσμευσης. Η εργασία ροής καταγραφής συνήθως ξεκινά την ανάγνωση δεδομένων από το ελάχιστο όλων των χρονικών σημάνσεων δέσμευσης που χρησιμοποιούνται από τις εργασίες καταναλωτή.
Ας δούμε ένα παράδειγμα για να εξηγήσουμε το σενάριο:
- Η εργασία Α καταναλωτή μεταδίδει δεδομένα από μια χρονική σήμανση δέσμευσης 2022-07-19T20:00:00 και μετά σε
example-stream-1
. - Η εργασία Β καταναλωτή μεταδίδει δεδομένα από μια χρονική σήμανση δέσμευσης 2022-07-19T21:00:00 και μετά σε
example-stream-2
. - Σε αυτήν την περίπτωση, η ροή καταγραφής θα πρέπει να διαβάζει δεδομένα από την απομακρυσμένη πηγή δεδομένων από τις ελάχιστες χρονικές σημάνσεις που χρησιμοποιούνται από τις εργασίες καταναλωτή, το οποίο είναι 2022-07-19T20:00:00.
Το ακόλουθο διάγραμμα ακολουθίας δείχνει τα ακριβή βήματα που πρέπει να εκτελεστούν κατά τη διάρκεια μιας ανακατεύθυνσης us-east-2
(την περιοχή αναμονής).
Τα βήματα είναι τα εξής:
- Η διαδικασία ανακατεύθυνσης ενεργοποιείται στην περιοχή αναμονής (
us-east-2
σε αυτό το παράδειγμα) όταν απαιτείται. Λάβετε υπόψη ότι η σκανδάλη μπορεί να αυτοματοποιηθεί χρησιμοποιώντας ολοκληρωμένους ελέγχους υγείας του αγωγού στην κύρια Περιφέρεια. - Η διαδικασία ανακατεύθυνσης ενημερώνει τον καθολικό πίνακα kdsActiveRegionConfig DynamoDB με τη νέα τιμή για την περιοχή ως
us-east-2
για όλα τα ονόματα ροών. - Το επόμενο βήμα είναι να λάβετε όλα τα σημεία ελέγχου ροής από το
kdsReplicationCheckpoint
Παγκόσμιος πίνακας DynamoDB (σεus-east-2
). - Μετά την ανάγνωση των πληροφοριών του σημείου ελέγχου, η διαδικασία ανακατεύθυνσης βρίσκει το ελάχιστο από όλα
lastReplicatedTimestamp
. - Η εργασία ροής καταγραφής στο εργαλείο επεξεργαστή CDC ξεκινά
us-east-2
με τη χρονική σήμανση που βρίσκεται στο Βήμα 4. Ξεκινά την ανάγνωση δεδομένων CDC από την απομακρυσμένη πηγή δεδομένων από αυτήν τη χρονική σήμανση και μετά και τα διατηρεί στη θέση σταδιοποίησης στο AWS. - Το επόμενο βήμα είναι να ξεκινήσετε όλες τις εργασίες των καταναλωτών για την ανάγνωση δεδομένων από τη θέση σταδιοποίησης και τη ροή στη ροή δεδομένων προορισμού. Αυτό είναι όπου κάθε εργασία καταναλωτή παρέχεται με την κατάλληλη χρονική σήμανση από το
kdsReplicationCheckpoint
πίνακα σύμφωνα με τοstreamName
στο οποίο η εργασία μεταφέρει τα δεδομένα.
Αφού ξεκινήσουν όλες οι εργασίες καταναλωτή, παράγονται δεδομένα στις ροές δεδομένων Kinesis στο us-east-2. Από εκεί και πέρα, η διαδικασία αντιγραφής μεταξύ των περιοχών είναι η ίδια με αυτή που περιγράφηκε προηγουμένως – η συνάρτηση αντιγραφής λάμδα στο us-east-2
ξεκινά την αναπαραγωγή δεδομένων στη ροή δεδομένων us-east-1
.
Οι εφαρμογές των καταναλωτών που διαβάζουν δεδομένα από τις ροές αναμένεται να είναι ανίκανες για να μπορούν να χειρίζονται διπλότυπα. Διπλότυπα μπορούν να εισαχθούν στη ροή για πολλούς λόγους, μερικοί από τους οποίους αναφέρονται παρακάτω.
- Ο παραγωγός ή ο επεξεργαστής CDC εισάγει διπλότυπα στη ροή κατά την επανάληψη της αναπαραγωγής των δεδομένων CDC κατά τη διάρκεια μιας ανακατεύθυνσης
- Ο Παγκόσμιος Πίνακας DynamoDB χρησιμοποιεί ασύγχρονη αναπαραγωγή δεδομένων σε όλες τις Περιφέρειες και εάν το
kdsReplicationCheckpoint
Τα δεδομένα πίνακα έχουν καθυστέρηση αναπαραγωγής, η διαδικασία ανακατεύθυνσης ενδέχεται να χρησιμοποιεί μια παλαιότερη χρονική σήμανση σημείου ελέγχου για την επανάληψη της αναπαραγωγής των δεδομένων CDC.
Επίσης, οι εφαρμογές των καταναλωτών θα πρέπει να ελέγχουν τη σήμανση CommitTimestamp της τελευταίας εγγραφής που καταναλώθηκε. Αυτό γίνεται για να διευκολυνθεί η καλύτερη παρακολούθηση και ανάκτηση.
Διαδρομή προς την ωριμότητα: Αυτοματοποιημένη ανάκτηση
Η ιδανική κατάσταση είναι η πλήρης αυτοματοποίηση της διαδικασίας ανακατεύθυνσης, μειώνοντας τον χρόνο ανάκτησης και την επίτευξη του στόχου επιπέδου υπηρεσίας ανθεκτικότητας (SLO). Ωστόσο, στους περισσότερους οργανισμούς, η απόφαση για αποτυχία, αποτυχία και ενεργοποίηση της αποτυχίας απαιτεί χειροκίνητη παρέμβαση για την αξιολόγηση της κατάστασης και τη λήψη απόφασης για το αποτέλεσμα. Η δημιουργία scripted αυτοματισμού για την εκτέλεση του failover που μπορεί να εκτελεστεί από έναν άνθρωπο είναι ένα καλό μέρος για να ξεκινήσετε.
Το Vanguard έχει αυτοματοποιήσει όλα τα βήματα του failover, αλλά εξακολουθεί να έχει τους ανθρώπους να αποφασίζουν πότε θα το επικαλεστούν. Μπορείτε να προσαρμόσετε τη λύση ώστε να καλύπτει τις ανάγκες σας και ανάλογα με το εργαλείο επεξεργαστή CDC που χρησιμοποιείτε στο περιβάλλον σας.
Συμπέρασμα
Σε αυτήν την ανάρτηση, περιγράψαμε πώς η Vanguard καινοτόμησε και κατασκεύασε μια λύση για την αναπαραγωγή δεδομένων σε όλες τις Περιφέρειες στις ροές δεδομένων Kinesis για να κάνει τα δεδομένα εξαιρετικά διαθέσιμα. Επιδείξαμε επίσης μια ισχυρή στρατηγική σημείου ελέγχου για τη διευκόλυνση της περιφερειακής αποτυχίας της διαδικασίας αναπαραγωγής όταν χρειάζεται. Η λύση επεξηγεί επίσης τον τρόπο χρήσης καθολικών πινάκων DynamoDB για την παρακολούθηση των σημείων ελέγχου αναπαραγωγής και της διαμόρφωσης. Με αυτήν την αρχιτεκτονική, η Vanguard μπόρεσε να αναπτύξει φόρτους εργασίας ανάλογα με τα δεδομένα του CDC σε πολλές Περιφέρειες για να καλύψει τις επιχειρηματικές ανάγκες υψηλής διαθεσιμότητας ενόψει των βλαβών υπηρεσιών που επηρεάζουν τους αγωγούς CDC στην κύρια Περιφέρεια.
Εάν έχετε οποιοδήποτε σχόλιο, αφήστε ένα σχόλιο στην παρακάτω ενότητα σχολίων.
Σχετικά με τους συγγραφείς
Raghu Boppanna εργάζεται ως Enterprise Architect στο Chief Technology Office της Vanguard. Η Raghu ειδικεύεται στην ανάλυση δεδομένων, τη μετεγκατάσταση/ανατύπωση δεδομένων, συμπεριλαμβανομένων των αγωγών CDC, της αποκατάστασης καταστροφών και των βάσεων δεδομένων. Έχει κερδίσει πολλές πιστοποιήσεις AWS, συμπεριλαμβανομένων των AWS Certified Security – Specialty & AWS Certified Data Analytics – Specialty.
Parameswaran V Vaidyanathan είναι Ανώτερος αρχιτέκτονας Cloud Resilience με τις Υπηρεσίες Ιστού της Amazon. Βοηθά τις μεγάλες επιχειρήσεις να επιτύχουν τους επιχειρηματικούς στόχους αρχιτεκτονώντας και δημιουργώντας επεκτάσιμες και ανθεκτικές λύσεις στο AWS Cloud.
Ρίτσα Κάουλ είναι Senior Leader στις Λύσεις Πελατών που εξυπηρετεί πελάτες Χρηματοοικονομικών Υπηρεσιών. Έχει έδρα εκτός Νέας Υόρκης. Έχει εκτενή εμπειρία σε μεγάλης κλίμακας μετασχηματισμό cloud, αριστεία εργαζομένων και ψηφιακές λύσεις επόμενης γενιάς. Αυτή και η ομάδα της επικεντρώνονται στη βελτιστοποίηση της αξίας του cloud δημιουργώντας αποδοτικές, ανθεκτικές και ευέλικτες λύσεις. Ο Richa απολαμβάνει πολλά αθλήματα όπως τρίαθλο, μουσική και μαθαίνει για τις νέες τεχνολογίες.
Mithil Prasad είναι Κύριος Διευθυντής Λύσεων Πελατών με τις Υπηρεσίες Ιστού της Amazon. Στο ρόλο του, ο Mithil συνεργάζεται με τους Πελάτες για να προωθήσει την πραγματοποίηση της αξίας στο cloud, να παρέχει ηγετική σκέψη για να βοηθήσει τις επιχειρήσεις να επιτύχουν ταχύτητα, ευελιξία και καινοτομία.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- Platoblockchain. Web3 Metaverse Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/big-data/how-vanguard-made-their-technology-platform-resilient-and-efficient-by-building-cross-region-replication-for-amazon-kinesis-data-streams/
- 1
- 100
- 2022
- 28
- a
- ικανότητα
- Ικανός
- Σχετικά
- πάνω από
- πρόσβαση
- Σύμφωνα με
- Λογαριασμός
- με ακρίβεια
- Κατορθώνω
- απέναντι
- ενεργειών
- ενεργός
- δραστήρια
- πραγματικά
- Επιπλέον
- συμβουλές
- συγκινητικός
- προσιτές
- Μετά το
- κατά
- ευκίνητος
- Όλα
- επιτρέπει
- εναλλακτική λύση
- Amazon
- Amazon EC2
- Amazon Kinesis
- Amazon υπηρεσίες Web
- Ποσά
- analytics
- και
- εφαρμογές
- πλησιάζω
- κατάλληλος
- αρχιτεκτονική
- αυτοματοποίηση
- Αυτοματοποιημένη
- Αυτοματοποίηση
- διαθεσιμότητα
- διαθέσιμος
- μέσος
- αποφύγετε
- AWS
- Πιστοποιημένο AWS
- πίσω
- βασίζονται
- επειδή
- είναι
- παρακάτω
- Καλύτερα
- μεταξύ
- εν συντομία
- Σπασμένος
- χτίζω
- Κτίριο
- χτισμένο
- ενσωματωμένο
- επιχείρηση
- επιχειρηματική συνέχεια
- επιχειρήσεις
- που ονομάζεται
- πιάνω
- συλλαμβάνει
- περίπτωση
- CDC
- πιστοποιήσεις
- Πιστοποίηση
- πιθανότητα
- αλλαγή
- έλεγχος
- έλεγχοι
- αρχηγός
- επιλογή
- Backup
- ΤΕΧΝΟΛΟΓΙΑ CLOD
- κωδικός
- σχόλιο
- σχόλια
- διαπράττουν
- συστατικό
- περιεκτικός
- Υπολογίστε
- κατάσταση
- διαμόρφωση
- θεωρήσεις
- καταναλώνεται
- καταναλωτής
- Καταναλωτές
- κατανάλωση
- συνεχώς
- έλεγχος
- Κόστος
- θα μπορούσε να
- Ζευγάρι
- δημιουργία
- δημιουργία
- κρίσιμης
- Ρεύμα
- Τη στιγμή
- έθιμο
- πελάτης
- Λύσεις πελατών
- Πελάτες
- προσαρμόσετε
- ημερομηνία
- Δεδομένα Analytics
- Απώλεια δεδομένων
- βάση δεδομένων
- βάσεις δεδομένων
- Αποφασίζοντας
- απόφαση
- αφιερωμένο
- κατέδειξε
- καταδεικνύει
- Σε συνάρτηση
- εξαρτάται
- παρατάσσω
- αναπτυχθεί
- περιγράφεται
- προορισμός
- λεπτομέρεια
- διαφορά
- διαφορετικές
- ψηφιακό
- κατευθείαν
- καταστροφή
- συζήτηση
- απόσταση
- αυτοκίνητο
- οδήγηση
- αντίγραφα
- κατά την διάρκεια
- κάθε
- Νωρίτερα
- κέρδισε
- οικονομίες
- Οικονομίες κλίμακας
- αποτελεσματικός
- Υπάλληλος
- δίνει τη δυνατότητα
- ενισχυμένη
- εξασφαλίζω
- Εταιρεία
- επιχειρήσεις
- Ολόκληρος
- Περιβάλλον
- Αιθέρας (ΕΤΗ)
- αξιολογήσει
- αξιολόγηση
- Συμβάν
- Κάθε
- παράδειγμα
- Υπεροχή
- εκτέλεσης
- προσδοκίες
- αναμένεται
- εμπειρία
- Εξηγήστε
- Εξηγεί
- εκτενής
- εξωτερικός
- Πρόσωπο
- διευκολύνω
- παράγοντες
- ΑΠΟΤΥΓΧΑΝΩ
- Απέτυχε
- Αποτυχία
- Χαρακτηριστικό
- ανατροφοδότηση
- πεδίο
- Αρχεία
- οικονομικός
- των χρηματοπιστωτικών υπηρεσιών
- ευρήματα
- Όνομα
- Ευελιξία
- Συγκέντρωση
- Εξής
- εξής
- Για τους επενδυτές
- Βρέθηκαν
- από
- πλήρως
- λειτουργία
- γενεά
- Παγκόσμιο
- σφαίρα
- Στόχοι
- καλός
- γραφική παράσταση
- Επισκέπτης
- Κείμενο
- λαβή
- Χειρισμός
- συμβαίνει
- Υγεία
- βοήθεια
- βοηθά
- εδώ
- Ψηλά
- υψηλά
- Πως
- Πώς να
- Ωστόσο
- HTTPS
- ανθρώπινος
- Οι άνθρωποι
- IAM
- ιδανικό
- Ταυτότητα
- βλάβη
- βελτίωση
- βελτιώνει
- in
- Συμπεριλαμβανομένου
- Εισερχόμενος
- αυξημένη
- υποδηλώνει
- ατομικές
- πληροφορίες
- Υποδομή
- Καινοτομία
- παράδειγμα
- παρέμβαση
- εισήγαγε
- Εισάγει
- επενδυτής
- Επενδυτές
- περιλαμβάνει
- IT
- επανάληψη
- Java
- Ιούλιος
- Κλειδί
- Ροές δεδομένων Kinesis
- large
- Επίθετο
- Αφάνεια
- ηγέτης
- Ηγεσία
- μάθηση
- Άδεια
- Επίπεδο
- γραμμή
- γραμμές
- Λίστα
- λίγο
- τοποθεσία
- ματιά
- off
- που
- διατηρεί
- κάνω
- ΚΑΝΕΙ
- διαχειρίζεται
- διευθυντής
- τρόπος
- Ταχύτητες
- πολοί
- χαρτης
- μαζικά
- ωριμότητα
- μέσα
- μηχανισμός
- Γνωρίστε
- συνάντηση
- μετρικός
- Metrics
- ελάχιστος
- ελάχιστο
- Τρόπος
- τροποποιημένο
- παρακολούθηση
- πλέον
- πολλαπλών
- πολλαπλούς
- Μουσική
- όνομα
- ονόματα
- ντόπιος
- Ανάγκη
- που απαιτούνται
- ανάγκες
- Νέα
- Νέες τεχνολογίες
- Νέα Υόρκη
- επόμενη
- αριθμός
- αριθμοί
- σκοπός
- παρατηρούμε
- Office
- λειτουργίας
- βελτιστοποίηση
- οργανώσεις
- Αποτέλεσμα
- ισοτιμία
- μέρος
- συνεργάστηκε
- κόμμα
- πρότυπο
- εκτελέσει
- επίδοση
- εκτέλεση
- δικαιώματα
- επιμένει
- Εξατομικευμένη
- αγωγού
- Μέρος
- πλατφόρμες
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- σας παρακαλούμε
- Πολιτικές
- δυνατός
- Θέση
- ενδεχομένως
- πρόληψη
- πρωταρχικός
- Κύριος
- διαδικασια μας
- μεταποίηση
- Επεξεργαστής
- Παράγεται
- παραγωγός
- Παραγωγούς
- προωθεί
- προστασία
- παρέχουν
- παρέχεται
- παρέχει
- δημοσιεύει
- Δημοσιεύσεις
- σκοποί
- βάζω
- Διάβασε
- Ανάγνωση
- πραγματοποίηση
- λόγους
- συνιστάται
- ρεκόρ
- αρχεία
- Ανάκτηση
- ανάκτηση
- μείωση
- μείωση
- περιοχή
- περιφερειακός
- περιοχές
- μακρινός
- επαναλαμβάνεται
- επαναλήψεις
- αναπαραγωγή
- απαιτείται
- απαιτήσεις
- Απαιτεί
- επιφυλάχθηκε
- ανθεκτικότητα
- ελαστικός
- απάντησης
- ΠΕΡΙΦΕΡΕΙΑ
- περίληψη
- απόδοση
- επιστροφή
- Επιστροφές
- εύρωστος
- Ρόλος
- Έλασης
- ΣΕΙΡΑ
- τρέξιμο
- Ασφάλεια
- ίδιο
- επεκτάσιμη
- Κλίμακα
- σενάριο
- Δεύτερος
- δευτερεύων
- δευτερόλεπτα
- Τμήμα
- ασφάλεια
- αρχαιότερος
- Ακολουθία
- εξυπηρετούν
- υπηρεσία
- Υπηρεσίες
- εξυπηρετούν
- σειρά
- τον καθορισμό
- διάφοροι
- θα πρέπει να
- παρουσιάζεται
- Δείχνει
- απλότητα
- κατάσταση
- Μέγεθος
- So
- λύση
- Λύσεις
- μερικοί
- Πηγή
- Πηγές
- ειδικεύεται
- Ειδικότητα
- ταχύτητα
- Αθλητισμός
- σκαλωσιά
- Εκκίνηση
- ξεκίνησε
- ξεκινά
- Κατάσταση
- Βήμα
- Βήματα
- Ακόμη
- στάση
- κατάστημα
- Στρατηγική
- μετάδοση
- ροής
- streaming υπηρεσία
- ροές
- επιτυχής
- Επιτυχώς
- κατάλληλος
- ανώτερος
- παρέχεται
- Υποστηρίζει
- σύστημα
- τραπέζι
- παίρνει
- στόχος
- Έργο
- εργασίες
- ομάδες
- Τεχνικός
- Τεχνολογίες
- Τεχνολογία
- Η
- τους
- πράγματα
- τρίτους
- σκέψη
- σκέψη ηγεσία
- Μέσω
- διακίνηση
- ώρα
- timestamp
- προς την
- εργαλείο
- εργαλεία
- τροχιά
- Παρακολούθηση
- Μεταμόρφωση
- ταξίδεψε
- ενεργοποιούν
- ενεργοποιήθηκε
- καταλαβαίνω
- κατανοητή
- ΧΩΡΙΣ λογο
- Ενημέρωση
- ενημερώθηκε
- ενημερώσεις
- χρήση
- περίπτωση χρήσης
- συνήθως
- UTC
- αξία
- Εμπροσθοφυλακή
- Ταχύτητα
- μέσω
- τόμος
- ιστός
- διαδικτυακές υπηρεσίες
- Ποιό
- ενώ
- θα
- εντός
- χωρίς
- λειτουργεί
- θα
- γράφω
- γραπτή
- Σας
- τον εαυτό σας
- zephyrnet
- μηδέν
- ζώνες