CI/CD Pipeline: Opi esimerkin avulla

Mikä on CI/CD-putki?

CI/CD-putki automatisoi ohjelmistojen toimitusprosessin. Se rakentaa koodia, suorittaa testejä ja auttaa sinua ottamaan turvallisesti käyttöön uuden ohjelmistoversion. CI/CD-liukuhihna vähentää manuaalisia virheitä, antaa palautetta kehittäjille ja mahdollistaa nopeat tuotteen iteraatiot.

CI/CD-putkisto tuo automaation ja jatkuvan valvonnan ohjelmistotuotteen koko elinkaaren ajan. Se sisältää integrointi- ja testausvaiheesta toimitukseen ja käyttöönottoon. Näitä yhdistettyjä käytäntöjä kutsutaan CI/CD-putkilinjaksi.

Mitä ovat jatkuva integrointi, jatkuva toimitus ja jatkuva käyttöönotto?

  • Jatkuva integraatio on ohjelmistokehitysmenetelmä, jossa tiimin jäsenet voivat integroida työnsä vähintään kerran päivässä. Tässä menetelmässä automaattinen koontiversio tarkistaa jokaisen integroinnin virheen etsimiseksi.
  • Jatkuva toimitus on ohjelmistosuunnittelumenetelmä, jossa tiimi kehittää ohjelmistotuotteita lyhyessä syklissä. Se varmistaa, että ohjelmisto voidaan julkaista helposti milloin tahansa.
  • Jatkuva käyttöönotto on ohjelmistosuunnitteluprosessi, jossa tuotteen toiminnallisuudet toimitetaan automaattisen käyttöönoton avulla. Se auttaa testaajia vahvistamaan, ovatko koodikannan muutokset oikeita ja onko se vakaa vai ei.

CI/CD-liukuhihnan vaiheet

CI/CD-liukuhihna on suoritettava määritys vaiheista, jotka jokaisen kehittäjän tulee suorittaa toimittaakseen uuden version mistä tahansa ohjelmistosta. Epäonnistuminen jokaisessa vaiheessa laukaisee ilmoituksen sähköpostitse, Slacktai muilla viestintäalustoilla. Sen avulla vastuulliset kehittäjät saavat tietoa tärkeistä asioista.

Tässä ovat CI/CD-putken tärkeät vaiheet:

CI/CD-putkilinjan vaiheet
CI/CD-putkilinjan vaiheet

Lähdevaihe

Lähdevaiheessa koodivarasto laukaisee CI/CD-liukuhihnan. Kaikki ohjelman muutokset käynnistävät ilmoituksen CI/CD-työkalulle, joka suorittaa vastaavan liukuhihnan. Muita yleisiä laukaisimia ovat käyttäjän käynnistämät työnkulut, automatisoidut aikataulut ja muiden putkien tulokset.

Rakenna Stage

Tämä on CI/CD-putkilinjan toinen vaihe, jossa yhdistät lähdekoodin ja sen riippuvuudet. Se tehdään pääasiassa ajettavan ohjelmiston rakentamiseksi, jonka voit mahdollisesti toimittaa loppukäyttäjälle.

Ohjelmat, jotka on kirjoitettu kielillä, kuten C++, Java, C tai Go kieli tulee kääntää. Toisaalta JavaKäsikirjoitus, Python, ja Ruby-ohjelmat voivat toimia ilman rakennusvaihetta.

Jos rakennusvaihetta ei läpäise, kyseessä on perustavanlaatuinen projektivirhe, joten on parempi puuttua asiaan välittömästi.

Testivaihe

Test Stage sisältää automaattisten testien suorittamisen koodin oikeellisuuden ja ohjelmiston toiminnan vahvistamiseksi. Tämä vaihe estää helposti toistettavia vikoja pääsemästä asiakkaille. Automaattisten testien kirjoittaminen on kehittäjien vastuulla.

Ota vaihe käyttöön

Tämä on viimeinen vaihe, jossa tuotteesi julkaistaan. Kun koontiversio on läpäissyt kaikki vaaditut testiskenaariot, se on valmis käyttöönotettavaksi live-palvelimelle.

Esimerkki CI/CD-putkilinjasta

Tässä on esimerkki CI/CD-putkistosta:

  • Lähdekoodin hallinta: Isäntäkoodi GitHubissa yksityisenä arkistona. Tämä auttaa sinua integroimaan sovelluksesi tärkeimpiin palveluihin ja ohjelmistoihin.
  • Jatkuva integraatio: Käytä jatkuvaa integrointi- ja toimitusalustaa CircleCI ja sitoa jokainen koodi. Kun muutoksista ilmoitetaan, tämä työkalu vetää GitHubissa saatavilla olevan koodin ja luo ja suorittaa testin.
  • Ota koodi käyttöön UAT:ssa: Configure CircleCI ottaaksesi koodisi käyttöön AWS UAT -palvelimelle.
  • Ota käyttöön tuotantoon: Sinun on käytettävä uudelleen jatkuvia integrointivaiheita koodin käyttöönottamiseksi UAT:hen.

