3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Deplwaman kontinyèl se yon apwòch espesyal nan devlopman lojisyèl ki itilize rapid, san danje epi avèk efikasite aplike divès fonksyon nan lojisyèl.

Lide prensipal la se kreye yon pwosesis otomatik serye ki pèmèt pwomotè a byen vit delivre pwodwi a fini bay itilizatè a. An menm tan an, yo fè chanjman konstan nan pwodiksyon - yo rele sa yon tiyo livrezon kontinyèl (CD Pipeline).

Skillbox rekòmande: Kou pratik "Mobile Developer PRO".

Nou raple: pou tout lektè "Habr" - yon rabè nan 10 rubles lè w ap enskri nan nenpòt kou Skillbox lè l sèvi avèk kòd pwomosyon "Habr".

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Pou kontwole koule a, ou ka itilize yon pakèt zouti, ki gen ladan tou de peye ak konplètman gratis. Atik sa a dekri twa nan solisyon ki pi popilè nan mitan devlopè ki ka itil pou chak pwogramè.

Jenkins

Konplètman endepandan, sèvè automatisation sous louvri. Li vo travay avèk yo otomatize tout kalite travay ki gen rapò ak bati, tès, anbake, oswa deplwaye lojisyèl.

Kondisyon minimòm pou PC:

  • 256 MB RAM, 1 GB espas dosye.

Optimal:

  • 1 GB RAM, 50 GB kondwi difisil.

Pou travay, w ap bezwen lojisyèl adisyonèl tou - Java Runtime Environment (JRE) vèsyon 8.

Achitekti a (enfòmatik distribiye) sanble sa a:
3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Jenkins Server se yon enstalasyon ki responsab pou hosting GUI, osi byen ke òganize ak egzekite bati a tout antye.

Jenkins Node/Slave/Build Server - aparèy ki ka konfigirasyon pou fè travay bati sou non Mèt la (mèt ne).

Enstalasyon pou Linux

Premye ou bezwen ajoute repozitwa Jenkins nan sistèm nan:

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

Mete ajou depo pake:

sudo jis aktyalizasyon

Enstale Jenkins:

sudo apt enstale jenkins

Apre sa, Jenkins ap disponib nan sistèm nan atravè pò default 8080 la.

Pou tcheke fonksyonalite, ou bezwen louvri adrès la nan navigatè a lokalost:8080. Lè sa a, sistèm nan pral mande w antre modpas inisyal la pou itilizatè rasin lan. Modpas sa a sitiye nan dosye /var/lib/jenkins/secrets/initialAdminPassword.

Koulye a, tout bagay pare pou ale, ou ka kòmanse kreye flux CI/CD. Koòdone grafik workbench la sanble sa a:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Fòs Jenkins:

  • évolutivité bay achitekti Mèt/Esklav la;
  • disponiblite REST XML/JSON API;
  • kapasite nan konekte yon gwo kantite ekstansyon gras a grefon;
  • kominote aktif e ki toujou ap evolye.

Kont:

  • pa gen okenn blòk analyse;
  • pa trè user-zanmitay koòdone.

TeamCity

Devlopman komèsyal soti nan JetBrains. Sèvè a bon ak konfigirasyon senp ak yon koòdone ekselan. Konfigirasyon default la gen yon gwo kantite fonksyon, ak kantite grefon ki disponib yo toujou ap ogmante.

Egzije Java Runtime Environment (JRE) vèsyon 8.

Kondisyon pyès ki nan konpitè sèvè yo pa kritik:

  • RAM - 3,2 GB;
  • processeur - doub-nwayo, 3,2 GHz;
  • chanèl kominikasyon ak yon kapasite de 1 Gb/s.

Sèvè a pèmèt ou reyalize pèfòmans segondè:

  • 60 pwojè ak 300 konfigirasyon bati;
  • 2 MB alokasyon pou bati log;
  • 50 ajan konstriksyon;
  • kapasite nan travay ak itilizatè 50 nan vèsyon an entènèt ak itilizatè 30 nan IDE a;
  • 100 koneksyon VCS ekstèn, anjeneral, Perforce ak Subversion. Tan an mwayèn chanjman se 120 segonn;
  • plis pase 150 modifikasyon pa jou;
  • travay ak baz done a sou yon sèl sèvè;
  • Anviwònman pwosesis sèvè JVM: -Xmx1100m -XX:MaxPermSize=120m.

Kondisyon ajan yo baze sou kouri asanble yo. Travay prensipal la nan sèvè a se kontwole tout ajan konekte ak distribye asanble soti nan keu a ajan sa yo ki baze sou kondisyon konpatibilite, rapòte rezilta yo. Ajan yo vini nan yon varyete platfòm ak sistèm opere, plis yon anviwònman pre-konfigirasyon.

