Nuoroda: kaip veikia nuolatinio integravimo procesas

Šiandien pažvelgsime į termino istoriją, aptarsime CI diegimo sunkumus ir pateiksime keletą populiarių įrankių, kurie padės su juo dirbti.

Nuoroda: kaip veikia nuolatinio integravimo procesas
/flickr/ Altug Karakoc / CC BY / Nuotrauka pakeista

terminas

Nuolatinis integravimas yra programų kūrimo metodas, apimantis dažną projekto kūrimą ir kodo testavimą.

Siekiama, kad integracijos procesas būtų nuspėjamas ir ankstyvoje stadijoje aptiktų galimas klaidas, kad būtų daugiau laiko joms ištaisyti.

Terminas Continuous Integration pirmą kartą pasirodė 1991 m. Ją pristatė UML kalbos kūrėjas Grady Butch (Gredy Booch). Inžinierius pristatė KI koncepciją kaip savo kūrimo praktikos dalį - Booch metodas. Tai reiškė laipsnišką architektūros tobulinimą kuriant į objektus orientuotas sistemas. Gradi neaprašė jokių nuolatinės integracijos reikalavimų. Bet vėliau savo knygoje „Objektinė analizė ir projektavimas su programomis„Jis sakė, kad metodikos tikslas yra paspartinti „vidinių leidimų“ išleidimą.

Istorija

1996 metais metodikos kūrėjai perėmė CI ekstremalus programavimas (XP) – Kentas Bekas (Kentas Bekas) ir Ronas Džefrisas (Ronas Džefrisas). Nuolatinė integracija tapo vienu iš dvylikos pagrindinių jų požiūrio principų. XP įkūrėjai aiškinosi CI metodikos reikalavimus ir pažymėjo, kad projektą reikia statyti kelis kartus per dieną.

2000-ųjų pradžioje vienas iš Agile Alliance įkūrėjų pradėjo propaguoti nuolatinės integracijos metodiką. Martinas Fowleris (Martinas Fowleris). Jo eksperimentai su CI leido sukurti pirmąjį programinės įrangos įrankį šioje srityje – „CruiseControl“. Priemonę sukūrė Martino kolega Matthew Foemelis.

Kūrimo ciklas įrankyje įgyvendinamas kaip demonas, kuris periodiškai tikrina, ar versijos valdymo sistemoje nėra kodo bazės pakeitimų. Sprendimą galima atsisiųsti jau šiandien – tai išplatino pagal į BSD panašią licenciją.

Atsiradus CI programinei įrangai, vis daugiau įmonių pradėjo taikyti šią praktiką. Remiantis Forrester tyrimais [5 psl ataskaita], 2009 m. 86 % iš penkiasdešimties apklaustų technologijų įmonių naudojo arba įdiegė KI metodus.

Šiandien nuolatinės integracijos praktiką naudoja įvairių pramonės šakų organizacijos. 2018 metais stambus debesų tiekėjas atliko paslaugų, švietimo ir finansų sektorių įmonių IT specialistų apklausą. Iš šešių tūkstančių apklaustųjų 58% teigė, kad savo darbe naudojasi KI įrankiais ir principais.

Kaip tai veikia

Nuolatinis integravimas pagrįstas dviem įrankiais: versijų valdymo sistema ir CI serveriu. Pastarasis gali būti fizinis įrenginys arba virtuali mašina debesų aplinkoje. Kūrėjai įkelia naują kodą vieną ar kelis kartus per dieną. CI serveris automatiškai nukopijuoja jį su visomis priklausomybėmis ir sukuria. Vėliau jis vykdo integravimo ir vienetų testus. Jei bandymai sėkmingai atlikti, CI sistema diegia kodą.

Bendrą proceso diagramą galima pavaizduoti taip:

Nuoroda: kaip veikia nuolatinio integravimo procesas

CI metodika kūrėjams kelia keletą reikalavimų:

  • Nedelsdami ištaisykite problemas. Šis principas atsirado CI iš ekstremalaus programavimo. Klaidų taisymas yra didžiausias kūrėjų prioritetas.
  • Automatizuoti procesus. Kūrėjai ir vadovai integracijos procese turi nuolat ieškoti kliūčių ir jas šalinti. Pavyzdžiui, integracijoje dažnai yra kliūtis pasirodo testavimas.
  • Surinkimus veskite kuo dažniau. Kartą per dieną sinchronizuoti komandos darbą.

Įgyvendinimo sunkumai

Pirmoji problema – didelės veiklos sąnaudos. Net jei įmonė naudos atvirus CI įrankius (apie kuriuos kalbėsime vėliau), ji vis tiek turės išleisti pinigus infrastruktūros palaikymui. Tačiau debesų technologija gali būti sprendimas.

Jie supaprastina skirtingo masto kompiuterių konfigūracijų surinkimą. Pliusas nuo kompanijos mokėti tik už naudojamus išteklius, o tai padeda taupyti infrastruktūrą.

Apklausų duomenimis [14 psl Straipsnis], nuolatinė integracija didina įmonės darbuotojų krūvį (bent jau iš pradžių). Jie turi išmokti naujų priemonių, o kolegos ne visada padeda mokymuose. Todėl jūs turite susidoroti su naujomis sistemomis ir paslaugomis.

Trečias sunkumas yra automatizavimo problemos. Su šia problema susiduria organizacijos, turinčios daug senojo kodo, kuriam netaikomi automatiniai testai. Tai lemia tai, kad kodas tiesiog perrašomas prieš visiškai įdiegiant CI.

Nuoroda: kaip veikia nuolatinio integravimo procesas
/flickr/ theilr / CC BY-SA

Kas naudoja

IT gigantai buvo vieni pirmųjų, kurie įvertino metodikos naudą. Google naudoja nuolatinė integracija nuo 2000-ųjų vidurio. CI buvo įdiegta siekiant išspręsti vėlavimo paieškos sistemoje problemą. Nuolatinė integracija padėjo greitai aptikti ir išspręsti problemas. Dabar CI naudoja visi IT milžino padaliniai.

Nuolatinė integracija taip pat padeda mažoms įmonėms, o KI įrankius taip pat naudoja finansų ir sveikatos priežiūros organizacijos. Pavyzdžiui, Morningstar nuolatinės integracijos paslaugos padėjo 70% greičiau pataisyti pažeidžiamumą. Ir „Philips Healthcare“ medicinos platforma sugebėjo dvigubai padidinti testavimo atnaujinimų greitį.

Įrankiai

Štai keletas populiarių CI įrankių:

  • Jenkins yra viena iš populiariausių CI sistemų. Jis palaiko daugiau nei tūkstantį įskiepių, skirtų integracijai su įvairiomis VCS, debesų platformomis ir kitomis paslaugomis. Taip pat naudojame Jenkins 1cloud: įrankyje įtraukta į mūsų DevOps sistemą. Jis reguliariai tikrina „Git“ filialą, skirtą išbandyti.
  • Buildbot - Python sistema, skirta savo nuolatiniams integravimo procesams rašyti. Pradinis įrankio nustatymas yra gana sudėtingas, tačiau tai kompensuoja plačios pritaikymo galimybės. Tarp sistemos pranašumų vartotojai pabrėžia mažą išteklių intensyvumą.
  • Salė CI yra „Pivotal“ serveris, kuriame naudojami „Docker“ konteineriai. „Concourse CI“ integruojamas su bet kokiais įrankiais ir versijų valdymo sistemomis. Kūrėjai pastebi, kad sistema tinka darbui bet kokio dydžio įmonėse.
  • Gitlab CI yra įrankis, integruotas į GitLab versijų valdymo sistemą. Paslauga veikia debesyje ir konfigūravimui naudoja YAML failus. Kaip ir „Concourse“, „Gitlab CI“. taikoma Docker konteineriai, padedantys atskirti skirtingus procesus vienas nuo kito.
  • Kodavimas yra debesies CI serveris, veikiantis su GitHub, GitLab ir BitBucket. Platforma nereikalauja ilgo pradinio nustatymo – „Codeship“ yra standartiniai iš anksto įdiegti CI procesai. Mažiems (iki 100 versijų per mėnesį) ir atvirojo kodo projektams Codeship galima nemokamai.

Medžiaga iš mūsų įmonės tinklaraščio:

Šaltinis: www.habr.com

Добавить комментарий