ProHoster > Блог > internet vijesti > 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).
Podsećamo:za sve čitaoce "Habra" - popust od 10 rubalja pri upisu na bilo koji Skillbox kurs koristeći "Habr" promotivni kod.
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:
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).
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:
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.
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.
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.
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:
Faze/poslovi/zadaci:
Instalacija za Linux
echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list
mogućnost prikaza korak-po-korak putanje implementacije GoCD-a u jednom prikazu:
odličan prikaz strukture cjevovoda:
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.