Mitä on DevOps?

Asiantuntijasisällöt
Yleinen
Janne Pihlajamäki

Mitä DevOps oikein on? Entä mitä DevOps tarkoittaa? DevOps on oikea teknologia-alan pöhinäsana tällä hetkellä ja sitä viljellään runsaasti joka suuntaan. Monet haluavat olla DevOps-insinöörejä tai palkata DevOps-tiimejä, mutta eivät oikein tiedä mistä aloittaa. Useimmat ajattelevat, että DevOps on teknologiaa, työkaluja tai ohjelmointikieliä, joita he voivat oppia, mutta todellisuudessa DevOps ei toimi näin.

DevOps on joukko käytäntöjä ja kulttuurifilosofiaa, joita on mahdollista toteuttaa työkaluilla ja tekniikoilla, jotka automatisoivat ja integroivat ohjelmistokehityksen ja ylläpitotiimien välistä viestintää ja yhteistyötä.

DevOps sai alkunsa vuoden 2007 tienoilla kun ohjelmistokehitys- ja IT-operaatioiden yhteisöt ilmaisivat huolensa perinteisestä ohjelmistokehitysmallista, jossa koodia kirjoittaneet kehittäjät työskentelivät erillään heidän tekemiensä ohjelmistojen käyttöönotto- ja muista tukitoiminnoista. Termi DevOps on yhdistelmä sanoista kehitys ja toiminta. Se kuvastaa näiden tieteenalojen yhdistämistä yhdeksi jatkuvaksi prosessiksi.

Kuinka DevOps toimii?

DevOps-tiimiissä rikotaan keinotekoisia organisaation raja-aitoja arvon tuottamiseksi asiakkaalle. Tiimiin kuuluu sekä kehittäjiä että ylläpito- ja muita tukitoimintoja, jotka tekevät yhteistyötä tuotteen koko elinkaaren ajan ohjelmistoversioiden tuottamisen ja käyttöönoton nopeuden ja laadun lisäämiseksi. Se on uusi tapa toimia, kulttuurinen muutos, jolla on merkittäviä seurauksia tiimeille ja organisaatioille.

DevOps-mallissa kehitys-ja toimintatiimit eivät enää sijaitse erillisissä ”siiloissa”. Joskus nämä kaksi tiimiä sulautuvat yhdeksi tiimiksi, jossa insinöörit työskentelevät sovelluksen koko elinkaaren ajan – kehityksestä ja testauksesta käyttöönottoon ja käyttöön – ja heillä on monia monialaisia ja poikkitieteellisiä taitoja.

DevOps-tiimit käyttävät työkaluja prosessien automatisointiin ja nopeuttamiseen, mikä auttaa lisäämään luotettavuutta. DevOps-työkaluketju auttaa tiimejä käsittelemään tärkeitä DevOps-perusasioita, kuten jatkuvaa integrointia, jatkuvaa toimitusta (CI/CD), automaatiota ja yhteistyötä.

DevOps-arvoja sovelletaan toisinaan muihinkin tiimeihin kuin kehittämiseen. Kun tietoturvatiimit ottavat käyttöön DevOps-lähestymistavan, tietoturva on aktiivinen ja integroitu osa kehitysprosessia. Tätä kutustaan DevSecOpsiksi.

Mitä hyötyjä DevOpsista on?

Atlassianin vuoden 2020 DevOps Trends -tutkimuksessa 99 % vastaajista sanoi, että DevOpsilla on ollut positiivinen vaikutus heidän organisaatioonsa. DevOpsin etuja ovat nopeammat ja helpommat julkaisut, tiimien tehokkuus, lisääntynyt tietoturva, korkealaatuisemmat tuotteet ja näin ollen tyytyväisemmät tiimit ja asiakkaat.

Nopeus

DevOpsia harjoittavat tiimit julkaisevat ohjelmistoversioita useammin, laadukkaammin ja vakaammin. Itse asiassa DORA 2019 State of DevOps -raportissa todettiin, että eliittitiimit vievät uutta koodia tuotantoon 208 kertaa useammin ja 106 kertaa nopeammin kuin huonosti toimivat tiimit. Jatkuvan toimituksen avulla tiimit voivat rakentaa, testata ja toimittaa ohjelmistoja automatisoiduilla työkaluilla.

Parempaa yhteistyötä

DevOpsin perusta on yhteistyökulttuuri kehittäjien ja ylläpitotiimien välillä, jotka jakavat vastuut ja tekevät työtä yhteisen asiakkaan ja yhteisen ohjelmiston eteen. Tämä tekee tiimeistä tehokkaampia ja säästää aikaa, joka liittyy työn vaihtoon ja koodin luomiseen, joka on suunniteltu ympäristöön, jossa se suoritetaan.

Nopea käyttöönotto

Lisäämällä julkaisujen tiheyttä ja nopeutta DevOps-tiimit parantavat tuotteitaan nopeasti. Kilpailuetua voi saada julkaisemalla nopeasti uusia ominaisuuksia ja korjaamalla vikoja. Palautteen saaminen nopeasti käyttäjiltä tuen kautta tuotekehitykseen on merkittävä DevOpsin mukanaan tuoma hyöty. Samoin esimerkiksi uusien toimintojen ja käyttöliittymän A/B-testaus auttaa saamaan palautetta ja tuo lisäarvoa asiakkaille. Laatu ja nopeus eivät enää ole vaihtoehtoisia, nyt on mahdollista saada molemmat.

Laatu ja luotettavuus

Käytännöt, kuten jatkuva integrointi ja jatkuva toimitus, varmistavat muutosten toimivuuden ja turvallisuuden, mikä parantaa ohjelmistotuotteen laatua. Seuranta auttaa tiimejä pysymään ajan tasalla suorituksesta reaaliajassa.

