Jenkins Git Integration - Χρήσιμο για κάθε επαγγελματία DevOps

Αυτό το ιστολόγιο συζητά για την ενσωμάτωση του Git με τον Jenkins. Συζητά επίσης τα πλεονεκτήματα της ενσωμάτωσης του Git με τον Jenkins και του demo.

είναι σίγουρα ατελές χωρίς τον Jenkins. Ο Jenkins μαζί με το Git είναι ένας υπέροχος συνδυασμός. Έτσι σε αυτό το άρθρο, θα μιλήσω για το Jenkins Git Integration και τα πλεονεκτήματά του. Οι δείκτες που θα καλύψουμε είναι οι εξής:

Ας ξεκινήσουμε λοιπόν με το πρώτο μας θέμα.





Τι είναι το Git - Γιατί το Git Ήρθε στην Ύπαρξη;

Όλοι γνωρίζουμε ότι «η αναγκαιότητα είναι η μητέρα όλων των εφευρέσεων». Ομοίως, το Git εμφανίστηκε για να ικανοποιήσει ορισμένες ανάγκες που αντιμετώπιζαν οι προγραμματιστές ενώπιον του Git. Ας κάνουμε λοιπόν ένα βήμα πίσω για να μάθουμε τα πάντα για τα Συστήματα Ελέγχου Έκδοσης (VCS) και τον τρόπο με τον οποίο δημιουργήθηκε το Git.

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



Υπάρχουν δύο τύποι VCS:

  • Κεντρικό σύστημα ελέγχου έκδοσης (CVCS)

  • Κατανεμημένο σύστημα ελέγχου έκδοσης (DVCS)



Κεντρικό VCS

Ένα κεντρικό σύστημα ελέγχου εκδόσεων (CVCS) χρησιμοποιεί έναν κεντρικό διακομιστή για την αποθήκευση όλων των αρχείων και επιτρέπει την ομαδική συνεργασία. Λειτουργεί σε ένα μοναδικό αποθετήριο στο οποίο οι χρήστες μπορούν να έχουν άμεση πρόσβαση σε έναν κεντρικό διακομιστή.

Ανατρέξτε στο παρακάτω διάγραμμα για να πάρετε μια καλύτερη ιδέα για το CVCS:

πώς να αποκτήσετε μήκος πίνακα σε javascript

Το αποθετήριο στο παραπάνω διάγραμμα υποδεικνύει έναν κεντρικό διακομιστή που θα μπορούσε να είναι τοπικός ή απομακρυσμένος, ο οποίος είναι άμεσα συνδεδεμένος με κάθε έναν από τους σταθμούς εργασίας του προγραμματιστή.

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

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

  • Δεν είναι τοπικά διαθέσιμο που σημαίνει ότι πρέπει πάντα να είστε συνδεδεμένοι σε ένα δίκτυο για να εκτελέσετε οποιαδήποτε ενέργεια.

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

Αυτό είναι όπου το Distributed VCS λύνει το πρόβλημα.

Κατανεμημένο VCS

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

Θα το καταλάβετε καλύτερα αναφερόμενοι στο παρακάτω διάγραμμα:

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

Μπορούν να ενημερώσουν τα τοπικά αποθετήρια τους με νέα δεδομένα από τον κεντρικό διακομιστή με μια λειτουργία που ονομάζεται ' Τραβήξτε 'Και επηρεάζουν τις αλλαγές στο κύριο αποθετήριο από μια λειτουργία που ονομάζεται' Σπρώξτε Από το τοπικό αποθετήριο τους.

Τώρα ας προσπαθήσουμε να μάθουμε για τον ορισμό του Git.

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

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

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

  • Ως εκ τούτου, το Git παίζει ζωτικό ρόλο στην επιτυχία στο DevOps.

Τι είναι η Jenkins;

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

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

Η Jenkins επιτυγχάνει Συνεχή Ενσωμάτωση με τη βοήθεια πρόσθετων. Τα πρόσθετα επιτρέπουν την ολοκλήρωση των διαφόρων σταδίων DevOps. Εάν θέλετε να ενσωματώσετε ένα συγκεκριμένο εργαλείο, πρέπει να εγκαταστήσετε τις προσθήκες για αυτό το εργαλείο. Για παράδειγμα, έργο Git, Maven 2, Amazon EC2, εκδότης HTML κ.λπ.

