Οι περισσότεροι άνθρωποι σκέφτονται την αποκατάσταση από καταστροφές ως έναν μηχανισμό για την προστασία των εφαρμογών τους από μεγάλα γεγονότα. Ωστόσο, στον γρήγορο κόσμο της ανάπτυξης όπου οι νέοι κώδικας και οι αλλαγές υποδομής πραγματοποιούνται πολλές φορές το μήνα, είναι σημαντικό να θέσετε μηχανισμούς για να κατανοήσετε προληπτικά τις επιπτώσεις στην ανθεκτικότητα των εφαρμογών σας.
Σε αυτήν την ανάρτηση, συζητάμε πώς μπορείτε να χρησιμοποιήσετε την ικανότητα του AWS Resilience Hub που κυκλοφόρησε πρόσφατα, την ανίχνευση μετατόπισης ανθεκτικότητας, για να εντοπίσετε πιθανές αλλαγές στη στάση ανθεκτικότητας της εφαρμογής σας και να διορθώσετε τα ζητήματα που προκάλεσαν τη μετατόπιση. Η ανθεκτικότητα μιας εφαρμογής αναφέρεται στην ικανότητά της να διατηρεί τη διαθεσιμότητα και να ανακτά από λογισμικό και λειτουργικές διαταραχές εντός ενός καθορισμένου στόχου και μετριέται συνήθως με βάση το Recovery Time Objective (RTO), γνωστό και ως down time, και Recovery Point Objective (RPO). ), γνωστό και ως απώλεια δεδομένων. Σε αυτό το ιστολόγιο, θα εξετάσουμε τη σημασία της ενεργοποίησης της ανίχνευσης μετατόπισης ελαστικότητας, ένα παράδειγμα ρύθμισης της ανίχνευσης μετατόπισης ελαστικότητας και θα ερμηνεύσουμε το αποτέλεσμά της.
Τι είναι το AWS Resilience Hub και η ανίχνευση μετατόπισης ανθεκτικότητας;
Το AWS Resilience Hub (ARH) είναι μια διαχειριζόμενη υπηρεσία που σας δίνει ένα κεντρικό μέρος για να καθορίσετε, να επικυρώσετε και να παρακολουθήσετε την ανθεκτικότητα των εφαρμογών σας AWS. Είναι ενσωματωμένο με την υπηρεσία AWS Fault Injection Service (FIS), μια υπηρεσία δοκιμών ανθεκτικότητας, η οποία σας επιτρέπει να εισάγετε σκόπιμα σφάλματα στις εφαρμογές σας για να δείτε πώς ανταποκρίνονται. Χρησιμοποιώντας το AWS Resilience Hub, μπορείτε να αξιολογήσετε τις εφαρμογές σας για να αποκαλύψετε πιθανές βελτιώσεις αρχιτεκτονικής ανθεκτικότητας. Αυτό θα σας επιτρέψει να επικυρώσετε το RTO και το RPO των εφαρμογών σας και να βελτιστοποιήσετε τη συνέχεια της επιχείρησης, ενώ δυνητικά θα μειώσετε το κόστος ανάκτησης. Το AWS Resilience Hub παρέχει επίσης API για την αξιολόγηση και τη δοκιμή του, επιτρέποντάς σας να προσθέσετε στους αγωγούς CI/CD σας για συνεχή επικύρωση ανθεκτικότητας.
Στις 2 ΑυγούστουndΤο 2023, κυκλοφορήσαμε μια νέα δυνατότητα στο AWS Resilience Hub – ανίχνευση μετατόπισης ελαστικότητας. Η ανίχνευση μετατόπισης ελαστικότητας σάς επιτρέπει να εντοπίζετε προληπτικά και να αντιδράτε σε αλλαγές στη στάση ανθεκτικότητας της εφαρμογής σας στο AWS. Μόλις επιλέξετε τον εντοπισμό μετατόπισης ελαστικότητας, θα ειδοποιηθείτε όταν η εφαρμογή σας δεν πληροί πλέον την πολιτική ανθεκτικότητας (δηλ. η εφαρμογή ενδέχεται να μην πληροί το RTO και/ή το RPO της). Κατευθύνεστε επίσης στην πιο πρόσφατη αξιολόγηση ανθεκτικότητας που εντόπισε τις παρεκκλίσεις και σας παρέχονται ενέργειες αποκατάστασης.
Επισκόπηση λύσης
Θα χρησιμοποιήσουμε ένα παράδειγμα για να περιηγηθούμε στη λύση ανίχνευσης μετατόπισης ελαστικότητας. Στο παράδειγμα, θα κάνουμε τα εξής: 1. περιγράφουμε μια εφαρμογή, 2. ορίζουμε μια πολιτική ανθεκτικότητας, 3. ενεργοποιούμε την ανίχνευση μετατόπισης ανθεκτικότητας, 4. εκτελούμε μια αξιολόγηση ανθεκτικότητας και 5. προσδιορίζουμε τις μετατοπίσεις ανθεκτικότητας από την τελευταία σταθερή κατάσταση. Το παρακάτω παράδειγμα παρουσιάζεται στην Κονσόλα AWS με τα αποτελέσματα αξιολόγησης και την ανίχνευση μετατόπισης που παρουσιάζονται τόσο σε μορφή κονσόλας όσο και σε μορφή CLI.
Η εφαρμογή
Ξεκινάμε προσθέτοντας την αίτησή σας στο AWS Resilience Hub. Μια εφαρμογή είναι μια συλλογή πόρων AWS. Οι πόροι μπορούν να βρίσκονται σε πολλές Περιοχές AWS και να παρέχονται σε πολλούς λογαριασμούς AWS. Μπορείτε να περιγράψετε την εφαρμογή σας στο AWS χρησιμοποιώντας AWS CloudFormation, AWS Resource Groups, HashiCorp Terraform, AWS AppRegistry ή ως AWS Elastic Kubernetes Service (EKS).
Το παρακάτω διάγραμμα απεικονίζει την εφαρμογή (ένας ιστότοπος ηλεκτρονικού εμπορίου) που χρησιμοποιούμε σε αυτό το ιστολόγιο:
Εικόνα 1 – Διάγραμμα της εφαρμογής που εκτελείται σε AWS και χρησιμοποιείται σε αυτό το ιστολόγιο
Βήμα 1 – Περιγράψτε την εφαρμογή στο AWS Resilience Hub
Ξεκινάμε κάνοντας κλικ στην «Προσθήκη εφαρμογής» στη σελίδα της κονσόλας AWS Resilience Hub.
Στο παράδειγμά μας, χρησιμοποιούμε μια εφαρμογή που περιγράφεται ως στοίβα AWS CloudFormation. Ονομάζουμε το δείγμα της αίτησής μαςDriftBlogDemoApplication’ και επιλέξτε τις στοίβες που το περιγράφουν.
Εικόνα 2 – Σελίδα AWS Resilience Hub για την περιγραφή μιας εφαρμογής
Βήμα 2 – Επιλέξτε πολιτική ανθεκτικότητας και δικαιώματα εγκατάστασης
Στη συνέχεια, επιλέγουμε μια πολιτική ανθεκτικότητας (RTO και RPO) για την αίτησή μας. Για να μάθετε περισσότερα σχετικά με τη ρύθμιση RTO και RPO, επισκεφτείτε το ιστολόγιό μας Καθιερώνοντας στόχους RPO και RTO για εφαρμογές Cloud. Ρυθμίσαμε τα σωστά δικαιώματα για το AWS Resilience Hub για να μπορούμε να αξιολογήσουμε την ανθεκτικότητα της εφαρμογής.
Η εκτέλεση της αξιολόγησης ανθεκτικότητας του AWS Resilience Hub (βήμα 4 παρακάτω) θα δείξει εάν η εφαρμογή πληροί ή παραβιάζει την πολιτική ανθεκτικότητάς της. Το “Policy met” υποδηλώνει ότι το AWS Resilience Hub εκτιμά ότι η εφαρμογή έχει ρυθμιστεί για ανάκτηση εντός του εκτιμώμενου φόρτου εργασίας RTO και RPO και η “Παράβαση πολιτικής” υποδηλώνει το αντίθετο.
Το AWS Resilience Hub προσφέρει εκτιμώμενο φόρτο εργασίας RTO και RPO για 4 διαφορετικές διακοπές – Εφαρμογή (απώλεια απαιτούμενης υπηρεσίας λογισμικού ή διαδικασίας), Υποδομή (απώλεια υλικού, όπως περιπτώσεις Amazon EC2), Ζώνη διαθεσιμότητας (μία ή περισσότερες Ζώνες διαθεσιμότητας δεν είναι διαθέσιμες) , και Περιοχή (μία ή περισσότερες Περιοχές δεν είναι διαθέσιμες). Προκειμένου μια εφαρμογή να ανταποκρίνεται στην πολιτική της, όλοι οι τύποι διαταραχών πρέπει να πληρούν τους στοχευμένους RTO και RPO τους (ανατρέξτε στην ενότητα Διαχείριση πολιτικών ανθεκτικότητας).
Στο παράδειγμά μας, η πολιτική έχει οριστεί σε RTO 1 ώρας και RPO 1 ώρας για διακοπές λογισμικού, υποδομής και ζώνης διαθεσιμότητας. Δεν ορίσαμε πολιτική διακοπής της περιοχής επειδή το δείγμα της εφαρμογής μας αναπτύσσεται σε μία μόνο περιοχή.
Σημείωση: Εκτός από την ένδειξη εάν η εφαρμογή θα πληροί ή όχι την πολιτική ανθεκτικότητας, το AWS Resilience Hub δημιουργεί ελαστικότητα (π.χ. αλλαγές στη διαμόρφωση πόρων AWS) και λειτουργικές συστάσεις (π.χ. συναγερμοί Amazon CloudWatch, πειράματα υπηρεσίας έγχυσης σφαλμάτων AWS και τυπική λειτουργία ανάκτησης Διαδικασίες). Σκοπός των συστάσεων είναι να βελτιώσουν την ανθεκτικότητα της εφαρμογής και να τη βοηθήσουν να μεταβεί από κατάσταση «παραβιάσεις» σε κατάσταση «συναντάται».
Για να μάθετε περισσότερα σχετικά με την ανθεκτικότητα και τις επιχειρησιακές συστάσεις του AWS Resilience Hub, επισκεφτείτε την «Επισκόπηση της αναφοράς αξιολόγησης».
Εικόνα 3 – Δημιουργία πολιτικής ανθεκτικότητας στο ARH
Βήμα 3 – Ενεργοποιήστε την ανίχνευση μετατόπισης ελαστικότητας
Ενεργοποιούμε τον εντοπισμό μετατόπισης ελαστικότητας επιλέγοντας τόσο “Αυτόματη αξιολόγηση αυτής της εφαρμογής καθημερινά” και “Λήψη ειδοποίησης για τυχόν παραβίαση πολιτικής ανθεκτικότητας”, όπως φαίνεται στην Εικόνα 4. Η αξιολόγηση ανθεκτικότητας AWS Resilience Hub θα εκτελείται κάθε 24 ώρες και θα σας ειδοποιεί εάν η αξιολόγηση Το αποτέλεσμα μετακινείται από το “Policy Meet” στο “Policy Breach”.
Η ανίχνευση μετατόπισης ανθεκτικότητας χρησιμοποιεί το θέμα της Υπηρεσίας Απλής Ειδοποίησης της Amazon (Amazon SNS) για να ειδοποιεί για πιθανές μετατοπίσεις (δηλαδή, να λάβετε μια ειδοποίηση μέσω email ή να ενεργοποιήσετε μια λειτουργία Amazon Lambda). Επομένως, παρέχουμε ένα θέμα Amazon SNS και δίνουμε στο AWS Resilience Hub δικαιώματα για δημοσίευση σε αυτό.
Εικόνα 4 – Ρύθμιση ανίχνευσης μετατόπισης ελαστικότητας στο ARH
Βήμα 4 – Δημοσιεύστε και αξιολογήστε την εφαρμογή
Μόλις ενεργοποιηθεί ο εντοπισμός μετατόπισης ελαστικότητας, μπορούμε να δημοσιεύσουμε την εφαρμογή και να βεβαιωθούμε ότι συμπεριλαμβάνουμε ή αποκλείουμε όλους τους πόρους της εφαρμογής που θέλουμε να αξιολογήσουμε. Για την πλήρη λίστα των υποστηριζόμενων πόρων AWS, επισκεφθείτε τη διεύθυνση https://docs.aws.amazon.com/resilience-hub/latest/userguide/supported-resources.html.
Εικόνα 5 – Δημοσιεύστε την εφαρμογή που περιγράφεται στο ARH
Στη συνέχεια εκτελούμε την αξιολόγηση της ανθεκτικότητας. Για να δείτε τα αποτελέσματα, κάντε κλικ στο όνομα της αξιολόγησης στην καρτέλα «Αξιολόγηση».
Από αυτό το σημείο και μετά, το παράδειγμα που χρησιμοποιούμε σε αυτό το ιστολόγιο θα παρουσιάζεται τόσο για τους χρήστες AWS Console όσο και για χρήστες CLI. Για να μάθετε περισσότερα σχετικά με τη χρήση του AWS Resilience Hub, επισκεφτείτε τον οδηγό μας API https://docs.aws.amazon.com/resilience-hub/latest/userguide/using-api.html
Για χρήστες CLI, η εκτέλεση της λίστας εφαρμογών API και της αξιολόγησης λίστας εφαρμογών θα δημιουργήσει την ακόλουθη έξοδο που υποδεικνύει ότι η κατάσταση μετατόπισης ανθεκτικότητας στο “Μη μετατοπισμένη”:
Εικόνα 6 – Αποτέλεσμα CLI του API λίστας-εφαρμογών που δείχνει ότι δεν εντοπίστηκε μετατόπιση ανθεκτικότητας
Βήμα 5 – Ελέγξτε τα αποτελέσματα της αξιολόγησης και εφαρμόστε συστάσεις
Όπως συζητήθηκε παραπάνω, η αξιολόγηση ανθεκτικότητας του AWS Resilience Hub θα δείξει εάν η εφαρμογή πληροί ή παραβιάζει την πολιτική ανθεκτικότητας της. Στο παράδειγμά μας, η πολιτική αντιμετωπίζεται με εκτιμώμενο φόρτο εργασίας RTO 30 λεπτών και RPO 1 ώρας (έναντι πολιτικής RTO 1 ώρας και RPO 1 ώρας).
Σχήμα 7 – Αποτελέσματα αξιολόγησης ανθεκτικότητας ARH που υποδεικνύουν ότι η εφαρμογή πληροί την πολιτική της ανθεκτικότητας
Οι χρήστες του CLI θα εκτελούν τις συστάσεις API list-app-component-compliances και list-app-component-recommendations που δεν εμφανίζουν καμία ένδειξη ότι ανιχνεύτηκε μετατόπιση.
Σχήμα 8 – Αποτέλεσμα CLI του API list-app-component-compliance που υποδεικνύει ότι πληρούται η πολιτική ανθεκτικότητας
Βήμα 6 – Ανίχνευση παρασυρμάτων και πραγματοποίηση προσαρμογών
Εάν είναι ενεργοποιημένη η ανίχνευση μετατόπισης ελαστικότητας (βλ. βήμα 3 παραπάνω), οι αλλαγές που ανιχνεύονται στην κατάσταση «Κατάσταση συμμόρφωσης» (δηλαδή η πολιτική άλλαξε από «συναντήθηκε» σε «παραβίαση») θα ειδοποιηθούν στην κατάσταση εφαρμογών και θα δημοσιευθούν στο επιλεγμένο SNS θέμα.
Το Σχήμα 9 – Η ανθεκτικότητα ARH υποδεικνύει ότι η εφαρμογή έχει απομακρυνθεί από την πολιτική ανθεκτικότητας
Από το CLI, οι αξιολογήσεις λίστας-εφαρμογών API θα εμφανίσουν τα ακόλουθα, υποδεικνύοντας ότι ανιχνεύτηκε μετατόπιση:
Το Σχήμα 10 – Η έξοδος CLI του API list-app-assessment δείχνει ότι έχει εντοπιστεί μετατόπιση ανθεκτικότητας
Στο παράδειγμά μας, το πρόγραμμα δημιουργίας αντιγράφων ασφαλείας του Amazon Elastic Block Storage (EBS) άλλαξε και προκάλεσε μετατόπιση του εκτιμώμενου RPO από 1 σε 2 ώρες.
Το Σχήμα 11 – Η αξιολόγηση ανθεκτικότητας του ARH δείχνει ότι το εφεδρικό πρόγραμμα EBS προκάλεσε την μετατόπιση της ανθεκτικότητας
Μέσω της κονσόλας, το API θα δημιουργήσει το ακόλουθο αποτέλεσμα:
list-app-component-compliances, υποδεικνύοντας ότι η πολιτική ανθεκτικότητας παραβιάζεται.
Εικόνα 12 – Αποτέλεσμα CLI των συμμορφώσεων λίστας API-app-component-compliance που υποδεικνύει ότι η πολιτική ανθεκτικότητας παραβιάζεται
Και λίστα-app-assessment-compliance-drifts που υποδεικνύουν τις αναμενόμενες σε σχέση με τις τρέχουσες τιμές RTO και RPO για κάθε στοιχείο (το παράδειγμα αναφέρεται στον τόμο EBS).
Εικόνα 13 – Αποτέλεσμα CLI των API list-app-assessment-compliance-drifts που υποδεικνύουν ότι ο τόμος EBS προκαλεί τη μετατόπιση
Επιπλέον, το AWS Resilience Hub θα δημιουργήσει προτάσεις ανθεκτικότητας που θα σας βοηθήσουν να ενημερώσετε την αίτησή σας για να επιστρέψετε στην κατάσταση «Συνάντηση πολιτικής». Στο παράδειγμά μας, οι αλλαγές σχετίζονται με τον τόμο EBS και μπορούν να βελτιστοποιηθούν για ελάχιστες αλλαγές, κόστος ή RTO/RPO ζώνης διαθεσιμότητας.
Σχήμα 14 – Η αξιολόγηση ανθεκτικότητας στο ARH δημιούργησε συστάσεις για να μετακινήσετε την εφαρμογή πίσω στην κατάσταση «policy met»
Για τους χρήστες CLI, οι προτάσεις λίστας κλήσεων API-app-component-commendations θα επιστρέψουν τη συνιστώμενη λύση για τον τόμο EBS. στην περίπτωσή μας, “Τροποποιήστε τη συχνότητα του σχεδίου δημιουργίας αντιγράφων ασφαλείας AWS που σχετίζεται με τον τόμο EBS σας για να συμμορφώνεται με τον καθορισμένο στόχο RPO”.
Περίληψη
Σε αυτό το ιστολόγιο, εξετάσαμε μια νέα δυνατότητα στο AWS Resilience Hub – ανίχνευση μετατόπισης ελαστικότητας. Η ανίχνευση μετατόπισης ελαστικότητας σάς επιτρέπει να αναγνωρίζετε και να λαμβάνετε ειδοποιήσεις για αλλαγές στη διαμόρφωση της εφαρμογής σας που ενδέχεται να επηρεάσουν τη στάση της ανθεκτικότητας και να την αναγκάσουν να παραβιάσει την πολιτική ανθεκτικότητάς της (δηλ. μη συμμόρφωση με το RTO και το RPO της εφαρμογής). Παρουσιάσαμε τον τρόπο ενεργοποίησης της ανίχνευσης μετατόπισης ελαστικότητας, καθώς και τον τρόπο χρήσης του τόσο για χρήστες AWS Console όσο και για χρήστες CLI.
Η ανίχνευση μετατόπισης ελαστικότητας εκτελείται από προεπιλογή σε καθημερινή βάση ή κάθε φορά που εκτελείτε μια αξιολόγηση ανθεκτικότητας. Μπορείτε επίσης να ενσωματώσετε την αξιολόγηση στους αγωγούς CI/CD σας. Η ανίχνευση μετατόπισης ελαστικότητας εντοπίζει αλλαγές στη στάση ελαστικότητας της εφαρμογής. Για να βοηθήσει στην αντιμετώπιση των παρασυρμάτων, το AWS Resilience Hub δημιουργεί τόσο ανθεκτικότητα όσο και επιχειρησιακές συστάσεις.
Για να ξεκινήσετε, επισκεφθείτε τη διεύθυνση https://aws.amazon.com/resilience-hub