3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

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).

Skillbox suosittelee: Käytännön kurssi "Mobile Developer PRO".

Muistutamme sinua: kaikille "Habrin" lukijoille - 10 000 ruplan alennus ilmoittautuessaan mille tahansa Skillbox-kurssille "Habr" -tarjouskoodilla.

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

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ä:
3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

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:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binääri/' | sudo tee -a /etc/apt/sources.list.d/je

Päivitä pakettivarasto:

sudo apt päivitys

Asenna Jenkins:

sudo apt install jenkins

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ä:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

Jenkinsin vahvuudet:

  • Master/Slave-arkkitehtuurin tarjoama skaalautuvuus;
  • REST XML/JSON API:n saatavuus;
  • 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;
  • JVM-palvelimen prosessiasetukset: -Xmx1100m -XX:MaxPermSize=120m.

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.

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

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.

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

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:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

Vaiheet/Työt/Tehtävät:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

Asennus Linuxille

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

kiemura download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-arkisto ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get install 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]

Oletuksena GoCd toimii localhost: 8153.

GoCd:n vahvuudet:

  • avoin lähdekoodi;
  • yksinkertainen asennus ja konfigurointi;
  • hyvä dokumentaatio;

  • Loistava käyttöliittymä:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

  • kyky näyttää vaiheittaiset GoCD-käyttöönottopolut yhdessä näkymässä:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

  • erinomainen näyttö putkilinjan rakenteesta:

3 suosittua työkalua jatkuvan käyttöönoton järjestämiseen (Continuous Deployment)

  • 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.

Skillbox suosittelee:

Lähde: will.com

Lisää kommentti