Viide: kuidas pideva integreerimise protsess töötab

Täna vaatleme termini ajalugu, arutame CI rakendamise raskusi ja pakume mitmeid populaarseid tööriistu, mis aitavad teil sellega töötada.

Viide: kuidas pideva integreerimise protsess töötab
/Flickr/ Altug Karakoc / CC BY / Foto muudetud

Termin

Pidev integreerimine on lähenemine rakenduste arendamisele, mis hõlmab sagedast projekti koostamist ja koodi testimist.

Eesmärk on muuta integratsiooniprotsess prognoositavaks ning avastada võimalikud vead ja vead varakult, et nende parandamiseks jääks rohkem aega.

Mõiste Continuous Integration ilmus esmakordselt 1991. aastal. Selle tutvustas UML-i keele looja Grady Butch (Grady Booch). Insener tutvustas CI kontseptsiooni oma arenduspraktika osana - Boochi meetod. See tähendas objektorienteeritud süsteemide kavandamisel arhitektuuri järkjärgulist täiustamist. Gradi ei kirjeldanud mingeid nõudeid pidevaks integreerimiseks. Kuid hiljem oma raamatus "Objektorienteeritud analüüs ja disain koos rakendustega"Ta ütles, et metoodika eesmärk on kiirendada "sisemiste väljaannete" väljaandmist.

Lugu

1996. aastal võtsid CI kasutusele metoodika loojad äärmuslik programmeerimine (XP) - Kent Beck (Kent Beck) ja Ron Jeffries (Ron Jeffries). Pidev integreerimine sai nende lähenemisviisi üheks kaheteistkümnest põhiprintsiibist. XP asutajad täpsustasid nõudeid CI metoodikale ja märkisid projekti mitu korda päevas ülesehitamise vajaduse.

2000. aastate alguses hakkas üks Agile Alliance'i asutajatest edendama pideva integratsiooni metoodikat. Martin Fowler (Martin Fowler). Tema katsed CI-ga viisid selle valdkonna esimese tarkvaratööriistani – CruiseControlini. Utiliidi lõi Martini kolleeg Matthew Foemmel.

Tööriista ehitustsükkel on realiseeritud deemonina, mis kontrollib perioodiliselt versioonikontrollisüsteemi koodibaasi muudatuste suhtes. Lahenduse saab alla laadida juba täna – see jaotatud BSD-laadse litsentsi alusel.

CI tarkvara tulekuga hakkas üha rohkem ettevõtteid seda tava omaks võtma. Vastavalt Forresteri uuringutele [lk 5 aruanne], 2009. aastal kasutas või rakendas CI meetodeid 86% küsitletud viiekümnest tehnoloogiaettevõttest.

Tänapäeval kasutavad pideva integratsiooni praktikat paljude erinevate tööstusharude organisatsioonid. 2018. aastal viis suur pilvepakkuja läbi küsitluse teenindus-, haridus- ja finantssektori ettevõtete IT-spetsialistide seas. Kuuest tuhandest vastajast 58% ütles, et kasutavad oma töös CI tööriistu ja põhimõtteid.

Kuidas see töötab

Pidev integreerimine põhineb kahel tööriistal: versioonihaldussüsteem ja CI-server. Viimane võib olla kas füüsiline seade või virtuaalne masin pilvekeskkonnas. Arendajad laadivad uue koodi üles üks või mitu korda päevas. CI-server kopeerib selle automaatselt koos kõigi sõltuvustega ja koostab selle. Seejärel käivitab see integratsiooni- ja ühikutestid. Kui testid läbivad edukalt, juurutab CI-süsteem koodi.

Üldise protsessi diagrammi saab esitada järgmiselt:

Viide: kuidas pideva integreerimise protsess töötab

CI metoodika esitab arendajatele mitmeid nõudeid:

  • Parandage probleemid kohe. See põhimõte tuli CI-le äärmuslikust programmeerimisest. Vigade parandamine on arendajate kõrgeim prioriteet.
  • Automatiseerida protsesse. Arendajad ja juhid peavad pidevalt otsima integratsiooniprotsessi kitsaskohti ja neid likvideerima. Näiteks on integratsioonis sageli kitsaskoht tuleb välja testimine.
  • Tehke kokkupanekuid nii sageli kui võimalik. Kord päevas meeskonna töö sünkroonimiseks.

Rakendusraskused

Esimene probleem on suured tegevuskulud. Isegi kui ettevõte kasutab avatud CI tööriistu (millest räägime hiljem), peab ta ikkagi kulutama raha infrastruktuuri toetamiseks. Pilvetehnoloogiad võivad aga olla lahenduseks.

Need lihtsustavad erineva ulatusega arvutikonfiguratsioonide kokkupanekut. Pluss firmast makstakse ainult kasutatud ressursside eest, mis aitab säästa infrastruktuuri.

Küsitluste kohaselt [lk 14 artiklid], suurendab pidev integreerimine ettevõtte töötajate koormust (vähemalt alguses). Nad peavad õppima uusi tööriistu ja kolleegid ei aita alati koolitusel. Seetõttu peate liikvel olles tegelema uute raamistike ja teenustega.

Kolmas raskus on automatiseerimisega seotud probleemid. Selle probleemiga seisavad silmitsi organisatsioonid, millel on suur hulk pärandkoodi, mida automaattestid ei kata. See toob kaasa asjaolu, et enne CI täielikku rakendamist kirjutatakse kood lihtsalt ümber.

Viide: kuidas pideva integreerimise protsess töötab
/Flickr/ theilr / CC BY-SA

Kes kasutab

IT-hiiglased olid esimeste seas, kes hindasid metoodika eeliseid. Google kasutab pidev integratsioon alates 2000. aastate keskpaigast. CI rakendati otsingumootori viivituste probleemi lahendamiseks. Pidev integreerimine aitas probleeme kiiresti avastada ja lahendada. Nüüd kasutavad CI-d IT-hiiglase kõik osakonnad.

Pidev integreerimine aitab ka väikeettevõtteid ning CI tööriistu kasutavad ka finants- ja tervishoiuorganisatsioonid. Näiteks Morningstaris aitasid pidevad integratsiooniteenused turvaauke 70% kiiremini parandada. Ja Philips Healthcare'i meditsiiniplatvorm suutis värskenduste testimise kiiruse kahekordistada.

Töövahendid

Siin on mõned populaarsed tööriistad CI jaoks:

  • Jenkins on üks populaarsemaid CI-süsteeme. See toetab enam kui tuhat pistikprogrammi integreerimiseks erinevate VCS-i, pilveplatvormide ja muude teenustega. Samuti kasutame Jenkinsi tööriistas 1cloud: sisaldub meie DevOpsi süsteemis. Ta kontrollib regulaarselt testimiseks mõeldud Giti haru.
  • Buildbot — pythoni raamistik oma pidevate integreerimisprotsesside kirjutamiseks. Tööriista esialgne seadistamine on üsna keeruline, kuid seda kompenseerivad laiad kohandamisvõimalused. Raamistiku eeliste hulgas tõstavad kasutajad esile selle madala ressursimahukuse.
  • Konkursiruum CI on Pivotali server, mis kasutab Dockeri konteinereid. Concourse CI integreerub kõigi tööriistade ja versioonikontrollisüsteemidega. Arendajad märgivad, et süsteem sobib töötamiseks igas suuruses ettevõtetes.
  • Gitlab CI on GitLabi versioonikontrollisüsteemi sisse ehitatud tööriist. Teenus töötab pilves ja kasutab konfigureerimiseks YAML-faile. Nagu Concourse, Gitlab CI kehtib Dockeri konteinerid, mis aitavad erinevaid protsesse üksteisest eraldada.
  • Kood on pilve-CI-server, mis töötab GitHubi, GitLabi ja BitBucketiga. Platvorm ei vaja pikka algset seadistamist – Codeshipis on saadaval standardsed eelinstallitud CI protsessid. Väikeste (kuni 100 ehitamist kuus) ja avatud lähtekoodiga projektide jaoks on Codeship saadaval tasuta.

Materjalid meie ettevõtte blogist:

Allikas: www.habr.com

Lisa kommentaar