3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Continuous Deployment is in spesjale oanpak yn softwareûntwikkeling dy't brûkt wurdt om fluch, feilich en effisjint ferskate funksjes yn software út te fieren.

It haadidee is om in betrouber automatisearre proses te meitsjen wêrtroch de ûntwikkelder it fertikke produkt fluch oan de brûker kin leverje. Tagelyk wurde konstante feroarings makke oan produksje - dit wurdt in trochgeande leveringspipeline neamd (CD Pipeline).

Skillbox advisearret: Praktyske kursus "Mobiele ûntwikkelder PRO".

Wy herinnerje: foar alle lêzers fan "Habr" - in koarting fan 10 roebel by it ynskriuwen fan in Skillbox-kursus mei de promoasjekoade "Habr".

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Om de stream te kontrolearjen, kinne jo in breed oanbod fan ark brûke, ynklusyf sawol betelle as folslein fergees. Dit artikel beskriuwt trije fan 'e populêrste oplossingen ûnder ûntwikkelders dy't nuttich kinne wêze foar elke programmeur.

Jenkins

Folslein selsstannige iepen boarne automatisearringsserver. It is de muoite wurdich om mei te wurkjen om alle soarten taken te automatisearjen yn ferbân mei it bouwen, testen, ferstjoeren of ynsetten fan software.

Minimale PC-easken:

  • 256 MB RAM, 1 GB triem romte.

Optimaal:

  • 1 GB RAM, 50 GB hurde skiif.

Om te wurkjen hawwe jo ek ekstra software nedich - Java Runtime Environment (JRE) ferzje 8.

De arsjitektuer (ferspraat komputer) sjocht der sa út:
3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Jenkins Server is in ynstallaasje dy't ferantwurdlik is foar GUI-hosting, lykas it organisearjen en útfieren fan 'e heule build.

Jenkins Node / Slave / Build Server - apparaten dy't kinne wurde konfigurearre foar it útfieren fan bouwurk út namme fan 'e Master (haadknooppunt).

Ynstallaasje foar Linux

Earst moatte jo it Jenkins repository tafoegje oan it systeem:

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êr/' | sudo tee -a /etc/apt/sources.list.d/je

Update pakket repository:

sudo apt update

Ynstallearje Jenkins:

sudo apt ynstallearje jenkins

Hjirnei sil Jenkins beskikber wêze yn it systeem fia de standertpoarte 8080.

Om de funksjonaliteit te kontrolearjen, moatte jo it adres yn 'e browser iepenje localhost:8080. It systeem sil jo dan freegje om it earste wachtwurd yn te fieren foar de root-brûker. Dit wachtwurd is te finen yn it bestân /var/lib/jenkins/secrets/initialAdminPassword.

No is alles klear om te gean, jo kinne begjinne mei it meitsjen fan CI / CD-flows. De grafyske ynterface fan 'e workbench sjocht der sa út:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Jenkins sterke punten:

  • skaalberens levere troch de Master / Slave-arsjitektuer;
  • beskikberens fan REST XML / JSON API;
  • de mooglikheid om in grut oantal útwreidingen te ferbinen troch plugins;
  • aktive en hieltyd yn ûntwikkeling mienskip.

Cons:

  • der is gjin analytysk blok;
  • net hiel brûker-freonlik ynterface.

TeamCity

Kommersjele ûntwikkeling fan JetBrains. De tsjinner is goed mei ienfâldige opset en in poerbêste ynterface. De standertkonfiguraasje hat in grut oantal funksjes, en it oantal beskikbere plugins nimt hieltyd ta.

Fereasket Java Runtime Environment (JRE) ferzje 8.

De tsjinner hardware easken binne net-kritysk:

  • RAM - 3,2 GB;
  • prosessor - dual-core, 3,2 GHz;
  • kommunikaasje kanaal mei in kapasiteit fan 1 Gb / s.

De tsjinner lit jo hege prestaasjes berikke:

  • 60 projekten mei 300 build konfiguraasjes;
  • 2 MB tawizing foar build log;
  • 50 build aginten;
  • de mooglikheid om te wurkjen mei 50 brûkers yn 'e webferzje en 30 brûkers yn' e IDE;
  • 100 ferbinings fan eksterne VCS, meastal Perforce en Subversion. De gemiddelde feroaring tiid is 120 sekonden;
  • mear as 150 wizigingen per dei;
  • wurkje mei de databank op ien tsjinner;
  • JVM-tsjinner proses ynstellings: -Xmx1100m -XX:MaxPermSize=120m.

Agent easken binne basearre op rinnende gearkomsten. De haadtaak fan 'e tsjinner is om alle ferbûne aginten te kontrolearjen en wachtrige gearkomsten te fersprieden oan dizze aginten basearre op kompatibiliteitseasken, en rapportearje de resultaten. Aginten komme yn in ferskaat oan platfoarms en bestjoeringssystemen, plus in pre-konfigureare omjouwing.

Alle ynformaasje oer de bouresultaten wurdt opslein yn 'e databank. Dit is primêr skiednis en oare ferlykbere gegevens, VCS-feroarings, aginten, build-wachtrijen, brûkersakkounts en tagongsrjochten. De databank omfettet net allinich boulogs en artefakten.

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Ynstallaasje foar Linux

Om TeamCity mei de hân te ynstallearjen mei in Tomcat-servletcontainer, moatte jo it TeamCity-argyf brûke: TeamCity .tar.gz. Download jo kinne it hjirwei krije.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [begjin|stop]

As jo ​​​​earst begjinne, moatte jo it type databank selektearje wêryn de gearstallingsgegevens wurde opslein.

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

De standert konfiguraasje rint op localhost: 8111/ mei ien registrearre build agent dy't rint op deselde PC.

De sterke punten fan TeamCity:

  • ienfâldige opset;
  • brûker-freonlik ynterface;
  • in grut oantal ynboude funksjes;
  • Stipe tsjinst;
  • der is in RESTful API;
  • goede dokumintaasje;
  • goede feiligens.

Cons:

  • beheinde yntegraasje;
  • Dit is in betelle ark;
  • in lytse mienskip (dy't lykwols groeit).

GoCD

In iepen boarne projekt dat Java Runtime Environment (JRE) ferzje 8 fereasket foar ynstallaasje en operaasje.

System Requirements:

  • RAM - 1 GB minimum, mear is better;
  • prosessor - dual-core, mei in kearnfrekwinsje fan 2 GHz;
  • hurde skiif - op syn minst 1 GB frije romte.

Agint:

  • RAM - op syn minst 128 MB, mear is better;
  • prosessor - op syn minst 2 GHz.

De tsjinner soarget foar de wurking fan aginten en biedt in handige ynterface foar de brûker:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Stadia / Jobs / Taken:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

Ynstallaasje foar Linux

echo "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-repository ppa: openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get ynstallearje go-agent

/etc/init.d/go-server [start|stop|status|herstart]

/etc/init.d/go-agent [start|stop|status|herstart]

Standert rint GoCd op localhost: 8153.

De sterke punten fan GoCd:

  • iepen Boarne;
  • ienfâldige ynstallaasje en konfiguraasje;
  • goede dokumintaasje;

  • Geweldige brûkersynterface:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

  • mooglikheid om stap-foar-stap GoCD-ynsetpaad yn ien werjefte sjen te litten:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

  • poerbêst werjefte fan de pipeline struktuer:

3 populêre ark foar it organisearjen fan trochgeande ynset (Continuous Deployment)

  • GoCD optimalisearret de CD-workflow yn 'e populêrste wolkomjouwings ynklusyf Docker, AWS;
  • it ark makket it mooglik om problemen yn 'e pipeline te korrigearjen, wêrfoar't elke feroaring fan tasizzing nei ynset yn realtime folge wurdt.

Cons:

  • op syn minst ien agent is nedich;
  • d'r is gjin konsole om alle foltôge taken wer te jaan;
  • om elk kommando út te fieren, moatte jo ien taak meitsje foar de pipelinekonfiguraasje;
  • Om de plugin te ynstallearjen moatte jo it .jar-bestân ferpleatse nei /plugins/external en de tsjinner opnij starte;
  • relatyf lytse mienskip.

As in konklúzje

Dit binne mar trije ark, yn feite binne d'r folle mear. It is lestich om te kiezen, dus jo moatte perfoarst omtinken jaan oan ekstra aspekten.

De iepen boarne koade fan it ark makket it mooglik om te begripen wat it is, plus nije funksjes rapper taheakje. Mar as wat net wurket, dan moatte jo allinich op josels en de help fan 'e mienskip fertrouwe. Betelle ark jouwe stipe dy't soms kritysk kin wêze.

As feiligens jo topprioriteit is, is it it wurdich te wurkjen mei in lokaal ark. As net, dan is it kiezen fan in SaaS-oplossing in goede opsje.

En as lêste, om in wirklik effektyf trochgeand ynsetproses te garandearjen, moatte jo kritearia formulearje wêrfan de spesifikaasjes jo it berik fan beskikbere ark kinne beheine.

Skillbox advisearret:

Boarne: www.habr.com

Add a comment