Referenca: kaj je Continuous Delivery

Prej smo so povedali o Continuous Integration (CI). Nadaljujemo s Continuous Delivery. To je niz metod razvoja programske opreme. Pomaže pri osiguranju spremnosti koda za implementacijo.

Referenca: kaj je Continuous Delivery
/ Pixabay / bluebudgie / PL

Zgodovina

Izraz continuous delivery je bilo mogoče videti že v agilnem manifiestu iz leta 2001 na začetku seznama osnovnih načel: „Prioriteta je reševanje nalog naročnika z natančno dostavo aktualne programske opreme.“

Leta 2010 sta Jez Humble in David Farley objavila knjigo o Continuous Delivery. Po zamisli avtorjev, CD dopolnjuje pristop Neprekinjeno integracijo in omogoča poenostavitev priprave kode za implementacijo.

Po objavi knjige je pristop začel naraščati v priljubljenosti in v le nekaj letih postal praktično splošno sprejet. Po raziskavi, izvedeni med več kot 600 razvijalci in IT-managerji leta 2014, je 97 % tehničnih vodij in 84 % programerjev poznalo Continuous Delivery.

Trenutno ostaja ta pristop eden najbolj priljubljenih. Po podatkih raziskave iz leta 2018, ki je vključevala skupnost IT-strokovnjakov DevOps in Jenkins Community, je uporablja polovica od več kot tisoč anketiranih respondentov.

Kako deluje Continuous Delivery

Osnova CD je pripravljenost kode za implementacijo. Za izpolnjevanje te naloge se uporablja avtomatizacija procesa priprave programske opreme za izdajo. Morala bi biti standardizirana za različna razvojna okolja, kar bo pomagalo pri hitrejšem iskanju šibkih točk in optimizaciji le-teh. Na primer, pospeševanje testiranja.

Primer procesa Continuous Delivery je videti takole:

Referenca: kaj je Continuous Delivery

Če za avtomatizacijo prvih dveh faz skrbi pristop Continuous Integration, pa za naslednji dve — Continuous Delivery. Stabilnost procesa zagotavljajo tudi sistemi za upravljanje konfiguracijami. Ti spremljajo spremembe v infrastrukturi, podatkovnih bazah in odvisnostih. Sama implementacija je lahko avtomatizirana ali pa se izvede ročno.

Za postopek veljajo naslednje zahteve:

  • Na voljo so informacije o pripravljenosti za prehod v produkcijsko okolje in pripravljenost za takojšnje izdaje (CD-orodja testirajo kodo in omogočajo oceno učinka sprememb v izdaji).
  • Skupna odgovornost za končni izdelek. Produktna ekipa — managerji, razvijalci, testiralci — razmišljajo o rezultatu in ne le o svojem področju odgovornosti (rezultat — delovna izdaja, ki je dostopna uporabnikom izdelka).

V CD se običajno uporablja pregled kode, za zbiranje mnenj strank pa načelo temno lansiranje. Novo funkcijo najprej izdajo za majhen segment uporabnikov — njihova izkušnja z interakcijo z izdelkom pomaga odkriti pomanjkljivosti in napake, ki jih niso opazili med notranjim testiranjem.

Kakšna je prednost

Neprekinjena dobava poenostavi spreminjanje kode, kar pozitivno vpliva na produktivnost in zmanjšuje verjetnost čustvene izčrpanosti zaposlenih. Na koncu to znižuje tudi skupne stroške razvoja. Na primer, CD je eni od ekip HP zmanjšala te stroške za 40%.

Poleg tega — po raziskavi iz leta 2016 (stran 28 dokumenta) — podjetja, ki so uvedla CD, 50% hitreje rešujejo težave z IKT v primerjavi s tistimi, ki ne uporabljajo pristopa. Do nekega dela se to razlikovanje lahko razloži z delovanjem orodij za avtomatizacijo procesov.

Še ena prednost — pospešitev izdaj. V finski razvojni agenciji je neprekinjena dobava pomagala povečati hitrost zbiranja kode za 25%.

Potencialne težave

Prva in glavna težava je potreba po preureditvi ustaljenih procesov. Da bi pokazali koristi novega pristopa, se je smiselno postopoma preusmeriti na CD, začeti pa ne z najbolj delovno intenzivnimi aplikacijami.

Druga potencialna težava je velika količina vej kode. Posledica "razvejanosti" so pogosti konflikti in izguba velike količine časa. Možno rešitev predstavlja pristop brez vej.

. Zlasti v nekaterih podjetjih se glavne težave pojavljajo pri testiranju — to vzame preveč časa. Rezultate testov je pogosto treba analizirati ročno, vendar lahko možna rešitev predstavlja paralelizacija testov v zgodnjih fazah uvedbe CD.

Zaposlenim je prav tako treba omogočiti usposabljanje za delo z novimi orodji — predhodno izobraževanje bo developerjem prihranilo energijo in čas.

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

Orodja

Navedimo nekaj odprtokodnih orodij za neprekinjeno dobavo:

  • GoCD — strežnik za neprekinjeno dobavo na Javi in JRuby on Rails. Omogoča nadzor celotnega postopka dobave aplikacije: build—test—release. Orodje je razširjeno pod licenco Apache 2.0. Na uradni spletni strani lahko najdete navodila za nastavitev.
  • Capistrano — ogrodje za ustvarjanje skript, ki avtomatizirajo nameščanje aplikacij v Ruby, Java ali PHP. Capistrano lahko izvaja ukaze na oddaljenem računalniku, ko se povezuje z njim preko SSH. Deluje z drugimi orodji za neprekinjeno integracijo in dobavo, kot je CI-strežnik Integrity.
  • Gradle — večplatformno orodje, ki avtomatizira celoten cikel razvoja aplikacij. Gradle deluje z Javo, Python, C/C++, Scala in drugimi. Ima integracijo z Eclipse, IntelliJ in Jenkins.
  • Drone — platforma za CD v jeziku Go. Drone je mogoče postaviti na lastnih strežnikih ali v oblaku. Orodje je zgrajeno na osnovi kontejnerjev in uporablja YAML-datoteke za njihovo upravljanje.
  • Spinnaker — platforma za neprekinjeno dobavo kode v več oblačnih sistemih. Razvili so jo pri Netflixu, pomembno vlogo pri razvoju orodja so odigrali inženirji Google. Navodila za namestitev boste našli na uradni spletni strani.

Kaj brati v našem poslovnem blogu:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster