3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Continuous Deployment je poseben pristop pri razvoju programske opreme, ki se uporablja za hitro, varno in učinkovito izvajanje različnih funkcij v programski opremi.

Glavna ideja je ustvariti zanesljiv avtomatiziran proces, ki razvijalcu omogoča hitro dostavo končnega izdelka uporabniku. Hkrati se v proizvodnji izvajajo nenehne spremembe – to se imenuje neprekinjen dobavni cevovod (CD Pipeline).

Skillbox priporoča: Praktični tečaj "Mobilni razvijalec PRO".

Spomnimo: za vse bralce "Habr" - popust v višini 10 rubljev ob vpisu v kateri koli tečaj Skillbox s promocijsko kodo "Habr".

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Za nadzor pretoka lahko uporabite široko paleto orodij, vključno s plačanimi in popolnoma brezplačnimi. Ta članek opisuje tri najbolj priljubljene rešitve med razvijalci, ki so lahko koristne za vsakega programerja.

Jenkins

Popolnoma samostojen odprtokodni strežnik za avtomatizacijo. Splača se sodelovati pri avtomatizaciji vseh vrst nalog, povezanih z gradnjo, testiranjem, pošiljanjem ali uvajanjem programske opreme.

Minimalne zahteve za računalnik:

  • 256 MB RAM, 1 GB prostora za datoteke.

Optimalno:

  • 1 GB RAM, 50 GB trdi disk.

Za delo boste potrebovali tudi dodatno programsko opremo - Java Runtime Environment (JRE) različica 8.

Arhitektura (razdeljeno računalništvo) izgleda takole:
3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Jenkins Server je namestitev, ki je odgovorna za gostovanje grafičnega uporabniškega vmesnika ter za organizacijo in izvedbo celotne gradnje.

Jenkins Node/Slave/Build Server – naprave, ki jih je mogoče konfigurirati za izvajanje gradbenih del v imenu glavnega (glavnega vozlišča).

Namestitev za Linux

Najprej morate v sistem dodati repozitorij Jenkins:

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

Posodobi repozitorij paketov:

Posodobi sudo apt

Namestite Jenkins:

sudo apt namestite jenkins

Po tem bo Jenkins na voljo v sistemu prek privzetih vrat 8080.

Če želite preveriti delovanje, morate odpreti naslov v brskalniku localhost:8080. Sistem vas bo nato pozval, da vnesete začetno geslo za uporabnika root. To geslo se nahaja v datoteki /var/lib/jenkins/secrets/initialAdminPassword.

Zdaj je vse pripravljeno, lahko začnete ustvarjati tokove CI/CD. Grafični vmesnik delovne mize izgleda takole:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Jenkinsove prednosti:

  • razširljivost, ki jo zagotavlja arhitektura Master/Slave;
  • razpoložljivost API-ja REST XML/JSON;
  • možnost povezovanja velikega števila razširitev zahvaljujoč vtičnikom;
  • aktivna in nenehno razvijajoča se skupnost.

Cons:

  • ni analitičnega bloka;
  • uporabniku ni zelo prijazen vmesnik.

TeamCity

Komercialni razvoj podjetja JetBrains. Strežnik je dober s preprosto nastavitvijo in odličnim vmesnikom. Privzeta konfiguracija ima veliko število funkcij, število razpoložljivih vtičnikov pa nenehno narašča.

Zahteva Java Runtime Environment (JRE) različice 8.

Zahteve glede strojne opreme strežnika niso kritične:

  • RAM - 3,2 GB;
  • procesor - dvojedrni, 3,2 GHz;
  • komunikacijski kanal s kapaciteto 1 Gb/s.

Strežnik vam omogoča doseganje visoke zmogljivosti:

  • 60 projektov s 300 konfiguracijami gradnje;
  • dodelite 2 MB za dnevnik gradnje;
  • 50 gradbenih agentov;
  • možnost dela s 50 uporabniki v spletni različici in 30 uporabniki v IDE;
  • 100 povezav zunanjega VCS, običajno Perforce in Subversion. Povprečni čas spremembe je 120 sekund;
  • več kot 150 sprememb na dan;
  • delo z bazo podatkov na enem strežniku;
  • Nastavitve procesa strežnika JVM: -Xmx1100m -XX:MaxPermSize=120m.

Zahteve agenta temeljijo na tekočih sklopih. Glavna naloga strežnika je spremljanje vseh povezanih agentov in distribucija sklopov v čakalni vrsti tem agentom na podlagi zahtev združljivosti ter poročanje o rezultatih. Agenti so na voljo v različnih platformah in operacijskih sistemih ter v vnaprej konfiguriranem okolju.

Vse informacije o rezultatih gradnje so shranjene v bazi podatkov. Predvsem so to zgodovina in drugi podobni podatki, spremembe VCS, agenti, čakalne vrste gradnje, uporabniški računi in dovoljenja. Baza podatkov ne vključuje samo dnevnikov gradnje in artefaktov.

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Namestitev za Linux

Če želite ročno namestiti TeamCity s vsebnikom strežniškega programčka Tomcat, morate uporabiti arhiv TeamCity: TeamCity .tar.gz. Prenesi lahko ga dobite od tukaj.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Ko prvič zaženete, morate izbrati vrsto baze podatkov, v kateri bodo shranjeni podatki o sestavu.

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Privzeta konfiguracija deluje naprej localhost:8111/ z enim registriranim gradbenim agentom, ki teče na istem računalniku.

Prednosti TeamCityja:

  • enostavna namestitev;
  • uporabniku prijazen vmesnik;
  • veliko število vgrajenih funkcij;
  • podpora;
  • obstaja RESTful API;
  • dobra dokumentacija;
  • dobra varnost.

Cons:

  • omejena integracija;
  • To je plačljivo orodje;
  • majhna skupnost (ki pa raste).

GoCD

Odprtokodni projekt, ki za namestitev in delovanje zahteva Java Runtime Environment (JRE) različice 8.

Sistemske zahteve:

  • RAM - najmanj 1 GB, več je bolje;
  • procesor - dvojedrni, s frekvenco jedra 2 GHz;
  • trdi disk - vsaj 1 GB prostega prostora.

Agent:

  • RAM - vsaj 128 MB, več je bolje;
  • procesor - vsaj 2 GHz.

Strežnik zagotavlja delovanje agentov in uporabniku nudi priročen vmesnik:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Stopnje/delovna mesta/naloge:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

Namestitev za Linux

odmev "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-repozitorij ppa:openjdk-r/ppa

Apt-get update

apt-get install -y openjdk-8-jre

apt-get namestite go-strežnik

apt-get namestite go-agent

/etc/init.d/go-server [začetek|ustavitev|stanje|ponovni zagon]

/etc/init.d/go-agent [začetek|ustavitev|stanje|ponovni zagon]

GoCd privzeto deluje localhost: 8153.

Prednosti GoCd:

  • odprtokodno;
  • enostavna namestitev in konfiguracija;
  • dobra dokumentacija;

  • Odličen uporabniški vmesnik:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

  • možnost prikaza poti uvajanja GoCD po korakih v enem pogledu:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

  • odličen prikaz strukture cevovoda:

3 priljubljena orodja za organiziranje neprekinjenega uvajanja (Continuous Deployment)

  • GoCD optimizira potek dela CD v najbolj priljubljenih oblačnih okoljih, vključno z Dockerjem, AWS;
  • orodje omogoča odpravljanje težav v cevovodu, za kar obstaja sledenje vsaki spremembi od objave do uvedbe v realnem času.

Cons:

  • potreben je vsaj en agent;
  • ni konzole za prikaz vseh opravljenih nalog;
  • za izvedbo vsakega ukaza morate ustvariti eno nalogo za konfiguracijo cevovoda;
  • Če želite namestiti vtičnik, morate premakniti datoteko .jar v /plugins/external in znova zaženite strežnik;
  • relativno majhna skupnost.

Kot zaključek

To so samo tri orodja, pravzaprav jih je še veliko več. Težko je izbrati, zato morate vsekakor biti pozorni na dodatne vidike.

Odprtokodna koda orodja omogoča razumevanje, za kaj gre, in hitrejše dodajanje novih funkcij. Če pa kaj ne gre, potem se moraš zanesti le nase in pomoč skupnosti. Plačljiva orodja nudijo podporo, ki je včasih lahko kritična.

Če je varnost vaša glavna prioriteta, je vredno delati z lokalnim orodjem. Če ne, potem je izbira rešitve SaaS dobra možnost.

In nazadnje, da bi zagotovili resnično učinkovit neprekinjen proces uvajanja, morate oblikovati merila, katerih posebnosti vam bodo omogočile zožiti nabor razpoložljivih orodij.

Skillbox priporoča:

Vir: www.habr.com

Dodaj komentar