CI/CD-putkilinjan parhaat käytännöt

Tässä on CI/CD-putkiston parhaat käytännöt:

  • Kirjoita ylös nykyinen kehitysprosessi, joten voit tietää menettelyt, jotka vaativat muutosta ja jotka voidaan helposti automatisoida.
  • Aloita pienellä todistuksella projektista ennen kuin jatkat eteenpäin ja suorita koko kehitysprosessi kerralla.
  • Määritä putki, jossa on useampi kuin yksi vaihe, jossa nopeat perustestit suoritetaan ensin.
  • Aloita jokainen työnkulku samasta, puhtaasta ja eristetystä ympäristöstä.
  • Käytä avoimen lähdekoodin työkaluja, jotka kattavat kaiken koodityylistä suojaustarkistukseen.
  • Asenna parempi koodikeskus tarkistaaksesi jatkuvasti koodisi laadun suorittamalla standarditestit jokaisessa haarassa.
  • Vertaiskoodi tarkastelee jokaisen vetopyynnön ratkaistakseen ongelman yhteistyössä.
  • Sinun on määritettävä menestysmittarit ennen kuin aloitat siirtymisen CD-automaatioon. Tämä auttaa sinua analysoimaan ohjelmistoasi johdonmukaisesti ja kehittämään edistymistä tarvittaessa.

CI/CD-putkien edut

Tässä ovat CI/CD Pipelinen edut/edut:

  • Rakennukset ja testaukset voidaan tehdä helposti manuaalisesti.
  • Se voi parantaa koodin johdonmukaisuutta ja laatua.
  • Parantaa joustavuutta ja pystyy toimittamaan uusia toimintoja.
  • CI/CD-putkisto voi virtaviivaistaa viestintää.
  • Se voi automatisoida ohjelmistojen toimitusprosessin.
  • Auttaa sinua saamaan nopeampaa asiakaspalautetta.
  • CI/CD-putkisto auttaa sinua lisäämään tuotteesi näkyvyyttä.
  • Sen avulla voit poistaa manuaaliset virheet.
  • Vähentää kustannuksia ja työvoimaa.
  • CI/CD-putkistot voivat nopeuttaa ohjelmistokehityksen elinkaarta.
  • Siinä on automatisoitu putkien käyttöönotto.
  • CD-putkisto antaa nopean palautesilmukan kehittäjältä asiakkaalle.
  • Parantaa viestintää organisaation työntekijöiden välillä.
  • Sen avulla kehittäjät voivat tietää, mitkä muutokset rakennuksessa voivat kääntyä välityksen puoleen ja välttää niitä tulevaisuudessa.
  • Automaattiset testit yhdessä muutaman manuaalisen testiajon kanssa auttavat korjaamaan mahdolliset ongelmat.

Tärkeitä CI/CD-työkaluja

Tässä ovat tärkeät CI/CD-työkalut:

1) Jenkins

Jenkins on avoimen lähdekoodin Continuous Integration -palvelin, joka auttaa saavuttamaan jatkuvan integroinnin (eikä vain) automatisoidusti. Jenkins on ilmainen ja se on kokonaan kirjoitettu Java. Jenkins on laajalti käytetty sovellus ympäri maailmaa, jolla on noin 300 XNUMX asennusta ja joka kasvaa päivä päivältä.

Jenkins

Ominaisuudet:

  • Jenkin rakentaa ja testaa koodia monta kertaa päivän aikana.
  • Automatisoitu rakennus- ja testausprosessi, joka säästää aikaa ja vähentää vikoja.
  • Koodi otetaan käyttöön jokaisen onnistuneen rakentamisen ja testin jälkeen.
  • Kehityssykli on nopea.

Linkki: https://www.jenkins.io/download/


2) Bamboo

Bamboo on jatkuvan integroinnin koontipalvelin, joka suorittaa – automaattisen rakentamisen, testauksen ja julkaisun yhdessä paikassa. Se toimii saumattomasti JIRA-ohjelmiston ja Bitbucketin kanssa.

Bamboo

Ominaisuudet:

  • Suorita rinnakkaiset erätestit
  • Asettaa Bamboo on aika yksinkertainen
  • Ympäristökohtainen käyttöoikeusominaisuus mahdollistaa kehittäjien ja laadunvarmistuksen käyttöönoton ympäristöissään
  • Sisäänrakennettu Git-haaroitus ja työnkulku. Se yhdistää oksat automaattisesti.

Linkki: https://www.atlassian.com/software/bamboo


3) CircleCi

CircleCi on joustava CI-työkalu, joka toimii missä tahansa ympäristössä, kuten monialustaisessa mobiilisovelluksessa, Python API-palvelin tai Docker-klusteri. Tämä työkalu vähentää virheitä ja parantaa sovelluksen laatua.

CircleCi

Ominaisuudet:

  • Mahdollistaa rakennusympäristön valinnan
  • Tukee monia kieliä, mukaan lukien C++, JavaScript, NET, PHP, Pythonja Ruby
  • Dockerin tuen avulla voit määrittää mukautetun ympäristön.
  • Peruuta automaattisesti kaikki jonossa olevat tai käynnissä olevat koontiversiot, kun uudempi koonnos käynnistetään.

Linkki: https://circleci.com/

Miksi CI/CD-putkilinjalla on merkitystä IT-johtajille?

  • CI/CD-putki voi parantaa luotettavuutta.
  • Se tekee IT-tiimistä houkuttelevamman kehittäjille.
  • CI/CD-putkisto auttaa IT-johtajia nostamaan koodia versionhallinnasta ja suorittamaan ohjelmiston rakentamisen.
  • Auttaa siirtämään koodia kohdelaskentaympäristöön.
  • Mahdollistaa projektin johtajien helposti hallita ympäristömuuttujia ja määrittää kohdeympäristön.
  • Projektipäälliköt voivat julkaista push-sovelluskomponentteja palveluihin, kuten verkkopalveluihin, tietokantapalveluihin, API-palveluihin jne.
  • Lokitietojen ja toimitustilasta ilmoittavien ilmoitusten antaminen.
  • Sen avulla ohjelmoijat voivat tarkistaa koodimuutokset ennen kuin ne siirtyvät eteenpäin, mikä vähentää tuotantoon päätyvien vikojen mahdollisuuksia.

Ci/CD Pipeline KPI

  • Kierto- tai käyttöönottoaika: Jaksoaika on aika, joka kuluu rakennusvaiheesta tuotantoon siirtymiseen. Keskimääräisen elinkaariajan saat mittaamalla kehitysprosessin vaiheita. Tämä mittari antaa käsityksen prosessisi pullonkauloista ja kehitysajan yleisestä nopeudesta.
  • Kehittämistiheys: Kehitystaajuudella voit analysoida automaation aikana löytämiäsi pullonkauloja. Useammat pienemmät julkaisut vähentävät vikojen riskiä ja korjaavat ne löydettäessä. Tällainen mittari on tiimisi tehokkuuden yleinen mittari.
  • Muuta toimitusaikaa: Se mittaa kehitysvaiheen alkamisaikaa käyttöönottoon. Tämä mittari on mittari koko kehitysprosessista ja siitä, kuinka hyvin tiimi toimii yhdessä.
  • Muuta epäonnistumisprosenttia: Se keskittyy siihen, kuinka monta kertaa kehitys onnistuu verrattuna siihen, kuinka monta kertaa se epäonnistuu.
  • MTTR vs. MTTF: MTTR (Mean Time to Recovery) on aika, jonka tiimisi tarvitsee toipuakseen epäonnistumisesta. MTTF (Mean Time to Failure) mittaa korjausten ja katkosten välisen ajan. Nämä mittarit heijastavat tiimin kykyä vastata ja korjata ongelmia.

Yhteenveto

  • CI/CD-putki automatisoi ohjelmistojen toimitusprosessin.
  • CI/CD-putkisto tuo automaation ja jatkuvan valvonnan ohjelmistotuotteen koko elinkaaren ajan.
  • Jatkuva integrointi on ohjelmistokehitysmenetelmä, jossa tiimin jäsenet voivat integroida työnsä vähintään kerran päivässä.
  • Jatkuva toimitus on ohjelmistosuunnittelumenetelmä, jossa tiimi kehittää ohjelmistotuotteita lyhyessä syklissä.
  • Jatkuva käyttöönotto on ohjelmistosuunnitteluprosessi, jossa tuotteen toiminnallisuudet toimitetaan automaattisen käyttöönoton avulla.
  • CI/CD-liukuhihnassa on neljä vaihetta 1) lähdevaihe, 2) rakennusvaihe, 3) testivaihe, 4) käyttöönottovaihe.
  • Tärkeä CI/CD-työkalut ovat Jenkins, Bambo ja Circle CI.
  • CI/CD-putki voi parantaa luotettavuutta.
  • CI/CD-putkisto tekee IT-tiimistä houkuttelevamman kehittäjille.
  • Jaksoaika on aika, joka kuluu rakennusvaiheesta tuotantoon siirtymiseen.
  • Kehitystaajuudella voit analysoida automaation aikana löytämiäsi pullonkauloja.
  • Change Lead Time mittaa kehitysvaiheen alkamisaikaa käyttöönottoon.
  • Change Failure Rate keskittyy siihen, kuinka monta kertaa kehitys onnistuu verrattuna siihen, kuinka monta kertaa se epäonnistuu.
  • MTTR (Mean Time to Recovery) on aika, jonka tiimisi tarvitsee toipuakseen epäonnistumisesta.
  • MTTF (Mean Time to Failure) mittaa korjausten ja katkosten välisen ajan.