Tout enfòmasyon sou rezilta konstriksyon yo estoke nan baz done a. Prensipalman sa a se istwa ak lòt done ki sanble, chanjman VCS, ajan, bati ke moun kap kriye, kont itilizatè ak otorizasyon. Baz done a pa gen ladan sèlman bati mòso bwa ak zafè.

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Enstalasyon pou Linux

Pou enstale TeamCity manyèlman ak yon veso servlet Tomcat, ou ta dwe itilize achiv TeamCity la: TeamCity .tar.gz. Telechaje ou ka jwenn li soti isit la.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [kòmanse|sispann]

Lè ou kòmanse premye, ou bezwen chwazi ki kalite baz done kote done asanble yo pral estoke.

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Konfigirasyon default la ap kouri lokalost:8111/ ak yon sèl ajan konstriksyon anrejistre k ap kouri sou menm PC a.

Fòs TeamCity:

  • konfigirasyon senp;
  • itilizatè-zanmitay koòdone;
  • yon gwo kantite fonksyon entegre;
  • Sèvis sipò;
  • gen yon API RESTful;
  • bon dokimantasyon;
  • bon sekirite.

Kont:

  • entegrasyon limite;
  • Sa a se yon zouti peye;
  • yon ti kominote (ki, sepandan, ap grandi).

GoCD

Yon pwojè sous louvri ki mande Java Runtime Environment (JRE) vèsyon 8 pou enstalasyon ak operasyon.

Kondisyon Sistèm:

  • RAM - 1 GB minimòm, plis se pi bon;
  • processeur - doub-nwayo, ak yon frekans debaz nan 2 GHz;
  • Disk di - omwen 1 GB espas gratis.

Ajan:

  • RAM - omwen 128 MB, de preferans plis;
  • processeur - omwen 2 GHz.

Sèvè a asire operasyon ajan yo epi li bay yon koòdone pratik pou itilizatè a:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Etap/Travay/Travay:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

Enstalasyon pou Linux

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

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

nimewo apatman-GET aktyalizasyon

apt-get install -y openjdk-8-jre

apt-get enstale go-server

apt-get enstale go-agent

/etc/init.d/go-server [kòmanse|sispann|siti|rekòmanse]

/etc/init.d/go-agent [kòmanse|sispann|siti|rekòmanse]

Pa default GoCd kouri sou lokalost: 8153.

Fòs GoCd:

  • sous louvri;
  • senp enstalasyon ak konfigirasyon;
  • bon dokimantasyon;

  • Gwo koòdone itilizatè:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

  • kapasite pou montre etap pa etap chemen deplwaman GoCD nan yon sèl gade:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

  • Ekspozisyon ekselan nan estrikti tiyo a:

3 zouti popilè pou òganize deplwaman kontinyèl (Deplwaman kontinyèl)

  • GoCD optimize workflow CD nan anviwònman nwaj ki pi popilè yo tankou Docker, AWS;
  • zouti a fè li posib yo korije pwoblèm nan tiyo a, pou ki gen swiv nan chak chanjman soti nan komèt nan deplwaman an tan reyèl.

Kont:

  • omwen yon ajan nesesè;
  • pa gen okenn konsole pou montre tout travay fini;
  • pou egzekite chak lòd, ou bezwen kreye yon travay pou konfigirasyon tiyo a;
  • Pou enstale plugin a ou bezwen deplase .jar fichye a /plugins/external ak rekòmanse sèvè a;
  • kominote relativman ti.

Kòm yon konklizyon

Sa yo se jis twa zouti, an reyalite gen anpil plis. Li difisil yo chwazi, kidonk ou definitivman bezwen peye atansyon sou aspè adisyonèl.

Kòd sous louvri zouti a fè li posib pou konprann sa li ye, epi ajoute nouvo karakteristik pi vit. Men, si yon bagay pa travay, Lè sa a, ou gen konte sèlman sou tèt ou ak èd nan kominote a. Zouti peye bay sipò ki pafwa kapab kritik.

Si sekirite se pi gwo priyorite ou, li vo travay ak yon zouti lokal yo. Si ou pa, Lè sa a, chwazi yon solisyon SaaS se yon bon opsyon.

Epi anfen, yo nan lòd yo asire yon pwosesis deplwaman kontinyèl vrèman efikas, ou bezwen kreye kritè ki gen espesifik pral pèmèt ou etwat seri a nan zouti ki disponib.

Skillbox rekòmande:

Sous: www.habr.com

Add nouvo kòmantè