Pomoć: što je kontinuirana isporuka

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

Pomoć: što je kontinuirana isporuka
/Pixabay/ plavi pupavac / PL

Priča

Izraz kontinuirana isporuka mogao se vidjeti u agilni manifest iz 2001. na početku popisa temeljnih načela: “Prioritet je rješavanje problema korisnika kontinuiranom isporukom suvremenog softvera.”

Godine 2010. Jez Humble i David Farley objavili su knjigu kontinuiranom isporukom. Prema riječima autora, CD nadopunjuje pristup Kontinuirana integracija i omogućuje vam da pojednostavite pripremu koda za implementaciju.

Nakon objavljivanja knjige pristup je počeo dobivati ​​na popularnosti iu samo nekoliko godina postao je gotovo univerzalno prihvaćen. Prema pregled, proveden među više od 600 programera i IT menadžera 2014. godine, 97% tehničkih menadžera i 84% programera bilo je upoznato s Continuous Delivery.

Sada ovaj pristup ostaje jedan od najpopularnijih. Prema studiji iz 2018. koja uključuje IT zajednicu DevOps i Jenkins Community, to koristi polovica od više od tisuću ispitanih ispitanika.

Kako funkcionira kontinuirana isporuka?

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

Primjer procesa kontinuirane isporuke izgleda ovako:

Pomoć: što je 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, sustavi konfiguracijski menadžment. Oni prate promjene u infrastrukturi, bazama podataka i ovisnostima. Sama implementacija može biti automatizirana ili izvedena ručno.

Sljedeći zahtjevi su nametnuti procesu:

  • Dostupnost informacija o spremnosti za ulazak u proizvodno okruženje i spremnosti za trenutačno izdavanje (CD alati testiraju kod i omogućuju procjenu učinka 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-ima se obično koristi pregled koda, a za prikupljanje mišljenja kupaca - princip mračno lansiranje. Nova značajka prvo je objavljena malom segmentu korisnika - njihovo iskustvo interakcije s proizvodom pomaže u pronalaženju nedostataka i grešaka koje nisu primijećene tijekom internog testiranja.

Koja je korist

Continuous Delivery pomaže pojednostaviti implementaciju koda, što pozitivno utječe na produktivnost i smanjuje vjerojatnost izgaranja zaposlenika. U konačnici, ovo smanjuje ukupne troškove razvoja. Na primjer, CD je pomogao jednom od HP timova smanjiti takve troškove za 40%.

Osim toga, prema studiji iz 2016. (stranica 28 dokument) - tvrtke koje su implementirale CD rješavaju probleme informacijske sigurnosti 50% brže od onih koje ne koriste pristup. Donekle se ta razlika može objasniti izvedbom alata za automatizaciju procesa.

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

Potencijalne poteškoće

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

Drugi potencijalni problem je veliki broj grana koda. Posljedica “grananja” su česti sukobi i daljnji gubitak velike količine vremena. Moguće rješenje – pristup nema grana.

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

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

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

Alat

Evo nekoliko otvorenih alata za kontinuiranu isporuku:

  • GoCD — poslužitelj za kontinuiranu isporuku u Javi i JRuby on Rails. Omogućuje vam kontrolu cijelog procesa isporuke aplikacije: izgradnja—testiranje—izdanje. Alat se distribuira pod licencom Apache 2.0. Možete ga pronaći na službenim stranicama vodič za postavljanje.
  • Capistrano — okvir za izradu skripti koje automatiziraju implementaciju aplikacija u Rubyju, Javi ili PHP-u. Capistrano može izvršavati naredbe na udaljenom računalu spajanjem na njega putem SSH-a. Radi s drugim alatima za kontinuiranu integraciju i isporuku, kao što je Integrity CI poslužitelj.
  • Gradle je višeplatformski alat koji automatizira cijeli ciklus razvoja aplikacije. Gradle radi s Javom, Python, C/C++, Scala, itd. Postoji integracija s Eclipse, IntelliJ i Jenkins.
  • trut - CD platforma na Go jeziku. Dron se može postaviti na lokaciji ili u oblaku. Alat je izgrađen na vrhu spremnika i koristi YAML datoteke za upravljanje njima.
  • dodatno prednje jedro regatnih jedrilica — platforma za kontinuiranu isporuku koda u multi-cloud sustavima. Alat koji je razvio Netflix, Googleovi inženjeri odigrali su veliku ulogu u razvoju alata. Upute za instalaciju pronaći na službenoj stranici.

Što čitati na našem korporativnom blogu:

Izvor: www.habr.com

Dodajte komentar