<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=70416&amp;fmt=gif">

Sorry! Your browser is not supported on this site and it might be acting a bit wonky. Please use Firefox, Chrome or Edge instead

Mitä on devops?

Written by:
Marko Klemetti

Devops on kuin moottorisaha puunhakkaajalle. Vaikka olisi kuinka taitava, käsisahalla ei mitenkään pärjää moottoroiduille työkaluille.

Monet ohjelmistoyritykset tuhlaavat edelleen valtavasti aikaa ja resursseja tehdessään tuotejulkaisuun liittyviä työvaiheita käsin, vaikka suurimman osan toistuvista työvaiheista voisi aivan hyvin automatisoida. Siihen tarvitaan vain devopsia, kehittäjien (developers) ja palvelinylläpidon (operations) välistä toimivaa yhteistyötä. Devops on kuin moottorisaha puunhakkaajalle. Vaikka olisi kuinka taitava, käsisahalla ei mitenkään pärjää moottoroiduille työkaluille.

Siinä missä ketterät menetelmät on muodostunut linkiksi ohjelmistokehittäjien ja heidän asiakkaidensa tarpeiden välille, devops yhdistää kehittäjät ja asiakkaiden tuotteet ja palvelut. Devopsin tavoitteena on automatisoida tuotteiden paketointi-, laadunvarmistus- ja julkaisuprosesseja, jolloin kehitystyöstä tulee avoimempaa, laadukkaampaa ja ennen kaikkea kaikille nautinnollisempaa.

Viimeisten vuosien aikana ohjelmistokehittäjät ovat nauttineet työkalujen ja menetelmien vallankumouksesta. Ketterät kehitysmenetelmät ovat auttaneet organisaatioita tukemaan pienten, mutta toimivien kokonaisuuksien tuottamista. Samaan aikaan erilaiset kehitysympäristöt ovat kypsyneet. Nykyään ne tarjoavat kehittäjille yhteistyöhön ja laadunvarmistukseen helppokäyttöisiä työkaluja. Tämän seurauksena monet yritykset ovat ottaneet käyttöönsä välitöntä lisäarvoa tuottavia menetelmiä kuten hyväksymistestivetoisen kehityksen (ATDD) tai jatkuvan julkaisun (continuous delivery).

Pienemmissä yrityksissä ohjelmistokehittäjät ovat yleensä itse pitäneet huolta teknisistä asioista, kuten tuotantopalvelimista, kehitysympäristöistä, laadunvarmistusmenetelmistä ja tuotteiden julkaisusta. Yrityksen koon kasvaessa kehitys- ja tuotantoympäristöt ovat kuitenkin usein yhä kauempana kehittäjistä, ja kehitystyö on vahvasti sidottu tiettyyn työkaluvalikoimaan ja tiukkoihin prosesseihin. Muutamat pienen yrityksen ajattelutavalla suureksi kasvaneet yritykset (Flickr, Facebook ja suomalaisista ylpeyksistämme vaikkapa Rovio) ovat omalla esimerkillään näyttäneet, ettei kehittäjien ja ylläpidon välillä tarvitse olla kuilua. Tämä toimiva yhteistyö kuvaa parhaiten devopsia.

Mitä devopsiin kuuluu?

Tarkasti ottaen devops käsittää vain tuotteiden julkaisuun ja tuotannon ylläpitoon liittyvän kehityksen ja automatisoinnin. Koska jatkuva julkaisu lasketaan osaksi devopsia, myös kaikki laadunvalvontaan ja julkaisuvarmuuteen liittyvä automatisointi ja kehitys on käytännössä devops-työtä. Devopsin yksityiskohtainen rajaaminen on usein tarpeetonta, sillä kaikki siihen liittyvät toiminnot ovat yleensä olennaisia myös sujuvassa kehitystyössä ja laadukkaissa julkaisuissa. Devopsista kuitenkin vain noin puolet on teknisten ratkaisujen luomista tuotekehityksessä, julkaisuissa tai palvelinylläpidossa. Näiden ansiosta organisaation on yleensä mahdollista virtaviivaistaa omia toimintatapojaan. Usein puolet devops-työstä kuluukin organisaation ja ihmisten päivittäisten rutiinien muutokseen. Juuri toimintatapojen muutoksen ja teknisten ratkaisujen yhdistelmä on se, joka saa aikaan devopsin merkittävimmät hyödyt mille tahansa organisaatiolle.

