Mikä on CI/CD? Jatkuva integrointi ja jatkuva toimitus
Mikä on jatkuva integrointi (CI)?
Jatkuva integraatio on ohjelmistokehitysmenetelmä, jossa tiimin jäsenet integroivat työnsä vähintään kerran päivässä. Tässä menetelmässä automaattinen koontiversio tarkistaa jokaisen integroinnin virheiden havaitsemiseksi. Tämä konsepti esiteltiin ensimmäisen kerran yli kaksi vuosikymmentä sitten, jotta vältetään "integraatiohelvetti", joka tapahtuu, kun integraatio lykätään projektin loppuun.
Jatkuvassa integraatiossa koodin vahvistamisen jälkeen ohjelmisto rakennetaan ja testataan välittömästi. Suuressa projektissa, jossa on paljon kehittäjiä, sitoumuksia tehdään monta kertaa päivässä. Jokaisella toimituskoodilla rakennetaan ja testataan. Jos testi läpäistään, koontiversio testataan käyttöönottoa varten. Jos käyttöönotto onnistuu, koodi siirretään tuotantoon. Tämä sitoutuminen, rakentaminen, testaus ja käyttöönotto on jatkuva prosessi, ja siitä syystä nimi jatkuva integrointi/käyttöönotto.
Mikä on jatkuva toimitus (CD)?
Jatkuva Toimitus on ohjelmistosuunnittelumenetelmä, jossa tiimi kehittää ohjelmistotuotteita lyhyessä syklissä. Se varmistaa, että ohjelmisto voidaan julkaista helposti milloin tahansa. Jatkuvan toimituksen päätavoitteena on rakentaa, testata ja julkaista ohjelmistoja hyvällä nopeudella ja taajuudella. Se auttaa sinua vähentämään kustannuksia, aikaa ja riskiä muutosten toimittamisesta sallimalla säännölliset päivitykset tuotannossa.
Mitä eroa on CI:llä ja CD:llä?
Kehitys ilman CI:tä vs. kehittäminen CI:n kanssa
Tässä ovat tärkeimmät erot CI:tä käyttävän tai ilman CI:tä käyttävän kehityksen välillä:
Kehitys ilman CI:tä | Kehitys CI:n kanssa |
---|---|
Paljon bugeja | Vähemmän bugeja |
Harvoin sitoutuu | Säännölliset sitoumukset |
Harvoin ja hitaita julkaisuja | Säännölliset työjulkaisut |
Vaikea integrointi | Helppo ja tehokas integrointi |
Testaus tapahtuu myöhään | Jatkuva integraatiotestaus tapahtuu aikaisin ja usein. |
Esiin tulleita ongelmia on vaikeampi korjata | Löydä ja korjaa ongelmat nopeammin ja tehokkaammin. |
Huono projektin näkyvyys | Parempi hankkeen näkyvyys |
Ero kokoamisen ja jatkuvan integroinnin välillä

Kääntäminen vain kääntää koodin, mutta CI suorittaa seuraavat toiminnot
DB-integraatio
- Varmista, että tietokanta ja koodi ovat synkronoituja
- DB- ja testitietojen automaattinen luominen.
Koodin tarkastus
- Varmistaa terveen koodikannan
- Tunnistaa ongelmat ajoissa ja soveltaa parhaita käytäntöjä
Automaattinen käyttöönotto
- Voit vapauttaa tuotteen milloin tahansa
- Jatkuvasti demokelpoinen tila ja toimii kaikilla koneilla
Asiakirjan luominen
- Varmista, että asiakirjat ovat ajan tasalla
- Poistaa palaneen kehitteestä
- Tuottaa rakentamisraportteja ja mittareita
Compilation
Kääntäminen on prosessi, jonka tietokone suorittaa muuntaakseen korkean tason ohjelmointikielen koodin konekieleksi, jota tietokone pystyy ymmärtämään. Se varmistaa koodin kääntäjän jokaiselle kohdealustalle.
Milloin rakennan?
- Jokaisella sisäänkirjautumisella
- Joka kerta kun riippuvuus muuttuu
Mitä vaiheita jatkuvassa integraatiossa on?

- Ihannetapauksessa koontiversion tulisi tulla komentoriviltä eikä se saisi riippua integroidusta kehitysympäristöstä (IDE).
- Rakentamisen tulisi tapahtua jatkuvasti käyttämällä erillistä Cl-palvelinta, ei cron-työtä.
- CI built tulisi käynnistää jokaisen sisäänkirjautumisen yhteydessä, ei vain keskiyöllä
- Rakennuksen tulee antaa välitöntä palautetta, eikä se vaadi kehittäjän vaivaa
- Tunnista tärkeimmät tiedot ja seuraa niitä visuaalisesti. Vielä tärkeämpää on toimia niiden mukaisesti välittömästi
Mitä tarvitset CI-prosessin suorittamiseen?
Tässä ovat avainelementit, joita tarvitset koko CI-prosessin suorittamiseen:
- Versionhallintajärjestelmä (VCS): Se tarjoaa luotettavan tavan keskittää ja säilyttää projektiisi ajan mittaan tehdyt muutokset.
- Virtuaalikone: Sinulla pitäisi olla ylimääräinen palvelin tai ainakin yksi virtuaalikone rakentaaksesi järjestelmäsi.
- Isännöidyt CI-työkaluratkaisut: Palvelimien tai virtuaalikoneiden välttämiseksi sinun kannattaa valita isännöity CI-työkaluratkaisu. Tämä työkalu auttaa ylläpitämään koko prosessia ja tarjoaa helpomman skaalautuvuuden.
- Työkalut: Jos valitset itseisännöidyn version, sinun on asennettava yksi monista CI-työkalut kuten Jenkins, TeamCity, Bamboo, GitLab jne.
Miten jatkuva integrointi toimii?
Olet varmasti tietoinen vanhasta Nokia-puhelimesta. Nokia otti käyttöön menettelyn, jota kutsutaan nimellä nightly build. Kun useat eri kehittäjät ovat tehneet päivän aikana useita sitoumuksia, ohjelmisto kehitettiin joka ilta. Koska ohjelmisto rakennettiin vain kerran päivässä, on valtava tuska eristää, tunnistaa ja korjata virheet suuressa koodikannassa.
Later, he omaksuivat jatkuvan integroinnin lähestymistavan. Ohjelmisto rakennettiin ja testattiin heti, kun kehittäjä sitoutui koodiin. Jos jokin virhe havaitaan, vastaava kehittäjä voi korjata vian nopeasti.

