Υψηλή διαθεσιμότητα и SLA
Υψηλή διαθεσιμότητα SLA
1) Όροι και σύνδεση με τις επιχειρήσεις
SLI (δείκτης επιπέδου υπηρεσίας) - μετρούμενος δείκτης υπηρεσίας (για παράδειγμα, το ποσοστό των επιτυχών αιτήσεων 2xx/3xx ≤ T ms).
SLO (Στόχος επιπέδου υπηρεσίας) - τιμή-στόχος SLI (π.χ. "99. 95% των αιτήσεων 300 m ).
SLA (συμφωνία επιπέδου υπηρεσιών) - συμβατική υποχρέωση έναντι του πελάτη (πρόστιμα/πιστώσεις σε περίπτωση παραβίασης).
HA (υψηλή διαθεσιμότητα) - αρχιτεκτονικά και επιχειρησιακά μέτρα που σας επιτρέπουν να εκτελέσετε SLO/SLA.
Αρχή: Η SLA βασίζεται στην SLO και η SLO βασίζεται σε παρατηρηθείσες SLI. Δεν μπορείς να υποσχεθείς στην SLA τι δεν μετράς.
2) «Εννέα» και μαθηματικά προσβασιμότητας
Διαθεσιμότητα ανά περίοδο = 'work _ time/total _ time'. Κριτήρια αναφοράς (ανά έτος):Σύνθεση της διαθεσιμότητας
Διαδοχική αλυσίδα (κόκκινη διαδρομή εξαρτήσεις): 'A _ σύνολο = Π A_i' (κάθε συστατικό μειώνει το σύνολο).
Παράλληλοι κόμβοι περιουσιακών στοιχείων: 'A _ total = 1 − Π (1 − A_i)' (το αποθεματικό αυξάνει το σύνολο).
3) Τι ακριβώς να μετρήσετε (σωστή SLI)
Προβολή χρήστη: επιτυχής ολοκλήρωση των λειτουργιών κλειδών (σύνδεση, κατάθεση, check-out) και της καθυστέρησής τους p99.
Χρονικός διάδρομος: ομαδοποιούνται με συρόμενα παράθυρα (5/30/60 λεπτά) και ανά περιοχή.
Εξαιρέσεις: τα «προγραμματισμένα παράθυρα» υπολογίζονται σε SLO και στις SLA μόνο εάν το αναφέρει η σύμβαση.
- Διαθεσιμότητα: ποσοστό επιτυχίας ≤ T.
- Ποιότητα: p95/p99 καθυστέρηση.
- Σύνθετο: «μερίδιο των επιτυχών καταθέσεων ≤ 5 s».
4) Σφάλμα προϋπολογισμού και ποσοστό καύσης
Σφάλμα προϋπολογισμού = '1 − SLO'. Για 99. 95% μηνιαίο παράθυρο δίνει 0. 05% σφάλματα/downtime.
Ρυθμός καύσης: ταχύτητα κατανάλωσης του προϋπολογισμού (π.χ. 4 × σημαίνει ότι σε 6 ώρες τρώτε μέχρι το ημερήσιο όριο).
Πολιτική: με ταχεία καύση - παύση των εκπομπών, εστίαση στη σταθεροποίηση, πάγωμα των χαρακτηριστικών.
5) Αρχιτεκτονική HA: κόμβος προς περιοχή
5. 1 Κόμβος/Υπηρεσία
N + 1: τουλάχιστον ένα περιττό αντίγραφο (Εγκατάσταση ≥ 2, PDB, αντι-συγγένεια).
Απομόνωση πόρων: όρια CPU/RAM/IO, προτεραιότητες (LamingClass).
Χαριτωμένο κλείσιμο/αποστράγγιση: καμία αίτηση κατά την επανεκκίνηση.
5. 2 Ζώνη/Περιφέρεια
Multi-AZ: αντίγραφα σε διαφορετικές ζώνες, εξισορρόπηση μεταξύ ζωνών, ανεξάρτητη ισχύς/δίκτυο.
Πολυπεριφέρεια: περιουσιακό στοιχείο (δυσκολότερο: δεδομένα/συνέπεια) ή υποχρέωση από περιουσιακά στοιχεία (απλούστερο: πάνω από RPO).
Στοιχεία: CP για χρηματικά ποσά/παραγγελίες (απαρτία/RAFT), EC/AP για κρύπτες/καταστήματα.
5. 3 Στρώμα δικτύου και περίμετρος
υγειονομικοί έλεγχοι, επανάληψη δοκιμής/χρονοδιάγραμμα/διακοπή κυκλώματος.
GSLB/DNS/Anycast για την παγκόσμια κυκλοφορία, σύντομη TTL.
Έλεγχος εξόδου και ανεκτικοί σε βλάβες δίαυλοι σε εξωτερικούς παρόχους υπηρεσιών πληρωμών.
6) Υποβάθμιση αντί πτώσης
Χαρακτηριστικό διακόπτη (σημαίες χαρακτηριστικών): απενεργοποίηση μη κρίσιμης σημασίας, αποθήκευση της «κόκκινης διαδρομής».
Μετάβαση σε απλουστευμένες διαδρομές: συγχρονισμένη → ασύγχρονη/σειρά αναμονής, «αποδεκτή για επεξεργασία».
Όριο ποσοστώσεων: είναι προτιμότερο να περιορίσουμε την κυκλοφορία παρά να μειώσουμε τους πάντες.
Μπαγιάτικες λειτουργίες: δώστε κρυφά/στατικά δεδομένα όταν η προέλευση δεν είναι διαθέσιμη.
7) Διαχείριση περιορισμών
Χάρτης υπηρεσιών: άμεση/μεταβατική, κρίσιμη, SLO του καθενός.
Ευάλωτοι σύνδεσμοι: εξωτερικός πάροχος χωρίς SLA - μετατρέπεται σε κρύπτη/ουρά/αντίγραφο.
Απομόνωση στεγανών: διαφορετικές ομάδες σύνδεσης/ποσοστώσεις για αργές διαδρομές.
Timeouts> Retries: σύντομο χρονικό διάστημα, μέγιστο 1 retray για idempotent λειτουργίες.
8) Πράξεις και αλλαγές
Διαχείριση αλλαγών: εκλύσεις μέσω καναρινιών/μπλε-πράσινων, πύλες SLO, αυτόματη ανατροπή.
Προγραμματισμένα παράθυρα: τυποποίηση - μήκος, συχνότητα, επικοινωνίες.
Περιστατικά: ρόλοι (IC/Comms/Tech/DB), runbook 'και, μεταθανάτια με διορθωτικά μέτρα.
Συμβάντα ασφαλείας: εάν διακυβεύεται, «κατάσταση πανικού» (μόνο για ανάγνωση/μάρκες/περιστροφή/εμπλοκή).
9) Παρατηρησιμότητα και προειδοποίηση
Μοντέλο RED (ποσοστό, σφάλματα, διάρκεια) για κάθε διαδρομή.
Ταμπλό SLI: διαθεσιμότητα/καθυστέρηση ανά περιφέρεια και ανά τμήμα πελατών.
Προειδοποιήσεις ταχύτητας καύσης: γρήγορη (1h, 14. 4 ×), αργή (6h, 2 ×) - σήμα πριν από την αστοχία SLO.
Υποδειγματικές αλλαγές από τις μετρήσεις στις ευθυγραμμίσεις trace_id.
Συνθετικά: δείγματα από εξωτερικά σημεία (περίμετρος, ροή πληρωμής).
10) Δοκιμές ανοχής βλάβης
Ημέρες παιχνιδιού: σενάρια για την απενεργοποίηση AZ/περιφέρειες, βάση δεδομένων/υποβάθμιση της μνήμης, βλάβη εξωτερικών παρόχων.
Εργαλεία χάους: διπλώματα δικτύου (καθυστέρηση/απώλεια), θανατηφόροι λοβοί, υπερφόρτωση CPU/IO.
Ασκήσεις DR: ανάπτυξη RTO/RPO για συστήματα Tier-0 (βλέπε «Backups και DR»).
11) Σχεδιασμός SLA
Ορισμός της «διαθεσιμότητας»: τι μετράει ως περιστατικό (5xx, χρόνος> T, σφάλματα πεδίου).
Παράθυρο υπολογισμού: μήνας/τρίμηνο· ένταξη/αποκλεισμός προγραμματισμένων δραστηριοτήτων.
Πιστώσεις/κυρώσεις: κλίμακα (π.χ. 99. 9–99. 99% - X%, χαμηλότερο - Y%).
Ευθύνες πελατών: ολοκλήρωση, επανακατηγοριοποιήσεις εντός λογικών ορίων, όρια.
Κοινοποιήσεις και διαδικασία κλώνου: όροι, μορφή, βάση αποδεικτικών στοιχείων (καταγραφές/μετρήσεις).
Ανωτέρα βία: νομική διατύπωση και όρια.
- Η "διαθεσιμότητα API από SLI "επιτυχημένη 500 m " είναι τουλάχιστον 99. 95% ανά ημερολογιακό μήνα. Τα προγραμματισμένα παράθυρα (έως 60 λεπτά/μήνα που ανακοινώνονται σε 48 ώρες) εξαιρούνται. Στα 99. 90–99. 95% - δάνειο 5%, 99. 80–99. 90% — 10%; <99. 80% — 25%.»
12) Nines economy
Κάθε επιπλέον «εννέα» αυξάνει το κόστος όχι γραμμικά (διπλές περιφέρειες, απαρτίες, αντίγραφα παρόχων, 24 × 7). Χρήση βαθμιδωτής SLO:- (χρήμα/παραγγελίες): 99. 95–99. 99%, πολυ-AZ, DR έτοιμο.
- Βαθμίδα 1 (βασικά χαρακτηριστικά): 99. 9–99. 95%, πολυ-AZ.
- (μη κρίσιμη): 99. 5–99. 9%, επιτρέπεται η υποβάθμιση/στάση για περιστατικά.
13) HA μοτίβα ανά στρώμα
Περίμετρος: CDN/άκρο, πολυ-CDN ή GSLB, WAF, όριο ταχύτητας.
Εξισορρόπηση: L7 με εξωγήινη εκτόξευση, χρονοδιαγράμματα/retrays, κολλώδες/συνεπές-hash.
Εφαρμογές: οριζόντια κλίμακα, ετοιμότητα/ζωντάνια, PDB, εξάπλωση τοπολογίας.
Δεδομένα: leader + replicas, απαρτία για CP, L2 cache, idempotency, PITR.
Ουρές: miroring/multicluster, dedup, DLQ.
Μυστικά/ρυθμίσεις: GitOps, ατομικά στιγμιότυπα, rollback.
14) Αντι-μοτίβα
SLA χωρίς όργανα μέτρησης και εξωτερικά συνθετικά.
Ενιαία ζώνη/δέσμη ως SPOF.
Μη ελεγχόμενες επαναλήψεις → «self-DDoS».
Μακριές συναλλαγές/μεταλλάξεις στην καυτή τροχιά.
«Βαριές» μεταναστεύσεις/απελευθερώσεις χωρίς καναρίνια και σχέδιο ανατροπής.
Έλλειψη εγχειριδίου και επικοινωνίας με τα ενδιαφερόμενα μέρη σε περίπτωση συμβάντος.
15) Κατάλογος ελέγχου εφαρμογής (0-60 ημέρες)
0- 15 ηµέρες
Ορισμός κρίσιμων SLI χρηστών, καθορισμός SLO με Tier-0/1/2 επίπεδα.
Συμπεριλαμβάνονται οι ειδοποιήσεις με ρυθμό καύσης, οι πίνακες SLO, οι έλεγχοι συνθετικής περιμέτρου.
Αφαίρεση SPOF: ≥2 αντίγραφα, PDB, multi-AZ για μέτωπα και κρίσιμες βάσεις δεδομένων.
16-40 ημέρες
Εισαγωγή των κυκλοφοριών καναρινιών με SLO-gating και auto-rollback.
Χάρτης εξάρτησης + ποσοστώσεις/ομάδες/χρονοδιαγράμματα/PB για κάθε «κόκκινη διαδρομή».
Ρύθμιση προγραμματισμένων παραθύρων και επικοινωνιών, υποδείγματα μηνυμάτων συμβάντων.
41-60 ημέρες
Ημέρα παιχνιδιού: αποσύνδεση του AZ, βλάβη εξωτερικού παρόχου, «έκρηξη» της κυκλοφορίας.
Επανυπολογισμός των SLA και των πραγματικών πιστώσεων, δημοσίευση εκθέσεων στους πελάτες.
Αναθεώρηση του «κόστους των εννέα ευρώ» και εκ νέου τοποθέτηση στο θεωρείο σκοποβολής.
16) Μετρήσεις διάρκειας
Το 95% των κρίσιμων διαδρομών έχουν SLI/SLO και ειδοποιήσεις για καύση.
Τα σφάλματα SLO συνοδεύονται από αυτόματο πάγωμα των απελευθερώσεων (πολιτική).
Κάλυψη πολλαπλών AZ Tier-0 = 100%, επιτυχημένες ασκήσεις DR ≥ 1/τρίμηνο.
Χρόνος «ανίχνευσης → μετριασμού» p50 <5 λεπτά, p95 <15 λεπτά.
Συσχέτιση «έκλυσης συμβάντων» - διατηρείται και μειώνεται (rollback ).
Δημόσια έκθεση περιστατικού/πίστωσης - εντός N εργάσιμων ημερών.
17) Παραδείγματα και αποσπάσματα
Προειδοποιήσεις σχετικά με την ταχύτητα καύσης (ιδέα κανόνα):- Γρήγορη: "SLO 99. 95%, παράθυρο 1 ώρα, κάψιμο ≥ 14. 4 × → σελίδα εφημερίας"
- Αργή: «παράθυρο 6 h, κάψιμο ≥ 2 × → εισιτήριο & παρακολούθηση».
yaml circuit_breakers:
thresholds:
- max_connections: 200 max_pending_requests: 100 max_requests: 1000 max_retries: 1 outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
Καναρίνι με ανάλυση SLO (Argo Rollouts, ιδέα):
yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus
Παράδειγμα σύνθεσης SLI:
SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region
18) Συμπέρασμα
Υψηλή διαθεσιμότητα δεν είναι μόνο συσπειρώσεις και αντίγραφα, αλλά ένα συνεκτικό σύνολο αρχιτεκτονικής, διεργασιών και μετρήσεων: σαφής SLI/SLO, ρεαλιστική SLA, οικονομικά εννιάρια, υποβάθμιση αντί της πτώσης, timeout/ποσόστωση πειθαρχία, εκπομπές καναρινιών, τακτικές ασκήσεις και διαφανή επικοινωνία. Να γίνει η οικονομική προσιτότητα μετρήσιμη και διαχειρίσιμη - και γίνεται ανταγωνιστικό πλεονέκτημα, όχι λαχείο.