DevOps on lähestymistapa, joka yhdistää ohjelmistokehityksen (Development) ja IT-toiminnot (Operations) saumattomaksi kokonaisuudeksi. DevOps liittyy läheisesti toteutus-, testaus- ja käyttöönotto-vaiheisiin, ja se korostaa yhteistyötä, automaatiota ja jatkuvaa parantamista läpi koko ohjelmistokehitysprosessin.
DevOps ei ole yksittäinen työkalu tai menetelmä, vaan pikemminkin kulttuuri, filosofia ja joukko käytäntöjä, jotka tähtäävät ohjelmiston nopeampaan ja luotettavampaan toimittamiseen.
DevOps on ensisijaisesti kulttuurinen muutos, joka pyrkii rikkomaan perinteiset siilot kehittäjien ja IT-toimintojen välillä. Perinteisessä mallissa kehittäjät koodasivat ohjelmiston ja "heittivät sen yli muurin" IT-toiminnoille, jotka vastasivat käyttöönotosta ja ylläpidosta.
CI/CD on DevOpsin keskeinen käytäntö: kehittäjät yhdistävät muutokset koodipohjaan usein, ja jokainen muutos käynnistää automaattisen rakennuksen, testauksen ja käyttöönoton. CI/CD on käsitelty tarkemmin omalla sivullaan.
Infrastruktuuri määritellään koodilla tekstimuodossa, ei manuaalisilla toimilla. Tämä mahdollistaa:
Yleisiä IaC-työkaluja: Terraform, Ansible, Chef, Puppet, CloudFormation
Jatkuva seuranta on olennaista DevOpsissa. Järjestelmiä seurataan reaaliajassa, ja ongelmat havaitaan ennen kuin ne vaikuttavat käyttäjiin.
Seurataan:
DevOps tukee mikropalveluarkkitehtuuria, jossa suuri sovellus jaetaan pieniin, itsenäisiin palveluihin. Jokainen palvelu voidaan kehittää, testata ja julkaista itsenäisesti.
DevOps hyödyntää laajaa työkalupalettiä eri vaiheissa:
DevOpsin käyttöönotto tuo merkittäviä etuja:
DevOpsin käyttöönotto ei ole helppoa:
DevSecOps laajentaa DevOpsia sisällyttämällä tietoturvan (Security) osaksi koko kehitysprosessia. Tietoturva ei ole enää erillinen vaihe prosessin lopussa, vaan se on integroitu jokaiseen vaiheeseen.
DevSecOps-käytännöt: