Ολοκληρώστε τον κύκλο με επαληθευμένη βελτίωση
ΟλοκληρώθηκεΜετατρέψτε στοιχεία από το production σε απαιτήσεις, δοκιμές, ελεγχόμενες αλλαγές και μετρημένα αποτελέσματα. Ορίστε τι μπορεί να σημαίνει υπεύθυνα το λογισμικό που βελτιώνεται αυτόματα.
Εκδότης TaigaΠώς γράφουμε
Ελέγξτε τι κατανοήσατεΈνας agent μειώνει τον χρόνο απόκρισης της εξαγωγής παραλείποντας ελέγχους εξουσιοδότησης. Η μετρική ταχύτητας βελτιώνεται. Έχει βελτιωθεί το σύστημα;Κάντε την άσκηση
Τι θα μάθετε
- Συνδέστε μια παρατήρηση από τη λειτουργία με επαληθεύσιμη αλλαγή μηχανικής λογισμικού.
- Διαχωρίστε την ανάκτηση κατά τη λειτουργία, τη βελτίωση της ροής εργασίας και την εκπαίδευση μοντέλων.
- Μετρήστε μια δηλωμένη βελτίωση χωρίς να αποδυναμώσετε την αξιολόγησή της.
Ορίστε τον κύκλο που θέλετε να ολοκληρώσετε
Το λογισμικό παράγει στοιχεία κατά τη χρήση: σφάλματα, καθυστερήσεις, αιτήματα υποστήριξης, συμβάντα, ευρήματα συντήρησης και επαναλαμβανόμενη χειροκίνητη εργασία. Ένας πλήρης κύκλος ζωής επιστρέφει αυτά τα στοιχεία στις αποφάσεις μηχανικής λογισμικού.
Το λογισμικό που βελτιώνεται αυτόματα μπορεί να σημαίνει ότι ο αυτοματισμός βοηθά στον εντοπισμό, την πρόταση, την υλοποίηση και την επαλήθευση αλλαγών. Δεν σημαίνει απαραίτητα ότι ένα μοντέλο εκπαιδεύει τον εαυτό του. Δηλώστε ποιο μέρος αλλάζει: κώδικας εφαρμογής, ρυθμίσεις, δοκιμές, οδηγίες, ροή εργασίας ή παράμετροι μοντέλου.
Το self-healing αποκαθιστά μια γνωστή κατάσταση λειτουργίας. Η αυτόματη βελτίωση αλλάζει το σύστημα ώστε να παράγει καλύτερο αποτέλεσμα στο μέλλον. Ο δεύτερος ισχυρισμός απαιτεί σύγκριση και προστασία από παλινδρομήσεις.
Παρακολουθήστε μία παρατήρηση σε όλο τον κύκλο ζωής
Η παρακάτω ακολουθία είναι προτεινόμενη μέθοδος μηχανικής λογισμικού. Δεν είναι ισχυρισμός ότι κάποιο προϊόν εκτελεί κάθε βήμα αυτόνομα.
| Στάδιο | Απαιτούμενο αποτέλεσμα | Υποθετικό παράδειγμα εξαγωγής |
|---|---|---|
| Παρατήρηση | Στοιχεία με έκδοση, πεδίο και αβεβαιότητα | Η μνήμη του worker αυξάνεται σε μεγάλες εξαγωγές |
| Διάγνωση | Αιτία που μπορεί να δοκιμαστεί και εναλλακτικές εξηγήσεις | Buffers γραμμών που παραμένουν στη μνήμη μπορεί να εξηγούν την αύξηση |
| Προδιαγραφή | Επιθυμητό αποτέλεσμα και περιορισμοί | Σταδιακή ροή γραμμών χωρίς αλλαγή δικαιωμάτων ή εξόδου |
| Αναπαραγωγή | Δοκιμή που αποκαλύπτει την αρχική αστοχία | Μια αντιπροσωπευτική μεγάλη εξαγωγή συνθετικών δεδομένων υπερβαίνει το όριο |
| Αλλαγή | Διόρθωση που μπορεί να ανασκοπηθεί | Αποδέσμευση των buffers γραμμών που έχουν ολοκληρωθεί κατά τη σταδιακή ροή |
| Αξιολόγηση | Αντιμετώπιση της παλιάς αστοχίας· διατήρηση των άλλων απαιτήσεων | Περνούν η δοκιμή μνήμης, η σύγκριση εξόδου και οι έλεγχοι εξουσιοδότησης και επαναπροσπάθειας |
| Διάθεση | Ελεγχόμενη έκθεση με κριτήρια ανάκτησης | Περιορισμένη διάθεση artifact με συγκεκριμένο αναγνωριστικό |
| Επαλήθευση | Συγκρίσιμα στοιχεία από το production και υπεύθυνος | Η μνήμη σταθεροποιείται, ενώ η ορθότητα και ο χρόνος απόκρισης παραμένουν αποδεκτά |
Κρατήστε συνδέσμους ανάμεσα σε αυτά τα αποτελέσματα. Μια ενέργεια ανασκόπησης συμβάντος που λέει «βελτιώστε την παρακολούθηση» είναι δύσκολο να επαληθευτεί. Ένα καθορισμένο σήμα, υπεύθυνος, όριο και δοκιμασμένη απόκριση κάνουν την ολοκλήρωση παρατηρήσιμη.
Κρατήστε την αξιολόγηση ανεξάρτητη από την πρόταση
Ένας agent μπορεί να δημιουργήσει διόρθωση και να προτείνει δοκιμές. Η ομάδα πρέπει και πάλι να εξετάσει αν αυτές οι δοκιμές εντοπίζουν το αρχικό πρόβλημα. Διατηρήστε σύνολο αξιολόγησης με έλεγχο εκδόσεων, το οποίο η αλλαγή δεν μπορεί να αποδυναμώσει σιωπηρά.
Για την υποθετική διαρροή μνήμης, συγκρίνετε ισοδύναμους φόρτους εργασίας και εκδόσεις. Συμπεριλάβετε μεγάλες εξαγωγές, ακύρωση, επαναπροσπάθεια και περιπτώσεις απόρριψης πρόσβασης. Χρησιμοποιήστε συνθετικά δεδομένα που αντιπροσωπεύουν τις σχετικές δομές χωρίς να εκθέτουν εγγραφές πελατών.
Απορρίψτε μια ταχύτερη εξαγωγή αν παραλείπει εγγραφές, παρακάμπτει την εξουσιοδότηση ή υπερβαίνει το επιτρεπόμενο κόστος. Ορίστε αυτούς τους περιορισμούς πριν από τη βελτιστοποίηση. Διαφορετικά, το σύστημα μπορεί να βελτιώνει την επιλεγμένη μετρική ενώ χειροτερεύει την υπηρεσία.
Αν αλλάξετε τις οδηγίες ή το μοντέλο ενός agent, αξιολογήστε τη συμπεριφορά του σε αντιπροσωπευτικές εργασίες και γνωστές αστοχίες. Κρατήστε διαθέσιμη την προηγούμενη έκδοση. Η ενημέρωση οδηγιών δεν αποτελεί απόδειξη ότι το υποκείμενο μοντέλο έμαθε από ένα συμβάν.
Διαθέστε και μετρήστε το αποτέλεσμα
Μια διάθεση canary εκθέτει περιορισμένο σύνολο χρηστών ή κίνησης σε υποψήφια έκδοση. Συγκρίνετε τα σήματα της υποψήφιας έκδοσης με εκείνα της ομάδας ελέγχου και ορίστε πότε θα επεκτείνετε ή θα σταματήσετε τη διάθεση. Η αραιή κίνηση ή οι διαφορετικοί φόρτοι εργασίας μπορεί να μην επιτρέπουν ασφαλές συμπέρασμα από τη σύγκριση. Οδηγίες canary.
Η υποθετική ομάδα καταγράφει γραμμή βάσης από σταθερό συνθετικό φόρτο εργασίας. Δοκιμάζει τη διόρθωση, τη διαθέτει μέσα σε εγκεκριμένο όριο και ελέγχει συγκρίσιμες περιόδους στο production. Αν τα στοιχεία παραμένουν ανεπαρκή, καταγράφει την αβεβαιότητα αντί να δηλώσει όφελος.
Μετρήστε επίσης την επαναλαμβανόμενη χειροκίνητη εργασία. Ο αυτοματισμός μπορεί να μειώσει αυτή την εργασία, αλλά χρειάζεται και ο ίδιος συντήρηση και χειρισμό αστοχιών. Συμπεριλάβετε αυτά τα κόστη στην αξιολόγηση του αποτελέσματος. Οδηγίες για τη μείωση επαναλαμβανόμενης εργασίας.
Κάντε την καταγραφή ανατροφοδότησης χρήσιμη
Χρησιμοποιήστε αυτά τα πεδία στην άσκηση: παρατήρηση και έκδοση· γραμμή βάσης· προτεινόμενη αιτία· κριτήρια αποδοχής· έλεγχοι παλινδρόμησης· αλλαγή και ανασκόπηση· όριο διάθεσης· μετρημένο αποτέλεσμα· υπεύθυνος και επόμενη ανασκόπηση.
Το Maintaining του Taiga συνδέει ευρήματα αποθετηρίων με εργασίες αποκατάστασης. Τα Initiatives συνδέουν μια επιδιωκόμενη αλλαγή με τον σχεδιασμό και την παράδοσή της. Αυτά παρέχουν μέρη μιας ακολουθίας αποδεικτικών στοιχείων. Ο υπεύθυνος της υπηρεσίας σας πρέπει και πάλι να επαληθεύσει το deployment και το αποτέλεσμα στη λειτουργία. Maintaining, Initiatives.
Ένα ώριμο software factory συνδέει αυτή την εργασία μεταξύ προϊόντων. Κρατήστε ορατά τα δικαιώματα λήψης αποφάσεων και τα κριτήρια αξιολόγησης καθώς αυξάνεται ο αυτοματισμός. Η τελική απόδειξη είναι μια καλύτερη, επαληθευμένη υπηρεσία, όχι μεγαλύτερος αριθμός παραγόμενων αλλαγών.
Κάντε την άσκηση
Συμπληρώστε την καταγραφή ανατροφοδότησης αυτού του μαθήματος για την υποθετική διαρροή μνήμης. Ορίστε γραμμή βάσης, δοκιμή αποδοχής, ελέγχους παλινδρόμησης, όριο διάθεσης, μέτρηση στο production και υπεύθυνο. Προσθέστε κανόνα απόρριψης για μια ταχύτερη αλλά λιγότερο σωστή εξαγωγή.
Λήψη φύλλου εργασίας (Markdown)Η κατάργηση αυτής της επιλογής διαγράφει όλη την πρόοδο που έχει αποθηκευτεί σε αυτόν τον browser.
Η πρόοδος παραμένει σε αυτό το πρόγραμμα περιήγησης. Χωρίς λογαριασμό ή παρακολούθηση.
Πηγές και πρόσθετη μελέτη
- Google SRE: Postmortem Culture ↗
- Google SRE: Canarying Releases ↗
- Google SRE: Eliminating Toil ↗
- Taiga docs: Maintaining ↗
- Taiga docs: Initiatives ↗