ProHoster > Blog > internetne novice > 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).
Spomnimo:za vse bralce "Habr" - popust v višini 10 rubljev ob vpisu v kateri koli tečaj Skillbox s promocijsko kodo "Habr".
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:
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:
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:
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.
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.
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:
Stopnje/delovna mesta/naloge:
Namestitev za Linux
odmev "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
možnost prikaza poti uvajanja GoCD po korakih v enem pogledu:
odličen prikaz strukture cevovoda:
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.