Průvodce: jak funguje proces Continuous Integration

Dnes se podíváme na historii termínu, projednáme obtíže implementace CI a představíme několik populárních nástrojů, které vám pomohou s jeho používáním.

Průvodce: jak funguje proces Continuous Integration
/ Flickr / Altug Karakoc / CC BY / Фото изменено

Termín

Continuous Integration (nepřetržitá integrace) — přístup k vývoji aplikací, který zahrnuje časté provádění sestavení projektu a testování kódu.

Cílem je udělat proces integrace předvídatelným a odhalit potenciální chyby a závady v rané fázi, aby bylo více času na jejich opravu.

Poprvé se termín Continuous Integration objevil v roce 1991. Zavedl ho tvůrce jazyka UML Grady Booch (Grady Booch). Inženýr představil koncept CI jako součást své vlastní praxe vývoje — Boochovy metody. Předpokládal inkrementální upřesnění architektury při návrhu objekto-orientovaných systémů. Grady nepopisoval žádné požadavky na nepřetržitou integraci. Ale později ve své knize „Object-Oriented Analysis and Design with Applications“ řekl, že úkolem této metodiky je urychlit vydávání „interních releasů.“

Historie

V roce 1996 přejali CI tvůrci metodologie extremního programování (XP) — Kent Beck (Kent Beck) a Ron Jeffries (Ron Jeffries). Nepřetržitá integrace se stala jedním z dvanácti klíčových principů jejich přístupu. Zakladatelé XP upřesnili požadavky na metodologii CI a zdůraznili nutnost provádět sestavení projektu několikrát denně.

Na počátku 2000. let začal metodologii nepřetržité integrace propagovat jeden ze zakladatelů Agile Alliance Martin Fowler (Martin Fowler). Jeho experimenty s CI vedly k vytvoření prvního softwarového nástroje v této oblasti — CruiseControl. Nástroj vytvořil Martinův kolega — Matthew Foemmel.

Sestavovací cyklus v nástroji je realizován jako démon, který pravidelně kontroluje systém správy verzí na změny v kódové základně. Řešení si můžete stáhnout i dnes — je distribuováno pod licencí podobnou BSD.

S příchodem softwaru pro CI začalo tuto praxi přijímat čím dál více společností. Podle výzkumu Forrester [str. 5 zprávy] v roce 2009 86 % ze 50 dotazovaných technologických společností používalo nebo implementovalo metody CI.

Dnes je praxe Continuous Integration využívána organizacemi z různých odvětví. V roce 2018 provedl velký cloudový poskytovatel průzkum mezi IT specialisty z oblastí služeb, vzdělávání a financí. Ze šesti tisíc respondentů 58 % uvedlo, že používají při práci nástroje a principy CI.

Jak to funguje

Základem kontinuální integrace jsou dva nástroje — systém správy verzí a CI server. Ten může být fyzické zařízení nebo virtuální stroj v cloudovém prostředí. Vývojáři nahrávají nový kód jednou nebo několikrát denně. CI server ho automaticky zkopíruje se všemi závislostmi a provede sestavení. Poté spouští integrační a unit testy. Pokud testy proběhnou úspěšně, CI systém nasadí kód.

Celkovou schéma procesu si lze představit takto:

Průvodce: jak funguje proces Continuous Integration

Metodologie CI klade na vývojáře řadu požadavků:

  • Okamžitě opravovat problémy. Tento princip přišel do CI z extrémního programování. Oprava chyb je nejprioritnější úkol vývojářů.
  • Automatizovat procesy. Vývojáři a manažeři by měli neustále hledat "úzká místa" v integračním procesu a odstraňovat je. Například často bývá "úzkým místem" integrace testování. testování.
  • Provádět sestavení co nejčastěji. Jednou denně, aby se synchronizovala práce týmu.

Obtíže při zavádění

Prvním problémem jsou vysoké provozní náklady. I když společnost používá open-source CI nástroje (o kterých si povíme dále), stále musí investovat peníze do udržování infrastruktury. Řešením však mohou být cloudové technologie.

Ty usnadňují sestavování různorodých počítačových konfigurací. Plus, společnosti platí jen za využívané zdroje, což pomáhá ušetřit na infrastruktuře.

Podle průzkumů [str.14 na stránkách Maven Apache Project], kontinuální integrace zvyšuje zátěž zaměstnanců společnosti (alespoň na začátku). Musí se naučit nové nástroje a kolegové ne vždy pomáhají s učením. Proto se musí vyrovnat s novými frameworky a službami "za běhu".

Třetí obtížností jsou problémy s automatizací. S těmito problémy se potýkají organizace s velkým množstvím legacy kódu, který není pokryt automatizovanými testy. To vede k tomu, že kód je před plným zavedením CI jednoduše přepisován.

Průvodce: jak funguje proces Continuous Integration
/ Flickr / theilr / CC BY-SA

Kdo používá

Jedni z prvních, kdo ocenili výhody této metodiky, byli IT giganti. Google používá zavedl nepřetržitou integraci v polovině 2000. let. CI bylo zavedeno, aby se řešil problém s prodlevami v práci vyhledávače. Nepřetržitá integrace pomohla rychle odhalovat a odstraňovat problémy. Nyní CI používají všechny divize IT giganta.

Nepřetržitá integrace pomáhá i malým firmám, a nástroje CI využívají finance a zdravotnické organizace. Například ve společnosti Morningstar služby nepřetržité integrace pomohly opravit zranitelnosti o 70% rychleji. Zdravotnická platforma Philips Healthcare dokázala dvakrát urychlit testování aktualizací.

Nástroje

Zde je několik populárních nástrojů pro CI:

  • Jenkins — jeden z nejpopulárnějších CI systémů. Podporuje více než tisíc pluginů pro integraci s různými VCS, cloudovými platformami a dalšími službami. Jenkins používáme také v 1cloud: tento nástroj je součástí našeho DevOps systému. Pravidelně kontroluje Git větev určenou pro testování.
  • Buildbot — python framework pro psaní vlastních procesů nepřetržité integrace. Počáteční nastavení nástroje je poměrně složité, nicméně to je vyváženo širokými možnostmi přizpůsobení. Mezi výhody frameworku uživatelé uvádějí jeho nízkou náročnost na zdroje.
  • Concourse CI — server od Pivotal, který používá kontejnery Docker. Concourse CI se integruje s jakýmikoli nástroji a systémy správy verzí. Vývojáři poznamenávají, že systém je vhodný pro práci v firmách jakéhokoli velikosti.
  • Gitlab CI — nástroj integrován do systému správy verzí GitLab. Služba funguje v cloudu a pro konfiguraci využívá YAML soubory. Stejně jako Concourse, Gitlab CI aplikuje Docker kontejnery, které pomáhají izolovat různé procesy od sebe navzájem.
  • Codeship — cloudový CI server, který pracuje s GitHub, GitLab a BitBucket. Platforma nevyžaduje dlouhou počáteční konfiguraci — v Codeship jsou k dispozici standardní předinstalované CI procesy. Pro malé (do 100 sestavení za měsíc) a open source projekty je Codeship dostupný zdarma.

Materiály z našeho firemního 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