Referencia: ako funguje proces kontinuálnej integrácie

Dnes sa pozrieme na históriu tohto pojmu, prediskutujeme ťažkosti pri implementácii CI a poskytneme niekoľko populárnych nástrojov, ktoré vám pomôžu s ním pracovať.

Referencia: ako funguje proces kontinuálnej integrácie
/Flickr/ Altug Karakoc / CC BY / Foto upravené

Termín

Nepretržitá integrácia je prístup k vývoju aplikácií, ktorý zahŕňa časté zostavovanie projektov a testovanie kódu.

Cieľom je urobiť integračný proces predvídateľným a odhaliť potenciálne chyby a chyby v počiatočnom štádiu, aby bolo viac času na ich opravu.

Termín kontinuálna integrácia sa prvýkrát objavil v roku 1991. Zaviedol ho tvorca jazyka UML Grady Butch (Grady Booch). Inžinier predstavil koncept CI ako súčasť svojej vlastnej vývojovej praxe - Boochova metóda. Znamenalo to postupné zdokonaľovanie architektúry pri navrhovaní objektovo orientovaných systémov. Gradi neopísal žiadne požiadavky na nepretržitú integráciu. Ale neskôr vo svojej knihe „Objektovo orientovaná analýza a návrh s aplikáciami"Povedal, že cieľom metodiky je urýchliť uvoľňovanie "interných verzií."

Príbeh

V roku 1996 bola CI prijatá tvorcami metodiky extrémne programovanie (XP) - Kent Beck (Kent Beck) a Ron Jeffries (Ron Jeffries). Kontinuálna integrácia sa stala jedným z dvanástich kľúčových princípov ich prístupu. Zakladatelia XP objasnili požiadavky na metodiku CI a upozornili na potrebu stavať projekt niekoľkokrát denne.

Začiatkom roku 2000 začal jeden zo zakladateľov Agile Alliance presadzovať metodiku kontinuálnej integrácie Martin Fowler (Martin Fowler). Jeho experimenty s CI viedli k prvému softvérovému nástroju v tejto oblasti – CruiseControl. Nástroj vytvoril Martinov kolega Matthew Foemmel.

Cyklus zostavovania v nástroji je implementovaný ako démon, ktorý pravidelne kontroluje zmeny v kódovej základni systému riadenia verzií. Riešenie je možné stiahnuť už dnes - it distribuovaný pod licenciou podobnou BSD.

S príchodom softvéru pre CI si túto prax začalo osvojovať čoraz viac spoločností. Podľa výskumu Forrester [strana 5 správa], v roku 2009 86 % z päťdesiatich skúmaných technologických spoločností používalo alebo implementovalo metódy CI.

Prax kontinuálnej integrácie dnes využívajú organizácie z rôznych odvetví. Veľký cloudový poskytovateľ uskutočnil v roku 2018 prieskum medzi IT špecialistami z firiem v sektoroch služieb, vzdelávania a financií. Zo šiestich tisíc respondentov 58 % uviedlo, že pri svojej práci využívajú nástroje a princípy CI.

Ako to funguje

Nepretržitá integrácia je založená na dvoch nástrojoch: systéme správy verzií a serveri CI. Tým druhým môže byť buď fyzické zariadenie alebo virtuálny stroj v cloudovom prostredí. Vývojári nahrávajú nový kód raz alebo viackrát denne. Server CI ho automaticky skopíruje so všetkými závislosťami a vytvorí ho. Potom spustí integračné a jednotkové testy. Ak testy prejdú úspešne, systém CI nasadí kód.

Všeobecný diagram procesu možno znázorniť takto:

Referencia: ako funguje proces kontinuálnej integrácie

Metodológia CI kladie na vývojárov niekoľko požiadaviek:

  • Okamžite opravte problémy. Tento princíp prišiel do CI z extrémneho programovania. Oprava chýb je najvyššou prioritou vývojárov.
  • Automatizujte procesy. Vývojári a manažéri musia neustále hľadať úzke miesta v integračnom procese a odstraňovať ich. Často sa napríklad vyskytuje úzke miesto v integrácii ukazuje sa testovanie.
  • Vykonávajte zhromaždenia čo najčastejšie. Raz denne na synchronizáciu práce tímu.

Ťažkosti s implementáciou

Prvým problémom sú vysoké prevádzkové náklady. Aj keď spoločnosť používa otvorené nástroje CI (o ktorých si povieme neskôr), stále bude musieť míňať peniaze na podporu infraštruktúry. Riešením však môžu byť cloudové technológie.

Zjednodušujú montáž rôznych konfigurácií počítačov. Plus spoločnosti sú platené len pre použité zdroje, čo pomáha šetriť infraštruktúru.

Podľa prieskumov [strana 14 Článok], kontinuálna integrácia zvyšuje záťaž pre zamestnancov spoločnosti (aspoň spočiatku). Musia sa učiť nové nástroje a kolegovia nie vždy pomáhajú s výcvikom. Preto sa musíte s novými rámcami a službami zaoberať na cestách.

Tretím problémom sú problémy s automatizáciou. Organizácie s veľkým množstvom starého kódu, ktorý nie je pokrytý automatickými testami, čelia tomuto problému. To vedie k tomu, že kód sa pred úplnou implementáciou CI jednoducho prepíše.

Referencia: ako funguje proces kontinuálnej integrácie
/Flickr/ theilr / CC BY-SA

Kto používa

IT giganti boli medzi prvými, ktorí ocenili výhody metodiky. Google používa nepretržitá integrácia od polovice 2000. storočia. CI bola implementovaná na vyriešenie problému oneskorení vo vyhľadávači. Nepretržitá integrácia pomohla rýchlo odhaliť a vyriešiť problémy. Teraz CI používajú všetky oddelenia IT giganta.

Neustála integrácia pomáha aj malým firmám a nástroje CI využívajú aj finančné a zdravotnícke organizácie. Napríklad v spoločnosti Morningstar služby nepretržitej integrácie pomohli opraviť zraniteľné miesta o 70 % rýchlejšie. A medicínska platforma Philips Healthcare dokázala zdvojnásobiť rýchlosť testovania aktualizácií.

Nástroje

Tu je niekoľko populárnych nástrojov pre CI:

  • Jenkins je jedným z najpopulárnejších systémov CI. Podporuje viac ako tisíc pluginov pre integráciu s rôznymi VCS, cloud platformami a ďalšími službami. Používame aj nástroj Jenkins v 1cloud: zahrnuté v našom systéme DevOps. Pravidelne kontroluje pobočku Git určenú na testovanie.
  • Buildbot — rámec pythonu na písanie vašich vlastných procesov nepretržitej integrácie. Úvodné nastavenie nástroja je pomerne komplikované, no kompenzujú to široké možnosti prispôsobenia. Medzi výhody rámca používatelia vyzdvihujú jeho nízku náročnosť na zdroje.
  • Priestory CI je server od spoločnosti Pivotal, ktorý používa kontajnery Docker. Concourse CI sa integruje s akýmikoľvek nástrojmi a systémami na správu verzií. Vývojári poznamenávajú, že systém je vhodný pre prácu v spoločnostiach akejkoľvek veľkosti.
  • Gitlab CI je nástroj zabudovaný do systému správy verzií GitLab. Služba beží v cloude a na konfiguráciu používa súbory YAML. Rovnako ako Concourse, Gitlab CI platí Docker kontajnery, ktoré pomáhajú izolovať rôzne procesy od seba.
  • Kódex je cloudový CI server, ktorý spolupracuje s GitHub, GitLab a BitBucket. Platforma nevyžaduje dlhé počiatočné nastavenie – štandardné predinštalované procesy CI sú dostupné v Codeship. Pre malé (do 100 zostáv za mesiac) a open source projekty je Codeship k dispozícii zadarmo.

Materiály z nášho firemného blogu:

Zdroj: hab.com

Pridať komentár