Ranije smo o Continuous Integration (CI). Nastavljamo s Continuous Delivery. To je skup metoda razvoja softvera. Pomaže osigurati spremnost koda za implementaciju.
/ Pixabay / /
Povijest
Izraz continuous delivery mogao se vidjeti još u iz 2001. godine na početku popisa osnovnih principa: „Prioritet je rješavanje problema klijenata kroz neprekidnu isporuku aktualnog softvera.“
U 2010. godini Jez Humble i David Farley objavili su o Continuous Delivery. Prema zamisli autora, CD nadopunjuje pristup i omogućava pojednostavljenje pripreme koda za implementaciju.
Nakon objavljivanja knjige, pristup je počeo stjecati popularnost i u samo nekoliko godina postao gotovo općeprihvaćen. Prema , provedeno među više od 600 programera i IT menadžera 2014. godine, 97% tehničkih rukovoditelja i 84% programera bilo je upoznato s Continuous Delivery.
Trenutno ovaj pristup ostaje jedan od najpopularnijih. Prema istraživanju iz 2018. godine, kojem su pridruženi članovi zajednice IT stručnjaka DevOps and Jenkins Community, polovica od više od tisuću ispitanika.
Kako funkcionira Continuous Delivery
Osnova CD-a je spremnost koda za implementaciju. Za ostvarenje tog cilja koristi se automatizacija procesa pripreme softvera za izdanje. On mora biti standardiziran za različita razvojna okruženja, što pomaže bržem otkrivanju slabih točaka i optimizaciji istih. Na primjer, ubrzanje testiranja.
Primjer procesa Continuous Delivery izgleda ovako:

Ako su prva dva koraka automatizirana pristupom Continuous Integration, tada za sljedeća dva odgovara Continuous Delivery. Stabilnost procesa osigurava se i putem sustava . Oni prate promjene u infrastrukturi, bazama podataka i zavisnostima. Samo implementacija može biti automatizirana, ili se može vršiti ručno.
Postavljeni su sljedeći zahtjevi:
- Dostupnost informacija o spremnosti za izlazak u production okruženje i spremnost za neposrednu objavu (CD alati testiraju kod i omogućuju procjenu učinka promjena u izdanju).
- Zajednička odgovornost za konačni proizvod. Tim proizvoda — menadžeri, developeri, testeri — fokusira se na rezultat, a ne samo na svoju vlastitu odgovornost (rezultat je radna verzija koja je dostupna korisnicima proizvoda).
U CD-u se obično primjenjuje , a za prikupljanje povratnih informacija od klijenata princip . Nova funkcija se prvo izdaje za mali segment korisnika — njihovo iskustvo s interakcijom s proizvodom pomaže u identifikaciji propusta i bugova koji nisu uočeni tijekom internog testiranja.
Koja je korist
Kontinuirana isporuka pomaže u pojednostavljivanju implementacije koda, što pozitivno utječe na produktivnost i smanjuje vjerojatnost emocionalnog izgaranja zaposlenika. Na kraju, to također smanjuje ukupne troškove razvoja. Na primjer, CD je pomogao jednom od timova HP-a ove troškove za 40%.
Pored toga — prema istraživanju iz 2016. godine (stranica 28 ) — kompanije koje su implementirale CD brže rješavaju probleme sa IB-om za 50% u odnosu na one koje ne koriste ovaj pristup. U određenoj mjeri to razlikovanje može se objasniti radom alata za automatizaciju procesa.
Još jedna prednost je ubrzano izdavanje verzija. U finskom studiju za razvoj kontinuirana isporuka povećati brzinu kompilacije koda za 25%.
Potencijalne teškoće
Prvi i osnovni problem je potreba za prestructuriranjem ustaljenih procesa. Da bi se pokazala korist novog pristupa, treba postepeno preći na CD, počevši ne od najviše radno intenzivnih aplikacija.
Drugi potencijalni problem je velika količina grana koda. Posljedica "grananju" — česti konflikti i gubitak velikog broja vremena. Moguće rješenje je pristup .
. Konkretno, u nekim kompanijama glavni problemi javljaju se s testiranjem — previše vremena se troši na to. Rezultate testova često je potrebno analizirati ručno, ali moguće rješenje može biti paralelno testiranje u ranim fazama implementacije CD-a.
Također treba obučiti zaposlenike za rad s novim alatima — prethodno obrazovanje uštedjet će programerima energiju i vrijeme.

/ Flickr / /
Alati
Nabrojimo nekoliko otvorenih alata za Kontinuiranu isporuku:
- — server za kontinuiranu isporuku na Javi i JRuby on Rails. Omogućuje kontrolu cijelog procesa isporuke aplikacije: build—test—release. Alat se distribuira pod Apache 2.0 licencom. Na službenoj web stranici možete pronaći .
- — okvir za izradu skripti koje automatiziraju implementaciju aplikacija na Ruby, Javu ili PHP. Capistrano može izvršavati naredbe na udaljenoj mašini povezivanjem putem SSH. Radi s drugim alatima za kontinuiranu integraciju i isporuku, poput CI servera Integrity.
- — multiplatformski alat koji automatizira cijeli ciklus razvoja aplikacija. Gradle radi s Javom, Python, C/C++, Scalom i drugima. Ima integraciju s Eclipse, IntelliJ i Jenkins.
- — platforma za CD na jeziku Go. Drone se može implementirati lokalno ili u oblaku. Alat je izgrađen na bazi kontejnera i koristi YAML datoteke za njihovo upravljanje.
- — platforma za kontinuiranu isporuku koda u multi-cloud sustavima. Razvijen u Netflixu, značajnu ulogu u razvoju alata odigrali su inženjeri iz Googlea. Upute za instalaciju možete .
Što pročitati u našem korporativnom blogu:
Izvor: habr.com
