Reference: jak funguje proces kontinuální integrace

Dnes se podíváme na historii tohoto termínu, prodiskutujeme potíže s implementací CI a poskytneme několik oblíbených nástrojů, které vám pomohou s ním pracovat.

Reference: jak funguje proces kontinuální integrace
/flickr/ Altug Karakoc / CC BY / Foto upraveno

Termín

Průběžná integrace je přístup k vývoji aplikací, který zahrnuje časté sestavování projektů a testování kódu.

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

Termín kontinuální integrace se poprvé objevil v roce 1991. Zavedl jej tvůrce jazyka UML Grady Butch (Grady Booch). Inženýr představil koncept CI jako součást své vlastní vývojové praxe - Boochova metoda. To znamenalo postupné zdokonalování architektury při navrhování objektově orientovaných systémů. Gradi nepopsal žádné požadavky na kontinuální integraci. Ale později ve své knize „Objektově orientovaná analýza a návrh s aplikacemi"Řekl, že cílem metodiky je urychlit vydávání "interních verzí."

Příběh

V roce 1996 byla CI přijata tvůrci metodiky extrémní programování (XP) - Kent Beck (Kent Beck) a Ron Jeffries (Ron Jeffries). Kontinuální integrace se stala jedním z dvanácti klíčových principů jejich přístupu. Zakladatelé XP objasnili požadavky na metodiku CI a upozornili na nutnost stavět projekt několikrát denně.

Na počátku 2000. století začal jeden ze zakladatelů Agile Alliance prosazovat metodologii kontinuální integrace Martin Fowler (Martin Fowler). Jeho experimenty s CI vedly k prvnímu softwarovému nástroji v této oblasti – CruiseControl. Nástroj vytvořil Martinův kolega Matthew Foemmel.

Cyklus sestavení v nástroji je implementován jako démon, který pravidelně kontroluje změny v základně kódu v systému správy verzí. Řešení je ke stažení již dnes – it distribuovány pod licencí podobnou BSD.

S příchodem softwaru pro CI si tuto praxi začalo osvojovat stále více společností. Podle výzkumu Forrester [strana 5 zpráva], v roce 2009 86 % z padesáti dotazovaných technologických společností používalo nebo implementovalo metody CI.

Praxi kontinuální integrace dnes využívají organizace z celé řady průmyslových odvětví. V roce 2018 provedl velký cloudový poskytovatel průzkum mezi IT specialisty z firem v sektoru služeb, vzdělávání a financí. Z šesti tisíc respondentů 58 % uvedlo, že při své práci využívá nástroje a principy CI.

Jak to funguje

Nepřetržitá integrace je založena na dvou nástrojích: systému správy verzí a serveru CI. Tím druhým může být buď fyzické zařízení, nebo virtuální stroj v cloudovém prostředí. Vývojáři nahrávají nový kód jednou nebo vícekrát denně. Server CI jej automaticky zkopíruje se všemi závislostmi a sestaví. Poté spustí integrační a jednotkové testy. Pokud testy projdou úspěšně, systém CI nasadí kód.

Obecný procesní diagram lze znázornit takto:

Reference: jak funguje proces kontinuální integrace

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

  • Okamžitě opravte problémy. Tento princip přišel do CI z extrémního programování. Oprava chyb je nejvyšší prioritou vývojářů.
  • Automatizujte procesy. Vývojáři a manažeři musí neustále hledat úzká místa v integračním procesu a odstraňovat je. Často se například vyskytuje úzké místo v integraci to dopadá testování.
  • Provádějte montáže co nejčastěji. Jednou denně k synchronizaci práce týmu.

Potíže s implementací

Prvním problémem jsou vysoké provozní náklady. I když firma používá otevřené nástroje CI (o kterých si povíme později), stejně bude muset utrácet peníze za podporu infrastruktury. Řešením však mohou být cloudové technologie.

Zjednodušují sestavování různých konfigurací počítačů. Plus společnosti zaplatit pouze za použité zdroje, což pomáhá šetřit na infrastruktuře.

Podle průzkumů [strana 14 články], průběžná integrace zvyšuje zátěž zaměstnanců společnosti (alespoň zpočátku). Musí se učit nové nástroje a kolegové ne vždy pomáhají se školením. Proto se s novými frameworky a službami musíte vypořádat na cestách.

Třetím problémem jsou problémy s automatizací. Tomuto problému čelí organizace s velkým množstvím staršího kódu, který není pokryt automatizovanými testy. To vede k tomu, že kód je před plnou implementací CI jednoduše přepsán.

Reference: jak funguje proces kontinuální integrace
/flickr/ theilr / CC BY-SA

Kdo používá

IT giganti byli mezi prvními, kteří ocenili přínos metodiky. Google použití kontinuální integrace od poloviny 2000. století. CI byla implementována k vyřešení problému zpoždění ve vyhledávači. Neustálá integrace pomohla rychle odhalit a vyřešit problémy. Nyní CI používají všechna oddělení IT giganta.

Neustálá integrace pomáhá i malým firmám a nástroje CI využívají i finanční a zdravotnické organizace. Například ve společnosti Morningstar pomohly služby nepřetržité integrace opravovat zranitelnosti o 70 % rychleji. A lékařská platforma Philips Healthcare dokázala zdvojnásobit rychlost testování aktualizací.

Nástroje

Zde jsou některé oblíbené nástroje pro CI:

  • Jenkins je jedním 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. Používáme také Jenkins na 1cloud: nástroj součástí našeho systému DevOps. Pravidelně kontroluje pobočku Git určenou k testování.
  • Buildbot — rámec pythonu pro psaní vašich vlastních kontinuálních integračních procesů. Počáteční nastavení nástroje je poměrně složité, ale to je kompenzováno širokými možnostmi přizpůsobení. Mezi výhody frameworku uživatelé vyzdvihují jeho nízkou náročnost na zdroje.
  • Prostor CI je server od společnosti Pivotal, který používá kontejnery Docker. Concourse CI se integruje se všemi nástroji a systémy správy verzí. Vývojáři poznamenávají, že systém je vhodný pro práci ve společnostech jakékoli velikosti.
  • Gitlab CI je nástroj zabudovaný do systému správy verzí GitLab. Služba běží v cloudu a ke konfiguraci používá soubory YAML. Stejně jako Concourse, Gitlab CI platí Docker kontejnery, které pomáhají izolovat různé procesy od sebe.
  • Kodex je cloudový CI server, který spolupracuje s GitHub, GitLab a BitBucket. Platforma nevyžaduje dlouhé počáteční nastavení – standardní předinstalované procesy CI jsou k dispozici v Codeship. Pro malé (do 100 sestavení za měsíc) a open source projekty je Codeship k dispozici zdarma.

Materiály z našeho firemního blogu:

Zdroj: www.habr.com

Přidat komentář