DevOps Εισαγωγή για αρχάριους

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

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

Η προέλευση του DevOps

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

Ίσως αναρωτιέστε να μάθετε τι είναι η ευέλικτη ανάπτυξη λογισμικού –

Η ευέλικτη ανάπτυξη είναι ένας ευρύς όρος για τον ορισμό πολλών επαναληπτικών και σταδιακών μεθοδολογιών ανάπτυξης λογισμικού. Οι δημοφιλείς ευέλικτες μεθοδολογίες είναι οι Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development και Extreme Programming (XP).

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

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

Εικόνα από Segue

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

Οι προκλήσεις επιλύθηκαν από το DevOps

Διαδικασία ανάπτυξης – Οι κατανεμημένες εφαρμογές συχνά απαιτούν την ανάπτυξη των δυαδικών αρχείων και των αρχείων διαμόρφωσης σε πολλούς διακομιστές. Γίνεται πιο δύσκολο όταν έχετε μια φάρμα διακομιστών. Γίνεται δύσκολο να καταλάβουμε τι, πώς και πού να αναπτυχθεί. Το προφανές αποτέλεσμα είναι;

  Πώς να χρησιμοποιήσετε το Sparklines στα Φύλλα Google

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

Το DevOps επιτρέπει στο λογισμικό ή στους προγραμματιστές ιστού και στις λειτουργίες IT να αναπτύσσουν διαδικασίες σε μια περίοδο λειτουργίας συνεργασίας που είναι εντελώς άψογη. Θα μας επιτρέψει να επαληθεύσουμε τι λειτουργεί και στη συνέχεια να το μεταφέρουμε στο επόμενο επίπεδο με την αυτοματοποίηση για την υλοποίηση συνεχούς ανάπτυξης. Δημιουργεί επίσης δρόμους για πιο συχνή ανάπτυξη.

Στόχοι DevOps

Βελτιώνει τη συνεργασία μεταξύ των ενδιαφερομένων από τον προγραμματισμό έως την παράδοση και εφαρμόζει την αυτοματοποίηση της διαδικασίας παράδοσης σε:

  • Βελτιώστε τη συχνότητα της ανάπτυξης
  • Εξασφαλίστε ταχύτερο χρόνο για την εμπορία του τελικού προϊόντος
  • Μειώνει το ποσοστό αποτυχίας των νέων εκδόσεων
  • Μειώνει το χρόνο παράδοσης μεταξύ των επιδιορθώσεων
  • Βελτιώνει εν τω μεταξύ για τον σκοπό ανάκτησης

Κοινό σενάριο DevOps

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

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

Διαφορετικές φάσεις ωριμότητας DevOps

Υπάρχουν πολλές διαφορετικές φάσεις ωριμότητας DevOps. Εδώ είναι οι βασικές φράσεις που πρέπει να γνωρίζετε.

Ανάπτυξη Καταρράκτη

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

  Πώς να εγκαταστήσετε και να χρησιμοποιήσετε επεκτάσεις στο νέο Microsoft Edge

Η πραγματοποίηση αυτών των αριθμών αλλαγών που χρησιμοποιούνται – διαρκεί περισσότερο από μερικούς μήνες. Αυτή η διαδικασία δεν ήταν παραγωγική.

Συνεχής ενσωμάτωση

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

Το DevOps δεν εισήγαγε αυτόν τον όρο. Η συνεχής ολοκλήρωση είναι μια ευέλικτη πρακτική μηχανικής που προέρχεται από τη μεθοδολογία Extreme Programming. Το DevOps έχει υιοθετήσει αυτήν την πρακτική επειδή απαιτείται αυτοματοποίηση όταν πρόκειται για επιτυχή εκτέλεση συνεχούς ενοποίησης. Η συνεχής ενσωμάτωση είναι συχνά η πρώτη στον δρόμο προς την ωριμότητα του DevOps.

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

Συνεχής Παράδοση

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

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

Είναι μια πρακτική να διατηρείτε τη βάση κώδικα σας σε κατάσταση σχεδόν έτοιμη για ανάπτυξη.

Συνεχής Ανάπτυξη

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

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

Ένας μικρός αριθμός εταιρειών όπως οι Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google κ.λπ., κάνουν συνεχή ανάπτυξη.

Η αξία

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

DevOps Culture

  Λάβετε το νόημα για οποιαδήποτε λέξη στους υπότιτλους κάνοντας κλικ σε αυτήν

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

Οι ευέλικτες μέθοδοι ήταν πάντα ο καλύτερος ολιστικός τρόπος παροχής λογισμικού. Όταν πρόκειται για τη μέτρηση της προόδου, η ευέλικτη ομάδα ανάπτυξης το κάνει όσον αφορά το λειτουργικό λογισμικό. Η ευέλικτη μέθοδος της κουλτούρας DevOps επιτρέπει στους κατόχους προϊόντων, τους προγραμματιστές, τους δοκιμαστές και τα άτομα UX να συνεργάζονται στενά έχοντας κατά νου τον ίδιο στόχο.

Εργαλεία DevOps

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

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

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

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse κ.λπ., είναι μερικά από τα δημοφιλή εργαλεία αποθήκευσης κώδικα.

Δημιουργία διακομιστή: – ο διακομιστής δημιουργίας είναι το εργαλείο αυτοματισμού που χρησιμοποιείται για τη μεταγλώττιση του κώδικα στον πηγαίο κώδικα αναπνευστικό στη βάση του εκτελέσιμου κώδικα. Μερικά από τα ιδιαίτερα χρησιμοποιούμενα εργαλεία διακομιστή κατασκευής είναι τα Jenkins, SonarQube και Artifactory.

Διαχείριση διαμόρφωσης – Puppet, Chef, Ansible, SaltStack, Run Deck, κ.λπ., βοηθά στη διαχείριση της διαμόρφωσης για την εφαρμογή και την υποδομή για τη διατήρηση της συνέπειας μεταξύ των περιβαλλόντων.

Εικονική υποδομή – AWS, GCP και Azure είναι οι τρεις κορυφαίοι πάροχοι δημόσιου cloud που προσφέρει σχεδόν κάθε υπηρεσία υποδομής. Προσφέρουν API, το οποίο σας επιτρέπει να παρέχετε την υποδομή και να τη διαχειρίζεστε σαν κωδικός.

συμπέρασμα

Ελπίζω να σας δώσει μια ιδέα για το DevOps και αν αυτό σας ενθουσιάζει, τότε μπορείτε να δοκιμάσετε αυτό το διαδικτυακό μάθημα masterclass.

Άρθρο του Payal Goyal