Mitä hyötyä devopsista on?

Devopsin ytimenä on lean startup -henkinen turhien työvaiheiden karsiminen ja toistuvien prosessien automatisointi. Tutkimusten mukaan devopsia hyödyntävät organisaatiot kykenevät julkaisemaan muutoksia nopeammin ja luotettavammin. Devopsin käyttöönoton jälkeen parannus entiseen on ollut erään 1300 it-ammattilaiselle tehdyn tutkimuksen mukaan keskimäärin jopa 23 %. Devops on lisäksi oikea väline tehostaa, organisoida ja valvoa myös tuotekehityksen alihankintaa. Kun asiakas ja toimittaja sopivat yhteisistä vaatimustenhallinnan, laadunvalvonnan ja julkaisuautomaation pelisäännöistä, voidaan yhteistyöstä saada paljon enemmän irti. Projektia on myös huomattavasti helpompi ohjata, kun päätökset voidaan perustaa luotettavaan kuvaan kehityksen tilasta.

Mitä taitoja devopsissa tarvitaan?

Devopsia voi käytännössä tehdä kuka tahansa. Yleensä työhön valikoituu joko palvelinympäristöjä ymmärtävä ohjelmistokehittäjä tai koodaustaitoinen ylläpitäjä, mutta jo innostus turhien työvaiheiden automatisointiin riittää. Devops-työ on yleensä yhdistelmä uusien teknisten ratkaisujen kehittämistä ja organisaation toimintatapojen muuttamista. Kun onnistuneen automatisoinnin lopputuloksena tuotteen paketointiin tai koontiin ei enää tarvitakaan ylimääräistä käsiparia, vapautuu muuhun tekemiseen lisää aikaa ja energiaa. Tekninen devops-työ on usein kehitysyhteisöissä hyväksi havaittujen työkalujen käyttöönottoa ja konfigurointia, mutta usein siihen kuuluu myös työkalujen tai liitännäisten kehittäminen oman tuotekehityksen erityistarpeisiin. Tällä hetkellä kuumia devops-termejä ovat ainakin Chef, Puppet, Vagrant, Capistrano, Jenkins, Robot Framework, hajautettu versionhallinta ja Deveo.

Miten voimme itse tehdä devopsia?

Kuten sanottua, devopsia voi tehdä kuka tahansa. Kannattaa aloittaa siitä, että kartoittaa omassa organisaatiossaan miten asiakkaan tarve muuttuu lisäarvoa tuottavaksi ominaisuudeksi, ja miten tuo ominaisuus saatetaan asiakkaan käyttöön. Kuinka monta turhaa työvaihetta tai pullonkaulaa löysit? Voitko olla varma, että tuote edelleen toimii oletetulla tavalla? Entä löysitkö kohtia, joissa joku henkilö joutui tekemään jokaisen muutoksen kohdalla samat asiat uudelleen? Niin ajattelinkin – devops-työsi on nyt alkanut. Seuraavaksi sinun pitääkin kurkistaa pellin alle ja valita, tai tehdä, organisaatiollesi sopivat työkalut toimintatapojen ja julkaisuautomatiikan tehostamiseksi. Sitten vain esittelemään innostuneimmille kehittäjille, ja heidän tuellaan jakamaan koko organisaation käyttöön.

Mistä löydän lisää tietoa devopsista?

  • Devops Wikipediassa
  • Devops.com
  • Devops Finland Facebookissa
  • Eficoden Devops-palvelut
  • The State of devops: Accelerating Adoption (James Turnbull)