3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Kontinua Deplojo estas speciala aliro en programaro, kiu estas uzata por rapide, sekure kaj efike efektivigi diversajn funkciojn en programaro.

La ĉefa ideo estas krei fidindan aŭtomatigitan procezon, kiu ebligas al la programisto rapide liveri la pretan produkton al la uzanto. Samtempe, konstantaj ŝanĝoj estas faritaj al produktado - tio estas nomita kontinua livera dukto (KD Pipeline).

Skillbox rekomendas: Praktika kurso "Poŝtelefona Programisto PRO".

Ni memorigas vin: por ĉiuj legantoj de "Habr" - rabato de 10 000 rubloj kiam oni enskribas en iu ajn Skillbox-kurso per la reklamkodo "Habr".

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Por kontroli la fluon, vi povas uzi ampleksan gamon da iloj, inkluzive de pagitaj kaj tute senpagaj. Ĉi tiu artikolo priskribas tri el la plej popularaj solvoj inter programistoj, kiuj povas esti utilaj al ĉiu programisto.

Jenkins

Plene memstara malfermfonta aŭtomatiga servilo. Indas kunlabori por aŭtomatigi ĉiajn taskojn rilate al konstruado, testado, sendado aŭ disfaldigo de programaro.

Minimumaj komputilaj postuloj:

  • 256 MB RAM, 1 GB dosierspaco.

Optimuma:

  • 1 GB RAM, 50 GB malmola disko.

Por funkcii, vi ankaŭ bezonos kroman programaron - Java Runtime Environment (JRE) versio 8.

La arkitekturo (distribuita komputado) aspektas jene:
3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Jenkins Server estas instalaĵo, kiu respondecas pri GUI-gastigado, kaj ankaŭ pri organizado kaj ekzekuto de la tuta konstruo.

Jenkins Node/Slave/Build Server - aparatoj kiuj povas esti agorditaj por plenumi konstrulaboron nome de la Majstro (majstra nodo).

Instalado por Linukso

Unue vi devas aldoni la Jenkins-deponejon al la sistemo:

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

Ĝisdatigu pakaĵdeponejon:

sudo apt ĝisdatigo

Instalu Jenkins:

sudo apt install jenkins

Post ĉi tio, Jenkins estos disponebla en la sistemo per la defaŭlta haveno 8080.

Por kontroli funkciojn, vi devas malfermi la adreson en la retumilo localhost:8080. La sistemo tiam petos vin enigi la komencan pasvorton por la radika uzanto. Ĉi tiu pasvorto troviĝas en la dosiero /var/lib/jenkins/secrets/initialAdminPassword.

Nun ĉio estas preta por iri, vi povas komenci krei CI/KD-fluojn. La grafika interfaco de la laborbenko aspektas jene:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Jenkins Fortoj:

  • skaleblo provizita de la arkitekturo Majstro/Sklavo;
  • havebleco de REST XML/JSON API;
  • la kapablo konekti grandan nombron da etendoj danke al kromaĵoj;
  • aktiva kaj konstante evoluanta komunumo.

Kons:

  • ne ekzistas analiza bloko;
  • ne tre afabla interfaco.

TeamCity

Komerca evoluo de JetBrains. La servilo estas bona kun simpla agordo kaj bonega interfaco. La defaŭlta agordo havas grandan nombron da funkcioj, kaj la nombro da disponeblaj kromprogramoj konstante pliiĝas.

Postulas Java Runtime Environment (JRE) version 8.

La servilaj aparataj postuloj estas nekritikaj:

  • RAM - 3,2 GB;
  • procesoro - dukerna, 3,2 GHz;
  • komunika kanalo kun kapacito de 1 Gb/s.

La servilo permesas al vi atingi altan rendimenton:

  • 60 projektoj kun 300 konstruaj agordoj;
  • 2 MB-atribuo por konstruprotokolo;
  • 50 konstruaj agentoj;
  • la kapablo labori kun 50 uzantoj en la retejo-versio kaj 30 uzantoj en la IDE;
  • 100 ligoj de ekstera VCS, kutime Perforce kaj Subversion. La averaĝa ŝanĝotempo estas 120 sekundoj;
  • pli ol 150 modifoj tage;
  • laborante kun la datumbazo sur unu servilo;
  • JVM-servilo-procezaj agordoj: -Xmx1100m -XX:MaxPermSize=120m.

Agentpostuloj baziĝas sur kurado de asembleoj. La ĉefa tasko de la servilo estas monitori ĉiujn konektitajn agentojn kaj distribui asembleojn de la atendovico al ĉi tiuj agentoj surbaze de kongruaj postuloj, raportante la rezultojn. Agentoj venas en diversaj platformoj kaj operaciumoj, krom antaŭ-agordita medio.

Ĉiuj informoj pri la konstrurezultoj estas konservitaj en la datumbazo. Ĉefe ĉi tio estas historio kaj aliaj similaj datumoj, VCS-ŝanĝoj, agentoj, konstruvostoj, uzantkontoj kaj permesoj. La datumbazo ne inkluzivas nur konstruprogramojn kaj artefaktojn.

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Instalado por Linukso

Por permane instali TeamCity per Tomcat-servlet-ujo, vi devus uzi la TeamCity-arkivon: TeamCity .tar.gz. Elŝutu vi povas akiri ĝin de ĉi tie.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [komenco|halti]

Kiam vi unue komencas, vi devas elekti la tipon de datumbazo en kiu la asembleaj datumoj estos konservitaj.

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

La defaŭlta agordo funkcias localhost:8111/ kun unu registrita konstruagento funkcianta sur la sama komputilo.

La fortoj de TeamCity:

  • simpla aranĝo;
  • uzant-amika interfaco;
  • granda nombro da enkonstruitaj funkcioj;
  • Subtena servo;
  • estas RESTful API;
  • bona dokumentado;
  • bona sekureco.

Kons:

  • limigita integriĝo;
  • Ĉi tio estas pagita ilo;
  • malgranda komunumo (kiu tamen kreskas).

GoCD

Malfermfonta projekto kiu postulas Java Runtime Environment (JRE) version 8 por instalado kaj funkciado.

Sistemaj Postuloj:

  • RAM - minimume 1 GB, pli estas pli bone;
  • procesoro - dukerna, kun kerna frekvenco de 2 GHz;
  • malmola disko - almenaŭ 1 GB da libera spaco.

Agento:

  • RAM - almenaŭ 128 MB, pli estas pli bone;
  • procesoro - almenaŭ 2 GHz.

La servilo certigas la funkciadon de agentoj kaj provizas oportunan interfacon por la uzanto:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Etapoj/Stapoj/Taskoj:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

Instalado por Linukso

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

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

kapabla akiri ĝisdatigon

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [komenco|halti|stato|rekomenco]

/etc/init.d/go-agent [komenco|halti|stato|rekomenco]

Defaŭlte GoCd funkcias localhost: 8153.

La fortoj de GoCd:

  • malferma fonto;
  • simpla instalado kaj agordo;
  • bona dokumentado;

  • Bonega uzantinterfaco:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

  • kapablo montri paŝon post paŝo GoCD-deplojvojon en unu vido:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

  • bonega montrado de la duktostrukturo:

3 popularaj iloj por organizi kontinuan deplojon (Kontinua Deplojo)

  • GoCD optimumigas la KD-laborfluon en la plej popularaj nubaj medioj inkluzive de Docker, AWS;
  • la ilo ebligas korekti problemojn en la dukto, por kiuj estas spurado de ĉiu ŝanĝo de transdono al deplojo en reala tempo.

Kons:

  • necesas almenaŭ unu agento;
  • ne ekzistas konzolo por montri ĉiujn plenumitajn taskojn;
  • por ekzekuti ĉiun komandon, vi devas krei unu taskon por la dukto-agordo;
  • Por instali la kromprogramon vi devas movi la .jar-dosieron al /plugins/external kaj rekomencu la servilon;
  • relative malgranda komunumo.

Kiel konkludo

Ĉi tiuj estas nur tri iloj, fakte estas multaj pli. Estas malfacile elekti, do vi certe devas atenti pliajn aspektojn.

La malferma fontkodo de la ilo ebligas kompreni kio ĝi estas, kaj aldoni novajn funkciojn pli rapide. Sed se io ne funkcias, tiam vi devas fidi nur je vi mem kaj la helpo de la komunumo. Pagitaj iloj provizas subtenon, kiu foje povas esti kritika.

Se sekureco estas via ĉefa prioritato, indas labori per loka ilo. Se ne, tiam elekti SaaS-solvon estas bona elekto.

Kaj laste, por certigi vere efikan kontinuan disfaldan procezon, vi devas formuli kriteriojn, kies specifaĵoj permesos al vi mallarĝigi la gamon de disponeblaj iloj.

Skillbox rekomendas:

fonto: www.habr.com

Aldoni komenton