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

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

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

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

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

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

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

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

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

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

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

Εκτελέστε έλεγχο όταν:

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός χωρητικότητας

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

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

Πηγή: www.habr.com

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster