Referenca: što je Continuous Delivery

Ranije smo izložili o Continuous Integration (CI). Nastavljamo s Continuous Delivery. To je skup metoda razvoja softvera. Pomaže osigurati spremnost koda za implementaciju.

Referenca: što je Continuous Delivery
/ Pixabay / bluebudgie / HR

Povijest

Izraz continuous delivery mogao se vidjeti još u agilnom manifestu 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 knjigu o Continuous Delivery. Prema zamisli autora, CD nadopunjuje pristup Continuous Integration 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 istragini, 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, koristi 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:

Referenca: što je Continuous Delivery

Ako su prva dva koraka automatizirana pristupom Continuous Integration, tada za sljedeća dva odgovara Continuous Delivery. Stabilnost procesa osigurava se i putem sustava upravljanja konfiguracijama. 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 pregled koda, a za prikupljanje povratnih informacija od klijenata princip mračnog lansiranja. 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 smanjiti ove troškove za 40%.

Pored toga — prema istraživanju iz 2016. godine (stranica 28 dokumenta) — 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 pomogla je 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 bez grana.

. 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.

Referenca: što je Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Alati

Nabrojimo nekoliko otvorenih alata za Kontinuiranu isporuku:

  • GoCD — 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 vodič za postavljanje.
  • Capistrano — 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.
  • Gradle — 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.
  • Drone — 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.
  • Spinnaker — 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 pronaći na službenoj web stranici.

Što pročitati u našem korporativnom blogu:

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster