CI/CD με Jenkins - πορεία 35.000 τρίψιμο. από Slurm, εκπαίδευση 8 μαθημάτων, Ημερομηνία 28 Νοεμβρίου 2023.
μικροαντικείμενα / / November 28, 2023
Αυτό είναι ένα μάθημα με έμφαση στην πρακτική χρήση του Jenkins. Θα περιέχει πολλά παραδείγματα από την προσωπική μου πρακτική.
Ας πάμε από το απλό στο σύνθετο. Αρχικά, θα εξετάσουμε τους τομείς εφαρμογής του Jenkins και τους διαφορετικούς τύπους αγωγών, στη συνέχεια θα ρίξουμε μια ματιά στην Κοινόχρηστη Βιβλιοθήκη Jenkins και θα εξετάσουμε την ενοποίηση με το Kubernetes.
Στόχος μου είναι να μοιραστώ την εμπειρία μου και να σας βοηθήσω να αποφύγετε τα λάθη που έκανα στην αρχή του ταξιδιού μου.
Αυτό το μάθημα θα εμβαθύνει τις γνώσεις σας σχετικά με τη συνεργασία με τον Jenkins. Όλα όσα καλύπτουμε κατά τη διάρκεια της προπόνησης, μπορείτε να τα εφαρμόσετε άμεσα.
Βασικά στοιχεία CI/CD
Θα μάθετε ποια περιοχή προβλημάτων μπορεί να λύσει το CI/CD. Θα μπορείτε να συγκρίνετε τα τρέχοντα προβλήματα στην εργασία σας με τη λειτουργικότητα CI/CD.
Θεωρία:
- Ιστορία του CI/CD
- Αναγκαιότητα χρήσης, επαναληψιμότητα συγκροτημάτων
- Βρόχος ανατροφοδότησης
- Εντροπία χωρίς αυτοματισμό (ανθρώπινα λάθη)
- Βέλτιστες πρακτικές
- Πώς να μην το κάνουμε
Βασικά στοιχεία Jenkins
Θα κατανοήσετε τη λογική των αρχιτεκτονικών αποφάσεων άλλων ανθρώπων και θα κατανοήσετε τη δομή του καταλόγου στο Jenkins. Μάθετε να εγκαθιστάτε το Jenkins και να εκτελέσετε βασικές ρυθμίσεις.
Θεωρία:
- Ποια προβλήματα λύνει ο Τζένκινς;
- Αρχιτεκτονική ανώτατου επιπέδου - master-slave
- Δομή καταλόγου στο κύριο Jenkins (διαπιστευτήρια, χώρος εργασίας, αρχεία καταγραφής)
- Εγκατάσταση διακομιστή σε Linux (centos)
- Διαφορετικές επιλογές για την εκτέλεση Linux στο Docker
Πρακτική:
- Εγκατάσταση και διαμόρφωση του διακομιστή Jenkins χρησιμοποιώντας οποιαδήποτε από τις μεθόδους που συζητήθηκαν στο μάθημα
Διοίκηση Jenkins
Θα μάθετε πώς να εγκαθιστάτε πρόσθετα και να κάνετε βασικές ρυθμίσεις, να προσθέτετε επιπλέον κόμβους εργαζομένων και να διαμορφώνετε εργαλεία διαμόρφωσης. Θα καταλάβετε πώς να δημιουργήσετε διαπιστευτήρια και να διαφοροποιήσετε τα δικαιώματα πρόσβασης στο Jenkins.
Θεωρία:
- Προσθήκη πρακτόρων σκλάβων
- Εργασία με Εργαλεία
- Ασφάλεια στο Τζένκινς
- Μέθοδοι οριοθέτησης δικαιωμάτων
- Γιατί χρειαζόμαστε πρόσθετα και επιλογές για την εγκατάστασή τους;
Πρακτική:
- Εγκατάσταση της προσθήκης και ρύθμιση πρόσθετων εργαλείων. Προσθήκη διακριτικού GitLab στα διαπιστευτήρια.
Ανάπτυξη (2 μαθήματα)
Θα μάθετε πώς να επιλέγετε τον σωστό τύπο αγωγού για να οργανώσετε τη διαδικασία CI/CD, να δημιουργήσετε ένα περιβάλλον εργασίας για την ανάπτυξη και τη δοκιμή του αγωγού. Θα καταλάβετε πώς να δημιουργήσετε μια εργασία με παραμέτρους, εργασία ελεύθερου στυλ, δηλωτικό αγωγό, δέσμη ενεργειών.
Θεωρία:
- Τύποι αγωγών
- VScode + IdeaIJ
- Active reactive + εκτεταμένη επιλογή με groove σενάρια
Πρακτική:
- Δημιουργία αγωγού
Ενσωματώσεις με τον Τζένκινς
Θα μάθετε πώς να ρυθμίζετε την ενσωμάτωση του Pipeline με το SAST Sonarqube και την ειδοποίηση μέσω e-mail, Telegram και Slack.
Θεωρία:
- Ενσωμάτωση με το Sonarqube: τι είναι και γιατί;
- Ενσωμάτωση με το jforg: τι είναι και γιατί;
- Μέθοδοι ειδοποίησης σχετικά με τα αποτελέσματα της εκτέλεσης του αγωγού
Πρακτική:
- Δημιουργία αγωγού με αποστολή αποτελεσμάτων
Ανάπτυξη στο Jenkins
Θα μάθετε τους τομείς εφαρμογής του Jenkins Shared Library και του Jenkins Template Engine και θα μάθετε πώς να δημιουργείτε απλό JSL.
Θεωρία:
- Ας δούμε δύο προσεγγίσεις χρησιμοποιώντας παραδείγματα:
- Jenkins Shared Library και Jenkins Template Engine
Πρακτική:
- Δημιουργία μιας απλής κοινόχρηστης βιβλιοθήκης Jenkins
Βέλτιστες πρακτικές
Θα μάθετε πώς να ρυθμίζετε έναν αγωγό χρησιμοποιώντας το Blue Ocean και να δημιουργείτε μια διαμόρφωση Jenkins As a Code.
Θεωρία:
- Τρόπος DevOps για την αποθήκευση της διαμόρφωσης Jenkins
Πρακτική:
- Εγκατάσταση αγωγού χρησιμοποιώντας το Blue Ocean
- Δημιουργία διαμόρφωσης ως κώδικα και εγκατάσταση του Jenkins από αυτόν
Jenkins στο Kubernetes
Θα μάθετε πώς να ρυθμίζετε την ενοποίηση Jenkins και Kubernetes. Θα καταλάβετε πώς να διαμορφώσετε μια διοχέτευση ώστε να χρησιμοποιεί δυναμικούς πράκτορες στο Kubernetes.
Θεωρία:
- Ενσωμάτωση Jenkins και Kubernetes
Πρακτική:
- Ρύθμιση της ενοποίησης Kubernetes
- Ρύθμιση αγωγού χρησιμοποιώντας δυναμικούς πράκτορες
Προετοιμασία εξετάσεων
Θα εξετάσετε διάφορες επιλογές για εργασίες που μπορεί να συμπεριληφθούν σε συνεντεύξεις.
Τελική εργασία
Θα λάβετε 2-3 αποθετήρια (frontend και backend). Το καθήκον είναι να επεξεργαστείτε τη διαδικασία CI/CD. Η εργασία θα βοηθήσει στον προσδιορισμό του επιπέδου ανάπτυξης δεξιοτήτων.