Viide: kuidas toimib pidev integreerimise protsess

TÀna kÀsitleme termini ajalugu, arutame CI rakendamise raskusi ning toome vÀlja mÔned populaarsed tööriistad, mis aitavad sellega töötamisel.

Viide: kuidas toimib pidev integreerimise protsess
/ Flickr / Altug Karakoc / Kommertstoodete sĂŒnd / Đ€ĐŸŃ‚ĐŸ ĐžĐ·ĐŒĐ”ĐœĐ”ĐœĐŸ

Termin

Continuous Integration (katkematu integreerimine) – lĂ€henemine rakenduste arendusele, mis eeldab projektide sagedast kokkupanekut ja koodi testimist.

EesmÀrk on muuta integreerimisprotsess ennustatavaks ning tuvastada potentsiaalsed vead ja tÔrked varakult, et oleks rohkem aega nende parandamiseks.

Termin Continuous Integration ilmus esmakordselt 1991. aastal. Selle tutvustas UMLi looja Grady Booch. Insener esitles CI kontseptsiooni osana oma arendustavast – Boochi meetodist.See eeldas arhitektuuri jĂ€rkjĂ€rgulist tĂ€psustamist objektorienteeritud sĂŒsteemide projekteerimisel. Grady ei mÀÀratlenud mingeid nĂ”udeid katkematule integreerimisele. Kuid 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 ekstreemse programmeerimise (XP) rajajad – Kent Beck ja Ron Jeffries. Katkematu integreerimine sai nende lĂ€henemise ĂŒheks kaheksast pĂ”hialusest. XP asutajad tĂ€psustasid CI metodoloogia nĂ”udeid ning mĂ€rkisid, et projekt tuleks kokku panna mitu korda pĂ€evas.

2000. aastate alguses hakkas katkematu integreerimise metodoloogiat propageerima ĂŒks Agile Alliance'i asutajatest Martin Fowler. Tema eksperiment CI-ga viis selle valdkonna esimese tarkvaratööriista, CruiseControl, loomise juurde. Tööriista lĂ”i Martiniga kolleeg Matthew Foemmel.

Tööriistakeses on kogumise tsĂŒkkel rakendatud deemonina, mis kontrollib perioodiliselt versioonihaldussĂŒsteemi koodibaasi muudatuste suhtes. Lahendust on vĂ”imalik tĂ€naseni alla laadida – see levitatakse on BSD-laadse litsentsi all.

CI-suudava tarkvara ilmumisega hakkasid ĂŒha rohkem ettevĂ”tteid seda praktikat omaks vĂ”tma. Forresteri uuringu kohaselt [leht 5 raportist] kasutas 2009. aastal 86% viiest kĂŒmnest kĂŒsitletud tehnoloogiaettevĂ”ttest CI meetodeid vĂ”i viis neid ellu.

TĂ€napĂ€eval rakendavad pideva integreerimise praktikat organisatsioonid erinevatest valdkondadest. 2018. aastal viis suur pilveteenuse pakkuja lĂ€bi kĂŒsitluse IT-spetsialistide seas teenindus-, haridus- ja rahandussektoris. Kuuest tuhande vastajast 58% vastas, et kasutavad oma töös CI tööriistu ja printsiipe.

Kuidas see töötab

Pideva integreerimise aluseks on kaks tööriista — versioneerimissĂŒsteem ja CI-server. Viimane vĂ”ib olla nii fĂŒĂŒsiline seade kui ka virtuaalne masin pilves. Arendajad laadivad uue koodi ĂŒles ĂŒks vĂ”i mitu korda pĂ€evas. CI-server kopeerib selle koos kĂ”igi sĂ”ltuvustega ja kĂ€ivitab kompileerimise. PĂ€rast seda kĂ€ivitab see integreerimis- ja ĂŒhikute testid. Kui testid lĂ€bitakse edukalt, deployib CI-sĂŒsteem koodi.

Üldist protsessi saab esitada jĂ€rgmiselt:

Viide: kuidas toimib pidev integreerimise protsess

CI metodoloogia esitab arendajatele mitmeid nÔudmisi:

  • Probleeme tuleb kohe lahendada. See pĂ”himĂ”te on tulnud CI-sse ekstreemsest programmeerimisest. Veakorrektuur on arendajate kĂ”ige prioriteetseim ĂŒlesanne.
  • Protsessid tuleb automatiseerida. Arendajad ja juhid peavad pidevalt otsima „kitsaskohti” integreerimisprotsessis ja need kĂ”rvaldama. NĂ€iteks on sageli integreerimise "pudelikael" testimine. Koguseid tuleb teha vĂ”imalikult tihti.
  • Üks kord pĂ€evas, et meeskonna tööd sĂŒnkroonida. Rakendamise raskused

Esimene probleem on kÔrged toimimis- ja hoolduskulud. Isegi kui ettevÔte kasutab avatud CI tööriistu (millest me rÀÀgime hiljem), peab ta ikkagi investeerima infrastruktuuri hooldusse. Kuid lahendusena vÔivad olla pilvetehnoloogiad.

Need lihtsustavad erineva suurusega arvutikonfiguratsioonide kokkupanekut. Pluss ettevÔtted

maksavad ainult kasutatud ressursside eest, mis aitab infrastruktuuri pealt kokku hoida. KĂŒsimuste kohaselt [lk.14

], suurendab pidev integreerimine töötajatele koormust (vĂ€hemalt esialgu). Neil tuleb omandada uusi tööriistu ning kolleegid ei aita alati koolitamisega. SeetĂ”ttu tuleb uutega nagu raamistikud ja teenused „liikvel“ olles aru saada. artikleid], pidev integreerimine suurendab ettevĂ”tte töötajate koormust (vĂ€hemalt esialgu). Neil tuleb omandada uusi tööriistu, kuid kolleegid ei aita alati koolitusega. SeetĂ”ttu tuleb uusi raamistikke ja teenuseid "liikvel olles" tundma Ă”ppida.

Kolmas raskusaste on automatiseerimise probleemid. Sellega seisavad silmitsi organisatsioonid, kellel on suur kogus pĂ€randkoodi, mis ei ole automaatsete testidega kaetud. See viib selleni, et koodi kirjutatakse enne CI-tĂ€ielikku rakendamist lihtsalt ĂŒmber.

Viide: kuidas toimib pidev integreerimise protsess
/ Flickr / theilr / CC BY-SA

Kes kasutab

Üks esimesi, kes hindas meetodi eeliseid, olid IT-hiiglased. Google kasutab tutvustas pidevat integreerimist 2000. aastate keskpaiku. CI rakendati, et lahendada otsingumootori töö viivituste probleem. Pidev integreerimine aitas kiiresti tuvastada ja kĂ”rvaldada tĂ”rkeid. 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 meditsiiniasutused. NÀiteks aitasid Morningstar'i pideva integreerimise teenused 70% kiiremini turvaprobleeme parandada. Meditsiiniplatvorm Philips Healthcare suutis uuenduste testimist kahekordistada.

Tööriistad

Siin on mÔned populaarsed CI tööriistad:

  • Jenkinsile — ĂŒks populaarsemaid CI-sĂŒsteeme. See toetab ĂŒle tuhande pistiku erinevate VCS-ide, pilveplatvormide ja muude teenustega integreerimiseks. Jenkinsit kasutame ka meie 1cloud'is: see tööriist on osa meie DevOps-sĂŒsteemist. See kontrollib regulaarselt Git haru, mis on ette nĂ€htud testimiseks.
  • Buildbot — Python-raamistik, et kirjutada oma pideva integreerimise protsesse. Tööriista esialgne seadistamine on ĂŒsna keeruline, kuid seda kompenseerivad laiad kohandamisvĂ”imalused. Raamistu eeliste seas toovad kasutajad esile selle madala ressursikasutuse.
  • Concourse CI — server Pivotalilt, mis kasutab Docker konteinerid. Concourse CI integreerub mis tahes tööriistade ja versioonihaldussĂŒsteemidega. Arendajad mĂ€rgivad, et sĂŒsteem sobib tööks igas suuruses ettevĂ”tetes.
  • Gitlab CI — tööriist, mis on integreeritud versioonihaldussĂŒsteemi GitLab. Teenus töötab pilves ja kasutab konfiguratsiooniks YAML-faile. Nagu Concourse, rakendab Docker konteinerid, mis aitavad erinevaid protsesse ĂŒksteisest eraldada.
  • Codeship — pilve CI-server, mis töötab GitHub'i, GitLab'i ja BitBucket'iga. Platvorm ei vaja pikaajalist esialgset seadistamist — Codeship'is on saadaval standardsed eelnevalt seadistatud CI-protsessid. VĂ€ikeste (kuni 100 kogumist kuus) ja avatud lĂ€htekoodiga projektide jaoks on Codeship tasuta.

Materjalid meie ettevÔtte blogist:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster