Davamlı yerləşdirməni təşkil etmək üçün 3 məşhur alət (Davamlı Yerləşdirmə)
Davamlı Yerləşdirmə proqram təminatında müxtəlif funksiyaları tez, təhlükəsiz və səmərəli şəkildə həyata keçirmək üçün istifadə olunan proqram təminatının hazırlanmasında xüsusi yanaşmadır.
Əsas ideya tərtibatçıya hazır məhsulu tez bir zamanda istifadəçiyə çatdırmağa imkan verən etibarlı avtomatlaşdırılmış proses yaratmaqdır. Eyni zamanda, istehsalda daimi dəyişikliklər edilir - bu, davamlı çatdırılma boru kəməri (CD Pipeline) adlanır.
Xatırladırıq:"Habr" ın bütün oxucuları üçün - "Habr" promosyon kodundan istifadə edərək hər hansı bir Skillbox kursuna yazılarkən 10 000 rubl endirim.
Axına nəzarət etmək üçün həm pullu, həm də tamamilə pulsuz daxil olmaqla geniş alətlərdən istifadə edə bilərsiniz. Bu məqalə hər bir proqramçı üçün faydalı ola biləcək tərtibatçılar arasında ən populyar üç həlli təsvir edir.
Jenkins
Tamamilə müstəqil açıq mənbəli avtomatlaşdırma serveri. Proqram təminatının qurulması, sınaqdan keçirilməsi, göndərilməsi və ya yerləşdirilməsi ilə bağlı hər cür tapşırıqları avtomatlaşdırmaq üçün onunla işləməyə dəyər.
Minimum PC tələbləri:
256 MB RAM, 1 GB fayl sahəsi.
Optimal:
1 GB RAM, 50 GB sərt disk.
İşləmək üçün sizə əlavə proqram təminatı da lazımdır - Java Runtime Environment (JRE) 8 versiyası.
Arxitektura (paylanmış hesablama) belə görünür:
Jenkins Server GUI hostinqinə cavabdeh olan bir quraşdırmadır, həmçinin bütün quruluşun təşkili və icrası.
Jenkins Node/Slave/Build Server - Master (əsas node) adından qurma işlərini yerinə yetirmək üçün konfiqurasiya edilə bilən cihazlar.
Linux üçün quraşdırma
Əvvəlcə sistemə Jenkins deposunu əlavə etməlisiniz:
Bundan sonra Jenkins sistemdə standart port 8080 vasitəsilə mövcud olacaq.
Funksionallığı yoxlamaq üçün brauzerdə ünvanı açmalısınız localhost:8080. Bundan sonra sistem sizdən kök istifadəçi üçün ilkin parolu daxil etməyi təklif edəcək. Bu parol /var/lib/jenkins/secrets/initialAdminPassword faylında yerləşir.
İndi hər şey getməyə hazırdır, siz CI/CD axınları yaratmağa başlaya bilərsiniz. İş dəzgahının qrafik interfeysi belə görünür:
Jenkins Gücləri:
Master/Slave arxitekturası tərəfindən təmin edilən genişlənmə qabiliyyəti;
REST XML/JSON API-nin mövcudluğu;
plaginlər sayəsində çox sayda uzantıya qoşulma imkanı;
fəal və daim inkişaf edən cəmiyyət.
Eksiler:
analitik blok yoxdur;
çox istifadəçi dostu interfeys deyil.
TeamCity
JetBrains-dən kommersiya inkişafı. Server sadə quraşdırma və əla interfeys ilə yaxşıdır. Varsayılan konfiqurasiya çox sayda funksiyaya malikdir və mövcud plaginlərin sayı daim artır.
Java Runtime Environment (JRE) 8 versiyasını tələb edir.
Server avadanlığı tələbləri kritik deyil:
RAM - 3,2 GB;
prosessor - iki nüvəli, 3,2 GHz;
1 Gb/s tutumlu rabitə kanalı.
Server yüksək performans əldə etməyə imkan verir:
60 konfiqurasiya ilə 300 layihə;
Quraşdırma jurnalı üçün 2 MB ayrılması;
50 qurucu agent;
veb versiyada 50 istifadəçi və IDE-də 30 istifadəçi ilə işləmək imkanı;
Xarici VCS-nin 100 əlaqəsi, adətən Perforce və Subversion. Orta dəyişmə müddəti 120 saniyədir;
gündə 150-dən çox dəyişiklik;
bir serverdə verilənlər bazası ilə işləmək;
JVM server proses parametrləri: -Xmx1100m -XX:MaxPermSize=120m.
Agent tələbləri işləyən montajlara əsaslanır. Serverin əsas vəzifəsi bütün qoşulmuş agentləri izləmək və uyğunluq tələblərinə əsaslanaraq bu agentlərə növbəyə yığılmış birləşmələri paylamaq, nəticələr barədə hesabat verməkdir. Agentlər müxtəlif platformalarda və əməliyyat sistemlərində, həmçinin əvvəlcədən konfiqurasiya edilmiş mühitdə gəlir.
Quraşdırma nəticələri haqqında bütün məlumatlar verilənlər bazasında saxlanılır. İlk növbədə bu, tarix və digər oxşar məlumatlar, VCS dəyişiklikləri, agentlər, qurmaq növbələri, istifadəçi hesabları və icazələrdir. Verilənlər bazasına yalnız qurma qeydləri və artefaktlar daxil deyil.
Linux üçün quraşdırma
TeamCity-ni Tomcat servlet konteyneri ilə əl ilə quraşdırmaq üçün siz TeamCity arxivindən istifadə etməlisiniz: TeamCity .tar.gz. Yüklə burdan ala bilersiz.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [start|dayan]
İlk işə başladığınız zaman, montaj məlumatlarının saxlanacağı verilənlər bazası növünü seçməlisiniz.
Standart konfiqurasiya işləyir localhost:8111/ eyni kompüterdə işləyən bir qeydiyyatdan keçmiş qurma agenti ilə.
TeamCity-nin güclü tərəfləri:
asan quraşdırma;
istifadəçi dostu interfeysi;
çox sayda daxili funksiyalar;
Dəstək xidməti;
RESTful API var;
yaxşı sənədlər;
yaxşı təhlükəsizlik.
Eksiler:
məhdud inteqrasiya;
Bu ödənişli vasitədir;
kiçik bir icma (buna baxmayaraq, böyüyür).
GoCD
Quraşdırma və əməliyyat üçün Java Runtime Environment (JRE) 8 versiyasını tələb edən açıq mənbə layihəsi.
Sistem tələbləri:
RAM - minimum 1 GB, daha çox yaxşıdır;
prosessor - iki nüvəli, nüvə tezliyi 2 GHz;
sabit disk - ən azı 1 GB boş yer.
Agent:
RAM - ən azı 128 MB, daha çox yaxşıdır;
prosessor - ən azı 2 GHz.
Server agentlərin işləməsini təmin edir və istifadəçi üçün rahat interfeys təqdim edir:
Mərhələlər/İşlər/Tapşırıqlar:
Linux üçün quraşdırma
echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
bir görünüşdə addım-addım GoCD yerləşdirmə yolunu göstərmək imkanı:
boru kəməri strukturunun əla nümayişi:
GoCD Docker, AWS daxil olmaqla ən məşhur bulud mühitlərində CD iş axını optimallaşdırır;
alət boru kəmərindəki problemləri düzəltməyə imkan verir, bunun üçün real vaxt rejimində öhdəsindən tutmuş yerləşdirməyə qədər hər bir dəyişiklik izlənilir.
Eksiler:
ən azı bir agent lazımdır;
bütün tamamlanmış tapşırıqları göstərmək üçün konsol yoxdur;
hər bir əmri yerinə yetirmək üçün boru kəmərinin konfiqurasiyası üçün bir tapşırıq yaratmalısınız;
Plugini quraşdırmaq üçün .jar faylını bu yerə köçürməlisiniz /plugins/external və serveri yenidən başladın;
nisbətən kiçik icma.
Nəticə olaraq
Bunlar yalnız üç alətdir, əslində daha çoxu var. Seçmək çətindir, buna görə mütləq əlavə aspektlərə diqqət yetirməlisiniz.
Alətin açıq mənbə kodu onun nə olduğunu başa düşməyə, üstəlik daha sürətli yeni funksiyalar əlavə etməyə imkan verir. Ancaq bir şey işləmirsə, o zaman yalnız özünüzə və cəmiyyətin köməyinə etibar etməlisiniz. Ödənişli alətlər bəzən kritik ola biləcək dəstək verir.
Əgər təhlükəsizlik sizin prioritetinizdirsə, yerli alətlə işləməyə dəyər. Əgər belə deyilsə, onda SaaS həllini seçmək yaxşı seçimdir.
Və nəhayət, həqiqətən effektiv davamlı yerləşdirmə prosesini təmin etmək üçün, xüsusiyyətləri sizə mövcud alətlərin çeşidini daraltmağa imkan verəcək meyarlar tərtib etməlisiniz.