3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Nepārtraukta izvietošana ir īpaša pieeja programmatūras izstrādē, ko izmanto, lai ātri, droši un efektīvi ieviestu dažādas programmatūras funkcijas.

Galvenā ideja ir izveidot uzticamu automatizētu procesu, kas ļauj izstrādātājam ātri piegādāt gatavo produktu lietotājam. Tajā pašā laikā ražošanā tiek veiktas pastāvīgas izmaiņas - to sauc par nepārtrauktas piegādes cauruļvadu (CD Pipeline).

Skillbox iesaka: Praktiskais kurss "Mobile Developer PRO".

Atgādinām: visiem "Habr" lasītājiem - atlaide 10 000 rubļu, reģistrējoties jebkurā Skillbox kursā, izmantojot "Habr" reklāmas kodu.

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Lai kontrolētu plūsmu, varat izmantot plašu rīku klāstu, tostarp gan maksas, gan pilnīgi bezmaksas. Šajā rakstā ir aprakstīti trīs izstrādātāju vidū populārākie risinājumi, kas var būt noderīgi ikvienam programmētājam.

Jenkins

Pilnībā autonoms atvērtā koda automatizācijas serveris. Ir vērts strādāt, lai automatizētu visu veidu uzdevumus, kas saistīti ar programmatūras izveidi, testēšanu, piegādi vai izvietošanu.

Minimālās prasības datoram:

  • 256 MB RAM, 1 GB faila vietas.

Optimāli:

  • 1 GB RAM, 50 GB cietais disks.

Lai strādātu, būs nepieciešama arī papildu programmatūra – Java Runtime Environment (JRE) 8. versija.

Arhitektūra (izkliedētā skaitļošana) izskatās šādi:
3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Jenkins Server ir instalācija, kas ir atbildīga par GUI mitināšanu, kā arī visas būves organizēšanu un izpildi.

Jenkins Node/Slave/Build Server – ierīces, kuras var konfigurēt, lai tās veiktu veidošanas darbus galvenā (galvenā mezgla) vārdā.

Instalēšana operētājsistēmai Linux

Vispirms sistēmai jāpievieno Jenkins repozitorijs:

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

Atjaunināt pakotņu repozitoriju:

sudo apt atjauninājums

Instalējiet Jenkins:

sudo apt instalēt jenkins

Pēc tam Jenkins būs pieejams sistēmā, izmantojot noklusējuma portu 8080.

Lai pārbaudītu funkcionalitāti, pārlūkprogrammā jāatver adrese localhost:8080. Pēc tam sistēma liks ievadīt saknes lietotāja sākotnējo paroli. Šī parole atrodas failā /var/lib/jenkins/secrets/initialAdminPassword.

Tagad viss ir gatavs darbam, varat sākt veidot CI/CD plūsmas. Darbagalda grafiskais interfeiss izskatās šādi:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Dženkinsa stiprās puses:

  • mērogojamība, ko nodrošina Master/Slave arhitektūra;
  • REST XML/JSON API pieejamība;
  • iespēja savienot lielu skaitu paplašinājumu, pateicoties spraudņiem;
  • aktīva un pastāvīgi attīstoša kopiena.

Mīnusi:

  • nav analītisko bloku;
  • ne pārāk lietotājam draudzīgs interfeiss.

TeamCity

JetBrains komerciālā attīstība. Serveris ir labs ar vienkāršu iestatīšanu un lielisku saskarni. Noklusējuma konfigurācijai ir liels funkciju skaits, un pieejamo spraudņu skaits nepārtraukti palielinās.

Nepieciešama Java Runtime Environment (JRE) versija 8.

Servera aparatūras prasības nav kritiskas:

  • RAM - 3,2 GB;
  • procesors - divkodolu, 3,2 GHz;
  • sakaru kanāls ar jaudu 1 Gb/s.

Serveris ļauj sasniegt augstu veiktspēju:

  • 60 projekti ar 300 būvkonfigurācijām;
  • 2 MB piešķīrums būvēšanas žurnālam;
  • 50 būvaģenti;
  • spēja strādāt ar 50 lietotājiem tīmekļa versijā un 30 lietotājiem IDE;
  • 100 ārējo VCS savienojumi, parasti Perforce un Subversion. Vidējais maiņas laiks ir 120 sekundes;
  • vairāk nekā 150 modifikācijas dienā;
  • darbs ar datu bāzi vienā serverī;
  • JVM servera procesa iestatījumi: -Xmx1100m -XX:MaxPermSize=120m.

Aģenta prasības ir balstītas uz darbināmiem mezgliem. Servera galvenais uzdevums ir uzraudzīt visus pieslēgtos aģentus un izdalīt šiem aģentiem rindas komplektus, pamatojoties uz saderības prasībām, ziņojot par rezultātiem. Aģenti ir pieejami dažādās platformās un operētājsistēmās, kā arī iepriekš konfigurētā vidē.

Visa informācija par būvēšanas rezultātiem tiek glabāta datu bāzē. Galvenokārt tie ir vēsture un citi līdzīgi dati, VCS izmaiņas, aģenti, veidojumu rindas, lietotāju konti un atļaujas. Datu bāzē nav iekļauti tikai būvniecības žurnāli un artefakti.

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Instalēšana operētājsistēmai Linux

Lai manuāli instalētu TeamCity ar Tomcat servleta konteineru, jums jāizmanto TeamCity arhīvs: TeamCity .tar.gz. Lejupielādēt jūs to varat iegūt no šejienes.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [sākt|pārtraukt]

Pirmoreiz startējot, ir jāizvēlas datu bāzes veids, kurā tiks saglabāti montāžas dati.

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Darbojas noklusējuma konfigurācija localhost:8111/ ar vienu reģistrētu būvēšanas aģentu, kas darbojas tajā pašā datorā.

TeamCity stiprās puses:

  • vienkārša iestatīšana;
  • lietotājam draudzīgs interfeiss;
  • liels skaits iebūvēto funkciju;
  • Atbalsta pakalpojums;
  • ir RESTful API;
  • laba dokumentācija;
  • laba drošība.

Mīnusi:

  • ierobežota integrācija;
  • Šis ir maksas rīks;
  • maza kopiena (kas tomēr pieaug).

GoCD

Atvērtā pirmkoda projekts, kura instalēšanai un darbībai nepieciešama Java Runtime Environment (JRE) 8. versija.

Sistēmas prasības:

  • RAM - vismaz 1 GB, jo vairāk ir labāk;
  • procesors - divkodolu, ar kodola frekvenci 2 GHz;
  • cietais disks - vismaz 1 GB brīvas vietas.

Aģents:

  • RAM - vismaz 128 MB, vairāk ir labāk;
  • procesors - vismaz 2 GHz.

Serveris nodrošina aģentu darbību un nodrošina ērtu saskarni lietotājam:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Posmi/darbi/uzdevumi:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

Instalēšana operētājsistēmai Linux

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

cirtot 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 install go-agent

/etc/init.d/go-server [start|stop|status|restartēt]

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

Pēc noklusējuma GoCd darbojas localhost: 8153.

GoCd stiprās puses:

  • atvērtais avots;
  • vienkārša uzstādīšana un konfigurēšana;
  • laba dokumentācija;

  • Lielisks lietotāja interfeiss:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

  • spēja parādīt soli pa solim GoCD izvietošanas ceļu vienā skatā:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

  • lielisks cauruļvada struktūras attēlojums:

3 populāri rīki nepārtrauktas izvietošanas organizēšanai (Continuous Deployment)

  • GoCD optimizē CD darbplūsmu populārākajās mākoņu vidēs, tostarp Docker, AWS;
  • Šis rīks ļauj novērst problēmas, kas radušās konveijerā, un reāllaikā tiek izsekotas visas izmaiņas no apņemšanās līdz izvietošanai.

Mīnusi:

  • nepieciešams vismaz viens aģents;
  • nav konsoles, lai parādītu visus izpildītos uzdevumus;
  • lai izpildītu katru komandu, ir jāizveido viens uzdevums konveijera konfigurācijai;
  • Lai instalētu spraudni, jāpārvieto .jar fails uz /plugins/external un restartējiet serveri;
  • salīdzinoši neliela kopiena.

Kā secinājums

Šie ir tikai trīs rīki, patiesībā ir daudz vairāk. Grūti izvēlēties, tāpēc noteikti jāpievērš uzmanība papildu aspektiem.

Rīka atvērtā pirmkoda kods ļauj saprast, kas tas ir, kā arī ātrāk pievienot jaunas funkcijas. Bet, ja kaut kas nedarbojas, tad jāpaļaujas tikai uz sevi un sabiedrības palīdzību. Maksas rīki nodrošina atbalstu, kas dažkārt var būt kritisks.

Ja drošība ir jūsu galvenā prioritāte, ir vērts strādāt ar vietējo rīku. Ja nē, tad SaaS risinājuma izvēle ir laba iespēja.

Un visbeidzot, lai nodrošinātu patiesi efektīvu nepārtrauktu izvietošanas procesu, jums ir jāformulē kritēriji, kuru specifika ļaus jums sašaurināt pieejamo rīku klāstu.

Skillbox iesaka:

Avots: www.habr.com

Pievieno komentāru