3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Continuous Deployment je poseban pristup u razvoju softvera koji se koristi za brzu, sigurnu i učinkovitu implementaciju različitih funkcija u softveru.

Glavna ideja je stvoriti pouzdani automatizirani proces koji razvojnom programeru omogućuje brzu isporuku gotovog proizvoda korisniku. Istodobno se u proizvodnji vrše stalne promjene - to se naziva kontinuirani cjevovod isporuke (CD Pipeline).

Skillbox preporučuje: Praktični tečaj "Mobile Developer PRO".

Podsjećamo: za sve čitatelje "Habra" - popust od 10 000 rubalja pri upisu na bilo koji tečaj Skillbox koristeći promotivni kod "Habr".

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Za kontrolu protoka možete koristiti širok raspon alata, uključujući plaćene i potpuno besplatne. Ovaj članak opisuje tri najpopularnija rješenja među programerima koja mogu biti korisna svakom programeru.

Jenkins

Potpuno samostalan poslužitelj za automatizaciju otvorenog koda. Isplati se raditi s njim kako biste automatizirali sve vrste zadataka koji se odnose na izgradnju, testiranje, isporuku ili implementaciju softvera.

Minimalni zahtjevi za računalo:

  • 256 MB RAM, 1 GB prostora za datoteke.

Optimalno:

  • 1 GB RAM, 50 GB tvrdi disk.

Za rad će vam trebati i dodatni softver - Java Runtime Environment (JRE) verzija 8.

Arhitektura (distribuirano računalstvo) izgleda ovako:
3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Jenkins Server je instalacija koja je odgovorna za GUI hosting, kao i za organizaciju i izvođenje cijele izgradnje.

Jenkins Node/Slave/Build Server - uređaji koji se mogu konfigurirati za izvođenje radova izgradnje u ime glavnog (master node).

Instalacija za Linux

Prvo trebate dodati Jenkinsovo spremište u sustav:

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

Ažurirajte spremište paketa:

sudo apt ažuriranje

Instalirajte Jenkins:

sudo apt instalirajte jenkins

Nakon toga, Jenkins će biti dostupan u sustavu putem zadanog priključka 8080.

Za provjeru funkcionalnosti potrebno je otvoriti adresu u pregledniku localhost:8080. Sustav će vas zatim zatražiti da unesete početnu lozinku za root korisnika. Ova se lozinka nalazi u datoteci /var/lib/jenkins/secrets/initialAdminPassword.

Sada je sve spremno za rad, možete početi stvarati CI/CD tokove. Grafičko sučelje radnog stola izgleda ovako:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Jenkinsove prednosti:

  • skalabilnost koju pruža master/slave arhitektura;
  • dostupnost REST XML/JSON API-ja;
  • mogućnost povezivanja velikog broja ekstenzija zahvaljujući dodacima;
  • aktivna zajednica koja se stalno razvija.

Cons:

  • nema analitičkog bloka;
  • ne baš korisničko sučelje.

TeamCity

Komercijalni razvoj tvrtke JetBrains. Poslužitelj je dobar s jednostavnim postavljanjem i izvrsnim sučeljem. Zadana konfiguracija ima veliki broj funkcija, a broj dostupnih dodataka se stalno povećava.

Zahtijeva Java Runtime Environment (JRE) verziju 8.

Hardverski zahtjevi poslužitelja nisu kritični:

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

Poslužitelj vam omogućuje postizanje visokih performansi:

  • 60 projekata s 300 konfiguracija izgradnje;
  • 2 MB dodjele za zapisnik izgradnje;
  • 50 agenata za izgradnju;
  • mogućnost rada s 50 korisnika u web verziji i 30 korisnika u IDE;
  • 100 veza vanjskog VCS-a, obično Perforce i Subversion. Prosječno vrijeme promjene je 120 sekundi;
  • više od 150 izmjena dnevno;
  • rad s bazom podataka na jednom poslužitelju;
  • Postavke procesa JVM poslužitelja: -Xmx1100m -XX:MaxPermSize=120m.

Zahtjevi agenta temelje se na pokrenutim sklopovima. Glavni zadatak poslužitelja je nadzirati sve povezane agente i distribuirati sklopove u čekanju tim agentima na temelju zahtjeva kompatibilnosti, izvještavajući o rezultatima. Agenti dolaze na različitim platformama i operativnim sustavima, plus unaprijed konfigurirano okruženje.

Sve informacije o rezultatima izgradnje pohranjuju se u bazu podataka. Prvenstveno je to povijest i drugi slični podaci, VCS promjene, agenti, redovi čekanja, korisnički računi i dopuštenja. Baza podataka ne uključuje samo zapisnike izgradnje i artefakte.

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Instalacija za Linux

Da biste ručno instalirali TeamCity s Tomcat spremnikom servleta, trebali biste koristiti TeamCity arhivu: TeamCity .tar.gz. preuzimanje datoteka možete ga dobiti odavde.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Prilikom prvog pokretanja morate odabrati vrstu baze podataka u kojoj će biti pohranjeni podaci sklopa.

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Zadana konfiguracija radi na localhost:8111/ s jednim registriranim agentom za izgradnju koji radi na istom računalu.

Snage TeamCityja:

  • jednostavno postavljanje;
  • user-friendly sučelje;
  • veliki broj ugrađenih funkcija;
  • podrška;
  • postoji RESTful API;
  • dobra dokumentacija;
  • dobra sigurnost.

Cons:

  • ograničena integracija;
  • Ovo je alat koji se plaća;
  • mala zajednica (koja, međutim, raste).

GoCD

Projekt otvorenog koda koji zahtijeva Java Runtime Environment (JRE) verziju 8 za instalaciju i rad.

Zahtjevi sustava:

  • RAM - najmanje 1 GB, više to bolje;
  • procesor - dvojezgreni, s frekvencijom jezgre od 2 GHz;
  • tvrdi disk - najmanje 1 GB slobodnog prostora.

Agent:

  • RAM - najmanje 128 MB, više to bolje;
  • procesor - najmanje 2 GHz.

Poslužitelj osigurava rad agenata i pruža prikladno sučelje za korisnika:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Faze/poslovi/zadaci:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

Instalacija za Linux

odjek "deb preuzimanje.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

sklupčati download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repozitorij ppa:openjdk-r/ppa

apt-get ažuriranje

apt-get install -y openjdk-8-jre

apt-get instaliraj go-poslužitelj

apt-get instaliraj go-agent

/etc/init.d/go-server [start|stop|status|ponovno pokretanje]

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

Prema zadanim postavkama GoCd radi localhost: 8153.

Prednosti GoCd-a:

  • otvoreni izvor;
  • jednostavna instalacija i konfiguracija;
  • dobra dokumentacija;

  • Odlično korisničko sučelje:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

  • mogućnost prikazivanja korak-po-korak staze postavljanja GoCD-a u jednom prikazu:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

  • odličan prikaz strukture cjevovoda:

3 popularna alata za organiziranje kontinuirane implementacije (Continuous Deployment)

  • GoCD optimizira tijek rada CD-a u najpopularnijim okruženjima oblaka uključujući Docker, AWS;
  • alat omogućuje ispravljanje problema u cjevovodu, za što postoji praćenje svake promjene od predaje do implementacije u stvarnom vremenu.

Cons:

  • potreban je barem jedan agent;
  • ne postoji konzola za prikaz svih izvršenih zadataka;
  • da biste izvršili svaku naredbu, morate stvoriti jedan zadatak za konfiguraciju cjevovoda;
  • Da biste instalirali dodatak, morate premjestiti .jar datoteku u /plugins/external i ponovno pokrenite poslužitelj;
  • relativno mala zajednica.

Kao zaključak

Ovo su samo tri alata, zapravo ima ih mnogo više. Teško je odabrati, stoga svakako morate obratiti pozornost na dodatne aspekte.

Otvoreni izvorni kod alata omogućuje razumijevanje o čemu se radi i brže dodavanje novih značajki. Ali ako nešto ne ide, onda se morate osloniti samo na sebe i pomoć zajednice. Alati koji se plaćaju pružaju podršku koja ponekad može biti kritična.

Ako vam je sigurnost glavni prioritet, isplati se raditi s lokalnim alatom. Ako ne, onda je odabir SaaS rješenja dobra opcija.

I na kraju, kako biste osigurali uistinu učinkovit kontinuirani proces implementacije, morate formulirati kriterije čije će vam specifičnosti omogućiti sužavanje raspona dostupnih alata.

Skillbox preporučuje:

Izvor: www.habr.com

Dodajte komentar