Pidev juurutamine on tarkvaraarenduse eriline lähenemine, mida kasutatakse tarkvara erinevate funktsioonide kiireks, ohutuks ja tõhusaks juurutamiseks.
Põhiidee on luua usaldusväärne automatiseeritud protsess, mis võimaldab arendajal valmistoote kiiresti kasutajani toimetada. Samal ajal tehakse tootmises pidevaid muudatusi – seda nimetatakse pidevaks tarnekonveieriks (CD Pipeline).
Tuletame meelde:kõigile "Habr" lugejatele - allahindlus 10 000 rubla, kui registreerute mis tahes Skillboxi kursusele, kasutades sooduskoodi "Habr".
Voo juhtimiseks saate kasutada mitmesuguseid tööriistu, sealhulgas nii tasulisi kui ka täiesti tasuta. Selles artiklis kirjeldatakse kolme arendajate seas kõige populaarsemat lahendust, mis võivad olla kasulikud igale programmeerijale.
Jenkins
Täielikult iseseisev avatud lähtekoodiga automatiseerimisserver. Sellega tasub töötada, et automatiseerida kõikvõimalikud tarkvara ehitamise, testimise, tarnimise või juurutamisega seotud ülesanded.
Minimaalsed nõuded arvutile:
256 MB RAM, 1 GB failiruumi.
Optimaalne:
1 GB RAM, 50 GB kõvaketas.
Töötamiseks on vaja ka lisatarkvara – Java Runtime Environment (JRE) versioon 8.
Arhitektuur (hajutatud andmetöötlus) näeb välja selline:
Jenkins Server on install, mis vastutab GUI hostimise ning kogu ehituse korraldamise ja teostamise eest.
Jenkins Node/Slave/Build Server – seadmed, mida saab konfigureerida põhisõlme (põhisõlme) nimel ehitustöid tegema.
Pärast seda on Jenkins süsteemis saadaval vaikepordi 8080 kaudu.
Funktsionaalsuse kontrollimiseks peate brauseris aadressi avama localhost:8080. Seejärel palub süsteem teil sisestada juurkasutaja algne parool. See parool asub failis /var/lib/jenkins/secrets/initialAdminPassword.
Nüüd on kõik tööks valmis, võite alustada CI/CD-voogude loomist. Töölaua graafiline liides näeb välja selline:
Jenkinsi tugevused:
skaleeritavus, mida pakub Master/Slave arhitektuur;
REST XML/JSON API kättesaadavus;
tänu pistikprogrammidele võimalus ühendada suur hulk laiendusi;
aktiivne ja pidevalt arenev kogukond.
miinuseid:
analüütiline blokk puudub;
mitte eriti kasutajasõbralik liides.
TeamCity
JetBrainsi kommertsarendus. Server on hea lihtsa seadistuse ja suurepärase liidesega. Vaikekonfiguratsioonil on palju funktsioone ja saadaolevate pistikprogrammide arv kasvab pidevalt.
Nõuab Java Runtime Environment (JRE) versiooni 8.
Serveri riistvaranõuded ei ole kriitilised:
RAM - 3,2 GB;
protsessor - kahetuumaline, 3,2 GHz;
sidekanal võimsusega 1 Gb/s.
Server võimaldab teil saavutada suure jõudluse:
60 projekti 300 ehituskonfiguratsiooniga;
2 MB eraldis ehituslogi jaoks;
50 ehitusagenti;
võimalus töötada 50 kasutajaga veebiversioonis ja 30 kasutajaga IDE-s;
100 välise VCS-i ühendust, tavaliselt Perforce ja Subversion. Keskmine vahetusaeg on 120 sekundit;
rohkem kui 150 modifikatsiooni päevas;
andmebaasiga töötamine ühes serveris;
JVM-serveri protsessi seaded: -Xmx1100m -XX:MaxPermSize=120m.
Agendi nõuded põhinevad töötavatel koostudel. Serveri põhiülesanne on jälgida kõiki ühendatud agente ja jaotada nendele agentidele järjekorda pandud komplekte, lähtudes ühilduvusnõuetest, edastades tulemused. Agendid on saadaval mitmesugustes platvormides ja operatsioonisüsteemides ning eelkonfigureeritud keskkonnas.
Kogu teave ehitustulemuste kohta salvestatakse andmebaasi. Peamiselt on see ajalugu ja muud sarnased andmed, VCS-i muudatused, agendid, ehitusjärjekorrad, kasutajakontod ja load. Andmebaas ei sisalda ainult ehitusloge ja artefakte.
Installimine Linuxile
TeamCity käsitsi installimiseks Tomcati servleti konteineriga peaksite kasutama TeamCity arhiivi: TeamCity .tar.gz. Lae alla saad selle siit.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [alusta | lõpeta]
Esmakordsel käivitamisel peate valima andmebaasi tüübi, kuhu koostuandmed salvestatakse.
Vaikekonfiguratsioon töötab edasi localhost:8111/ ühe registreeritud ehitusagendiga, mis töötab samas arvutis.
TeamCity tugevad küljed:
lihtne seadistamine;
kasutajasõbralik liides;
suur hulk sisseehitatud funktsioone;
toetus;
on olemas RESTful API;
hea dokumentatsioon;
hea turvalisus.
miinuseid:
piiratud integratsioon;
See on tasuline tööriist;
väike kogukond (mis aga kasvab).
GoCD
Avatud lähtekoodiga projekt, mille installimiseks ja kasutamiseks on vaja Java Runtime Environment (JRE) versiooni 8.
Системные требования:
RAM - vähemalt 1 GB, rohkem on parem;
protsessor - kahetuumaline, tuuma sagedusega 2 GHz;
kõvaketas - vähemalt 1 GB vaba ruumi.
Agent:
RAM - vähemalt 128 MB, eelistatavalt rohkem;
protsessor - vähemalt 2 GHz.
Server tagab agentide töö ja pakub kasutajale mugavat liidest:
Etapid/Töökohad/Ülesanded:
Installimine Linuxile
kaja "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
võimalus kuvada samm-sammult GoCD juurutamise teed ühes vaates:
torujuhtme struktuuri suurepärane kuvamine:
GoCD optimeerib CD töövoogu kõige populaarsemates pilvekeskkondades, sealhulgas Docker, AWS;
tööriist võimaldab parandada torujuhtmes esinevaid probleeme, mille puhul jälgitakse reaalajas iga muudatust kohustusest kasutuselevõtuks.
miinuseid:
vaja on vähemalt ühte agenti;
kõigi lõpetatud ülesannete kuvamiseks pole konsooli;
iga käsu täitmiseks peate konveieri konfiguratsiooni jaoks looma ühe ülesande;
Pistikprogrammi installimiseks peate jar-faili teisaldama /plugins/external ja taaskäivitage server;
suhteliselt väike kogukond.
Kokkuvõtteks
Need on vaid kolm tööriista, tegelikult on neid palju rohkem. Seda on raske valida, seega peate kindlasti pöörama tähelepanu täiendavatele aspektidele.
Tööriista avatud lähtekoodi abil on võimalik aru saada, millega on tegu, ning lisada uusi funktsioone kiiremini. Aga kui midagi ei tööta, siis tuleb loota ainult iseendale ja kogukonna abile. Tasulised tööriistad pakuvad tuge, mis võib mõnikord olla kriitilise tähtsusega.
Kui turvalisus on teie prioriteet, tasub töötada kohaliku tööriistaga. Kui ei, siis on SaaS-i lahenduse valimine hea valik.
Ja lõpuks, tõeliselt tõhusa pideva juurutamisprotsessi tagamiseks peate sõnastama kriteeriumid, mille eripära võimaldab teil saadaolevate tööriistade valikut kitsendada.