Pomoć: šta je to kontinuirana isporuka

Ranije smo mi rekao o kontinuiranoj integraciji (CI). Nastavimo s kontinuiranom isporukom. Ovo je skup metoda razvoja softvera. Pomaže da se osigura da je vaš kod spreman za implementaciju.

Pomoć: šta je to kontinuirana isporuka
/Pixabay/ bluebudgie / PL

История

Povratak se mogao vidjeti izraz kontinuirana isporuka agilni manifest iz 2001. na početku liste osnovnih principa: „Prioritet je rješavanje problema kupaca kroz kontinuiranu isporuku ažuriranog softvera.“

Godine 2010, Jez Humble i David Farley objavili su knjiga kontinuiranom isporukom. Prema autorima, CD nadopunjuje pristup Kontinuirana integracija i omogućava vam da pojednostavite pripremu koda za implementaciju.

Nakon objavljivanja knjige, pristup je počeo da dobija na popularnosti i za samo nekoliko godina postao je gotovo univerzalno prihvaćen. Prema anketa, sproveden među više od 600 programera i IT menadžera u 2014. godini, 97% tehničkih menadžera i 84% programera bilo je upoznato sa kontinuiranom isporukom.

Sada ovaj pristup ostaje jedan od najpopularnijih. Prema studiji iz 2018. koja je uključivala IT zajednicu DevOps i Jenkins Community, to koristi polovina od više od hiljadu ispitanika.

Kako funkcionira kontinuirana dostava?

Osnova CD-a je spremnost koda za implementaciju. Za realizaciju ovog zadatka koristi se automatizacija procesa pripreme softvera za izdavanje. Trebao bi biti standardan u različitim razvojnim okruženjima, što će pomoći da se brzo pronađu slabe točke i optimiziraju. Na primjer, ubrzajte testiranje.

Primjer procesa kontinuirane isporuke izgleda ovako:

Pomoć: šta je to kontinuirana isporuka

Ako je pristup kontinuirane integracije odgovoran za automatizaciju prve dvije faze, onda je kontinuirana isporuka odgovorna za sljedeće dvije. Stabilnost procesa osiguravaju, između ostalog, sistemi upravljanje konfiguracijom. Oni prate promjene u infrastrukturi, bazama podataka i zavisnosti. Sama implementacija se može automatizirati ili izvršiti ručno.

Procesu se postavljaju sljedeći zahtjevi:

  • Dostupnost informacija o spremnosti za ulazak u proizvodno okruženje i spremnosti za trenutno izdavanje (CD alati testiraju kod i omogućavaju procjenu efekta promjena u izdanju).
  • Ukupna odgovornost za konačni proizvod. Proizvodni tim - menadžeri, programeri, testeri - razmišljaju o rezultatu, a ne samo o svom području odgovornosti (rezultat je radno izdanje koje je dostupno korisnicima proizvoda).

U CD-ovima se obično koristi pregled koda, a za prikupljanje mišljenja kupaca - princip mračno lansiranje. Nova funkcija je prvi put puštena malom segmentu korisnika - njihovo iskustvo u interakciji sa proizvodom pomaže da se pronađu nedostaci i greške koje nisu uočene tokom internog testiranja.

Koja je korist

Kontinuirana isporuka pomaže u pojednostavljenju implementacije koda, što ima pozitivan utjecaj na produktivnost i smanjuje vjerovatnoću izgaranja zaposlenika. Na kraju, ovo smanjuje ukupne troškove razvoja. Na primjer, CD je pomogao jednom od HP timova da se smanji takvih troškova za 40%.

Osim toga, prema studiji iz 2016. (stranica 28 dokument) - kompanije koje su implementirale CD rješavaju probleme sigurnosti informacija 50% brže od onih koje ne koriste pristup. U određenoj mjeri, ova razlika se može objasniti performansama alata za automatizaciju procesa.

Još jedan plus je ubrzanje izdavanja. Kontinuirana isporuka u finskom razvojnom studiju pomogao povećati brzinu sastavljanja koda za 25%.

Potencijalne poteškoće

Prvi i glavni problem je potreba za ponovnom izgradnjom poznatih procesa. Da bi se pokazale prednosti novog pristupa, vrijedi postupno prelaziti na CD, počevši ne od najzahtjevnijih aplikacija.

Drugi potencijalni problem je veliki broj grana koda. Posljedica „grananja“ su česti sukobi i daljnji gubitak velikog vremena. Moguće rješenje - pristup nema grana.

Konkretno, u nekim kompanijama glavne poteškoće nastaju sa testiranjem - potrebno je previše vremena. Rezultati testova se često moraju analizirati ručno, ali moguće rješenje može biti paraleliziranje testova u ranim fazama implementacije CD-a.

Također biste trebali obučiti zaposlenike za rad s novim alatima - preliminarni edukativni program uštedjet će programerima trud i vrijeme.

Pomoć: šta je to kontinuirana isporuka
/Flickr/ h.ger1969 / CC BY-SA

Alati

Evo nekoliko otvorenih alata za kontinuiranu isporuku:

  • GoCD — server za kontinuiranu isporuku u Javi i JRuby on Rails. Omogućava vam da kontrolirate cijeli proces isporuke aplikacije: build—test—release. Alat se distribuira pod licencom Apache 2.0. Možete ga pronaći na službenoj web stranici vodič za podešavanje.
  • Capistrano — okvir za kreiranje skripti koje automatizuju implementaciju aplikacija u Ruby, Java ili PHP. Capistrano je u stanju da izvršava komande na udaljenoj mašini tako što se povezuje na nju preko SSH-a. Radi s drugim alatima za kontinuiranu integraciju i isporuku, kao što je Integrity CI server.
  • Gradle je multiplatformski alat koji automatizira cijeli ciklus razvoja aplikacije. Gradle radi sa Java, Python, C/C++, Scala, itd. Postoji integracija sa Eclipse, IntelliJ i Jenkins.
  • trut - CD platforma na Go jeziku. Dron se može postaviti na licu mjesta ili u oblaku. Alat je izgrađen na vrhu kontejnera i koristi YAML datoteke za upravljanje njima.
  • Spinaker — platforma za kontinuiranu isporuku koda u multi-cloud sistemima. Razvijen od strane Netflixa, Google inženjeri su odigrali veliku ulogu u razvoju alata. Upute za instalaciju pronađite na službenoj web stranici.

Šta čitati na našem korporativnom blogu:

izvor: www.habr.com

Dodajte komentar