Προγραμματισμός

Γιατί η Jenkins γίνεται η μηχανή των devops

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

Αυτός ο τελευταίος ελιγμός είναι πώς η CloudBees έγινε η εταιρεία που είναι σήμερα. Κάποτε ένας ανεξάρτητος, δημόσιος πάροχος cloud PaaS για κωδικοποιητές Java (βαθμολογήθηκε ιδιαίτερα από τον Andrew Oliver στο "Ποιο φρικτό PaaS πρέπει να χρησιμοποιήσω;"), το CloudBees περιστράφηκε απότομα πριν από 18 μήνες για να ξαναρχίσει ως ο κορυφαίος πάροχος της Jenkins, ένα πολύ δημοφιλές εργαλείο προέλευσης για τη διαχείριση της διαδικασίας ανάπτυξης λογισμικού.

Σύμφωνα με τον Διευθύνοντα Σύμβουλο, Sasha Labourey, ως πάροχος Java PaaS, το CloudBees είχε «μεγαλώσει όμορφα», αλλά «πολλά από τα μεγαλύτερα παιδιά με τους μεγαλύτερους ελέγχους» δίσταζαν να δεσμευτούν σε μια ευμετάβλητη αγορά PaaS που δεν είχε τυποποίηση. Ταυτόχρονα, η Jenkins απογειώθηκε σαν πύραυλος - και ο Labourey είδε μια μεγάλη ευκαιρία, ειδικά επειδή η CloudBees προσφέρει ήδη τη Jenkins ως υπηρεσία και είχε ήδη προσλάβει τον Kohsuke Kawaguchi, δημιουργό της Jenkins. Το πιάτο της Jenkins έγινε το κύριο πιάτο.

Το juggernaut της Jenkins

Ποια είναι η δημοτικότητα της Jenkins; Με απλά λόγια, η Jenkins έχει γίνει το πρότυπο ανοιχτού κώδικα για τη διαχείριση της πλευράς devops, από τη διαχείριση πηγαίου κώδικα έως την παράδοση κώδικα έως την παραγωγή. Σύμφωνα με τον Labourey, «Η κοινότητα βλέπει τη Jenkins ως μηχανή ενορχήστρωσης και αυτοματισμού ... Νομίζω ότι ο λόγος για τον οποίο η Jenkins έχει γίνει η de facto μηχανή είναι επειδή είναι εξαιρετικά pluggable.» Έχει προκύψει ένα οικοσύστημα με περισσότερα από 1.100 προσθήκες, επιτρέποντας στους πελάτες να προσθέσουν κάθε είδους λειτουργικότητα και να ενσωματώσουν τη Jenkins με τα πάντα, από το Active Directory έως το GitHub έως το OpenShift PaaS.

Η Jenkins είναι μια λύση συνεχούς ολοκλήρωσης (CI) και συνεχούς παράδοσης (CD). Η ιδέα του CI είναι να συγχωνεύσετε κώδικα από μεμονωμένους προγραμματιστές σε ένα έργο πολλές φορές την ημέρα και να δοκιμάσετε συνεχώς για να αποφύγετε προβλήματα κατάντη. Το CD το κάνει ένα βήμα παραπέρα για να διασφαλίσει ότι όλοι οι συγχωνευμένοι κώδικες είναι πάντα σε κατάσταση παραγωγής. Η Jenkins επιτρέπει στους προγραμματιστές να αυτοματοποιήσουν αυτήν τη διαδικασία όσο το δυνατόν περισσότερο - μέχρι το σημείο της ανάπτυξης. Το Labourey παρέχει ένα παράδειγμα:

Ας υποθέσουμε ότι μια εταιρεία χρησιμοποιεί Chef ή Puppet για ανάπτυξη στο AWS. Ο Τζένκινς δεν πρόκειται να το αντικαταστήσει. Ο Jenkins θα καλεί το Puppet να το κάνει - Εντάξει, εδώ είναι τα κομμάτια, οπότε ας καλέσουμε αυτό το σενάριο Puppet και να δούμε πώς λειτουργεί. Και το αποτέλεσμα της εκτέλεσης του Puppet θα έχει σημασία για τον Jenkins επειδή μπορεί να αποφασίσει να ξετυλίξει την ανάπτυξη και να προβεί σε περαιτέρω ενέργειες. Το ονομάζουμε «αγωγό». Είναι πραγματικά αυτή η σειρά βημάτων. Θα μπορούσε να είναι πέντε βήματα, ή θα μπορούσε να είναι 50 βήματα.

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

Το Docker είναι ένα από αυτά τα εργαλεία και το Docker σε συνδυασμό με τη Jenkins έχει βαθιά επίδραση στις ομάδες ανάπτυξης. Όλοι γνωρίζουν ότι το Docker βελτιστοποιεί την ανάπτυξη και κάνει την ανάπτυξη πολύ πιο εύκολη, αλλά ο Labourey παρατηρεί ότι βοηθά επίσης να διατηρήσουμε τους προγραμματιστές ειλικρινείς: Δεν μπορούν πλέον να κατηγορήσουν κάποια εσφαλμένη διαμόρφωση του περιβάλλοντος ανάπτυξης όταν μια κατασκευή καταρρέει και καίγεται. Σε ένα φυσικό μηχάνημα το περιβάλλον ανάπτυξης σταδιακά καταστρέφεται, προκαλώντας κατά λάθος να σπάσουν τα κτίρια. Αλλά όταν κωδικοποιείτε πάνω από μια παρθένα εικόνα Docker, έχετε μόνο τον δικό σας ελαττωματικό κωδικό που φταίτε όταν δεν θα εκτελούνται οι κατασκευές.

Μαζί η Jenkins και το ολοκληρωμένο οικοσύστημά της παρέχουν τη συντονιστική υποδομή λογισμικού για ευέλικτη ανάπτυξη και αποτελούν ευρύτερα τον «πυρήνα της πρωτοβουλίας devops», λέει ο Labourey.

Φτάνοντας εκεί από εδώ

Όλος αυτός ο αυτοματισμός και η απόδοση του devops ακούγονται υπέροχα, αλλά τι γίνεται με τους οργανισμούς που μόλις βρήκαν το κεφάλι τους γύρω από την ευέλικτη ανάπτυξη; Το Labourey προσφέρει συμβουλές για να μπείτε στο CI / CD:

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

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

Οι αναπτυξιακοί οργανισμοί τείνουν να έχουν ευρέως ποικίλες, ιδιαίτερα ειδικές απαιτήσεις. Έτσι, το CloudBees προσφέρει τόσο μια γενική έκδοση SaaS βάσει συνδρομών που εκτελείται από το CloudBees όσο και μια "ιδιωτική έκδοση SaaS", την οποία οι πελάτες μπορούν να αναπτύξουν είτε σε AWS είτε σε Azure (ή τοπικά στο OpenStack) και να το προσαρμόσουν στο περιεχόμενο της καρδιάς τους.

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

"Είναι ενδιαφέρον αν έχετε 10% περισσότερη αποδοτικότητα. Αν ξοδεύετε 100 εκατομμύρια δολάρια ετησίως στην πληροφορική, υπέροχα - έχετε 10 εκατομμύρια δολάρια μπορείτε να ξοδέψετε κάπου αλλού", λέει ο Labourey. "Αλλά το πραγματικό όφελος είναι όταν η επιχείρηση συνειδητοποιήσει ότι αξιοποιώντας αυτά τα εργαλεία και με αυτόν τον τρόπο πραγματοποίησης πραγμάτων, μπορούν να αυξήσουν τις πωλήσεις κατά 10 τοις εκατό."