Turvallisuus

Integroimalla tietoturvan jatkuvaan integrointiin, jatkuvaan toimitukseen ja jatkuvaan käyttöönottoon DevSecOps on aktiivinen, integroitu osa kehitysprosessia. Tietoturva on sisäänrakennettu tuotteeseen, mutta myös kehityskulttuuriin, integroimalla aktiiviset tietoturvatarkastukset ja tietoturvatestaukset ketterään kehitykseen ja DevOps-työnkulkuihin.

Mitkä ovat DevOpsin käyttöönoton haasteet?

Tottumuksista on vaikea päästä eroon. Siiloihin ja eriytyneisiin tehtäviin juurtuneet tiimit voivat kamppailla tiimirakenteiden uudistamisen kanssa DevOps-käytäntöjen omaksumiseksi tai jopa vastustaa sitä. Jotkut tiimit saattavat puolestaan virheellisesti uskoa, että uudet työkalut riittävät DevOpsin käyttöönottamiseksi.

DevOps on kuitenkin yhdistelmä ihmisiä, työkaluja ja kulttuuria. Jokaisen DevOps-tiimin jäsenen on ymmärrettävä koko arvovirta – ideoinnista kehitykseen ja loppukäyttäjäkokemukseen. Se vaatii siilojen hajottamista, jotta yhteistyötä voi tehdä ohjelmiston koko elinkaaren ajan. Asiakkaan saaman arvon ja parantuvan yhteistyön sekä viihtyvyyden tuomat edut pitääkin viestiä läpi organisaation.

Siirtyminen vanhasta infrastruktuurista Infrastructure as Code (IaC) ja mikropalvelujen käyttöön voi tarjota nopeampaa kehitystä ja innovaatiota, mutta lisääntynyt toiminnallinen työmäärä voi olla haastavaa. On parasta rakentaa vahva perusta automaatiolle, konfiguraatioiden hallinnalle ja jatkuvalle toimituskäytännölle kuormituksen helpottamiseksi. Kun perusta on luotu, prosessien ja tiimin pitäisi tulla seuraavaksi, vasta sitten työkalujen.

Kuinka ottaa DevOps käyttöön?

DevOpsin käyttöönotto edellyttää sitoutumista organisaatiosi tällä hetkellä käyttämien tiimien, työkalujen tai prosessien arvioimiseen ja mahdolliseen muuttamiseen tai poistamiseen. Se tarkoittaa tarvittavan infrastruktuurin rakentamista, jotta tiimit voivat itse rakentaa, ottaa käyttöön ja hallita tuotteitaan ilman, että heidän tarvitsee tukeutua liikaa ulkopuolisiin ryhmiin.

DevOps-kulttuuri

DevOps-kulttuurissa tiimit omaksuvat uusia työskentelytapoja, joihin liittyy enemmän yhteistyötä ja viestintää. Se on ihmisten, prosessien ja työkalujen suuntaamista kohti yhtenäisempää asiakaslähtöisyyttä. Moniammatilliset ja “poikkitieteelliset” tiimit ottavat vastuun tuotteen koko elinkaaresta.

Jatkuva oppiminen

Organisaatiot, jotka tekevät DevOpsia hyvin, ovat yrityksiä, joissa kokeiluja ja riskinottoa kannustetaan. Niitä yrityksiä, joissa laatikon ulkopuolella ajattelu on normi ja epäonnistuminen ymmärretään luonnolliseksi osaksi oppimista ja kehittymistä. Jatkuva parantaminen tuo lisäarvoa sekä asiakkaalle että tekijöille.

Ketteryys

Ketterät menetelmät ovat suosittuja ohjelmistoteollisuudessa, koska ne antavat tiimeille mahdollisuuden olla joustavia, hyvin organisoituneita ja kykeneviä vastaamaan muutoksiin. DevOps on kulttuurinen muutos, joka edistää ohjelmistojen kehittäjien ja ylläpitäjien välistä yhteistyötä. Yhdessä käytettynä ketteryys ja DevOps johtavat korkeaan tehokkuuteen ja luotettavuuteen. Sen myötä päätösvaltaa suunnataan sinne, missä se tuo parhaan arvon: lähelle asiakasta.

Oikeat työkalut

DevOps-työkalut kattavat tuotekehityksen avainvaiheet. Ne tehostavat DevOps-käytäntöjä auttamalla parantamaan yhteistyötä, vähentämään kontekstin vaihtoa, ottamaan käyttöön automaation sekä mahdollistamaan havainnoinnin ja seurannan.

DevOps-työkalut noudattavat yleensä kahta lähestymistapaa: all-in-one- tai avoin työkaluketju. All-in-one-työkaluketju tarjoaa täydellisen ratkaisun, joka ei yleensä integroidu muiden kolmannen osapuolen työkalujen kanssa, kun taas avoin työkaluketju mahdollistaa räätälöinnin eri työkaluilla. Molemmissa lähestymistavoissa on hyvät ja huonot puolensa.

Esimerkki all-in-one DevOps työkalusta on Red Hatin OpenShift-alusta. OpenShift antaa vapauden tiimeille. Sen avulla sovelluskehittäjät saavat vapautta ja päätösvaltaa, ylläpitäjät voivat keskittyä aidosti lisäarvon tuottamiseen asiakkaalle ja arkkitehdit voivat varmistaa arkkitehtuurin ja tietoturvan yhdenmukaisuuden. OpenShift tarjoaa myös automatisoidut CI/CD-pipelinet, tehokkaan konttien orkestroinnin ja yritystason tuen tekijöille – jotta sinun osaajasi voivat keskittyä asiakkaasi asiaan ympäristöjen ylläpidon sijaan.

Lue seuraavaksi: