Skip to content

DevOps

Kuvauksen kirjoitti: Kuka N3390 / Petteri Halvari

Lyhyt kuvaus käsitteestä tai aiheesta

Tehokas ja ketterä on termejä jotka esiintyvät usein DevOpsia käsittelevien artikkeleiden yhteydessä. Kyseessä on ohjelmistokehitykseen liittyvä toimintamalli, jossa keskeistä on jatkuva uuden ohjelmistoversion tuottaminen valmiiseen järjestelmään. Itse termi on lyhennetty sanoista development (kehitys) ja operations (tuotanto), jotka mallissa on yhdistetty siten, että samassa tuotantotiimissä on sekä ohjelmistokehityksen parissa, etä tuotantojärjestelmän parissa toimivia henkilöitä, jotka tuottavat valmiita ohjelmistoversioita koko kehitysprosessin ajan. Tiimin tehtävänä on vastata julkaisukelpoisen ohjelmiston toteuttamisesta.

Siinä missä ketterä kehitys pyrkii poistamaan kuilua tilaajan ja ohjelmisto- toimittajan välillä pitämällä yllä jatkuvaa kommunikointia sekä mahdollista- malla ohjelmiston muokkaamisen kehitystyön eri vaiheissa, niin DevOps pyrkii poistamaan kuilua ohjelmistokehittäjän ja järjestelmäoperaattoreiden välillä. Koska ohjelmisto tyypillisesti vaatii erinäisen joukon palvelimia ja palveluita toimiakseen, niin kehitystyössä tarvitaan laite- ja käyttöjärjestelmäasiantunti- joita, jotka tuottavat ohjelmistokehittäjille alustan ohjelmistoa varten. Kun ohjelmistokehitystiimiin otetaan toimijoita mukaan tuotantojärjestelmien ylläpitäjistä ja tiimin vastuulla on tuottaa toimiva ohjelmaversio, niin kehitysprosessia pystytään nopeuttamaan suhteessa tilanteeseen, jossa tuotanto ja kehitys ovat itsenäisiä yksiköitä.

Jotta kehitystyön eri vaiheissa on mahdollista tuottaa valmis järjestelmä jossa ohjelmisto toimii, niin käytännössä ohjelmistotuotannossa on automatisoi- tava mahdollisimman paljon eri työvaiheita. Kun ohjelmistosta valmistuu uusi versio, niin sekä ohjelmiston testaus, että tietojärjestelmä, jossa ohjelmisto toimii, pyritään toteuttamaan mahdollisimman automaattisesti. Timo Pertilä luonnehtii DevOpsia kirjoituksessaan "Rakennetaan siis koneisto joka pystyy tekemään palveluun muutoksia mahdollisimman virheettömästi, hallitusti ja nopeasti."

Mikäli DevOps mielletään koneistona, niin tällä ei kuitenkaan tarkoiteta pelkästään laitetta (tai ennemmin tietokoneohjelmaa), vaan tässä yhteydessä koneistoon kuuluvat myös ihmiset, jotka työskentelevät kokonaisuuden parissa. Tältä osin luonnehtisin DevOpsia ajattelu- ja toimintamalliksi, jossa automatisoimalla mahdollisimman nopea prosessi, jolla syntyneestä koodista pystytään luomaan julkaisukelpoinen ohjelmisto.

DevOpsin suosion taustalla lienee tarve jatkuvasti nopeuttaa ohjelmisto- kehitystä. Kalle Mäkelä luonnehtii DevOpsia ketterän kehityksen "lisäosaksi", joka on otettava osaksi ohjelmistokehtystä, mikäli aikoo nykyisin käyttää ketterän kehityksen toimintamallia. Guru99 -sivuston artikkelissa verrataan ketteryyttä ja DevOpsia toisiinsa laajalla listalla ja tässä todetaan, että DevOpsin tarkoitus on luoda yhteistyötä eikä DevOps itsessään tarjoa ketterän kehityksen kaltaista viitekehystä, kuten sprintit yms.

Huomiot

Kysymykseen "Mikä DevOps on?" oli yllättävän hankala vastata. Pyrin kirjoituk- sessa tarkastelemaan suhteessa ketterään kehitykseen. Koska DevOps "toiminta" pyrkii nopeuteen ja kustannustehokkuuseen valmiin koodin saattamisessa julkaisukelpoiseen muotoon, niin tällöin ohjelmistokehityksessa painopiste siirtyy luonnollisesti suuntaan, jossa ei pyritä suuriin ohjelmistopäivityksiin vaan jatkuviin pieniin päivityksiin. Tästä voi päätellä, että ohjelmistotalojen on mielekästä myydä ohjelmisto palveluna, jolloin käyttäjät saavat jatkuvasti uusimmat ominaisuudet käyttöön sekä ohjelmistotalo jatkuvasti rahaa kehitystyöhön. Tällöin käyttäjille myydään myös sellaisia ominaisuuksia joihin ei välttämättä ole tarvetta. Toisaalta käyttäjäorganisaatioiden kokonaiskustannuksissa voi tulla merkittäviä säästöjä, koska ohjelmiston päivitys, ylläpito ja koulutuskustannukset ovat rakenteellisesti erilaiset palveluna ostettavasta ohjelmasta.

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa