3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

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

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

Το Skillbox προτείνει: Πρακτικό μάθημα "Mobile Developer PRO".

Υπενθύμιση: για όλους τους αναγνώστες του "Habr" - έκπτωση 10 ρούβλια κατά την εγγραφή σε οποιοδήποτε μάθημα Skillbox χρησιμοποιώντας τον κωδικό προσφοράς "Habr".

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

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

Jenkins

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

Ελάχιστες απαιτήσεις υπολογιστή:

  • 256 MB RAM, 1 GB χώρος αρχείου.

Αριστος:

  • 1 GB RAM, 50 GB σκληρός δίσκος.

Για να εργαστείτε, θα χρειαστείτε επίσης πρόσθετο λογισμικό - Java Runtime Environment (JRE) έκδοση 8.

Η αρχιτεκτονική (κατανεμημένος υπολογισμός) μοιάζει με αυτό:
3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

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

Jenkins Node/Slave/Build Server - συσκευές που μπορούν να ρυθμιστούν ώστε να εκτελούν εργασίες κατασκευής για λογαριασμό του Master (κύριος κόμβος).

Εγκατάσταση για Linux

Πρώτα πρέπει να προσθέσετε το αποθετήριο Jenkins στο σύστημα:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable δυαδικό/' | sudo tee -a /etc/apt/sources.list.d/je

Ενημέρωση αποθετηρίου πακέτων:

sudo apt update

Εγκαταστήστε το Jenkins:

sudo apt εγκατάσταση jenkins

Μετά από αυτό, το Jenkins θα είναι διαθέσιμο στο σύστημα μέσω της προεπιλεγμένης θύρας 8080.

Για να ελέγξετε τη λειτουργικότητα, πρέπει να ανοίξετε τη διεύθυνση στο πρόγραμμα περιήγησης localhost:8080. Στη συνέχεια, το σύστημα θα σας ζητήσει να εισαγάγετε τον αρχικό κωδικό πρόσβασης για τον χρήστη root. Αυτός ο κωδικός πρόσβασης βρίσκεται στο αρχείο /var/lib/jenkins/secrets/initialAdminPassword.

Τώρα όλα είναι έτοιμα, μπορείτε να ξεκινήσετε τη δημιουργία ροών CI/CD. Η γραφική διεπαφή του πάγκου εργασίας μοιάζει με αυτό:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

Δυνατά σημεία του 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 δευτερόλεπτα.
  • περισσότερες από 150 τροποποιήσεις την ημέρα.
  • Εργασία με τη βάση δεδομένων σε έναν διακομιστή.
  • Ρυθμίσεις διαδικασίας διακομιστή JVM: -Xmx1100m -XX:MaxPermSize=120m.

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

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

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

Εγκατάσταση για Linux

Για να εγκαταστήσετε μη αυτόματα το TeamCity με ένα κοντέινερ servlet Tomcat, θα πρέπει να χρησιμοποιήσετε το αρχείο TeamCity: TeamCity .tar.gz. Κατεβάστε μπορείτε να το πάρετε από εδώ.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [έναρξη|διακοπή]

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

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

Η προεπιλεγμένη διαμόρφωση εκτελείται localhost:8111/ με έναν καταχωρημένο build agent που τρέχει στον ίδιο υπολογιστή.

Τα δυνατά σημεία της TeamCity:

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

Μειονεκτήματα:

  • περιορισμένη ενσωμάτωση·
  • Αυτό είναι ένα εργαλείο επί πληρωμή.
  • μια μικρή κοινότητα (η οποία όμως μεγαλώνει).

GoCD

Ένα έργο ανοιχτού κώδικα που απαιτεί Java Runtime Environment (JRE) έκδοση 8 για εγκατάσταση και λειτουργία.

Απαιτήσεις συστήματος:

  • RAM - 1 GB ελάχιστο, περισσότερο είναι καλύτερο.
  • επεξεργαστής - διπλού πυρήνα, με συχνότητα πυρήνα 2 GHz.
  • σκληρός δίσκος - τουλάχιστον 1 GB ελεύθερου χώρου.

Μέσο:

  • RAM - τουλάχιστον 128 MB, περισσότερο είναι καλύτερο.
  • επεξεργαστής - τουλάχιστον 2 GHz.

Ο διακομιστής διασφαλίζει τη λειτουργία των πρακτόρων και παρέχει μια βολική διεπαφή για τον χρήστη:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

Στάδια/Εργασίες/Εργασίες:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

Εγκατάσταση για Linux

echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

μπούκλα download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get εγκατάσταση go-server

apt-get install go-agent

/etc/init.d/go-server [start|stop|status|restart]

/etc/init.d/go-agent [start|stop|status|restart]

Από προεπιλογή το GoCd εκτελείται localhost: 8153.

Τα δυνατά σημεία του GoCd:

  • ανοιχτή πηγή;
  • απλή εγκατάσταση και διαμόρφωση.
  • καλή τεκμηρίωση?

  • Εξαιρετική διεπαφή χρήστη:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

  • δυνατότητα εμφάνισης βήμα προς βήμα διαδρομής ανάπτυξης GoCD σε μία προβολή:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

  • εξαιρετική εμφάνιση της δομής του αγωγού:

3 δημοφιλή εργαλεία για την οργάνωση συνεχούς ανάπτυξης (Συνεχής Ανάπτυξη)

  • Το GoCD βελτιστοποιεί τη ροή εργασίας του CD στα πιο δημοφιλή περιβάλλοντα cloud, συμπεριλαμβανομένων των Docker, AWS.
  • Το εργαλείο καθιστά δυνατή τη διόρθωση προβλημάτων στον αγωγό, για τα οποία υπάρχει παρακολούθηση κάθε αλλαγής από δέσμευση σε ανάπτυξη σε πραγματικό χρόνο.

Μειονεκτήματα:

  • τουλάχιστον ένας πράκτορας χρειάζεται.
  • δεν υπάρχει κονσόλα για να εμφανίζει όλες τις ολοκληρωμένες εργασίες.
  • Για να εκτελέσετε κάθε εντολή, πρέπει να δημιουργήσετε μία εργασία για τη διαμόρφωση του αγωγού.
  • Για να εγκαταστήσετε το πρόσθετο πρέπει να μετακινήσετε το αρχείο .jar στο /plugins/external και επανεκκινήστε τον διακομιστή.
  • σχετικά μικρή κοινότητα.

Σαν συμπέρασμα

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

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

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

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

Το Skillbox προτείνει:

Πηγή: www.habr.com

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