3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Continuous Deployment – ​​tai specialus požiūris į programinės įrangos kūrimą, kuris naudojamas greitai, saugiai ir efektyviai įgyvendinti įvairias programinės įrangos funkcijas.

Pagrindinė idėja – sukurti patikimą automatizuotą procesą, leidžiantį kūrėjui greitai pristatyti gatavą produktą vartotojui. Tuo pačiu metu vyksta nuolatiniai gamybos pakeitimai – tai vadinama nepertraukiamu pristatymo vamzdynu (CD Pipeline).

„Skillbox“ rekomenduoja: Praktinis kursas „Mobile Developer PRO“.

Primename: visiems „Habr“ skaitytojams – 10 000 rublių nuolaida užsiregistravus į bet kurį „Skillbox“ kursą naudojant „Habr“ reklamos kodą.

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Norėdami valdyti srautą, galite naudoti daugybę įrankių, įskaitant mokamus ir visiškai nemokamus. Šiame straipsnyje aprašomi trys populiariausi kūrėjų sprendimai, kurie gali būti naudingi kiekvienam programuotojui.

Jenkins

Visiškai savarankiškas atvirojo kodo automatizavimo serveris. Verta dirbti, norint automatizuoti visas užduotis, susijusias su programinės įrangos kūrimu, testavimu, pristatymu ar diegimu.

Minimalūs kompiuterio reikalavimai:

  • 256 MB RAM, 1 GB failų vietos.

Optimalus:

  • 1 GB RAM, 50 GB kietasis diskas.

Norint dirbti, taip pat reikės papildomos programinės įrangos – Java Runtime Environment (JRE) 8 versijos.

Architektūra (paskirstytasis skaičiavimas) atrodo taip:
3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

„Jenkins Server“ yra diegimas, atsakingas už GUI prieglobą, taip pat už viso kūrimo organizavimą ir vykdymą.

Jenkins Node/Slave/Build Server – įrenginiai, kuriuos galima sukonfigūruoti atlikti kūrimo darbus pagrindinio (pagrindinio mazgo) vardu.

Diegimas Linux

Pirmiausia prie sistemos turite pridėti Jenkins saugyklą:

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

Atnaujinti paketų saugyklą:

Sudo apt atnaujinimas

Įdiekite Jenkins:

sudo apt install jenkins

Po to Jenkins bus pasiekiamas sistemoje per numatytąjį 8080 prievadą.

Norėdami patikrinti funkcionalumą, naršyklėje turite atidaryti adresą localhost:8080. Tada sistema paragins įvesti pradinį root vartotojo slaptažodį. Šis slaptažodis yra faile /var/lib/jenkins/secrets/initialAdminPassword.

Dabar viskas paruošta, galite pradėti kurti CI/CD srautus. Grafinė darbastalio sąsaja atrodo taip:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Jenkins stipriosios pusės:

  • mastelio keitimas, kurį suteikia Master/Slave architektūra;
  • REST XML/JSON API prieinamumas;
  • galimybė prijungti daugybę plėtinių dėka papildinių;
  • aktyvi ir nuolat besivystanti bendruomenė.

Trūkumai:

  • nėra analitinio bloko;
  • ne itin patogi sąsaja.

TeamCity

Komercinė plėtra iš JetBrains. Serveris yra geras su paprasta sąranka ir puikia sąsaja. Numatytoji konfigūracija turi daugybę funkcijų, o galimų įskiepių skaičius nuolat didėja.

Reikalinga Java Runtime Environment (JRE) 8 versija.

Serverio techninės įrangos reikalavimai nėra svarbūs:

  • RAM - 3,2 GB;
  • procesorius - dviejų branduolių, 3,2 GHz;
  • ryšio kanalas, kurio talpa 1 Gb/s.

Serveris leidžia pasiekti aukštą našumą:

  • 60 projektų su 300 konfigūracijų;
  • 2 MB paskirstymas kūrimo žurnalui;
  • 50 statybinių agentų;
  • galimybė dirbti su 50 vartotojų žiniatinklio versijoje ir 30 vartotojų IDE;
  • 100 išorinių VCS jungčių, dažniausiai Perforce ir Subversion. Vidutinis keitimo laikas yra 120 sekundžių;
  • daugiau nei 150 pakeitimų per dieną;
  • darbas su duomenų baze viename serveryje;
  • JVM serverio proceso nustatymai: -Xmx1100m -XX:MaxPermSize=120m.

Agento reikalavimai yra pagrįsti veikiančiais mazgais. Pagrindinė serverio užduotis yra stebėti visus prijungtus agentus ir paskirstyti šiems agentams eilės rinkinius pagal suderinamumo reikalavimus, pranešant apie rezultatus. Agentai yra įvairiose platformose ir operacinėse sistemose, taip pat iš anksto sukonfigūruota aplinka.

Visa informacija apie kūrimo rezultatus yra saugoma duomenų bazėje. Visų pirma tai yra istorija ir kiti panašūs duomenys, VCS pakeitimai, agentai, kūrimo eilės, vartotojų abonementai ir leidimai. Duomenų bazėje nėra tik kūrimo žurnalų ir artefaktų.

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Diegimas Linux

Norėdami rankiniu būdu įdiegti TeamCity su Tomcat servlet konteineriu, turėtumėte naudoti TeamCity archyvą: TeamCity .tar.gz. parsisiųsti galite gauti iš čia.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [pradėti|sustabdyti]

Kai pirmą kartą paleidžiate, turite pasirinkti duomenų bazės, kurioje bus saugomi surinkimo duomenys, tipą.

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Veikia numatytoji konfigūracija localhost:8111/ su vienu registruotu kūrimo agentu, veikiančiu tame pačiame kompiuteryje.

„TeamCity“ stipriosios pusės:

  • lengvas nustatymas;
  • patogi sąsaja;
  • daug integruotų funkcijų;
  • parama;
  • yra RESTful API;
  • gera dokumentacija;
  • geras saugumas.

Trūkumai:

  • ribota integracija;
  • Tai mokamas įrankis;
  • maža bendruomenė (kuri vis dėlto auga).

GoCD

Atvirojo kodo projektas, kurio diegimui ir veikimui reikalinga Java Runtime Environment (JRE) 8 versija.

Sistemos reikalavimai:

  • RAM - mažiausiai 1 GB, daugiau yra geriau;
  • procesorius - dviejų branduolių, kurio branduolio dažnis yra 2 GHz;
  • kietajame diske – mažiausiai 1 GB laisvos vietos.

Agentas:

  • RAM - mažiausiai 128 MB, daugiau yra geriau;
  • procesorius – ne mažiau kaip 2 GHz.

Serveris užtikrina agentų darbą ir patogią sąsają vartotojui:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Etapai/Darbai/Užduotys:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

Diegimas Linux

aidas "deb download.gocd.org /“ | sudo tee /etc/apt/sources.list.d/gocd.list

raitytis 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|paleisti iš naujo]

/etc/init.d/go-agent [start|stop|status|paleisti iš naujo]

Pagal numatytuosius nustatymus veikia GoCd localhost: 8153.

GoCd stipriosios pusės:

  • atviro kodo;
  • paprastas montavimas ir konfigūravimas;
  • gera dokumentacija;

  • Puiki vartotojo sąsaja:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

  • galimybė parodyti žingsnis po žingsnio GoCD diegimo kelią viename rodinyje:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

  • puikus dujotiekio struktūros vaizdas:

3 populiarūs įrankiai, skirti organizuoti nuolatinį diegimą (nuolatinis diegimas)

  • GoCD optimizuoja CD darbo eigą populiariausiose debesų aplinkose, įskaitant Docker, AWS;
  • įrankis leidžia ištaisyti problemas, susijusias su konvejeriu, dėl kurių realiuoju laiku stebimas kiekvienas pakeitimas nuo įsipareigojimo iki diegimo.

Trūkumai:

  • reikalingas bent vienas agentas;
  • nėra pulto, kuriame būtų rodomos visos atliktos užduotys;
  • norėdami įvykdyti kiekvieną komandą, turite sukurti vieną konfigūracijos užduotį;
  • Norėdami įdiegti papildinį, turite perkelti .jar failą į /plugins/external ir paleiskite serverį iš naujo;
  • palyginti nedidelė bendruomenė.

Kaip išvada

Tai tik trys įrankiai, iš tikrųjų jų yra daug daugiau. Sunku išsirinkti, todėl būtinai reikia atkreipti dėmesį į papildomus aspektus.

Įrankio atvirojo kodo kodas leidžia suprasti, kas tai yra, ir greičiau pridėti naujų funkcijų. Bet jei kas neveikia, tuomet tenka pasikliauti tik savimi ir bendruomenės pagalba. Mokami įrankiai teikia paramą, kuri kartais gali būti labai svarbi.

Jei sauga yra jūsų svarbiausias prioritetas, verta dirbti su vietiniu įrankiu. Jei ne, tada pasirinkti SaaS sprendimą yra geras pasirinkimas.

Ir galiausiai, norint užtikrinti tikrai efektyvų nuolatinį diegimo procesą, reikia suformuluoti kriterijus, kurių specifika leistų susiaurinti turimų įrankių spektrą.

„Skillbox“ rekomenduoja:

Šaltinis: www.habr.com

Добавить комментарий