CI:n ominaisuudet
Tässä on jatkuvan integroinnin tärkeitä ominaisuuksia ja etuja:
- Mahdollistaa vain yhden lähdetietovaraston ylläpitämisen
- Voit testata tuotanto-CI-ympäristön kloonia
- Rakennetun ympäristön tulee olla lähellä tuotantoympäristöä.
- Yksi jatkuvan integroinnin eduista on nykyisen koontiversion jatkuva saatavuus
- Koko rakennus-, testaus- ja käyttöönottoprosessin tulee olla nähtävissä kaikille pinonhaltijoille.
Miksi käyttää CI:tä?
Tässä on tärkeitä syitä käyttää jatkuvaa integrointia:
- Auttaa sinua rakentamaan laadukkaampia ohjelmistoja
- CI-prosessi auttaa lisäämään suunnittelutiimien henkilöstömäärää ja toimitusten tuottoa.
- CI:n avulla ohjelmistokehittäjät voivat työskennellä itsenäisesti ominaisuuksien parissa rinnakkain.
- Auttaa suorittamaan toistettavia testejä
- Lisää näkyvyyttä mahdollistaen paremman viestinnän
- Auttaa kehittämään mahdollisesti toimitettavan tuotteen täysin automatisoitua rakentamista varten
- Auttaa vähentämään riskejä tekemällä käyttöönotosta nopeampaa ja ennakoitavampaa
- välitön palaute ongelman saapuessa
- Vältä viime hetken sekaannuksia julkaisupäivämäärässä ja -ajoissa
CI-järjestelmien käytön parhaat käytännöt
Tässä on joitain tärkeitä parhaita käytäntöjä käyttöönoton aikana
- Sitoudu aikaisin ja sitoudu usein, älä koskaan tee rikkinäistä koodia
- Korjaa rakennusvirheet välittömästi
- Toimi mittareilla
- Sisäänrakennettu jokaiseen kohdeympäristöön Luo artefakteja jokaisesta rakennuksesta
- Ohjelmiston rakentaminen on suoritettava niin, että se voidaan automatisoida
- Älä ole riippuvainen IDE:stä
- Rakenna ja testaa kaikkea, kun se muuttuu
- Tietokantaskeema lasketaan kaikkeen
- Auttaa sinua löytämään tärkeimmät tiedot ja seuraamaan niitä visuaalisesti
- Sisäänkirjautuminen usein ja aikaisin
- Vahvempi lähdekoodin hallinta
- Jatkuva integrointi suorittaa yksikkötestejä aina, kun sitoudut koodiin
- Automatisoi rakennus ja testaa kaikkia
- Pidä rakentaminen nopeana automaattisen käyttöönoton avulla
CI:n haitat
Tässä ovat jatkuvan integroinnin haitat / haitat:
- Cl-palvelimeen tutustuminen vaatii alkuasennusaikaa ja koulutusta
- Sopivien testimenetelmien kehittäminen on välttämätöntä
- Hyvin kehitetty testipaketti vaati monia resursseja Cl-palvelimelta
- Tuttujen prosessien muuntaminen
- Vaatii lisäpalvelimia ja -ympäristöjä
- Odotusaikoja saattaa esiintyä, kun useat kehittäjät haluavat integroida koodinsa suunnilleen samaan aikaan
Työkalut CI-prosessiin
Tässä on joitain tärkeimpiä CI/CD-työkaluja:
Jenkins
Jenkins on avoimen lähdekoodin jatkuva integrointiohjelmisto. Se on kirjoitettu käyttämällä Java ohjelmointikieli. Se helpottaa reaaliaikaista testausta ja yksittäisten muutosten raportointia massiivisessa koodikannassa. Tämä ohjelmisto auttaa kehittäjiä löytämään ja ratkaisemaan nopeasti virheitä koodikannassaan ja automatisoimaan versioidensa testauksen.
Bamboo
Bamboo on jatkuvan integroinnin koontipalvelin, joka suorittaa – automaattisen rakentamisen, testauksen ja julkaisun yhdessä paikassa. Se toimii saumattomasti JIRA-ohjelmiston ja Bitbucketin kanssa. Bamboo tukee monia kieliä ja teknologioita, kuten CodeDeply, Docker, Git, SVN, Mercurial, AWS ja Amazon S3 kauhat.
TeamCity
TeamCity on jatkuvan integroinnin palvelin, joka tukee monia tehokkaita ominaisuuksia. Se pitää CI-palvelimen terveenä ja vakaana, vaikka koontiversioita ei ole käynnissä. Se tarjoaa paremman koodin laadun kaikille projekteille
Yhteenveto
- Jatkuva integrointi määritelmä: Jatkuva integrointi on ohjelmistokehitysmenetelmä, jossa tiimin jäsenet voivat integroida työnsä vähintään kerran päivässä
- CI/CD tarkoittaa jatkuvan integroinnin ja jatkuvan toimituksen tai jatkuvan käyttöönoton yhdistelmää.
- Kehitys ilman CI:tä luo paljon bugeja, kun taas kehitys CI:n kanssa tarjoaa vähemmän bugeja
- Jatkuvan integroinnin tärkeitä toimintoja ovat 1) DB-integrointi, 2) koodin tarkastus, 3) automaattinen käyttöönotto, asiakirjojen luominen ja kääntäminen.
- Rakentamisen tulisi tapahtua jatkuvasti käyttämällä erillistä Cl-palvelinta, ei cron-työtä.
- CI:n tärkeitä elementtejä ovat 1) Version Control System 2) Virtual Machine 3) Host CI Tool -ratkaisut 4) Työkalut
- Jatkuva integrointijärjestelmä mahdollistaa vain yhden lähdetietovaraston ylläpitämisen
- CI/CD-prosessi auttaa sinua rakentamaan laadukkaampia ohjelmistoja
- Tärkeimmät parhaat käytännöt Azure Jatkuva integrointiprosessi on sitoutua aikaisin ja sitoutua usein koskaan sitoutumaan rikkinäiseen koodiin
- Suurin haittapuoli CI/CD-putki prosessi on, että hyvin kehittynyt testipaketti vaati monia resursseja Cl-palvelimelta
- Jenkins, Bambook ja Team City ovat hyödyllisiä AWS Continuous Integrointityökalut.