Τα πλεονεκτήματα του Jenkins περιλαμβάνουν:

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

  • Πολύ εύκολο στην εγκατάσταση.

  • Έχει 1000+ πρόσθετα για να διευκολύνει την εργασία σας. Εάν δεν υπάρχει προσθήκη, μπορείτε να τον κωδικοποιήσετε και να το μοιραστείτε με την κοινότητα.

  • Είναι δωρεάν.

  • Είναι κατασκευασμένο με Java και ως εκ τούτου, είναι φορητό σε όλες τις μεγάλες πλατφόρμες.

Τώρα ξέρετε πώς η Jenkins ξεπερνά τις παραδοσιακές ελλείψεις SDLC. Ο παρακάτω πίνακας δείχνει τη σύγκριση μεταξύ 'Πριν και μετά το Jenkins'.

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

Γιατί οι Jenkins και Git χρησιμοποιούνται μαζί;

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

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

Πλεονεκτήματα:

  • Οι Git και Jenkins είναι και οι δύο πολύ ισχυροί, αλλά με μεγάλη δύναμη έρχεται μεγάλη ευθύνη. Είναι πολύ συνηθισμένο να δικαιολογεί μια περιττή ποσότητα επιπλοκή σε έναν αγωγό κατασκευής απλώς και μόνο επειδή μπορείς.
  • Ενώ η Jenkins έχει πολλά τακτοποιημένα κόλπα στο μανίκι του, είναι εύκολο να αξιοποιήσει τα χαρακτηριστικά του Git, καθώς κάνει τη διαχείριση κυκλοφορίας και Παρακολούθηση σφαλμάτων πολύ πιο εύκολη στο περασμα του χρονου.
  • Μπορούμε να το κάνουμε αυτό, προσέχοντας τις εκδόσεις του κώδικα που δημιουργούμε και τις επισημαίνουμε κατάλληλα. Αυτό συνεχίζει πληροφορίες σχετικά με την κυκλοφορία κοντά στον κώδικα , σε αντίθεση με το να βασίζεστε στους αριθμούς κατασκευής Jenkins ή σε άλλους monikers.
  • Προστασία των κλάδων Git μειώνει τον κίνδυνο ανθρώπινου λάθους και η αυτοματοποίηση όσο το δυνατόν περισσότερων εργασιών μειώνει τη συχνότητα που πρέπει να ενοχλήσουμε (ή να περιμένουμε) αυτούς τους ανθρώπους.

Παράδειγμα:

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

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

Αυτό το minion είναι Jenkins. Λειτουργεί ως ενορχηστρωτής για να εκτελεί όλες αυτές τις δραστηριότητες μόλις ελεγχθεί η αλλαγή στον έλεγχο πηγής (Git) και έτσι δίνει γρήγορα σχόλια στον προγραμματιστή εάν οι αλλαγές που έχει κάνει είναι αρκετά καλές για ανάπτυξη παραγωγής ή όχι.Είναι ένα εξαιρετικά ευέλικτο, ανοιχτού κώδικα και διαθέτει έναν τόνο προσθηκών που μπορούν να κάνουν σχεδόν οτιδήποτε θέλετε.

Διαδήλωση

Εδώ θα δούμε πώς να ενσωματώσουμε το Git με τον Jenkins. Υπάρχουν 5 βήματα που πρέπει να ακολουθήσετε:

1. Δημιουργήστε ένα δείγμα προγράμματος:

Μπορείτε να δημιουργήσετε οποιοδήποτε δείγμα προγράμματος που θέλετε όπως Java ή Python ή οποιοδήποτε άλλο πρόγραμμα. Εδώ θα γράψουμε ένα απλό Python program που τυπώνει Γεια, Κόσμος!

2. Δημιουργήστε μια δουλειά Jenkins:

  • Εδώ πρώτα πρέπει να το κάνετε ξεκινήστε τη Jenkins χρησιμοποιώντας τη γραμμή εντολών.

  • Για αυτό, πρέπει πρώτα να πλοηγηθείτε στην τοποθεσία Jenkins στο σύστημά σας και να χρησιμοποιήσετε την εντολή java -jar jenkins.war

  • Αφού εκτελέσετε αυτήν την εντολή, ανοίξτε το πρόγραμμα περιήγησης ιστού και μεταβείτε στην αρχική σελίδα του Jenkins χρησιμοποιώντας τον σύνδεσμο localhost: 8080 . Αυτός είναι ο προεπιλεγμένος αριθμός θύρας.

  • Ανοίξτε την αρχική σελίδα της Jenkins από εισάγοντας το όνομα χρήστη και τον κωδικό πρόσβασης.

  • Για τη δημιουργία ενός έργου κάντε κλικ στο Νέο αντικείμενο και εισάγετε το όνομα έργου και επιλέξτε Πρόγραμμα Freestyle . Κάντε κλικ στο OK.

