Referenční: co je to Continuous Delivery

Dříve jsme uváděli o Continuous Integration (CI). Pokračujme s Continuous Delivery. To je soubor metod vývoje softwaru. Pomáhá zajistit, že kód je připraven k nasazení.

Referenční: co je to Continuous Delivery
/ Pixabay / bluebudgie / CZ

Historie

Slovní spojení continuous delivery bylo poprvé viděno v agilním manifestu z roku 2001 na začátku seznamu hlavních zásad: „Priorita je vyřešení problémů zákazníka pomocí nepřetržité dodávky funkčního softwaru.“

V roce 2010 Jez Humble a David Farley publikovali knihu o Continuous Delivery. Podle autorů CD doplňuje přístup Continuous Integration a umožňuje zjednodušit přípravu kódu k nasazení.

Po zveřejnění knihy začal přístup získávat popularitu a během několika let se stal prakticky běžným. Podle průzkumu, který byl proveden mezi více než 600 vývojáři a IT manažery v roce 2014, 97 % technických vedoucích a 84 % programátorů bylo obeznámeno s Continuous Delivery.

Tento přístup zůstává jedním z nejpopulárnějších. Podle výzkumu z roku 2018, na kterém se podílelo komunitní IT specialisté DevOps a Jenkins Community, jeho používá polovina z více než tisíce dotazovaných respondentů.

Jak funguje Continuous Delivery

Základem CD je připravenost kódu k nasazení. K dosažení tohoto cíle se používá automatizace procesu přípravy softwaru na vydání. Ten by měl být standardizován pro různé vývojové prostředí, což pomůže rychleji identifikovat slabá místa a optimalizovat je. Například urychlit testování.

Příklad procesu Continuous Delivery vypadá takto:

Referenční: co je to Continuous Delivery

Pokud za automatizaci prvních dvou fází odpovídá přístup Continuous Integration, za následující dvě pak odpovídá Continuous Delivery. Stabilitu procesu zajišťují také systémy řízení konfigurací. Ty monitorují změny v infrastruktuře, databázích a závislostech. Samotné nasazení může být automatizováno nebo provedeno ručně.

Na proces jsou kladeny následující požadavky:

  • Dostupnost informací o připravenosti k vydání do produkčního prostředí a připravenost k bezprostřednímu vydání (CD nástroje testují kód a umožňují vyhodnotit efekt změn ve vydání).
  • Celková zodpovědnost za finální produkt. Produktový tým – manažeři, vývojáři, testeři – myslí na výsledek, a ne jen na svoji oblast zodpovědnosti (výsledek je pracovní vydání, které je dostupné pro uživatele produktu).

V CD se obvykle používá code review, a pro shromažďování názorů zákazníků – princip dark launching. Novou funkci nejprve vydáváme pro malý segment uživatelů – jejich zkušenosti s interakcí s produktem pomáhají najít nedostatky a chyby, které nebyly odhaleny při interním testování.

Jaké jsou výhody

Continuous Delivery pomáhá zjednodušit nasazení kódu, což má pozitivní vliv na produktivitu a snižuje pravděpodobnost emocionálního vyhoření zaměstnanců. Nakonec to snižuje i celkové náklady na vývoj. Například CD pomohlo jedné z týmů HP snížit tyto náklady o 40%.

Kromě toho – podle výzkumu z roku 2016 (strana 28 dokumentu) – firmy, které implementovaly CD, řeší problémy s IT bezpečností o 50% rychleji ve srovnání s těmi, které tento přístup nepoužívají. Částečně lze toto rozlišení vysvětlit fungováním nástrojů pro automatizaci procesu.

Další výhodou je zrychlení vydání verzí. Ve finském vývojovém studiu nepřetržitá dodávka pomohla zvýšit rychlost sestavení kódu o 25%.

Potenciální komplikace

První a hlavní problém – nutnost přepracovat zavedené procesy. Aby se prokázala výhoda nového přístupu, je třeba přecházet na CD postupně, nezačínat u nejnáročnějších aplikací.

Druhou potenciální problém – velké množství větví kódu. Důsledkem „větvení“ jsou časté konflikty a ztráta velkého množství času. Možným řešením je přístup no branches.

. V některých firmách se zejména setkávají hlavní problémy s testováním – na něj se věnuje příliš mnoho času. Výsledky testů se často musí analyzovat ručně, ale možným řešením může být paralelizace testů v prvních fázích zavádění CD.

Také je nutné školit zaměstnance v práci s novými nástroji – předběžný pre školení ušetří vývojářům síly a čas.

Referenční: co je to Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Nástroje

Představme si několik otevřených nástrojů pro Continuous Delivery:

  • GoCD — server pro kontinuální doručování na Java a JRuby on Rails. Umožňuje řídit celý proces doručování aplikace: build—test—release. Nástroj je distribuován pod licencí Apache 2.0. Na oficiálních stránkách najdete příručku pro nastavení.
  • Capistrano — framework pro vytváření skriptů, které automatizují nasazení aplikací v Ruby, Java nebo PHP. Capistrano dokáže vykonávat příkazy na vzdáleném stroji prostřednictvím SSH. Spolupracuje s jinými nástroji pro kontinuální integraci a doručování, například s CI serverem Integrity.
  • Gradle — multiplatformní nástroj, který automatizuje celý cyklus vývoje aplikací. Gradle pracuje s Java, Python, C/C++, Scala a dalšími. Existuje integrace s Eclipse, IntelliJ a Jenkins.
  • Drone — platforma pro CD v jazyce Go. Drone lze nasadit on-premise nebo v cloudu. Nástroj je postaven na kontejnerové architektuře a používá YAML soubory pro jejich správu.
  • Spinnaker — platforma pro kontinuální doručování kódu v multi-cloudových systémech. Byla vyvinuta v Netflixu a zásadní úlohu při vývoji nástroje sehráli inženýři Google. Instrukci pro instalaci najdete na oficiálních stránkách.

Co si přečíst v našem firemním blogu:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster