Αναλάβετε την ευθύνη της υπηρεσίας μετά το deployment
ΟλοκληρώθηκεΟρίστε χρήσιμα σήματα για την υπηρεσία, αποφάσεις διαχείρισης συμβάντων, ανάκτηση και συντήρηση. Κρατήστε σαφή την ευθύνη λειτουργίας μετά το τέλος της παραγωγής κώδικα.
Εκδότης TaigaΠώς γράφουμε
Ελέγξτε τι κατανοήσατεΈνας έλεγχος διαθεσιμότητας επιστρέφει HTTP 200, αλλά οι εξαγωγές δεν περιέχουν εγγραφές επειδή η εξουσιοδότηση δεν λειτουργεί σωστά. Τι δείχνει αυτό;Κάντε την άσκηση
Τι θα μάθετε
- Ορίστε ένα σήμα για την υπηρεσία από την οπτική του χρήστη.
- Διαχωρίστε τον συντονισμό ενός συμβάντος από την τεχνική διερεύνηση.
- Σχεδιάστε τη συντήρηση και την ανάκτηση ως διαρκείς ευθύνες.
Ορίστε την υπηρεσία από την οποία εξαρτώνται οι χρήστες
Το deployment κάνει το λογισμικό διαθέσιμο. Η λειτουργία το διατηρεί χρήσιμο καθώς αλλάζουν οι χρήστες, οι εξαρτήσεις, η κίνηση και οι απαιτήσεις. Ένα εργαλείο παραγωγής κώδικα δεν καταργεί αυτή τη διαρκή εργασία.
Σε ένα υποθετικό σύστημα εξαγωγής στοιχείων πελατών, οι χρήστες χρειάζονται περισσότερα από μια προσβάσιμη σελίδα. Χρειάζονται τις εγγραφές στις οποίες επιτρέπεται να έχουν πρόσβαση, στην απαιτούμενη μορφή και σε αποδεκτό χρόνο. Η υπηρεσία πρέπει επίσης να εμποδίζει την πρόσβαση στα δεδομένα άλλου οργανισμού.
Ορίστε τον υπεύθυνο πριν από τη διάθεση. Καταγράψτε ποιος αποκρίνεται εκτός του κανονικού ωραρίου, αν αυτό αποτελεί μέρος της δέσμευσης για την υπηρεσία. Ένας προμηθευτής μπορεί να εκτελεί μέρος της εργασίας. Ο οργανισμός, όμως, εξακολουθεί να χρειάζεται σαφή διαδικασία για αποφάσεις και επικοινωνία.
Επιλέξτε σήματα που υποστηρίζουν ενέργειες
Ένας δείκτης επιπέδου υπηρεσίας, ή SLI, μετρά μια καθορισμένη ιδιότητα της συμπεριφοράς της υπηρεσίας. Ένας στόχος επιπέδου υπηρεσίας, ή SLO, ορίζει έναν στόχο για αυτόν τον δείκτη σε συγκεκριμένη περίοδο. Επιλέξτε τον στόχο με βάση τις ανάγκες των χρηστών και τη δυνατότητα λειτουργικής υποστήριξης.
Οι οδηγίες SRE της Google εξηγούν αυτή την προσέγγιση και τη χρήση ενός error budget στις αποφάσεις αξιοπιστίας. Μην αντιγράφετε τον στόχο μιας άλλης υπηρεσίας χωρίς να ελέγξετε τι σημαίνει. Οδηγίες για τα SLO, παράδειγμα πολιτικής error budget.
Για την εξαγωγή, ορίστε πότε ένα αίτημα που πληροί τις προϋποθέσεις θεωρείται επιτυχές. Διαχωρίστε τις αναμενόμενες απορρίψεις από τις αστοχίες του συστήματος. Τεκμηριώστε τις εξαιρέσεις, ώστε μια μετρική να μην μπορεί να βελτιωθεί απλώς αποκρύπτοντας δύσκολα αιτήματα.
| Σήμα | Τι βοηθά να εντοπιστεί | Σημαντικός περιορισμός |
|---|---|---|
| Δημόσιος έλεγχος διαθεσιμότητας | Η υπηρεσία δεν είναι προσβάσιμη | Δεν επαληθεύει τη ροή εργασίας ενός συνδεδεμένου χρήστη |
| Ολοκλήρωση και χρόνος απόκρισης της εξαγωγής | Αιτήματα που πληρούν τις προϋποθέσεις αποτυγχάνουν ή διαρκούν υπερβολικά | Απαιτεί ακριβή ορισμό της επιτυχίας |
| Έλεγχοι απόρριψης μη εξουσιοδοτημένης πρόσβασης | Ένα κρίσιμο όριο παύει να εφαρμόζεται σωστά | Καλύπτει τις συνθήκες που δοκιμάστηκαν |
| Σήματα πόρων και εξαρτήσεων | Μια πιθανή εσωτερική αιτία | Δεν περιγράφει από μόνο του τον αντίκτυπο στους χρήστες |
Μην καταγράφετε ολόκληρες εξαγωγές για να βελτιώσετε την ορατότητα. Συλλέξτε τις ελάχιστες πληροφορίες που χρειάζονται για τη διάγνωση του προβλήματος και προστατεύστε την πρόσβαση σε αυτές.
Προετοιμάστε την απόκριση σε συμβάντα
Αποφασίστε ποιος συντονίζει, ποιος διερευνά και ποιος επικοινωνεί. Σε μια μικρή ομάδα, ένα άτομο μπορεί να αναλάβει περισσότερους ρόλους. Οι ευθύνες, όμως, πρέπει να παραμένουν σαφείς. Κρατήστε αρχείο παρατηρήσεων και ενεργειών.
Οι οδηγίες απόκρισης σε συμβάντα της Google τονίζουν τον συντονισμό και την επικοινωνία μαζί με τον τεχνικό περιορισμό του προβλήματος. Ακόμη και με μια τεχνικά σωστή διόρθωση, οι χρήστες μπορεί να μείνουν ανενημέρωτοι ή οι συμμετέχοντες στην απόκριση να κάνουν αντικρουόμενες αλλαγές. Απόκριση σε συμβάντα.
Ένας agent μπορεί να συνοψίζει αρχεία καταγραφής ή να συγκρίνει υποθέσεις μέσα στα εγκεκριμένα όρια δεδομένων. Δεν πρέπει να αποκτά απεριόριστη εξουσία στο production επειδή το συμβάν είναι επείγον. Χρησιμοποιήστε καθορισμένη διαδικασία κλιμάκωσης για πρόσβαση κατ’ εξαίρεση.
Εξασκηθείτε στην ανάκτηση και χρηματοδοτήστε τη συντήρηση
Δοκιμάστε τη διαδικασία ανάκτησης με αντιπροσωπευτικά υποθετικά δεδομένα. Προσδιορίστε τι δεν μπορεί να αναιρέσει ένα rollback κώδικα, όπως διαγραμμένες εγγραφές ή μηνύματα που έχουν ήδη σταλεί. Καταγράψτε τον χρόνο και τις πληροφορίες που απαιτούνται για την αποκατάσταση της υπηρεσίας.
Αναθέστε τις διαρκείς εργασίες: ενημερώσεις εξαρτήσεων, ανασκοπήσεις πρόσβασης, ανανέωση πιστοποιητικών όπου χρειάζεται, αλλαγές δυναμικότητας και διορθώσεις τεκμηρίωσης. Μια υπηρεσία χωρίς διαθέσιμους πόρους συντήρησης συσσωρεύει υποχρεώσεις αφού εξαντληθεί ο προϋπολογισμός της αρχικής διάθεσής της.
Μετά από ένα συμβάν, επιλέξτε βελτιώσεις που αντιμετωπίζουν τις αιτίες που παρατηρήθηκαν. Συνδέστε τις με την υλοποίηση και την επαλήθευση. Έτσι ολοκληρώνεται ο κύκλος ζωής: τα στοιχεία από τη λειτουργία αλλάζουν όσα θα προδιαγράψει και θα κατασκευάσει η ομάδα στη συνέχεια.
Κάντε την άσκηση
Γράψτε ένα μονοσέλιδο σημείωμα λειτουργίας για το υποθετικό σύστημα εξαγωγής στοιχείων πελατών. Συμπεριλάβετε ένα σήμα που αφορά την εμπειρία του χρήστη, τον στόχο του, τον παραλήπτη μιας ειδοποίησης, μια ασφαλή πρώτη ενέργεια, ένα όριο ανάκτησης και τον υπεύθυνο συντήρησης. Δηλώστε τι δεν μπορεί να εντοπίσει η παρακολούθηση.
Λήψη φύλλου εργασίας (Markdown)Η κατάργηση αυτής της επιλογής διαγράφει όλη την πρόοδο που έχει αποθηκευτεί σε αυτόν τον browser.
Η πρόοδος παραμένει σε αυτό το πρόγραμμα περιήγησης. Χωρίς λογαριασμό ή παρακολούθηση.
Πηγές και πρόσθετη μελέτη
- Google SRE: Implementing SLOs ↗
- Google SRE: Incident Response ↗
- Google SRE: Example Error Budget Policy ↗