Λίστα ελέγχου ετοιμότητας παραγωγής

Η μετάφραση του άρθρου ετοιμάστηκε ειδικά για τους φοιτητές του μαθήματος "Πρακτικές και εργαλεία DevOps", που ξεκινά σήμερα!

Λίστα ελέγχου ετοιμότητας παραγωγής

Έχετε κυκλοφορήσει ποτέ μια νέα υπηρεσία στην παραγωγή; Ή μήπως συμμετείχατε στην υποστήριξη τέτοιων υπηρεσιών; Αν ναι, τι σας παρακίνησε; Τι είναι καλό για την παραγωγή και τι είναι κακό; Πώς εκπαιδεύετε νέα μέλη της ομάδας για εκδόσεις ή συντήρηση υπαρχουσών υπηρεσιών.

Οι περισσότερες εταιρείες καταλήγουν να υιοθετούν προσεγγίσεις της «Άγριας Δύσης» όταν πρόκειται για πρακτικές βιομηχανικής λειτουργίας. Κάθε ομάδα αποφασίζει για τα δικά της εργαλεία και τις βέλτιστες πρακτικές μέσω δοκιμής και λάθους. Αλλά αυτό συχνά επηρεάζει όχι μόνο την επιτυχία των έργων, αλλά και τους μηχανικούς.

Η δοκιμή και το σφάλμα δημιουργούν ένα περιβάλλον όπου το δάχτυλο και η μετατόπιση ευθυνών είναι κοινά. Με αυτή τη συμπεριφορά, γίνεται όλο και πιο δύσκολο να μάθεις από τα λάθη και να μην τα επαναλάβεις.

Επιτυχημένοι οργανισμοί:

  • συνειδητοποιούν την ανάγκη για κατευθυντήριες γραμμές για την παραγωγή,
  • μελέτη βέλτιστων πρακτικών,
  • έναρξη συζητήσεων για θέματα ετοιμότητας παραγωγής κατά την ανάπτυξη νέων συστημάτων ή εξαρτημάτων,
  • διασφαλίζει τη συμμόρφωση με τους κανόνες προετοιμασίας για παραγωγή.

Η προετοιμασία για την παραγωγή περιλαμβάνει μια διαδικασία «επισκόπησης». Η ανασκόπηση μπορεί να έχει τη μορφή λίστας ελέγχου ή ενός συνόλου ερωτήσεων. Οι έλεγχοι μπορούν να γίνουν χειροκίνητα, αυτόματα ή και τα δύο. Αντί για στατικές λίστες απαιτήσεων, μπορείτε να δημιουργήσετε πρότυπα λιστών ελέγχου που μπορούν να προσαρμοστούν σε συγκεκριμένες ανάγκες. Με αυτόν τον τρόπο, οι μηχανικοί μπορούν να έχουν έναν τρόπο να κληρονομήσουν γνώσεις και αρκετή ευελιξία όταν απαιτείται.

Πότε να ελέγξετε μια υπηρεσία για ετοιμότητα για παραγωγή;

Είναι χρήσιμο να διεξάγετε έλεγχο ετοιμότητας παραγωγής όχι μόνο αμέσως πριν από την απελευθέρωση, αλλά και κατά τη μεταφορά του σε άλλη ομάδα επιχειρήσεων ή σε νέο υπάλληλο.

Ελέγξτε πότε:

  • Κυκλοφορείτε μια νέα υπηρεσία στην παραγωγή.
  • Μεταφέρετε τη λειτουργία της υπηρεσίας παραγωγής σε άλλη ομάδα, όπως η SRE.
  • Μεταφέρετε τη λειτουργία της υπηρεσίας παραγωγής σε νέους υπαλλήλους.
  • Οργάνωση τεχνικής υποστήριξης.

Λίστα ελέγχου ετοιμότητας παραγωγής

Πριν από λίγο καιρό, για παράδειγμα, ο Ι опубликовала λίστα ελέγχου για δοκιμή ετοιμότητας για παραγωγή. Αν και αυτή η λίστα προέρχεται από πελάτες του Google Cloud, θα είναι χρήσιμη και εφαρμόσιμη εκτός του Google Cloud.

Σχεδιασμός και ανάπτυξη

  • Αναπτύξτε μια επαναλαμβανόμενη διαδικασία κατασκευής που δεν απαιτεί πρόσβαση σε εξωτερικές υπηρεσίες και δεν εξαρτάται από την αποτυχία εξωτερικών συστημάτων.
  • Κατά τη διάρκεια της περιόδου σχεδιασμού και ανάπτυξης, ορίστε και ορίστε SLO για τις υπηρεσίες σας.
  • Καταγράψτε τις προσδοκίες για τη διαθεσιμότητα εξωτερικών υπηρεσιών από τις οποίες εξαρτάστε.
  • Αποφύγετε ένα μόνο σημείο αποτυχίας αφαιρώντας τις εξαρτήσεις από έναν μόνο παγκόσμιο πόρο. Αντιγράψτε τον πόρο ή χρησιμοποιήστε μια εναλλακτική όταν ο πόρος δεν είναι διαθέσιμος (για παράδειγμα, μια κωδικοποιημένη τιμή).

Διαχείριση διαμόρφωσης

  • Στατικές, μικρές και μη μυστικές ρυθμίσεις μπορούν να περάσουν μέσω παραμέτρων της γραμμής εντολών. Για οτιδήποτε άλλο, χρησιμοποιήστε υπηρεσίες αποθήκευσης διαμόρφωσης.
  • Μια δυναμική διαμόρφωση πρέπει να έχει εναλλακτικές ρυθμίσεις σε περίπτωση που η υπηρεσία διαμόρφωσης δεν είναι διαθέσιμη.
  • Η διαμόρφωση του περιβάλλοντος ανάπτυξης δεν πρέπει να σχετίζεται με τη διαμόρφωση παραγωγής. Διαφορετικά, αυτό μπορεί να οδηγήσει σε πρόσβαση από το περιβάλλον ανάπτυξης σε υπηρεσίες παραγωγής, γεγονός που μπορεί να προκαλέσει προβλήματα απορρήτου και διαρροή δεδομένων.
  • Τεκμηριώστε τι μπορεί να διαμορφωθεί δυναμικά και περιγράψτε την εναλλακτική συμπεριφορά εάν το σύστημα παράδοσης διαμόρφωσης δεν είναι διαθέσιμο.

Διαχείριση απελευθέρωσης

  • Τεκμηριώστε τη διαδικασία απελευθέρωσης λεπτομερώς. Περιγράψτε πώς οι εκδόσεις επηρεάζουν τα SLO (για παράδειγμα, προσωρινές αυξήσεις στον λανθάνοντα χρόνο λόγω ελλείψεων στην προσωρινή μνήμη).
  • Τεκμηριώστε τις απελευθερώσεις καναρινιών.
  • Αναπτύξτε ένα σχέδιο ανασκόπησης απελευθέρωσης καναρινιών και, εάν είναι δυνατόν, μηχανισμούς αυτόματης επαναφοράς.
  • Βεβαιωθείτε ότι οι επαναλήψεις μπορούν να χρησιμοποιούν τις ίδιες διαδικασίες με τις αναπτύξεις.

Παρατηρησιμότητα

  • Βεβαιωθείτε ότι συλλέγεται το σύνολο των μετρήσεων που απαιτούνται για το SLO.
  • Βεβαιωθείτε ότι μπορείτε να κάνετε διαφοροποίηση μεταξύ δεδομένων πελάτη και διακομιστή. Αυτό είναι σημαντικό για την εύρεση των αιτιών των δυσλειτουργιών.
  • Ρυθμίστε ειδοποιήσεις για να μειώσετε το κόστος εργασίας. Για παράδειγμα, καταργήστε τις ειδοποιήσεις που προκαλούνται από συνήθεις λειτουργίες.
  • Εάν χρησιμοποιείτε το Stackdriver, τότε συμπεριλάβετε μετρήσεις πλατφόρμας GCP στους πίνακες εργαλείων σας. Ρυθμίστε ειδοποιήσεις για εξαρτήσεις GCP.
  • Πάντα να διαδίδετε τα εισερχόμενα ίχνη. Ακόμα κι αν δεν συμμετέχετε στην ανίχνευση, αυτό θα επιτρέψει σε υπηρεσίες χαμηλότερου επιπέδου να εντοπίζουν προβλήματα στην παραγωγή.

Προστασία και ασφάλεια

  • Βεβαιωθείτε ότι όλες οι εξωτερικές συνδέσεις είναι κρυπτογραφημένες.
  • Βεβαιωθείτε ότι τα έργα παραγωγής σας έχουν τη σωστή ρύθμιση IAM.
  • Χρησιμοποιήστε δίκτυα για να απομονώσετε ομάδες παρουσιών εικονικής μηχανής.
  • Χρησιμοποιήστε ένα VPN για ασφαλή σύνδεση σε απομακρυσμένα δίκτυα.
  • Τεκμηρίωση και παρακολούθηση της πρόσβασης των χρηστών στα δεδομένα. Βεβαιωθείτε ότι όλη η πρόσβαση των χρηστών στα δεδομένα έχει ελεγχθεί και καταγραφεί.
  • Βεβαιωθείτε ότι τα τελικά σημεία εντοπισμού σφαλμάτων περιορίζονται από ACL.
  • Εξυγίανση των εισροών χρήστη. Διαμορφώστε τα όρια μεγέθους ωφέλιμου φορτίου για τις εισαγωγές χρήστη.
  • Βεβαιωθείτε ότι η υπηρεσία σας μπορεί να αποκλείσει επιλεκτικά την εισερχόμενη κίνηση για μεμονωμένους χρήστες. Αυτό θα αποκλείσει τις παραβιάσεις χωρίς να επηρεάσει άλλους χρήστες.
  • Αποφύγετε εξωτερικά τελικά σημεία που ξεκινούν πολλές εσωτερικές λειτουργίες.

Πρόβλεψη χωρητικότητας

  • Τεκμηριώστε την κλίμακα της υπηρεσίας σας. Για παράδειγμα: αριθμός χρηστών, μέγεθος εισερχόμενου ωφέλιμου φορτίου, αριθμός εισερχόμενων μηνυμάτων.
  • Τεκμηριώστε τις απαιτήσεις πόρων για την υπηρεσία σας. Για παράδειγμα: αριθμός αποκλειστικών παρουσιών εικονικής μηχανής, αριθμός παρουσιών Spanner, εξειδικευμένο υλικό όπως GPU ή TPU.
  • Περιορισμοί πόρων εγγράφου: τύπος πόρου, περιοχή κ.λπ.
  • Τεκμηριώστε τους περιορισμούς ποσοστώσεων για τη δημιουργία νέων πόρων. Για παράδειγμα, ο περιορισμός του αριθμού των αιτημάτων GCE API εάν χρησιμοποιείτε το API για τη δημιουργία νέων παρουσιών.
  • Εξετάστε το ενδεχόμενο να εκτελέσετε δοκιμές φορτίου για να αναλύσετε την υποβάθμιση της απόδοσης.

Αυτό είναι όλο. Τα λέμε στην τάξη!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο