CICD για startups: ποια εργαλεία υπάρχουν και γιατί δεν τα χρησιμοποιούν μόνο μεγάλες και γνωστές εταιρείες

Οι προγραμματιστές εργαλείων CICD συχνά αναφέρουν μεγάλες εταιρείες ως πελάτες - Microsoft, Oculus, Red Hat, ακόμη και Ferrari και NASA. Φαίνεται ότι τέτοιες μάρκες λειτουργούν μόνο με ακριβά συστήματα που μια startup που αποτελείται από μερικούς προγραμματιστές και έναν σχεδιαστή δεν μπορεί να αντέξει οικονομικά. Αλλά ένα σημαντικό μέρος των εργαλείων είναι διαθέσιμο για μικρές ομάδες.

Θα σας πούμε τι μπορείτε να προσέξετε παρακάτω.

CICD για startups: ποια εργαλεία υπάρχουν και γιατί δεν τα χρησιμοποιούν μόνο μεγάλες και γνωστές εταιρείες
Фото - Τσάμπα Μπαλάζ — Ξεβιδώστε

Λογοκριτής PHP

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

Το PHP Censor μπορεί να λειτουργήσει με τα GitHub, GitLab, Mercurial και πολλά άλλα αποθετήρια. Για τη δοκιμή κώδικα, το εργαλείο χρησιμοποιεί τις βιβλιοθήκες Atoum, PHP Spec, Behat, Codeception. Εδώ παράδειγμα αρχείου διαμορφώσεις για την πρώτη περίπτωση:

test:
    atoum:
        args: "command line arguments go here"
        config: "path to config file"
        directory: "directory to run tests"
        executable: "path to atoum executable"

Θεωρείταιότι το PHP Censor είναι κατάλληλο για την ανάπτυξη μικρών έργων, αλλά θα πρέπει να το φιλοξενήσετε και να το διαμορφώσετε μόνοι σας (self-hosted). Αυτή η εργασία απλοποιείται με αρκετά λεπτομερή τεκμηρίωση - είναι στο GitHub.

Βασιλιάς

Το Rex είναι συντομογραφία του Remote Execution. Το σύστημα αναπτύχθηκε από τον μηχανικό Ferenc Erki για την αυτοματοποίηση των διαδικασιών στο κέντρο δεδομένων. Το Rex βασίζεται σε σενάρια Perl, αλλά δεν είναι απαραίτητο να γνωρίζετε αυτή τη γλώσσα για να αλληλεπιδράσετε με το εργαλείο - οι περισσότερες λειτουργίες (για παράδειγμα, η αντιγραφή αρχείων) περιγράφονται στη βιβλιοθήκη λειτουργιών και τα σενάρια συχνά χωρούν σε δέκα γραμμές. Ακολουθεί ένα παράδειγμα για τη σύνδεση σε πολλούς διακομιστές και την εκτέλεση χρόνου λειτουργίας:

use Rex -feature => ['1.3'];

user "my-user";
password "my-password";

group myservers => "mywebserver", "mymailserver", "myfileserver";

desc "Get the uptime of all servers";
task "uptime", group => "myservers", sub {
   my $output = run "uptime";
   say $output;
};

Συνιστούμε να ξεκινήσετε τη γνωριμία σας με το εργαλείο με επίσημος οδηγός и ηλεκτρονικό βιβλίο, το οποίο αυτή τη στιγμή ολοκληρώνεται.

Open Build Service (OBS)

Αυτή είναι μια πλατφόρμα για τη βελτιστοποίηση της ανάπτυξης διανομών. Ο κώδικάς του είναι ανοιχτός και βρίσκεται στο αποθετήριο στο GitHub. Ο συγγραφέας του εργαλείου είναι η εταιρεία Novell. Συμμετείχε στην ανάπτυξη της διανομής SuSE και αυτό το έργο αρχικά ονομαζόταν openSUSE Build Service. Δεν αποτελεί έκπληξη το γεγονός ότι το Open Build Service χρήση για την κατασκευή έργων σε openSUSE, Tizen και VideoLAN. Η Dell, η SGI και η Intel συνεργάζονται επίσης με το εργαλείο. Αλλά μεταξύ των τακτικών χρηστών υπάρχουν και μικρές startups. Ειδικά για αυτούς, οι συγγραφείς συγκέντρωσαν (σελίδα 10) έχει προρυθμιστεί πακέτο λογισμικού. Το ίδιο το σύστημα είναι εντελώς δωρεάν - χρειάζεται μόνο να ξοδέψετε χρήματα για τη φιλοξενία ή έναν διακομιστή υλικού για να το αναπτύξετε.

Αλλά καθ' όλη τη διάρκεια της ύπαρξής του, το εργαλείο δεν απέκτησε ποτέ μια ευρεία κοινότητα. Αν και αυτός ήταν μέρος του δικτύου προγραμματιστών Linux, υπεύθυνο για την τυποποίηση του ανοιχτού λειτουργικού συστήματος. Μπορεί να είναι δύσκολο Βρείτε την απάντηση στην ερώτησή σας σε θεματικά φόρουμ. Αλλά ένας από τους κατοίκους του Quora σημείωσε ότι σε IRC συνομιλία Στο Freenode, τα μέλη της κοινότητας ανταποκρίνονται αρκετά εύκολα. Το πρόβλημα μιας μικρής κοινότητας δεν είναι παγκόσμιο, αφού έχει περιγραφεί η λύση σε πολλά προβλήματα στην επίσημη τεκμηρίωση (PDF και EPUB). Ibid. μπορεί να βρει βέλτιστες πρακτικές για εργασία με OBS (υπάρχουν παραδείγματα και περιπτώσεις).

Rundeck

Άνοιγμα εργαλείου (GitHub), που αυτοματοποιεί εργασίες στο κέντρο δεδομένων και στο cloud χρησιμοποιώντας σενάρια. Ένας ειδικός διακομιστής σεναρίων είναι υπεύθυνος για την εκτέλεσή τους. Μπορούμε να πούμε ότι η Rundeck είναι μια «κόρη» της πλατφόρμας διαχείρισης εφαρμογών ControlTier. Το Rundeck αποχωρίστηκε από αυτό το 2010 και απέκτησε νέα λειτουργικότητα - για παράδειγμα, ενσωματώσεις με Puppet, Chef, Git και Jenkins.

Το σύστημα χρησιμοποιείται σε Η Walt Disney Company, Salesforce и Ticketmaster. Αλλά το έργο είναι κατάλληλο και για startups. Αυτό συμβαίνει επειδή το Rundeck έχει άδεια χρήσης βάσει της άδειας Apache v2.0. Επιπλέον, το εργαλείο είναι αρκετά εύκολο στη χρήση.

Ένας κάτοικος του Reddit που δούλευε με τον Rundeck, Μιλάει, που έλυσε μόνη μου τις περισσότερες δυσκολίες. Τον βοήθησαν σε αυτό τεκμηρίωση και ηλεκτρονικά βιβλία, που δημοσιεύτηκε από τους προγραμματιστές.

Μπορείτε επίσης να βρείτε σύντομους οδηγούς για τη ρύθμιση του εργαλείου στο διαδίκτυο:

GoCD

Άνοιγμα εργαλείου (GitHub) αυτοματοποίηση ελέγχου έκδοσης κώδικα. Παρουσιάστηκε το 2007 από την εταιρεία ThoughtWorks — τότε το έργο ονομαζόταν Κρουαζιέρα.

Το GoCD χρησιμοποιείται από μηχανικούς από τον ιστότοπο online πωλήσεων αυτοκινήτων AutoTrader, την υπηρεσία γενεαλογίας Ancestry και τον πάροχο πιστωτικών καρτών Barclaycard. Ωστόσο, το ένα τέταρτο των χρηστών εργαλείων αποτελεί μια μικρή επιχείρηση.

Η δημοτικότητα της υπηρεσίας μεταξύ των startups μπορεί να εξηγηθεί από το ανοιχτό της - διανέμεται με την άδεια Apache v2.0. Ταυτόχρονα, το GoCD Έχει πρόσθετα για ενοποίηση με λογισμικό τρίτων - συστήματα εξουσιοδότησης και λύσεις cloud. Αληθινό σύστημα αρκετά περίπλοκο στο mastering - έχει μεγάλο αριθμό χειριστών και ομάδων. Επίσης, ορισμένοι χρήστες παραπονιούνται για την κακή διεπαφή και ανάγκη ρυθμίστε τους παράγοντες για κλιμάκωση.

CICD για startups: ποια εργαλεία υπάρχουν και γιατί δεν τα χρησιμοποιούν μόνο μεγάλες και γνωστές εταιρείες
Фото - Matt Wildbore — Ξεβιδώστε

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

Jenkins

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

Σήμερα με τον Τζένκινς εργάζονται στη NASA, τη Nintendo και άλλους μεγάλους οργανισμούς. Ωστόσο περισσότερο από 8% Οι χρήστες αποτελούν μικρές ομάδες έως δέκα ατόμων. Το προϊόν είναι εντελώς δωρεάν και διανέμεται με άδεια MIT. Ωστόσο, θα πρέπει να φιλοξενήσετε και να διαμορφώσετε μόνοι σας το Jenkins - απαιτεί έναν αποκλειστικό διακομιστή.

Σε όλη την ύπαρξη του οργάνου, μια μεγάλη κοινότητα έχει σχηματιστεί γύρω από αυτό. Οι χρήστες επικοινωνούν ενεργά σε νήματα στο Reddit и Ομάδες Google. Υλικά για τον Jenkins εμφανίζονται επίσης τακτικά στο Habré. Αν θέλετε να γίνετε μέλος της κοινότητας και να αρχίσετε να συνεργάζεστε με τον Jenkins, υπάρχει επίσημη τεκμηρίωση и οδηγός προγραμματιστή. Συνιστούμε επίσης τους ακόλουθους οδηγούς και βιβλία:

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

Buildbot

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

Ο συγγραφέας του εργαλείου ήταν ο μηχανικός Brian Warner. Σήμερα είναι σε υπηρεσία άλλαξε η ομάδα πρωτοβουλίας Buildbot Oversight Committee, η οποία περιλαμβάνει έξι προγραμματιστές.

Buildbot χρησιμοποιούνται έργα όπως τα LLVM, MariaDB, Blender και Dr.Web. Αλλά χρησιμοποιείται επίσης σε μικρότερα έργα όπως το wxWidgets και το Flathub. Το σύστημα υποστηρίζει όλα τα σύγχρονα VCS και έχει ευέλικτες ρυθμίσεις κατασκευής χρησιμοποιώντας Python για την περιγραφή τους. Θα σας βοηθήσει να τα αντιμετωπίσετε όλα. επίσημη τεκμηρίωση και σεμινάρια τρίτων, για παράδειγμα, εδώ είναι ένα σύντομο εγχειρίδιο IBM.

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

Τι γράφουμε στο εταιρικό ιστολόγιο:

Πηγή: www.habr.com

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