3. Προσθέστε αυτό το πρόγραμμα στο Github:

  • Ανοίξτε το git bash στο σύστημά σας. Κυβερνώ στη θέση του προγράμματος σας. Αρχικοποιήστε ένα κενό αποθετήριο χρησιμοποιώντας την εντολή git init .

  • Χρησιμοποιήστε την εντολή git add. για να προσθέσετε το αρχείο στην περιοχή στάσης από τον κατάλογο εργασίας.

  • Τώρα προσθέστε το αρχείο στο τοπικό αποθετήριο χρησιμοποιώντας την εντολή git commit -m 'το αρχείο demo.py προστέθηκε' .

  • Τώρα πρέπει να Σπρώξτε αυτό το αρχείο στο απομακρυσμένο αποθετήριο. Για να το κάνετε αυτό, μεταβείτε στον λογαριασμό σας στο GitHub και δημιουργήστε ένα νέο δημόσιο αποθετήριο. Τώρα αντιγράψτε τη θέση αυτού του αποθετηρίου και μεταβείτε στο τερματικό git bash. Εδώ πληκτρολογήστε την εντολή git απομακρυσμένη προσθήκη προέλευσης . Από τώρα που έχετε συνδεθεί στο απομακρυσμένο αποθετήριο, μπορείτε τώρα να ωθήσετε τον κωδικό σας εκεί χρησιμοποιώντας την εντολή git push -u αρχικός αρχηγός. Για να το επαληθεύσετε, μεταβείτε στον λογαριασμό GitHub και ανανεώστε τη σελίδα. Θα δείτε το αρχείο που προστέθηκε εκεί.

4. Προσθέστε το Git Plugin στο Jenkins:

  • Στην αρχική σελίδα του Jenkins μεταβείτε στη διεύθυνση Διαχείριση Jenkins .

  • Στη συνέχεια κάντε κλικ στο Διαχείριση προσθηκών . Εδώ ελέγξτε το Git plugin στην εγκατεστημένη ενότητα. Εάν δεν είναι διαθέσιμο εδώ, αναζητήστε το στη διαθέσιμη ενότητα και κατεβάστε το.

5. Διαμορφώστε την εργασία Jenkins για να ενεργοποιήσετε την έκδοση:

  • Μεταβείτε στο έργο στο Jenkins που δημιουργήσαμε στο βήμα 2. Εδώ στην ενότητα Διαχείριση κώδικα πηγής, επιλέξτε git και εισαγάγετε το σύνδεσμο του δημόσιου χώρου αποθήκευσης που δημιουργήσατε στο βήμα 3. Στη συνέχεια στο Δημιουργία ενότητας ετικέτας , κάντε κλικ στο Επιλογή SCM ψηφοφορίας . Εδώ στο τμήμα Προγραμματισμός, πρέπει να εισαγάγετε πέντε αστερίσκους χωρισμένους με κενό διάστημα. Αυτό δεν είναι παρά σύνταξη cron για τη δουλειά σας. Αυτό σημαίνει ότι η Jenkins θα ελέγχει για τυχόν αλλαγές στον πηγαίο κώδικα κάθε λεπτό και εάν υπάρχει οποιαδήποτε αλλαγή θα ενεργοποιήσει την κατασκευή του Jenkins.

  • Κάντε κλικ στο Ισχύουν και μετά Αποθηκεύσετε . Στη συνέχεια, στην αρχική σελίδα του έργου σας κάντε κλικ στο Δημιουργήστε τώρα . Αυτό θα εκτελέσει το έργο και στην έξοδο της κονσόλας, μπορείτε να δείτε το πρόγραμμά σας να εξάγει την κατάσταση της εργασίας σας στο Jenkins. Εάν όλα είναι εντάξει, τότε θα εμφανίζεται ως Επιτυχία .

Έτσι λοιπόν γίνεται η ενσωμάτωση της Jenkins Git. Με αυτό, φτάσαμε στο τέλος αυτού του άρθρου σχετικά με την Jenkins Git Integration. Ελπίζω να απολαύσατε αυτό το άρθρο.

Τώρα που έχετε καταλάβει τι Jenkins Git Integration είναι, δείτε αυτό από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα Εκπαίδευσης Πιστοποίησης Edureka DevOps βοηθά τους μαθητές να κατανοήσουν τι είναι DevOps και να αποκτήσουν εμπειρία σε διάφορες διαδικασίες και εργαλεία DevOps όπως Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack και GIT για την αυτοματοποίηση πολλαπλών βημάτων στο SDLC.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας