3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

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

Glavna ideja je stvaranje pouzdanog automatiziranog procesa koji omogućava programeru da brzo isporuči gotov proizvod korisniku. Istovremeno se vrše stalne promjene u proizvodnji - to se zove kontinuirani cevovod za isporuku (CD Pipeline).

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

Podsećamo: za sve čitaoce "Habra" - popust od 10 rubalja pri upisu na bilo koji Skillbox kurs koristeći "Habr" promotivni kod.

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Da biste kontrolirali tok, 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 server za automatizaciju otvorenog koda. Vrijedi raditi s njim kako biste automatizirali sve vrste zadataka vezanih za izgradnju, testiranje, isporuku ili implementaciju softvera.

Minimalni zahtevi za PC:

  • 256 MB RAM-a, 1 GB prostora za fajlove.

Optimalno:

  • 1 GB RAM-a, 50 GB hard disk.

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

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

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

Jenkins Node/Slave/Build Server - uređaji koji se mogu konfigurirati za obavljanje radova izgradnje u ime glavnog (glavnog čvora).

Instalacija za Linux

Prvo morate dodati Jenkinsovo spremište u sistem:

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 update

Instaliraj Jenkinsa:

sudo apt install jenkins

Nakon toga, Jenkins će biti dostupan u sistemu preko podrazumevanog porta 8080.

Da biste provjerili funkcionalnost, potrebno je da otvorite adresu u pretraživaču localhost:8080. Sistem će od vas tada zatražiti da unesete početnu lozinku za root korisnika. Ova lozinka se nalazi u datoteci /var/lib/jenkins/secrets/initialAdminPassword.

Sada je sve spremno za rad, možete početi kreirati CI/CD tokove. Grafički interfejs radnog stola izgleda ovako:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Jenkinsove snage:

  • skalabilnost koju obezbeđuje 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š user-friendly sučelje.

TeamCity

Komercijalni razvoj kompanije JetBrains. Server je dobar sa jednostavnim podešavanjem i odličnim interfejsom. Zadana konfiguracija ima veliki broj funkcija, a broj dostupnih dodataka se stalno povećava.

Zahtijeva Java Runtime Environment (JRE) verziju 8.

Hardverski zahtjevi servera nisu kritični:

  • RAM - 3,2 GB;
  • procesor - dual-core, 3,2 GHz;
  • komunikacioni kanal kapaciteta 1 Gb/s.

Server vam omogućava postizanje visokih performansi:

  • 60 projekata sa 300 konfiguracija izgradnje;
  • 2 MB izdvajanja za dnevnik izgradnje;
  • 50 agenata za izgradnju;
  • mogućnost rada sa 50 korisnika u web verziji i 30 korisnika u IDE;
  • 100 veza eksternog VCS-a, obično Perforce i Subversion. Prosečno vreme promene je 120 sekundi;
  • više od 150 modifikacija dnevno;
  • rad sa bazom podataka na jednom serveru;
  • Postavke procesa JVM servera: -Xmx1100m -XX:MaxPermSize=120m.

Zahtjevi agenta su zasnovani na pokrenutim sklopovima. Glavni zadatak servera je nadgledanje svih povezanih agenata i distribucija sklopova u redu tim agentima na osnovu zahtjeva kompatibilnosti, izvještavajući o rezultatima. Agenti dolaze na različitim platformama i operativnim sistemima, plus unapred konfigurisano okruženje.

Sve informacije o rezultatima izgradnje pohranjuju se u bazi podataka. Prvenstveno su to historija i drugi slični podaci, VCS promjene, agenti, redovi za izgradnju, korisnički nalozi i dozvole. Baza podataka ne uključuje samo dnevnike izgradnje i artefakte.

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Instalacija za Linux

Da biste ručno instalirali TeamCity sa Tomcat servlet kontejnerom, trebali biste koristiti TeamCity arhivu: TeamCity .tar.gz. Skinuti možete ga dobiti odavde.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Kada prvi put pokrenete, morate odabrati tip baze podataka u kojoj će biti pohranjeni podaci sklopa.

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Zadana konfiguracija radi dalje localhost:8111/ sa jednim registrovanim agentom za izgradnju koji radi na istom računaru.

Snage TeamCityja:

  • jednostavno postavljanje;
  • korisnički interfejs;
  • veliki broj ugrađenih funkcija;
  • Usluge podrške;
  • postoji RESTful API;
  • dobra dokumentacija;
  • dobro obezbeđenje.

Cons:

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

GoCD

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

Sistemski zahtevi:

  • RAM - 1 GB minimum, više je bolje;
  • procesor - dual-core, sa frekvencijom jezgre od 2 GHz;
  • tvrdi disk - najmanje 1 GB slobodnog prostora.

agent:

  • RAM - najmanje 128 MB, po mogućnosti više;
  • procesor - najmanje 2 GHz.

Server osigurava rad agenata i pruža zgodan interfejs za korisnika:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Faze/poslovi/zadaci:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

Instalacija za Linux

echo "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-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]

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

Po defaultu GoCd radi localhost: 8153.

Snage GoCd-a:

  • open source;
  • jednostavna instalacija i konfiguracija;
  • dobra dokumentacija;

  • Odličan korisnički interfejs:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

  • mogućnost prikaza korak-po-korak putanje implementacije GoCD-a u jednom prikazu:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

  • odličan prikaz strukture cjevovoda:

3 popularna alata za organizaciju kontinuirane implementacije (Continuous Deployment)

  • GoCD optimizuje CD radni tok u najpopularnijim cloud okruženjima uključujući Docker, AWS;
  • alat omogućava ispravljanje problema u procesu, za koji postoji praćenje svake promjene od urezivanja do implementacije u realnom vremenu.

Cons:

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

Kao zaključak

Ovo su samo tri alata, u stvari ima ih mnogo više. Teško je izabrati, tako da svakako morate obratiti pažnju na dodatne aspekte.

Otvoreni izvorni kod alata omogućava razumijevanje o čemu se radi, plus brže dodavanje novih funkcija. Ali ako nešto ne radi, onda se morate osloniti samo na sebe i pomoć zajednice. Plaćeni alati pružaju podršku koja ponekad može biti kritična.

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

I na kraju, kako biste osigurali zaista efikasan kontinuirani proces implementacije, morate formulirati kriterije čije će vam specifičnosti omogućiti da suzite raspon dostupnih alata.

Skillbox preporučuje:

izvor: www.habr.com

Dodajte komentar