3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)
Η συνεχής ανάπτυξη είναι μια ειδική προσέγγιση στην ανάπτυξη λογισμικού που χρησιμοποιείται για τη γρήγορη, ασφαλή και αποτελεσματική εφαρμογή διαφόρων λειτουργιών στο λογισμικό.
Η κύρια ιδέα είναι να δημιουργηθεί μια αξιόπιστη αυτοματοποιημένη διαδικασία που επιτρέπει στον προγραμματιστή να παραδίδει γρήγορα το τελικό προϊόν στον χρήστη. Ταυτόχρονα, γίνονται συνεχείς αλλαγές στην παραγωγή - αυτό ονομάζεται αγωγός συνεχούς παράδοσης (CD Pipeline).
Υπενθύμιση:για όλους τους αναγνώστες του "Habr" - έκπτωση 10 ρούβλια κατά την εγγραφή σε οποιοδήποτε μάθημα Skillbox χρησιμοποιώντας τον κωδικό προσφοράς "Habr".
Για να ελέγξετε τη ροή, μπορείτε να χρησιμοποιήσετε μια μεγάλη γκάμα εργαλείων, συμπεριλαμβανομένων τόσο επί πληρωμή όσο και εντελώς δωρεάν. Αυτό το άρθρο περιγράφει τρεις από τις πιο δημοφιλείς λύσεις μεταξύ προγραμματιστών που μπορούν να είναι χρήσιμες σε κάθε προγραμματιστή.
Jenkins
Πλήρως αυτόνομος διακομιστής αυτοματισμού ανοιχτού κώδικα. Αξίζει να συνεργαστείτε για να αυτοματοποιήσετε όλα τα είδη εργασιών που σχετίζονται με την κατασκευή, τη δοκιμή, την αποστολή ή την ανάπτυξη λογισμικού.
Ελάχιστες απαιτήσεις υπολογιστή:
256 MB RAM, 1 GB χώρος αρχείου.
Αριστος:
1 GB RAM, 50 GB σκληρός δίσκος.
Για να εργαστείτε, θα χρειαστείτε επίσης πρόσθετο λογισμικό - Java Runtime Environment (JRE) έκδοση 8.
Η αρχιτεκτονική (κατανεμημένος υπολογισμός) μοιάζει με αυτό:
Ο διακομιστής Jenkins είναι μια εγκατάσταση που είναι υπεύθυνη για τη φιλοξενία GUI, καθώς και για την οργάνωση και εκτέλεση ολόκληρης της κατασκευής.
Jenkins Node/Slave/Build Server - συσκευές που μπορούν να ρυθμιστούν ώστε να εκτελούν εργασίες κατασκευής για λογαριασμό του Master (κύριος κόμβος).
Εγκατάσταση για Linux
Πρώτα πρέπει να προσθέσετε το αποθετήριο Jenkins στο σύστημα:
Μετά από αυτό, το Jenkins θα είναι διαθέσιμο στο σύστημα μέσω της προεπιλεγμένης θύρας 8080.
Για να ελέγξετε τη λειτουργικότητα, πρέπει να ανοίξετε τη διεύθυνση στο πρόγραμμα περιήγησης localhost:8080. Στη συνέχεια, το σύστημα θα σας ζητήσει να εισαγάγετε τον αρχικό κωδικό πρόσβασης για τον χρήστη root. Αυτός ο κωδικός πρόσβασης βρίσκεται στο αρχείο /var/lib/jenkins/secrets/initialAdminPassword.
Τώρα όλα είναι έτοιμα, μπορείτε να ξεκινήσετε τη δημιουργία ροών CI/CD. Η γραφική διεπαφή του πάγκου εργασίας μοιάζει με αυτό:
Δυνατά σημεία του Jenkins:
επεκτασιμότητα που παρέχεται από την αρχιτεκτονική Master/Slave.
διαθεσιμότητα REST XML/JSON API.
τη δυνατότητα σύνδεσης μεγάλου αριθμού επεκτάσεων χάρη σε πρόσθετα.
ενεργή και συνεχώς εξελισσόμενη κοινότητα.
Μειονεκτήματα:
δεν υπάρχει αναλυτικό μπλοκ.
όχι πολύ φιλική προς το χρήστη διεπαφή.
TeamCity
Εμπορική ανάπτυξη από την JetBrains. Ο διακομιστής είναι καλός με απλή εγκατάσταση και εξαιρετική διεπαφή. Η προεπιλεγμένη διαμόρφωση έχει μεγάλο αριθμό λειτουργιών και ο αριθμός των διαθέσιμων προσθηκών αυξάνεται συνεχώς.
Απαιτείται Java Runtime Environment (JRE) έκδοση 8.
Οι απαιτήσεις υλικού διακομιστή δεν είναι κρίσιμες:
RAM - 3,2 GB;
επεξεργαστής - διπλού πυρήνα, 3,2 GHz;
κανάλι επικοινωνίας με χωρητικότητα 1 Gb/s.
Ο διακομιστής σάς επιτρέπει να επιτύχετε υψηλή απόδοση:
60 έργα με 300 διαμορφώσεις κατασκευής.
Εκχώρηση 2 MB για αρχείο καταγραφής κατασκευής.
50 build agents?
τη δυνατότητα εργασίας με 50 χρήστες στην έκδοση web και 30 χρήστες στο IDE.
100 συνδέσεις εξωτερικού VCS, συνήθως Perforce και Subversion. Ο μέσος χρόνος αλλαγής είναι 120 δευτερόλεπτα.
Οι απαιτήσεις του πράκτορα βασίζονται σε συγκροτήματα που λειτουργούν. Το κύριο καθήκον του διακομιστή είναι να παρακολουθεί όλους τους συνδεδεμένους πράκτορες και να διανέμει συγκροτήματα σε ουρά σε αυτούς τους πράκτορες με βάση τις απαιτήσεις συμβατότητας, αναφέροντας τα αποτελέσματα. Οι πράκτορες διατίθενται σε μια ποικιλία από πλατφόρμες και λειτουργικά συστήματα, καθώς και σε ένα προδιαμορφωμένο περιβάλλον.
Όλες οι πληροφορίες σχετικά με τα αποτελέσματα της κατασκευής αποθηκεύονται στη βάση δεδομένων. Αυτό είναι κυρίως ιστορικό και άλλα παρόμοια δεδομένα, αλλαγές VCS, πράκτορες, ουρές κατασκευής, λογαριασμοί χρηστών και δικαιώματα. Η βάση δεδομένων δεν περιλαμβάνει μόνο αρχεία καταγραφής και τεχνουργήματα.
Εγκατάσταση για Linux
Για να εγκαταστήσετε μη αυτόματα το TeamCity με ένα κοντέινερ servlet Tomcat, θα πρέπει να χρησιμοποιήσετε το αρχείο TeamCity: TeamCity .tar.gz. Κατεβάστε μπορείτε να το πάρετε από εδώ.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [έναρξη|διακοπή]
Όταν ξεκινάτε για πρώτη φορά, πρέπει να επιλέξετε τον τύπο της βάσης δεδομένων στην οποία θα αποθηκευτούν τα δεδομένα της συναρμολόγησης.
Η προεπιλεγμένη διαμόρφωση εκτελείται localhost:8111/ με έναν καταχωρημένο build agent που τρέχει στον ίδιο υπολογιστή.
Τα δυνατά σημεία της TeamCity:
εύκολη εγκατάσταση
φιλική προς το χρήστη διεπαφή.
ένας μεγάλος αριθμός ενσωματωμένων λειτουργιών.
υποστήριξη;
υπάρχει ένα RESTful API.
καλή τεκμηρίωση?
καλή ασφάλεια.
Μειονεκτήματα:
περιορισμένη ενσωμάτωση·
Αυτό είναι ένα εργαλείο επί πληρωμή.
μια μικρή κοινότητα (η οποία όμως μεγαλώνει).
GoCD
Ένα έργο ανοιχτού κώδικα που απαιτεί Java Runtime Environment (JRE) έκδοση 8 για εγκατάσταση και λειτουργία.
Απαιτήσεις συστήματος:
RAM - 1 GB ελάχιστο, περισσότερο είναι καλύτερο.
επεξεργαστής - διπλού πυρήνα, με συχνότητα πυρήνα 2 GHz.
Από προεπιλογή το GoCd εκτελείται localhost: 8153.
Τα δυνατά σημεία του GoCd:
ανοιχτή πηγή;
απλή εγκατάσταση και διαμόρφωση.
καλή τεκμηρίωση?
Εξαιρετική διεπαφή χρήστη:
δυνατότητα εμφάνισης βήμα προς βήμα διαδρομής ανάπτυξης GoCD σε μία προβολή:
εξαιρετική εμφάνιση της δομής του αγωγού:
Το GoCD βελτιστοποιεί τη ροή εργασίας του CD στα πιο δημοφιλή περιβάλλοντα cloud, συμπεριλαμβανομένων των Docker, AWS.
Το εργαλείο καθιστά δυνατή τη διόρθωση προβλημάτων στον αγωγό, για τα οποία υπάρχει παρακολούθηση κάθε αλλαγής από δέσμευση σε ανάπτυξη σε πραγματικό χρόνο.
Μειονεκτήματα:
τουλάχιστον ένας πράκτορας χρειάζεται.
δεν υπάρχει κονσόλα για να εμφανίζει όλες τις ολοκληρωμένες εργασίες.
Για να εκτελέσετε κάθε εντολή, πρέπει να δημιουργήσετε μία εργασία για τη διαμόρφωση του αγωγού.
Για να εγκαταστήσετε το πρόσθετο πρέπει να μετακινήσετε το αρχείο .jar στο /plugins/external και επανεκκινήστε τον διακομιστή.
σχετικά μικρή κοινότητα.
Σαν συμπέρασμα
Αυτά είναι μόνο τρία εργαλεία, στην πραγματικότητα υπάρχουν πολλά περισσότερα. Είναι δύσκολο να επιλέξετε, επομένως πρέπει οπωσδήποτε να δώσετε προσοχή σε πρόσθετες πτυχές.
Ο ανοιχτός κώδικας του εργαλείου καθιστά δυνατή την κατανόηση του τι είναι, καθώς και την ταχύτερη προσθήκη νέων λειτουργιών. Αλλά αν κάτι δεν λειτουργεί, τότε πρέπει να βασιστείτε μόνο στον εαυτό σας και στη βοήθεια της κοινότητας. Τα εργαλεία επί πληρωμή παρέχουν υποστήριξη που μερικές φορές μπορεί να είναι κρίσιμη.
Εάν η ασφάλεια είναι η πρώτη σας προτεραιότητα, αξίζει να συνεργαστείτε με ένα τοπικό εργαλείο. Εάν όχι, τότε η επιλογή μιας λύσης SaaS είναι μια καλή επιλογή.
Και τέλος, για να διασφαλίσετε μια πραγματικά αποτελεσματική διαδικασία συνεχούς ανάπτυξης, πρέπει να δημιουργήσετε κριτήρια των οποίων οι ιδιαιτερότητες θα σας επιτρέψουν να περιορίσετε το εύρος των διαθέσιμων εργαλείων.