configuration management devops practices
Τι είναι η διαχείριση διαμόρφωσης στις πρακτικές DevOps;
Εννοια του Συνεχής δοκιμή σε DevOps εξηγήθηκε λεπτομερώς στο προηγούμενο σεμινάριό μας.
Το βασικό επίκεντρο της διαχείρισης διαμόρφωσης στο DevOps είναι η παράδοση,
- Υποδομή ως κωδικός
- Διαμόρφωση ως κώδικα
Πρέπει να διαβάσετε => Αποκλειστική σειρά εκπαιδευτικών DevOps
πώς να ξεκινήσετε ένα αρχείο .jar
Υπάρχουν πολλά οφέλη από το «Infrastructure as a code» και το «Configuration as a code» στην πρακτική του DevOps.
-
- Οι διαμορφώσεις ελέγχονται από την Έκδοση
- Αυτοματοποιημένη και τυποποιημένη
- Αφαιρεί την εξάρτηση
- Ρυθμίσεις υπέρυθρων χωρίς σφάλματα
- Ενισχύει τη συνεργασία μεταξύ της ομάδας Επιχειρήσεων και Ανάπτυξης
- Διόρθωση μετατόπισης διαμόρφωσης
- Αντιμετώπιση της υποδομής ως ευέλικτος πόρος
- Αυτοματοποιημένη κλιμάκωση υποδομής
- Διατήρηση συνοχής στις ρυθμίσεις
VIDEO Part 4 Block 1: Διαχείριση διαμόρφωσης- 23 λεπτά 7 δευτερόλεπτα
Αντίγραφο:
Σε αυτό το μέρος, θα μάθουμε Διαχείριση διαμόρφωσης, διαχείριση κυκλοφορίας και παρακολούθηση απόδοσης εφαρμογών σε DevOps.
Εδώ, στο μπλοκ 1, θα επικεντρωθούμε στη Διαμόρφωση διαμόρφωσης και θα κατανοήσουμε τι είναι η διαχείριση διαμόρφωσης και πώς διαφέρει στα DevOps και τις παραδοσιακές μεθόδους.
Αρχικά, ας μάθουμε τι είναι η διαχείριση διαμόρφωσης;
Η διαχείριση διαμόρφωσης όπως εξηγεί το ίδιο το όνομα, δεν είναι τίποτα άλλο από τη διαχείριση όλων των διαμορφώσεων των περιβαλλόντων που φιλοξενεί η εφαρμογή λογισμικού.
Όπως γνωρίζουμε, έχουμε διαφορετικά περιβάλλοντα σε όλο το SDLC σε DevOps ξεκινώντας με δοκιμές μονάδας, δοκιμή ενοποίησης, δοκιμές συστήματος, δοκιμές αποδοχής και δοκιμές τελικού χρήστη.
Και εξήγησα επίσης στα προηγούμενα σεμινάριά μου ότι το περιβάλλον που δημιουργήθηκε για αυτές τις δοκιμές θα γινόταν σταδιακά πιο περίπλοκο καθώς προχωρούσε προς το περιβάλλον προπαραγωγής και παραγωγής.
Έτσι, βασικά, η διαχείριση διαμόρφωσης είναι η αυτοματοποιημένη διαδικασία για τη διαχείριση όλων των διαμορφώσεων κάθε ενός από αυτά τα περιβάλλοντα.
Τότε ποια είναι η διαφορά μεταξύ της παραδοσιακής διαχείρισης διαμόρφωσης και της διαχείρισης διαμόρφωσης DevOps;
Στις παραδοσιακές μεθόδους διαχείρισης διαμόρφωσης, η ομάδα συνήθιζε να διαχειρίζεται αυτές τις διαμορφώσεις διαφόρων περιβαλλόντων μέσω επίσημης τεκμηρίωσης, όπου κάθε μία από τις διαμορφώσεις που χρησιμοποιείται για την εγγραφή στα έγγραφα και η ομάδα διαμόρφωσης ή ο διαχειριστής που χρησιμοποιούνται για τον χειρισμό του ελέγχου έκδοσης αυτών των εγγράφων.
Και καθώς και όταν υποβάλλεται σε αλλαγές, θα αναλάβει επίσης την ευθύνη της ρύθμισης του περιβάλλοντος και της μη αυτόματης διαχείρισης των διαμορφώσεων
Τώρα στο DevOps, συνήθως, όλες αυτές οι διαδικασίες διαχείρισης διαμόρφωσης είναι αρκετά καλά αυτοματοποιημένες και οι διαμορφώσεις ενσωματώνονται σε μορφή κώδικα ή σεναρίων και ελέγχονται μέσω του εργαλείου ελέγχου έκδοσης.
Σε αυτό το πλαίσιο, μπορούμε να πούμε ότι η ομάδα Επιχειρήσεων είναι ενσωματωμένη στην ανάπτυξη για τη διαχείριση των περιβαλλόντων μέσω του εργαλείου ελέγχου μιας έκδοσης.
Έτσι, το βασικό επίκεντρο της διαχείρισης διαμόρφωσης στο DevOps είναι,
-
-
- Υποδομή ως κωδικός
- Διαμόρφωση ως κώδικα
-
Τι σημαίνει στην πραγματικότητα «Υποδομή ως, ως κώδικας»; Ορίζει ολόκληρο τον ορισμό περιβάλλοντος ως κώδικα ή σενάριο αντί για εγγραφή σε επίσημο έγγραφο.
Τότε τι περιλαμβάνει ο ορισμός του περιβάλλοντος; Ο ορισμός περιβάλλοντος περιλαμβάνει γενικά, τη δημιουργία διακομιστών, τη διαμόρφωση δικτύων και τη δημιουργία άλλων υπολογιστικών πόρων, οι οποίοι αποτελούν μέρος της δημιουργίας υποδομής πληροφορικής. Έτσι, όλες αυτές οι λεπτομέρειες θα γράφονταν ως αρχείο ή με τη μορφή κώδικα και θα ελέγχονταν στο εργαλείο ελέγχου έκδοσης.
Αυτό το σενάριο ή κώδικας, που ελέγχεται στο στοιχείο ελέγχου έκδοσης, θα γίνει η μοναδική πηγή καθορισμού του περιβάλλοντος ή ακόμη και ενημέρωσης αυτών των περιβαλλόντων.
Απλά για να δώσω ένα απλό Παράδειγμα , εάν πρέπει να προσθέσουμε έναν διακομιστή στο συγκεκριμένο περιβάλλον, το μόνο που θα κάναμε ήταν να ενημερώσουμε αυτές τις πληροφορίες στα σενάρια περιβάλλοντος και να εκτελέσουμε τον αγωγό παράδοσης, αντί να μεταβούμε χειροκίνητα και να γυρίσουμε ένα νέο περιβάλλον με τον πρόσθετο διακομιστή ή αναζητώντας τη βοήθεια των διαχειριστών του συστήματος για να το κάνουν αυτό.
Έτσι, η ομορφιά εδώ είναι ότι ο προγραμματιστής ή ο υπεύθυνος δοκιμών δεν χρειάζεται να είναι ειδικός διαχειριστής συστήματος για να ρυθμίσει τους διακομιστές τους για ανάπτυξη ή δοκιμή δραστηριότητας.
Έτσι, η υποδομή που έχει ρυθμιστεί στο DevOps θα είναι πλήρως αυτοματοποιημένη και βασικά ακολουθεί το σενάριο που ελέγχεται μέχρι τον έλεγχο έκδοσης ξεκινώντας από την εγκατάσταση των διακομιστών, τη διαμόρφωσή τους, την εγκατάσταση του λειτουργικού συστήματος, μέχρι την εγκατάσταση των καναλιών επικοινωνίας αυτών των παρουσιών με την ανάπτυξη λογισμικό.
Ποια είναι η διαμόρφωση ως κωδικός;
Η διαμόρφωση ως κώδικα δεν είναι παρά ο ορισμός όλων των διαμορφώσεων των διακομιστών ή οποιωνδήποτε άλλων πόρων ως κώδικα ή σεναρίου και έλεγχος τους σε έλεγχο έκδοσης.
Αυτά τα σενάρια διαμόρφωσης που ελέγχονται στο στοιχείο ελέγχου εκδόσεων εκτελούνται ως μέρος του αγωγού ανάπτυξης για να ρυθμίσουν την υποδομή και τις διαμορφώσεις της με αυτοματοποιημένο τρόπο.
Λοιπόν, ο ορισμός των ρυθμίσεων περιλαμβάνει παραμέτρους που καθορίζουν τις προτεινόμενες ρυθμίσεις για την επιτυχημένη εκτέλεση του λογισμικού. Ή ένα σύνολο εντολών που πρέπει να εκτελεστούν αρχικά για τη ρύθμιση της εφαρμογής λογισμικού. Ή ακόμη και θα μπορούσε να είναι διαμορφώσεις κάθε στοιχείου του λογισμικού που πρόκειται να οριστεί, ή συγκεκριμένοι ρόλοι χρηστών, δικαιώματα χρήστη κ.λπ.,
Απλός Παράδειγμα θα ήταν να ορίσετε τη λειτουργία εναλλαγής, όπου οι προεπιλεγμένες τιμές ρυθμίζονται ως μέρος της παραμέτρου διαμόρφωσης.
Η προσθήκη άλλης θύρας σε τείχος προστασίας θα ήταν άλλη Παράδειγμα , τα οποία μπορούν να ενημερωθούν στο σενάριο και αργότερα αυτά τα σενάρια εκτελούνται ως μέρος του αγωγού παράδοσης.
Διάφορα εργαλεία είναι διαθέσιμα για την πραγματοποίηση της αυτοματοποίησης υποδομής στην αγορά. Λίγοι από αυτούς είναι Chef, Puppet, Terraform, κ.λπ., Chef και Puppet είναι εργαλείο διαχείρισης διαμόρφωσης με βάση ρουμπίνι, ενώ το Terraform είναι ένα εργαλείο παροχής.
Επίσης, αυτές τις μέρες, καθώς σχεδόν όλες οι εφαρμογές θα φιλοξενούνται στο cloud, AWS, οι ίδιες παρέχουν RESTAPI, τα οποία μπορούν να αξιοποιηθούν για αυτόν τον σκοπό.
Έχω μια τεράστια λίστα πλεονεκτημάτων της διαχείρισης διαμόρφωσης στο DevOps, αντί να ορίζω την υποδομή και τις διαμορφώσεις ως κώδικα.
Ας τα περάσουμε ένα προς ένα.
Όλες οι διαμορφώσεις και οι λεπτομέρειες της υποδομής ελέγχονται από την έκδοση που είναι ένα μεγάλο όφελος στην εφαρμογή του DevOps.
# 1) Αυτό βοηθά την ομάδα να διαχειριστεί τις αλλαγές στους διακομιστές και τη διαμόρφωση με αυτοματοποιημένο τρόπο και βοηθάει στον γρήγορο εντοπισμό σφαλμάτων σε περίπτωση αποτυχίας, σε σύντομο χρονικό διάστημα και επιτρέπει επίσης την γρήγορη επαναφορά στην προηγούμενη έκδοση, χωρίς να προκαλεί διακοπές στους πελάτες.
#δύο) Δεδομένου ότι αυτά τα σενάρια βρίσκονται στον κεντρικό διακομιστή και όλοι στην ομάδα ξέρουν τι υπάρχει σε κάθε ένα από αυτά τα σενάρια και ποιες είναι οι αλλαγές που έγιναν σε καθεμία από αυτές τις εκδόσεις. Αυτό επιτρέπει επίσης στην ομάδα, να επιστρέψει στην παλαιότερη έκδοση, εάν υπάρχει κάποιο πρόβλημα στις τελευταίες εκδόσεις.
Φανταστείτε, εάν υπάρχει σφάλμα διακομιστή, πόσο χρόνο θα χρειαζόταν για να το επαναφέρετε χειροκίνητα. Και τώρα ορίζοντας την υποδομή ως σενάριο και έλεγχο έκδοσης, μπορούμε αμέσως να επαναφέρουμε μεταβαίνοντας στην προηγούμενη έκδοση.
# 3) Η διαχείριση των διαμορφώσεων ως κωδικός εμποδίζει επίσης κάποιον να κάνει αλλαγές στο σύστημα κατά λάθος και αποτρέπει τυχόν ζημιές που προκαλούνται αργότερα στην παραγωγή.
Δεδομένου ότι η διαχείριση διαμόρφωσης είναι πλήρως αυτοματοποιημένη, η μη αυτόματη παρέμβαση είτε για ρύθμιση ή ενημέρωση εξαλείφεται πλήρως.
Φανταστείτε τον αντίκτυπο στο κόστος, την ποιότητα και το χρόνο που νωρίτερα, οι άνθρωποι εξαρτώνταν από τους ανθρώπινους πόρους για να εκτελέσουν αυτές τις διαμορφώσεις χειροκίνητα και όταν ορισμένες διαμορφώσεις χάνονται ή δεν ρυθμίζονται όπως απαιτείται.
Έτσι, η αυτοματοποίηση της διαχείρισης διαμόρφωσης όχι μόνο ωφέλησε στην εξοικονόμηση χρόνου αλλά και στην εξάλειψη τέτοιων ανθρώπινων σφαλμάτων και στη βελτίωση της ποιότητας. Επίσης, το πρότυπο κωδικοποίησης βοήθησε την ομάδα να ακολουθήσει το καθορισμένο πρότυπο στην κωδικοποίηση και την αυτοματοποίηση αντί να ακολουθεί τη φαντασία κάθε ατόμου που γράφει τον οδηγό διαμόρφωσης.
Όπως συζητήθηκε προηγουμένως, οι διαμορφώσεις που παραδίδουν ως κώδικες έχουν καταργήσει την εξάρτηση από ένα άτομο ή μια ομάδα που ονομάζεται config manager ή ομάδα config. Η ομάδα ανάπτυξης δεν χρειάζεται να περιμένει να έρθει η ομάδα config και να διορθώσει οποιοδήποτε πρόβλημα infra ή config.
Ή ακόμα και για τη ρύθμιση των infra και των διαμορφώσεων, οι οποίες είναι πλήρως αυτοματοποιημένες και ελέγχονται από την έκδοση. Έτσι, οποιοσδήποτε στην ομάδα, είτε πρόκειται για προγραμματιστή είτε για δοκιμή, μπορεί να περιστρέψει έναν διακομιστή και να πραγματοποιήσει τις διαμορφώσεις για τους σκοπούς ανάπτυξης και δοκιμής. Ως εκ τούτου, η εγκατάσταση του διακομιστή και οι διαμορφώσεις έχουν γίνει ανεξάρτητες από το άτομο.
Αυτό διασφαλίζει επίσης ότι οι ίδιοι διακομιστές δεν χρησιμοποιούνται τόσο από τις ομάδες ανάπτυξης όσο και από τις ομάδες QA για τις δραστηριότητές τους, κάτι που συνήθως συνέβαινε νωρίτερα.
Η υποδομή και οι διαμορφώσεις που ορίζονται ως ένας κοινός κώδικας μαζί με την αυτοματοποίηση και τον έλεγχο έκδοσης τυποποιούν όλα τα περιβάλλοντα και τις ρυθμίσεις. Έτσι, αυτό όχι μόνο καθιστά την εργασία εντοπισμού σφαλμάτων εύκολη για τους προγραμματιστές, αλλά και εξαλείφει τα ανθρώπινα λάθη που οδηγούν σε ρυθμίσεις infra χωρίς σφάλματα, αλλιώς κάτι που θα προκαλούσε τεράστια ζημιά, αν δεν εντοπιστεί νωρίς.
Εδώ, μπορούμε να δούμε ξεκάθαρα τη σαφή συνεργασία μεταξύ του Dev και των Ops, όπου και οι δύο βασίζονται σε μία μόνο πηγή για τη διεξαγωγή των infra setup και και οι δύο ομάδες συμμετέχουν ενεργά στην αυτοματοποίηση και ρύθμιση ολόκληρης της διαχείρισης διαμόρφωσης.
Αυτή η συνεργασία για την επίτευξη ενός κοινού στόχου ενισχύει τη συνεργασία μεταξύ των δύο ομάδων, Ανάπτυξη και επιχειρήσεις.
Διόρθωση Drift Configuration
Τι είναι το Drift Configuration;
Μικρές διαφορές και ασυνέπειες μεταξύ των διακομιστών, οι οποίες μερικές φορές συμβαίνουν λόγω μη αυτόματης ενημέρωσης, η οποία συσσωρεύεται για μια χρονική περίοδο ονομάζεται Configuration drift.
Αυτό δεν είναι καλή κατάσταση, επειδή αυτή η ασυνέπεια στους διακομιστές αφήνει ορισμένα αρχεία προγράμματος όπως το μανιφέστο, το βιβλίο αναπαραγωγής να μην εκτελείται αξιόπιστα σε όλους τους διακομιστές και ως εκ τούτου οδηγεί σε αποτυχία αυτοματισμού. Αυτό πρέπει λοιπόν να αποφευχθεί για να κάνει η ομάδα να χρησιμοποιεί αποτελεσματικά τον αυτοματισμό των διαμορφώσεων.
Η διαχείριση των infra και config ως κωδικός και έκδοση που τους ελέγχει βοήθησε την ομάδα να αποφύγει ή να διορθώσει κάθε είδους παραμόρφωση μεταξύ διαφόρων περιβαλλόντων ή μεταξύ προγραμματιστών και ρυθμίσεων παραγωγής διατηρώντας με συνέπεια τις διαμορφώσεις σε όλους τους διακομιστές.
Έτσι, μια ομάδα μπορεί να είναι καλύτερα εξασφαλισμένη για παρόμοιες ρυθμίσεις παραμέτρων για την ανάπτυξη που έχει δημιουργηθεί με αυτήν της παραγωγής. Αυτό τους βοηθά επίσης να προσομοιώσουν τα προβλήματα παραγωγής στο περιβάλλον των προγραμματιστών.
Έτσι, αυτό βοηθά στην αποτροπή κάθε είδους απροσδόκητων αλλαγών που μπορεί να προσπαθήσει κάποιος από τα μέλη της ομάδας στο infra, το οποίο θα μπορούσε να σπάσει το σετ και επίσης να επιβάλει στην ομάδα να μην κάνει αλλαγές στο σετ εκτός εάν έχουν συνδεθεί ως έναν κωδικό στο αποθετήριο.
Η παράδοση της υποδομής και της διαμόρφωσής της ως κώδικα επέτρεψε στην ομάδα να τη διαχειριστεί ως ευέλικτος πόρος για την κάλυψη των δυναμικών επιχειρηματικών αναγκών του πελάτη.
Είναι ένα είδος plug and play τώρα. Μια ομάδα μπορεί συγκεκριμένα να μπει στον συγκεκριμένο διακομιστή ή δίκτυο και να κάνει τις αλλαγές σε αυτά. Θα μπορούσε να είναι απλώς ενημέρωση του διακομιστή παροχής ή προσθήκη ή τροποποίηση του χώρου αποθήκευσης σε ένα συγκεκριμένο δίκτυο ή ακόμη και ενημέρωση του λειτουργικού συστήματος και όλα μπορούν να ενημερώνονται ανεξάρτητα ως ευέλικτος πόρος.
Προηγουμένως, για να αλλάξετε μια παράμετρο διαμόρφωσης, χρειάστηκε πολύς χρόνος, ειδικά ενώ ήταν απαραίτητο να ενημερωθεί σε όλους τους διακομιστές, αλλά τώρα είναι μόνο μία κίνηση. Ενημερώστε το σενάριο και ανεβάστε στο εργαλείο ελέγχου έκδοσης και όλα γίνονται.
Υπάρχει ευελιξία να απορρίψετε πλήρως την υπάρχουσα υποδομή και να δημιουργήσετε εντελώς μια άλλη. Έτσι, η διαχείριση της υποδομής και των διαμορφώσεων έχει γίνει πολύ εύκολη τώρα. Λοιπόν, οι λύσεις που βασίζονται σε σύννεφο έχουν επιτρέψει στην υποδομή να κλιμακωθεί αυτόματα προσθέτοντας τους πρόσθετους πόρους υπολογιστών ή αποθήκευσης όπως απαιτείται και μειώνοντας όταν δεν απαιτούνται.
Αυτό επέτρεψε τη βελτιστοποίηση της χρήσης πόρων με βάση τη ζήτηση. Εάν θέλουμε να αυξήσουμε την υποδομή αυξάνοντας το μέγεθος του μηχανήματος, μπορούμε να το κάνουμε αμέσως. Ομοίως, εάν θέλουμε να κάνουμε κλίμακα ή να προσθέσουμε άλλη ρύθμιση ή να προσθέσουμε περισσότερες διεπαφές, μπορούμε να το κάνουμε σε δευτερόλεπτα απλώς ενημερώνοντάς τον στον κώδικα και εκτελώντας τον αυτοματοποιημένο αγωγό.
Τέλος, η υποδομή, η παράδοση ως κώδικα σε ελεγχόμενο περιβάλλον βοηθά στη διατήρηση της συνοχής των περιβαλλόντων σε διάφορες ρυθμίσεις. Αυτό βοηθά επίσης στον εντοπισμό σφαλμάτων του ζητήματος. Αυτό το σημείο έχω καλύψει νωρίτερα, επίσης, σε κάποιο βαθμό, ενώ μιλάω για μετατόπιση ρυθμίσεων.
Αυτό είναι και αυτό ολοκληρώνει τη συζήτησή μας σχετικά με τη διαχείριση διαμόρφωσης στο DevOps, για το τι είναι η υποδομή και οι διαμορφώσεις ως κώδικας και ποια είναι τα οφέλη της.
Στο επερχόμενο σεμινάριό μας, θα συζητήσουμε τις πτυχές διαχείρισης κυκλοφορίας στο DevOps.
Εκπαιδευτικό πρόγραμμα PREV | ΕΠΟΜΕΝΟ Φροντιστήριο
Συνιστώμενη ανάγνωση
- Διαχείριση απελευθέρωσης σε DevOps
- Οδηγός δοκιμών DevOps: Πώς θα επηρεάσει ο έλεγχος QA το DevOps;
- Συνεχής δοκιμή σε DevOps
- Εκμάθηση δοκιμών διαμόρφωσης με παραδείγματα
- Συνεχής ανάπτυξη σε DevOps
- Τα καλύτερα εργαλεία ανοιχτού κώδικα DevOps (με εγκατάσταση και διαμόρφωση)
- Κορυφαία 10 Εργαλεία συνεχούς δοκιμής για δοκιμές DevOps (Λίστα 2021)
- Επανεξέταση εργαλείου διαχείρισης δοκιμών TestLodge