3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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

Skillbox soovitab: Praktiline kursus "Mobile Developer PRO".

Tuletame meelde: kõigile "Habr" lugejatele - allahindlus 10 000 rubla, kui registreerute mis tahes Skillboxi kursusele, kasutades sooduskoodi "Habr".

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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:
3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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.

Installimine Linuxile

Kõigepealt peate süsteemi lisama Jenkinsi hoidla:

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

Värskenda pakettide hoidlat:

sudo apt uuendatud

Installige Jenkins:

sudo apt install jenkins

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:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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.

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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.

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

Etapid/Töökohad/Ülesanded:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

Installimine Linuxile

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

Curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-hoidla 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|stopp|status|restart]

/etc/init.d/go-agent [start|stopp|status|restart]

Vaikimisi töötab GoCd localhost: 8153.

GoCd tugevused:

  • avatud lähtekoodiga;
  • lihtne paigaldamine ja konfigureerimine;
  • hea dokumentatsioon;

  • Suurepärane kasutajaliides:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

  • võimalus kuvada samm-sammult GoCD juurutamise teed ühes vaates:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

  • torujuhtme struktuuri suurepärane kuvamine:

3 populaarset tööriista pideva juurutamise korraldamiseks (Continuous Deployment)

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

Skillbox soovitab:

Allikas: www.habr.com

Lisa kommentaar