Βοήθεια: τι είναι η Συνεχής Παράδοση

Νωρίτερα εμείς είπα σχετικά με τη Συνεχή Ολοκλήρωση (CI). Ας συνεχίσουμε με Συνεχή Παράδοση. Αυτό είναι ένα σύνολο μεθόδων ανάπτυξης λογισμικού. Βοηθά να διασφαλίσετε ότι ο κώδικάς σας είναι έτοιμος για ανάπτυξη.

Βοήθεια: τι είναι η Συνεχής Παράδοση
/Pixabay/ bluebudge / PL

Ιστορία

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

Το 2010, οι Jez Humble και David Farley κυκλοφόρησαν ένα βιβλίο με Συνεχή Παράδοση. Σύμφωνα με τους συγγραφείς, το CD συμπληρώνει την προσέγγιση Συνεχής ολοκλήρωση και σας επιτρέπει να απλοποιήσετε την προετοιμασία του κώδικα για ανάπτυξη.

Μετά τη δημοσίευση του βιβλίου, η προσέγγιση άρχισε να κερδίζει δημοτικότητα και σε λίγα μόλις χρόνια έγινε σχεδόν παγκοσμίως αποδεκτή. Σύμφωνα με επισκόπηση, που πραγματοποιήθηκε σε περισσότερους από 600 προγραμματιστές και διαχειριστές πληροφορικής το 2014, το 97% των τεχνικών υπευθύνων και το 84% των προγραμματιστών ήταν εξοικειωμένοι με τη Συνεχή Παράδοση.

Τώρα αυτή η προσέγγιση παραμένει μια από τις πιο δημοφιλείς. Σύμφωνα με μια μελέτη του 2018 που αφορούσε την κοινότητα IT DevOps και την κοινότητα Jenkins, χρήσεις οι μισοί από τους περισσότερους από χίλιους ερωτηθέντες.

Πώς λειτουργεί η Συνεχής Παράδοση;

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

Ένα παράδειγμα διαδικασίας συνεχούς παράδοσης μοιάζει με αυτό:

Βοήθεια: τι είναι η Συνεχής Παράδοση

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

Στη διαδικασία επιβάλλονται οι ακόλουθες απαιτήσεις:

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

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

Ποιο είναι το όφελος

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

Επιπλέον, σύμφωνα με μελέτη του 2016 (σελίδα 28 έγγραφο) - εταιρείες που έχουν εφαρμόσει CD επιλύουν προβλήματα ασφάλειας πληροφοριών 50% πιο γρήγορα από εκείνες που δεν χρησιμοποιούν την προσέγγιση. Σε κάποιο βαθμό, αυτή η διαφορά μπορεί να εξηγηθεί από την απόδοση των εργαλείων αυτοματισμού διεργασιών.

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

Πιθανές Δυσκολίες

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

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

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

Θα πρέπει επίσης να εκπαιδεύσετε τους υπαλλήλους να εργάζονται με νέα εργαλεία - ένα προκαταρκτικό εκπαιδευτικό πρόγραμμα θα εξοικονομήσει προσπάθεια και χρόνο από τους προγραμματιστές.

Βοήθεια: τι είναι η Συνεχής Παράδοση
/flickr/ h.ger1969 / CC BY-SA

Εργαλεία

Ακολουθούν μερικά ανοιχτά εργαλεία για συνεχή παράδοση:

  • GoCD — διακομιστής για συνεχή παράδοση σε Java και JRuby on Rails. Σας επιτρέπει να ελέγχετε ολόκληρη τη διαδικασία παράδοσης της εφαρμογής: build—test—release. Το εργαλείο διανέμεται με την άδεια Apache 2.0. Μπορείτε να το βρείτε στην επίσημη ιστοσελίδα οδηγός εγκατάστασης.
  • Capistrano — ένα πλαίσιο για τη δημιουργία σεναρίων που αυτοματοποιούν την ανάπτυξη εφαρμογών σε Ruby, Java ή PHP. Το Capistrano είναι σε θέση να εκτελεί εντολές σε ένα απομακρυσμένο μηχάνημα συνδέοντας σε αυτό μέσω SSH. Λειτουργεί με άλλα εργαλεία συνεχούς ενοποίησης και παράδοσης, όπως ο διακομιστής Integrity CI.
  • Gradle είναι ένα εργαλείο πολλαπλών πλατφορμών που αυτοματοποιεί ολόκληρο τον κύκλο ανάπτυξης εφαρμογών. Το Gradle δουλεύει με Java, Python, C/C++, Scala κ.λπ. Υπάρχει ενοποίηση με Eclipse, IntelliJ και Jenkins.
  • Κηφήνας - Πλατφόρμα CD στη γλώσσα Go. Το drone μπορεί να εγκατασταθεί on-premise ή στο cloud. Το εργαλείο είναι χτισμένο πάνω από κοντέινερ και χρησιμοποιεί αρχεία YAML για τη διαχείρισή τους.
  • Spinnaker — μια πλατφόρμα για συνεχή παράδοση κώδικα σε συστήματα πολλαπλών νέφους. Αναπτύχθηκε από το Netflix, οι μηχανικοί της Google έπαιξαν μεγάλο ρόλο στην ανάπτυξη του εργαλείου. Οδηγίες Εγκατάστασης βρείτε το στον επίσημο ιστότοπο.

Τι να διαβάσετε στο εταιρικό μας blog:

Πηγή: www.habr.com

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