CI/CD-putki
CI/CD-putki on automatisoitu prosessi, joka vie koodin kehittäjän tietokoneelta turvallisesti käyttäjille. Se rakentaa koodin, testaa sen ja ottaa sen käyttöön ilman manuaalisia vaiheita.
Voit ajatella sitä kuin ohjelmiston kokoonpanolinjaa. Sen sijaan, että ihmiset siirtäisivät koodia eteenpäin ja toivoisivat, ettei mikään mene pieleen, putki tarkistaa kaiken automaattisesti joka kerta.
TL;DR
- Mikä se on: Automaattinen prosessi ohjelmiston uusien versioiden toimittamiseen.
- Ongelma: Manuaaliset julkaisut ovat hitaita, virhealttiita ja usein ohittavat turvallisuustarkastukset.
- Ratkaisu: CI/CD automatisoi rakennus-, testaus- ja käyttöönottoprosessin, mikä mahdollistaa tiimien julkaista nopeammin ja luottavaisemmin.
- Miksi turvallisuus välittää: Se antaa tiimien havaita turvallisuusaukkoja aikaisin, ei juuri ennen tuotantoa.
Mikä on CI/CD-putki?
CI/CD-putki on polku, jonka koodi kulkee kirjoittamisesta todellisten asiakkaiden käyttöön.
Siinä on kaksi pääosaa:
1. Jatkuva integraatio (CI)
Kehittäjät työntävät koodimuutoksia usein. Joka kerta kun he tekevät niin, putki rakentaa sovelluksen automaattisesti ja suorittaa testit varmistaakseen, ettei uusi koodi riko mitään.
2. Jatkuva toimitus / käyttöönotto (CD)
Kun koodi läpäisee nämä tarkastukset, se valmistellaan julkaisua varten tai otetaan suoraan käyttöön tuotantoon.
- Toimitus: Koodi on valmis, mutta joku klikkaa “hyväksy”.
- Käyttöönotto: Koodi menee automaattisesti liveksi.
Missä “Shift Left” -turvallisuus sopii kuvaan
Tässä kohtaa turvallisuus siirtyy prosessin aikaisempaan vaiheeseen. Sen sijaan, että ongelmat löydettäisiin sovelluksen ollessa jo käytössä, turvallisuustarkastukset suoritetaan putkistossa samalla kun koodi on vielä kirjoitettavana.
Tämä tarkoittaa, että esimerkiksi kovakoodatut salaisuudet tai riskialttiit kirjastot löydetään aikaisin, jolloin niiden korjaaminen on halvempaa ja helpompaa.
Miten CI/CD-putkisto toimii (askel askeleelta)
Useimmat putkistot seuraavat samanlaista kulkua:
- Lähde: Kehittäjä työntää koodin GitHubiin tai GitLabiin.
- Rakennus: Sovellus rakennetaan ja riippuvuudet asennetaan.
- Testaus: Automaattiset testit suoritetaan, mukaan lukien turvallisuustarkastukset.
- Staging: Sovellus otetaan käyttöön testausympäristössä, joka muistuttaa tuotantoympäristöä.
- Tuotanto: Sovellus julkaistaan oikeille käyttäjille.
Jos jokin menee pieleen missä tahansa vaiheessa, putkisto pysähtyy.
Liittyvät termit
FAQ
Mikä on ero jatkuvan toimituksen ja jatkuvan käyttöönoton välillä?
- Jatkuva toimitus: Kaikki on automatisoitua, mutta ihminen hyväksyy lopullisen julkaisun.
- Jatkuva käyttöönotto: Ei ihmisen hyväksyntää. Jos testit läpäistään, koodi menee automaattisesti käyttöön.
Miksi CI/CD on tärkeä DevSecOpsille?
Koska se muuttaa tietoturvan rutiinitarkastukseksi viime hetken esteen sijaan. Tietoturvatyökalut toimivat automaattisesti jokaisessa muutoksessa, joten ongelmat löydetään aikaisin ja korjataan nopeammin.
Mitkä ovat yleisiä CI/CD-työkaluja?
Joitakin suosittuja ovat Jenkins, GitHub Actions, GitLab CI/CD, CircleCI ja Azure DevOps. Ne käsittelevät skriptien suorittamista, jotka rakentavat, testaavat ja ottavat käyttöön koodisi.
Voiko CI/CD-putki epäonnistua?
Kyllä, ja se on itse asiassa hyvä asia. Jos testi epäonnistuu tai tietoturvaongelma havaitaan, putki pysähtyy. Tämä estää rikkinäisen tai turvattoman koodin pääsyn käyttäjille.
Miten CI/CD parantaa koodin laatua?
Koska jokainen muutos testataan heti. Virheet havaitaan minuuteissa niiden syntymisen jälkeen, ei viikkoja myöhemmin. Tämä pitää pääkoodipohjan vakaana ja vähentää aikaa, joka kuluu ongelmien korjaamiseen.