GitOps: άλλο τσιτάτο ή μια σημαντική ανακάλυψη στον αυτοματισμό;

GitOps: άλλο τσιτάτο ή μια σημαντική ανακάλυψη στον αυτοματισμό;

Οι περισσότεροι από εμάς, παρατηρώντας έναν άλλο νέο όρο στη μπλογκόσφαιρα της πληροφορικής ή στο συνέδριο, αργά ή γρήγορα θέτουμε μια παρόμοια ερώτηση: «Τι είναι αυτό; Άλλο ένα τσιτάτο, ένα «τσιτάτο» ή κάτι πραγματικά άξιο προσοχής, μελέτης και υπόσχεσης νέων οριζόντων;» Το ίδιο μου συνέβη και με τον όρο GitOps Πριν καιρό. Οπλισμένοι με πολλά υπάρχοντα άρθρα, καθώς και τις γνώσεις συναδέλφων από την εταιρεία GitLab, προσπάθησα να καταλάβω τι είδους θηρίο είναι αυτό και πώς μπορεί να μοιάζει η χρήση του στην πράξη.

Παρεμπιπτόντως, για την καινοτομία του όρου GitOps Η πρόσφατη έρευνά μας λέει επίσης: περισσότεροι από τους μισούς ερωτηθέντες δεν έχουν ακόμη αρχίσει να εργάζονται με τις αρχές της.

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

Οι υπηρεσίες Cloud εκπλήρωσαν αυτές τις απαιτήσεις με μεγάλη επιτυχία και ήταν αυτές που έδωσαν σημαντική ώθηση στην ανάπτυξη της προσέγγισης IaC. Αυτό είναι κατανοητό. Εξάλλου, κατέστησαν δυνατή τη διαμόρφωση ενός εντελώς εικονικού κέντρου δεδομένων: δεν υπάρχουν φυσικοί διακομιστές, rack ή στοιχεία δικτύου· ολόκληρη η υποδομή μπορεί να περιγραφεί χρησιμοποιώντας σενάρια και αρχεία διαμόρφωσης.

Ποια είναι λοιπόν ακριβώς η διαφορά; GitOps από IaC? Με αυτή την ερώτηση ξεκίνησα την έρευνά μου. Αφού μίλησα με συναδέλφους, μπόρεσα να καταλήξω στην ακόλουθη σύγκριση:

GitOps

IaC

Όλος ο κώδικας αποθηκεύεται σε ένα αποθετήριο git

Η έκδοση κώδικα είναι προαιρετική

Δηλωτικός Κωδικός Περιγραφή / Ανικανότητα

Τόσο οι δηλωτικές όσο και οι επιτακτικές περιγραφές είναι αποδεκτές

Οι αλλαγές τίθενται σε ισχύ χρησιμοποιώντας τους μηχανισμούς Αίτημα συγχώνευσης / Αίτημα έλξης

Η συμφωνία, η έγκριση και η συνεργασία είναι προαιρετικές

Η διαδικασία διάθεσης ενημερώσεων είναι αυτοματοποιημένη

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

Με άλλα λόγια GitOps γεννήθηκε ακριβώς μέσα από την εφαρμογή των αρχών IaC. Πρώτον, η υποδομή και οι διαμορφώσεις θα μπορούσαν πλέον να αποθηκευτούν με τον ίδιο τρόπο όπως οι εφαρμογές. Ο κώδικας είναι εύκολος στην αποθήκευση, εύκολος στην κοινή χρήση, σύγκριση και χρήση δυνατοτήτων έκδοσης εκδόσεων. Εκδόσεις, κλάδοι, ιστορία. Και όλα αυτά σε ένα μέρος δημόσια προσβάσιμο σε όλη την ομάδα. Ως εκ τούτου, η χρήση συστημάτων ελέγχου εκδόσεων έγινε μια εντελώς φυσική εξέλιξη. Συγκεκριμένα, το git, ως το πιο δημοφιλές.

Από την άλλη, κατέστη δυνατή η αυτοματοποίηση των διαδικασιών διαχείρισης υποδομής. Τώρα αυτό μπορεί να γίνει πιο γρήγορα, πιο αξιόπιστα και φθηνότερα. Επιπλέον, οι αρχές του CI / CD ήταν ήδη γνωστές και δημοφιλείς μεταξύ των προγραμματιστών λογισμικού. Χρειάστηκε μόνο να μεταφερθούν και να εφαρμοστούν ήδη γνωστές γνώσεις και δεξιότητες σε μια νέα περιοχή. Αυτές οι πρακτικές, ωστόσο, ξεπέρασαν τον τυπικό ορισμό της Υποδομής ως κώδικα, εξ ου και η έννοια GitOps.

GitOps: άλλο τσιτάτο ή μια σημαντική ανακάλυψη στον αυτοματισμό;

Περιέργεια GitOps, φυσικά, επίσης στο γεγονός ότι δεν είναι προϊόν, πρόσθετο ή πλατφόρμα που σχετίζεται με κανέναν προμηθευτή. Είναι περισσότερο ένα παράδειγμα και ένα σύνολο αρχών, παρόμοιο με έναν άλλο όρο που γνωρίζουμε: DevOps.

Η εταιρεία GitLab Έχουμε αναπτύξει δύο ορισμούς αυτού του νέου όρου: θεωρητικό και πρακτικό. Ας ξεκινήσουμε με το θεωρητικό:

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

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

Από πρακτική άποψη, περιγράφουμε GitOps ως εξής:

GitOps: άλλο τσιτάτο ή μια σημαντική ανακάλυψη στον αυτοματισμό;

Έχουμε ήδη συζητήσει την υποδομή ως κώδικα ως ένα από τα βασικά στοιχεία αυτού του τύπου. Ας παρουσιάσουμε τους υπόλοιπους συμμετέχοντες.

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

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

Λοιπόν, το τελευταίο συστατικό: το CI/CD, όπως ήδη γνωρίζουμε, καθιστά δυνατή την αυτοματοποίηση της διαδικασίας πραγματοποίησης αλλαγών και δοκιμών υποδομής (από τον απλό έλεγχο σύνταξης έως την πιο περίπλοκη ανάλυση στατικού κώδικα). Και επίσης στην επακόλουθη ανίχνευση ολίσθησης: διαφορές μεταξύ της πραγματικής και της επιθυμητής κατάστασης του συστήματος. Για παράδειγμα, ως αποτέλεσμα μη εξουσιοδοτημένων χειροκίνητων αλλαγών ή αποτυχίας συστήματος.

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

Και αν ξαφνικά ενδιαφέρεστε για το πώς φαίνονται όλα αυτά στην πράξη, τότε σας προσκαλώ να δείτε το δικό μας Master Class, στο οποίο σας λέω βήμα προς βήμα πώς να χρησιμοποιήσετε το GitLab:

  • Εφαρμόστε τις βασικές αρχές του GitOps

  • Δημιουργήστε και πραγματοποιήστε αλλαγές στην υποδομή cloud (χρησιμοποιώντας το παράδειγμα του Yandex Cloud)

  • Αυτοματοποιήστε την ανίχνευση της μετατόπισης του συστήματος από μια επιθυμητή κατάσταση χρησιμοποιώντας την ενεργή παρακολούθηση

GitOps: άλλο τσιτάτο ή μια σημαντική ανακάλυψη στον αυτοματισμό;https://bit.ly/34tRpwZ

Πηγή: www.habr.com

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