Αποφασίστε τη διάθεση με αποδεικτικά στοιχεία
ΟλοκληρώθηκεΕλέγξτε την έκδοση, τον στόχο, τον υπολειπόμενο κίνδυνο και τη μέθοδο ανάκτησης. Διαχωρίστε merge, deployment και διαθεσιμότητα προς χρήστες όταν το απαιτεί το σύστημα.
Εκδότης TaigaΠώς γράφουμε
Ελέγξτε τι κατανοήσατεΈνας αξιολογητής εγκρίνει το commit A, αλλά το deployment κάνει build του commit B με πρόσθετη αλλαγή εξουσιοδότησης. Τι χρειάζεται;Κάντε την άσκηση
Τι θα μάθετε
- Προσδιορίστε σε τι πρέπει να αναφέρεται μια απόφαση διάθεσης.
- Διακρίνετε merge, deployment και ενεργοποίηση λειτουργίας για χρήστες.
- Ορίστε συνθήκες διακοπής ή αντιστροφής μιας διάθεσης.
Δηλώστε την απόφαση με ακρίβεια
Ένα πράσινο pipeline παρέχει αποδεικτικά στοιχεία από ένα σύνολο ελέγχων. Δεν αποτελεί πλήρη περιγραφή της απόφασης διάθεσης. Ο υπεύθυνος χρειάζεται να γνωρίζει τι θα αλλάξει, πού θα αλλάξει και ποιες συνέπειες παραμένουν.
Για μια πλασματική εξαγωγή δεδομένων πελατών, προσδιορίστε το αποδεκτό commit και το artifact που παρήχθη από αυτό. Ονομάστε το περιβάλλον-στόχο. Συνδέστε τα σχετικά tests, την ανασκόπηση και κάθε εγκεκριμένη εξαίρεση. Συμπεριλάβετε τις αλλαγές δεδομένων ή υποδομής που συνοδεύουν την εφαρμογή.
Το SSDF του NIST παρέχει πρακτικές ασφαλούς ανάπτυξης, ενώ το SLSA provenance βοηθά να περιγραφεί πώς παρήχθη ένα artifact. Κανένα δεν αφαιρεί την ανάγκη να αποφασιστεί αν αυτή η διάθεση είναι κατάλληλη για αυτή την υπηρεσία. NIST SSDF, SLSA provenance.
Διαχωρίστε τρία γεγονότα
Το merge τοποθετεί μια αλλαγή πηγαίου κώδικα σε ένα branch. Το deployment τοποθετεί ένα artifact σε ένα περιβάλλον. Η ενεργοποίηση μιας λειτουργίας την κάνει διαθέσιμη στους χρήστες. Αυτά τα γεγονότα μπορούν να συμπίπτουν, αλλά δεν είναι απαραίτητα το ίδιο γεγονός.
Μια υπηρεσία μπορεί να κάνει deployment μιας ανενεργής λειτουργίας και να την ενεργοποιήσει αργότερα. Ένα migration βάσης δεδομένων μπορεί να επηρεάσει την παραγωγή πριν εμφανιστεί ορατή λειτουργία. Ορίστε την πραγματική ακολουθία αντί να υποθέτετε ότι το merge ενός PR περιγράφει κάθε συνέπεια.
Για την εξαγωγή, ένα feature flag μπορεί να περιορίζει την αρχική πρόσβαση των χρηστών στη λειτουργία. Δεν προστατεύει αυτόματα ένα νέο endpoint ούτε αντιστρέφει migration του schema. Επαληθεύστε τον έλεγχο στο σημείο όπου εμφανίζεται η συνέπεια.
Εξετάστε μια συνοπτική καταγραφή αποδεικτικών στοιχείων
Χρησιμοποιήστε καταγραφή που μπορεί να εξετάσει άλλο αρμόδιο άτομο:
- Σκοπός και επηρεαζόμενοι χρήστες.
- Ταυτότητα commit και artifact.
- Σχετικοί έλεγχοι συμπεριφοράς, ασφάλειας και συμβατότητας.
- Περιβάλλον-στόχος και ταυτότητα εκτέλεσης.
- Εξαιρέσεις που παραμένουν, με υπευθύνους και συνθήκες λήξης.
- Παρακολούθηση, μέθοδος ανάκτησης και υπεύθυνος απόκρισης.
Κρατήστε τους ισχυρισμούς συγκεκριμένους. Το «τα tests πέρασαν» είναι ασθενέστερο από σύνδεσμο σε αποτελέσματα για το commit της έκδοσης με σαφή περιγραφή κάλυψης. Το «το rollback είναι διαθέσιμο» είναι ασθενέστερο από δοκιμασμένη διαδικασία με δηλωμένα όρια.
Αποφασίστε πώς θα σταματήσετε
Ορίστε συνθήκες διάθεσης πριν από την εκτέλεση. Για την πλασματική εξαγωγή, σταματήστε αν πετύχει πρόσβαση σε άλλον οργανισμό, αν το artifact διαφέρει από το αποδεκτό κρυπτογραφικό αποτύπωμα ή αν δεν είναι διαθέσιμη η ανάκτηση. Αυτές είναι ενδεικτικές συνθήκες, όχι καθολική λίστα ελέγχου.
Μετά το deployment, εξετάστε τα σήματα που έχουν σημασία για τους χρήστες. Συγκρίνετε τη συμπεριφορά σφαλμάτων και τους χρόνους απόκρισης με τους αποδεκτούς στόχους της υπηρεσίας. Μια υγιής διεργασία δεν αποδεικνύει ότι λειτουργεί η ροή εργασίας του χρήστη.
Αν μια συνθήκη δεν καλύπτεται, χρησιμοποιήστε τη συμφωνημένη απόκριση. Αυτό μπορεί να σημαίνει απενεργοποίηση της λειτουργίας για χρήστες, rollback συμβατού κώδικα ή ανάκτηση δεδομένων. Επιλέξτε την ενέργεια που αντιμετωπίζει την αστοχία χωρίς να δημιουργεί μεγαλύτερη.
Διατηρήστε την απόφαση μετά τη διάθεση
Καταγράψτε το artifact που πράγματι εγκαταστάθηκε και το αποτέλεσμα. Αν η εκτέλεση διαφέρει από το σχέδιο, κάντε τη διαφορά ορατή. Χρησιμοποιήστε περιστατικά και απρόβλεπτη εργασία στον σχεδιασμό της επόμενης διάθεσης.
Ένα αυτοματοποιημένο σύστημα παράδοσης πρέπει να κάνει αυτή την καταγραφή ευκολότερη στην εξέταση. Δεν πρέπει να απαιτεί από τον αξιολογητή να ανασυνθέσει τη διάθεση από ασύνδετες συνομιλίες, logs και στιγμιότυπα οθόνης. Τα σαφή αποδεικτικά στοιχεία επιτρέπουν στις ομάδες να αυτοματοποιούν συνήθη εργασία διατηρώντας αποφάσεις με λογοδοσία.
Κάντε την άσκηση
Προετοιμάστε πλασματικό σημείωμα διάθεσης για την εξαγωγή δεδομένων πελατών. Συμπεριλάβετε commit, κρυπτογραφικό αποτύπωμα artifact, περιβάλλον, έλεγχο εξουσιοδότησης, επίδραση migration, υπεύθυνο παρακολούθησης και έναυσμα ανάκτησης. Καταγράψτε μία συνθήκη που θα σταματούσε τη διάθεση ακόμη και αν περνούν τα unit tests.
Λήψη φύλλου εργασίας (Markdown)Η κατάργηση αυτής της επιλογής διαγράφει όλη την πρόοδο που έχει αποθηκευτεί σε αυτόν τον browser.
Η πρόοδος παραμένει σε αυτό το πρόγραμμα περιήγησης. Χωρίς λογαριασμό ή παρακολούθηση.