Mis on CI/CD? Pidev integreerimine ja pidev kohaletoimetamine
Mis on pidev integreerimine (CI)?
Pidev integreerimine on tarkvara arendusmeetod, kus meeskonnaliikmed integreerivad oma tรถรถd vรคhemalt korra pรคevas. Selle meetodi puhul kontrollib vigade tuvastamiseks iga integratsiooni automaatne ehitamine. Seda kontseptsiooni tutvustati esmakordselt รผle kahe aastakรผmne tagasi, et vรคltida "integratsioonipรตrgut", mis juhtub siis, kui integreerimine lรผkatakse projekti lรตpuni.
Pidevas integratsioonis pรคrast koodi kinnitamist luuakse ja testitakse tarkvara kohe. Suures projektis, kus on palju arendajaid, tehakse kohustusi pรคeva jooksul mitu korda. Iga commit koodi koostatakse ja testitakse. Kui test lรคbitakse, testitakse ehitamist juurutamiseks. Kui juurutamine รตnnestub, lรผkatakse kood tootmisse. See sidumine, koostamine, testimine ja juurutamine on pidev protsess ja sellest ka nimi pidev integreerimine/juurutamine.
Mis on pidev kohaletoimetamine (CD)?
Pidev kohaletoimetamine on tarkvaratehnika meetod, mille kรคigus meeskond arendab tarkvaratooteid lรผhikese tsรผkli jooksul. See tagab, et tarkvara saab igal ajal hรตlpsasti vรคlja anda. Pideva tarnimise peamine eesmรคrk on hea kiiruse ja sagedusega tarkvara koostamine, testimine ja vabastamine. See aitab teil vรคhendada muudatuste tegemise kulusid, aega ja riski, vรตimaldades tootmises sagedasi vรคrskendusi.
Mis vahe on CI ja CD vahel?
Areng ilma CI-ta vs areng CI-ga
Siin on peamised erinevused CI abil vรตi ilma CIta arendamise vahel:
| Areng ilma CIta | Arendus CI-ga |
|---|---|
| Palju vigu | Vรคhem vigu |
| Harvad kohustused | Regulaarsed kohustused |
| Harvad ja aeglased vabastamised | Regulaarsed tรถรถvรคljaanded |
| Raske integreerimine | Lihtne ja tรตhus integreerimine |
| Testimine toimub hilja | Pidev integratsiooni testimine toimub varakult ja sageli. |
| Tรตstatatud probleeme on raskem lahendada | Leidke ja lahendage probleeme kiiremini ja tรตhusamalt. |
| Projekti halb nรคhtavus | Parem projekti nรคhtavus |
Erinevus kompileerimise ja pideva integreerimise vahel

Kui kompileerimine kompileerib ainult koodi, siis CI teeb jรคrgmisi tegevusi
DB integreerimine
- Veenduge, et DB ja kood oleksid sรผnkroonis
- DB ja testandmete automatiseeritud loomine.
Code รlevaatus
- Tagab terve koodibaasi
- Tuvastab probleemid varakult ja rakendab parimaid tavasid
Automatiseeritud juurutamine
- Vรตimaldab teil toodet igal ajal vabastada
- Pidevalt demo-seeritav olek ja see tรถรถtab igal masinal
Dokumendi genereerimine
- Veenduge, et dokumentatsioon on ajakohane
- Eemaldab pรตlenud arendajalt
- Koostab ehitusaruandeid ja mรตรตdikuid
Koostamine
Kompileerimine on protsess, mida arvuti kasutab kรตrgetasemelise programmeerimiskeele koodi teisendamiseks masinakeeleks, millest arvuti aru saab. See tagab koodikompilaatori igal sihtplatvormil.
Millal ma ehitan?
- Igal sisseregistreerimisel
- Iga kord, kui sรตltuvus muutub
Millised sammud on pidevas integratsioonis?

- Ideaalis peaks ehitamine pรคrinema kรคsurealt ega tohiks sรตltuda integreeritud arenduskeskkonnast (IDE).
- Ehitamine peaks toimuma pidevalt, kasutades spetsiaalset Cl-serverit, mitte cron-tรถรถd.
- CI ehitatud peaks kรคivituma igal sisseregistreerimisel ja mitte ainult sรผdaรถรถl
- Jรคrel peaks andma kohest tagasisidet ega vaja arendaja pingutusi
- Tuvastage peamised nรคitajad ja tracTunne neid visuaalselt. Veelgi olulisem on tegutseda kohe.
Mida on vaja CI-protsessi lรคbiviimiseks?
Siin on pรตhielemendid, mida vajate kogu CI protsessi lรคbiviimiseks.
- Versioonikontrollisรผsteem (VCS): See pakub usaldusvรครคrset meetodit teie projekti aja jooksul tehtud muudatuste tsentraliseerimiseks ja sรคilitamiseks.
- Virtuaalne masin: Teil peaks olema varuserver vรตi vรคhemalt รผks virtuaalne masin oma sรผsteemi รผlesehitamiseks.
- Hostitud CI tรถรถriista lahendused: Serverite vรตi virtuaalmasinate vรคltimiseks peaksite kasutama hostitud CI tรถรถriistalahendusi. See tรถรถriist aitab kogu protsessi hooldada ja pakub lihtsamat skaleeritavust.
- Vahendid: Kui valite isehostitava variandi, peate installima รผhe paljudest CI tรถรถriistad nagu Jenkins, TeamCity, Bamboo, GitLab jne.
Kuidas pidev integreerimine tรถรถtab?
Olete kindlasti teadlik vanast telefonist Nokiast. Nokia rakendas รถise ehitamise protseduuri. Pรคrast mitmete arendajate poolt pรคeva jooksul tehtud mitmeid kohustusi ehitati tarkvara igal รตhtul. Kuna tarkvara ehitati ainult รผks kord pรคevas, on suures koodibaasi vigade eraldamine, tuvastamine ja parandamine tohutu valu.
Latervรตtsid nad kasutusele pideva integratsiooni lรคhenemisviisi. Tarkvara ehitati ja testiti niipea, kui arendaja koodi sisestas. Kui mรตni viga avastatakse, saab vastav arendaja vea kiiresti parandada.

CI omadused
Siin on pideva integreerimise olulised funktsioonid ja eelised:
- Vรตimaldab teil sรคilitada ainult รผhte allikahoidlat
- Saate testida tootmis-CI keskkonna klooni
- Ehitatud keskkond peaks olema tootmiskeskkonnale lรคhedane.
- รks pideva integreerimise eeliseid on praeguse jรคrgu pidev kรคttesaadavus
- Kogu koostamise, testimise ja juurutamise protsess peaks olema nรคhtav kรตigile virnaomanikele.
Miks kasutada CI-d?
Siin on olulised pรตhjused pideva integratsiooni kasutamiseks.
- Aitab luua parema kvaliteediga tarkvara
- CI-protsess aitab suurendada insenerimeeskondade tรถรถtajate arvu ja tarnimise vรคljundit.
- CI vรตimaldab tarkvaraarendajatel paralleelselt funktsioonidega iseseisvalt tรถรถtada.
- Aitab lรคbi viia korduvaid katseid
- Suurendage nรคhtavust, vรตimaldades paremat suhtlust
- Aitab tรคielikult automatiseeritud ehitamiseks vรคlja tรถรถtada potentsiaalselt tarnitava toote
- Aitab teil riske vรคhendada, muutes juurutamise kiiremaks ja prognoositavamaks
- kohene tagasiside probleemi saabumisel
- Vรคltige viimase hetke segadust avaldamise kuupรคeva ja ajastuse osas
CI-sรผsteemide kasutamise parimad tavad
Siin on mรตned olulised parimad tavad rakendamisel
- Pรผhendu varakult ja pรผhendu sageli mitte kunagi. Code
- Parandage ehitamise tรตrked kohe
- Tegutsege mรตรตdikute jรคrgi
- Sisseehitatud iga sihtkeskkond Looge igast jรคrgust artefakte
- Tarkvara ehitamine peab toimuma nii, et seda saaks automatiseerida
- รrge sรตltuge IDE-st
- Ehitage ja katsetage kรตike, kui see muutub
- Andmebaasi skeem loetakse kรตigeks
- Aitab teil vรคlja selgitada peamised nรคitajad ja tractunne neid visuaalselt
- Registreeruge sageli ja varakult
- Tugevam lรคhtekoodi kontroll
- Pidev integreerimine kรคivitab รผhikuteste alati, kui koodi sisestate
- Automatiseerige ehitamine ja testige kรตiki
- Hoidke ehitamine automaatse juurutamisega kiire
CI puudused
Siin on pideva integreerimise protsessi miinused / puudused:
- Cl serveriga tutvumiseks on vajalik esmane seadistamise aeg ja koolitus
- Sobivate katseprotseduuride vรคljatรถรถtamine on hรคdavajalik
- Hรคsti arenenud testkomplekt nรตudis Cl-serveri jaoks palju ressursse
- Tuntud protsesside teisendamine
- Nรตuab tรคiendavaid servereid ja keskkondi
- Ooteaeg vรตib tekkida, kui mitu arendajat soovivad oma koodi umbes samal ajal integreerida
Tรถรถriistad CI protsessi jaoks
Siin on mรตned kรตige olulisemad CI/CD tรถรถriistad:
Jenkins
Jenkins on avatud lรคhtekoodiga pideva integratsiooni tarkvara. See on kirjutatud kasutades Java programmeerimiskeel. See hรตlbustab reaalajas testimist ja รผksikute muudatuste aruandlust suuremas koodibaasis. See tarkvara aitab arendajatel kiiresti leida ja lahendada oma koodibaasi defekte ning automatiseerida nende ehituste testimist.
Bamboo
Bamboo on pideva integratsiooniga ehitusserver, mis teostab automaatset ehitust, testimist ja vรคljalaskeid รผhes kohas. See tรถรถtab sujuvalt JIRA tarkvaraga ja Bitbucket. Bamboo toetab paljusid keeli ja tehnoloogiaid, nรคiteks CodeDeply, Docker, Git, SVN, Mercurial, AWS ja Amazon S3 รคmbrid.
TeamCity
TeamCity on pideva integratsiooni server, mis toetab paljusid vรตimsaid funktsioone. See hoiab CI-serveri tervena ja stabiilsena isegi siis, kui รผhtegi jรคrgu ei tรถรถta. See tagab iga projekti jaoks parema koodikvaliteedi
kokkuvรตte
- Pideva integratsiooni definitsioon: Pidev integreerimine on tarkvaraarendusmeetod, mille kรคigus meeskonnaliikmed saavad oma tรถรถd integreerida vรคhemalt kord pรคevas
- CI/CD tรคhendab pideva integreerimise ja pideva tarnimise vรตi pideva juurutamise kombinatsiooni.
- Arendus ilma CIta tekitab palju vigu, samas kui CI-ga arendamine pakub vรคhem vigu
- Pideva integratsiooni olulised tegevused on 1) andmebaasi integratsioon, 2) Code Kontroll, 3) automatiseeritud juurutamine, dokumentide genereerimine ja kompileerimine.
- Ehitamine peaks toimuma pidevalt, kasutades spetsiaalset Cl-serverit, mitte cron-tรถรถd.
- CI olulised elemendid on 1) versioonihaldussรผsteem 2) virtuaalmasin 3) hosti CI tรถรถriista lahendused 4) tรถรถriistad
- Pidev integratsioonisรผsteem vรตimaldab teil sรคilitada ainult รผhte allikahoidlat
- CI/CD protsess aitab teil luua parema kvaliteediga tarkvara
- Kรตige olulisemad parimad tavad Azure Pideva integratsiooni protsess seisneb varajases pรผhendumises ja sageli mitte kunagi pรผhendumises. Code
- Selle peamine puudus CI/CD torujuhe Protsess seisneb selles, et hรคsti arenenud testkomplekt nรตudis Cl-serveri jaoks palju ressursse
- Jenkins, Bambook ja Team City on mรตned kasulikud AWS Continuous Integratsiooni tรถรถriistad.




