Teave: kuidas toimub pideva integreerimise protsess

Täna räägime termini ajaloost, arutame CI rakendamise väljakutseid ja toome välja mõned populaarsed tööriistad, mis aitavad selle rakendamisel.

Teave: kuidas toimub pideva integreerimise protsess
/ Flickr / Altug Karakoc / CC BY / Фото изменено

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 (Grady Booch). Insener tutvustas CI kontseptsiooni osana oma arendustavadest — Boochi meetodist. 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 "Object-Oriented Analysis and Design with Applications" ütles ta, et meetodi eesmärk on kiirendada "sisemiste väljaannete" väljastamist.

Ajalugu

1996. aastal võtsid CI üle äärmusliku programmeerimise (XP) loojad — Kent Beck (Kent Beck) ja 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 (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 GNU Üldine Avaliku litsentsi alusel. jätkub BSD-sarnase litsentsi all.

CI-tarkvara tulekuga hakkas üha rohkem ettevõtteid seda praktikat omaks võtma. Forresteri uuringu kohaselt [lk.5 aruandest], 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:

Teave: kuidas toimub pideva integreerimise protsess

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. selgub, 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 122 000 dollarit aastas (670 000 rubla kuus), aga UK-s — 67 500 naela aastas (490 000 rubla kuus). maksavad ainult kasutatud ressursside eest, mis aitab infrastruktuuri pealt kokku hoida.

Küsitlustest selgub [стр.14 artikkel], 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.

Teave: kuidas toimub pideva integreerimise protsess
/ Flickr / theilr / CC BY-SA

Kes kasutab

IT-hiiglased olid esimesed, kes hindasid selle meetodi eeliseid. Google kasutab 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:

  • Jenkins — ü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 siseneb meie DevOps-süsteemi. Ta kontrollib regulaarselt testimiseks mõeldud Git haru.
  • Buildbot — 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.
  • Concourse CI — 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.
  • Gitlab CI — tööriist, mis on integreeritud GitLabi versioonihaldussüsteemi. Teenus töötab pilves ja kasutab konfiguratsiooniks YAML-faile. Nagu Concourse, Gitlab CI rakendab Docker konteinerid, mis aitavad eraldada erinevaid protsesse üksteisest.
  • Codeship — 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

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster