Täna räägime termini ajaloost, arutame CI rakendamise väljakutseid ja toome välja mõned populaarsed tööriistad, mis aitavad selle rakendamisel.
/ Flickr / / / Фото изменено
Termin
Continuous Integration (pidev integreerimine) on rakenduste arendamise lähenemine, mis hõlmab projekti regulaarset koostamist ja koodi testimist.
Selle eesmärk on muuta integreerimisprotsess ennustatavaks ja tuvastada potentsiaalsed vead ja probleemid varakult, et oleks rohkem aega nende parandamiseks.
Termin Continuous Integration ilmus esmakordselt 1991. aastal. Selle tutvustas UML-i looja (Grady Booch). Insener tutvustas CI kontseptsiooni osana oma arendustavadest — . Ta mõistis, et arhitektuuri sammhaaval täpsustamine objektorienteeritud süsteemide projekteerimisel on vajalik. Grady ei määratlenud mingeid nõudeid pideva integreerimise osas. Aga hiljem oma raamatus "" ütles ta, et meetodi eesmärk on kiirendada "sisemiste väljaannete" väljastamist.
Ajalugu
1996. aastal võtsid CI üle äärmusliku programmeerimise Kent Beck Ron Jeffries (Ron Jeffries). Jätkuv integratsioon on saanud nende lähenemise üheks kaheteistkümnest põhialusest. XP asutajad täpsustasid CI metoodika nõudeid ja rõhutasid, et projekti tuleb ehitada mitu korda päevas.
2000. aastate alguses hakkas üht CI metoodikat propageerima üks Agile Alliance'i asutaja. (Martin Fowler). Tema katsetused CI-ga viisid esimese tarkvaratööriista väljatöötamiseni selles valdkonnas — CruiseControl. Tööriista lõi Martina kolleeg Matthew Foemmel.
Tööriista ehitsutsükkel on rakendatud demonina, mis kontrollib perioodiliselt versioonihaldussüsteemis koodi aluste muudatusi. Lahendust on võimalik tänapäevalgi alla laadida — see jätkub BSD-sarnase litsentsi all.
CI-tarkvara tulekuga hakkas üha rohkem ettevõtteid seda praktikat omaks võtma. Forresteri uuringu kohaselt [lk.5 ], 2009. aastal kasutas 86% viiekümnest küsitletud tehnoloogiakompaniist CI meetodeid või rakendas neid.
Täna kasutatakse pidevat integreerimist (Continuous Integration) erinevatesse valdkondadesse kuuluvates organisatsioonides. 2018. aastal viis suur pilveteenuse pakkuja läbi uuringu IT-spetsialistide seas, kes töötavad teeninduse, hariduse ja finantssektoris. Kuuest tuhandest vastajast 58% kinnitas, et nad kasutavad oma töös CI-tööriistu ja -põhimõtteid.
Kuidas see toimib
Pideva integreerimise aluseks on kaks tööriista: versioonihaldussüsteem ja CI-server. Viimane võib olla kas füüsiline seade või virtuaalne masin pilves. Arendajad laadivad uut koodi üles ühel või mitmel korral päevas. CI-server kopeerib selle automaatselt koos kõikide sõltuvustega ja teostab koostamise. Pärast seda käivitab ta integreerimis- ja üksusteste. Kui testid lävivad edukalt, siis CI-süsteem käivitab koodi.
Protsessi üldine skeem võib välja näha järgmiselt:

CI- metodologia seab arendajatele mõned nõudmised:
- Probleemid tuleb kohe lahendada. See põhimõte tuli CI-sse ekstreemprogrammeerimisest. Vigade parandamine on arendajate kõige prioriteetsem ülesanne.
- Protsessid tuleb automatiseerida. Arendajad ja juhid peavad pidevalt otsima integratsiooni protsessis kitsaskohti ja need kõrvaldama. Näiteks on lahja koht integreerimisprotsessis sageli. testimine.
- Koguge ehitusi nii tihti kui võimalik. Kord päevas, et meeskonna tööd sünkroniseerida.
Rakendamise keerukused
Esimene probleem on kõrged tegevuskulud. Isegi kui ettevõte kasutab avatud CI-tööriistu (millest räägime hiljem), peab see siiski investeerima infrastruktuuri hooldamisse. Siiski võivad lahenduseks olla pilvetehnoloogiad.
Need lihtsustavad erineva mastaabiga arvuti konfiguratsioonide koostamist. Pluss ettevõtted maksavad ainult kasutatud ressursside eest, mis aitab infrastruktuuri pealt kokku hoida.
Küsitlustest selgub [стр.14 ], et jätkuv integreerimine suurendab ettevõtte töötajate koormust (vähemalt esialgu). Neil tuleb omandada uusi tööriistu, kuid kolleegid ei aita alati koolitamisel. Seetõttu tuleb uusi raamistikke ja teenuseid õppida "liikvel".
Kolmas keerukus on automatiseerimise probleemid. Sellega seisavad silmitsi organisatsioonid, millel on suur kogus pärandkoodi, mida ei kaeta automatiseeritud testidega. See toob kaasa selle, et koodi kirjutatakse lihtsalt ümber enne, kui CI-d täielikult rakendatakse.

/ Flickr / /
Kes kasutab
IT-hiiglased olid esimesed, kes hindasid selle meetodi eeliseid. Google rakendas pidevat integreerimist alates 2000. aastate keskpaigast. CI rakendati probleemide lahendamiseks, mis olid seotud otsingumootori töö viibimisega. Pidev integreerimine aitas kiiresti tuvastada ja lahendada rikkeid. Praegu kasutavad CI-d kõik IT-hiiglase osakonnad.
Pidev integreerimine aitab ka väikestel ettevõtetel ning CI-tööriistu kasutavad ka finants- ja meditsiiniorganisatsioonid. Näiteks Morningstaril aitas pidev integreerimise teenus avastada haavatavusi 70% kiiremini. Meditsiini platvorm Philips Healthcare suutis värskenduste testimist kahekordistada.
Tööriistad
Mõned populaarsed CI-tööriistad on:
- — üks populaarsemaid CI-süsteeme. See toetab üle tuhande pistiku, et integreerida erinevate VCS-ide, pilveplatvormide ja muude teenustega. Jenkinsit kasutame ka meie 1cloudis: tööriist . Ta kontrollib regulaarselt testimiseks mõeldud Git haru.
- — python raamistiku loomiseks pideva integratsiooni protsesside. Tööriista algne seadistamine on üsna keeruline, kuid seda tasakaalustab laialdased kohandamisvõimalused. Raamistiku eeliste seas toovad kasutajad esile selle madala ressursside kasutuse.
- — Pivotal'i server, mis kasutab Docker konteinerid. Concourse CI integreerub igasuguste tööriistade ja versioonihaldussüsteemidega. Arendajad märgivad, et süsteem sobib töötamiseks igas suuruses ettevõtetes.
- — tööriist, mis on integreeritud GitLabi versioonihaldussüsteemi. Teenus töötab pilves ja kasutab konfiguratsiooniks YAML-faile. Nagu Concourse, Gitlab CI Docker konteinerid, mis aitavad eraldada erinevaid protsesse üksteisest.
- — pilvepõhine CI-server, mis töötleb GitHubi, GitLabi ja BitBucketi. Platvorm ei nõua pikaajalist algse seadistamise protsessi — Codeshipis on saadaval standardsed eelnevalt seadistatud CI-protsessid. Väikeste (kuni 100 ülesehitust kuus) ja avatud lähtekoodiga projektide jaoks on Codeship tasuta.
Materjalid meie ettevõtte blogist:
Allikas: habr.com
