3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)
Jatkuva käyttöönotto on ohjelmistokehityksen erityinen lähestymistapa, jolla voidaan nopeasti, turvallisesti ja tehokkaasti toteuttaa ohjelmiston eri toimintoja.
Pääideana on luoda luotettava automatisoitu prosessi, jonka avulla kehittäjä voi toimittaa valmiin tuotteen nopeasti käyttäjälle. Samalla tuotantoon tehdään jatkuvia muutoksia - tätä kutsutaan jatkuvaksi toimitusputkeksi (CD Pipeline).
Muistutamme sinua:kaikille "Habrin" lukijoille - 10 000 ruplan alennus ilmoittautuessaan mille tahansa Skillbox-kurssille "Habr" -tarjouskoodilla.
Voit hallita kulkua käyttämällä monenlaisia työkaluja, mukaan lukien sekä maksullisia että täysin ilmaisia. Tässä artikkelissa kuvataan kolme kehittäjien suosituinta ratkaisua, joista voi olla hyötyä jokaiselle ohjelmoijalle.
Jenkins
Täysin itsenäinen avoimen lähdekoodin automaatiopalvelin. Sen kanssa kannattaa työskennellä kaikenlaisten ohjelmistojen rakentamiseen, testaamiseen, toimittamiseen tai käyttöönottoon liittyvien tehtävien automatisoimiseksi.
PC: n vähimmäisvaatimukset:
256 Mt RAM-muistia, 1 Gt tiedostotilaa.
Optimaalinen:
1 Gt RAM, 50 Gt kovalevy.
Toimiaksesi tarvitset myös lisäohjelmiston - Java Runtime Environment (JRE) version 8.
Arkkitehtuuri (hajautettu laskenta) näyttää tältä:
Jenkins Server on asennus, joka vastaa GUI-isännöinnistä sekä koko koontiversion järjestämisestä ja suorittamisesta.
Jenkins Node/Slave/Build Server – laitteet, jotka voidaan määrittää suorittamaan rakennustyötä isäntäsolmun (pääsolmun) puolesta.
Asennus Linuxille
Ensin sinun on lisättävä Jenkins-arkisto järjestelmään:
Tämän jälkeen Jenkins on käytettävissä järjestelmässä oletusportin 8080 kautta.
Toimivuuden tarkistamiseksi sinun on avattava osoite selaimessa localhost:8080. Tämän jälkeen järjestelmä pyytää sinua syöttämään root-käyttäjän alkuperäisen salasanan. Tämä salasana sijaitsee tiedostossa /var/lib/jenkins/secrets/initialAdminPassword.
Nyt kaikki on valmis, voit aloittaa CI/CD-kulkujen luomisen. Työpöydän graafinen käyttöliittymä näyttää tältä:
kyky liittää suuri määrä laajennuksia laajennusten ansiosta;
aktiivinen ja jatkuvasti kehittyvä yhteisö.
Miinukset:
ei ole analyyttistä lohkoa;
ei kovin käyttäjäystävällinen käyttöliittymä.
TeamCity
Kaupallinen kehitys JetBrainsilta. Palvelin on hyvä yksinkertaisella asennuksella ja erinomaisella käyttöliittymällä. Oletuskokoonpanossa on suuri määrä toimintoja, ja saatavilla olevien lisäosien määrä kasvaa jatkuvasti.
Vaatii Java Runtime Environmentin (JRE) version 8.
Palvelimen laitteistovaatimukset eivät ole kriittisiä:
RAM - 3,2 Gt;
prosessori - kaksiytiminen, 3,2 GHz;
viestintäkanava, jonka kapasiteetti on 1 Gb/s.
Palvelimen avulla voit saavuttaa korkean suorituskyvyn:
60 projektia 300 koontikokoonpanolla;
2 Mt:n varaus rakennuslokiin;
50 rakentaa agenttia;
kyky työskennellä 50 käyttäjän kanssa verkkoversiossa ja 30 käyttäjän kanssa IDE:ssä;
100 ulkoisen VCS-liitäntää, yleensä Perforce ja Subversion. Keskimääräinen vaihtoaika on 120 sekuntia;
yli 150 muutosta päivässä;
työskennellä tietokannan kanssa yhdellä palvelimella;
Agenttivaatimukset perustuvat käynnissä oleviin kokoonpanoihin. Palvelimen päätehtävänä on valvoa kaikkia kytkettyjä agentteja ja jakaa jonossa olevia kokoonpanoja näille agenteille yhteensopivuusvaatimusten perusteella ja raportoida tulokset. Agentteja on saatavilla useissa eri alustoissa ja käyttöjärjestelmissä sekä esikonfiguroidussa ympäristössä.
Kaikki tiedot rakentamisen tuloksista tallennetaan tietokantaan. Tämä on ensisijaisesti historiaa ja muita vastaavia tietoja, VCS-muutoksia, agentteja, rakennusjonoja, käyttäjätilejä ja käyttöoikeuksia. Tietokanta ei sisällä vain rakennuslokeja ja artefakteja.
Asennus Linuxille
Jos haluat asentaa TeamCityn manuaalisesti Tomcat-servlet-säilön kanssa, sinun tulee käyttää TeamCity-arkistoa: TeamCity .tar.gz. ladata saat sen täältä.
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [aloitus|pysäytys]
Kun käynnistät ensimmäisen kerran, sinun on valittava tietokantatyyppi, johon kokoonpanotiedot tallennetaan.
Oletuskokoonpano toimii localhost:8111/ yhden rekisteröidyn koontiagentin ollessa käynnissä samassa PC:ssä.
TeamCityn vahvuudet:
helppo asennus;
käyttäjäystävällinen käyttöliittymä;
suuri määrä sisäänrakennettuja toimintoja;
tuki;
on RESTful API;
hyvä dokumentaatio;
hyvä turvallisuus.
Miinukset:
rajoitettu integraatio;
Tämä on maksullinen työkalu;
pieni yhteisö (joka kuitenkin kasvaa).
GoCD
Avoimen lähdekoodin projekti, joka vaatii Java Runtime Environmentin (JRE) version 8 asentamista ja käyttöä varten.
Laitteistovaatimukset:
RAM - 1 Gt vähintään, enemmän on parempi;
prosessori - kaksiytiminen, jonka ydintaajuus on 2 GHz;
kiintolevy - vähintään 1 Gt vapaata tilaa.
Agentti:
RAM - vähintään 128 Mt, enemmän on parempi;
prosessori - vähintään 2 GHz.
Palvelin varmistaa agenttien toiminnan ja tarjoaa käyttäjälle kätevän käyttöliittymän:
Vaiheet/Työt/Tehtävät:
Asennus Linuxille
kaiku "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
kyky näyttää vaiheittaiset GoCD-käyttöönottopolut yhdessä näkymässä:
erinomainen näyttö putkilinjan rakenteesta:
GoCD optimoi CD-työnkulun suosituimmissa pilviympäristöissä, mukaan lukien Docker, AWS;
työkalu mahdollistaa prosessissa olevien ongelmien korjaamisen, jolloin jokaista muutosta sitomisesta käyttöönottoon seurataan reaaliajassa.
Miinukset:
tarvitaan vähintään yksi agentti;
ei ole konsolia kaikkien suoritettujen tehtävien näyttämiseen;
kunkin komennon suorittamiseksi sinun on luotava yksi tehtävä liukuhihnan konfiguraatiota varten;
Jotta voit asentaa laajennuksen, sinun on siirrettävä .jar-tiedosto kohteeseen /plugins/external ja käynnistä palvelin uudelleen;
suhteellisen pieni yhteisö.
Johtopäätöksenä
Nämä ovat vain kolme työkalua, itse asiassa niitä on paljon enemmän. Valinta on vaikeaa, joten sinun on ehdottomasti kiinnitettävä huomiota muihin seikkoihin.
Työkalun avoimen lähdekoodin avulla on mahdollista ymmärtää, mikä se on, sekä lisätä uusia ominaisuuksia nopeammin. Mutta jos jokin ei toimi, sinun täytyy luottaa vain itseesi ja yhteisön apuun. Maksulliset työkalut tarjoavat tukea, joka voi joskus olla kriittistä.
Jos turvallisuus on tärkein prioriteettisi, kannattaa käyttää paikallista työkalua. Jos ei, niin SaaS-ratkaisun valitseminen on hyvä vaihtoehto.
Ja lopuksi, varmistaaksesi todella tehokkaan jatkuvan käyttöönottoprosessin, sinun on laadittava kriteerit, joiden avulla voit rajata käytettävissä olevien työkalujen valikoimaa.