DevOps-kehitysmallin perusteet ja soveltaminen pienissä ja keskisuurissa yrityksissä projektinhallinnan näkökulmasta
Luhtaniemi, Joonas (2022)
Luhtaniemi, Joonas
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202205149254
https://urn.fi/URN:NBN:fi:amk-202205149254
Tiivistelmä
Opinnäytetyössä tarkastellaan DevOps-periaatteita pienien ja keskisuurien yrityksien näkökulmasta. Aihetta lähestytään erityisesti projektinhallinnan sekä tuotannon näkökulmasta ja työn tavoitteena on helpottaa DevOps-kulttuurin omaksumista yrityksen käyttöön. Opinnäytetyö pohjautuu aihetta käsittelevään kirjallisuuteen sekä kokemusluentoihin. Opinnäytetyössä kuvataan kehitys- ja operatiivisien tiimien muodostamaa käyttöönottoketjua ja kuinka työprosessien pullonkaulaan kohdistetuilla kehitystoimilla voidaan lisätä ohjelmiston kehitysnopeutta. Virheiden havaitsemiseksi ja korjaamiseksi tavoitteena on lisätä pieniä muutoksia versionhallintaan useasti ja luoda nopeasyklinen palauteketju. DevOps-kulttuuriin kuuluu myös avoimuus ja jatkuva oppiminen koko organisaation tasolla.
DevOps-periaatteet on kehitetty tukemaan ketterän kehityksen puutteita, joiden seurauksena projekti ei pysy aikataulussa. Projektinhallinnan osalta esitellään Scrum-toimintaohjeita, jotka muodostavat rungon päivittäiselle työntekijöiden väliselle kommunikoinnille, sekä lyhyesti erilaisia DevOps-käytäntöihin soveltuvia projektinhallintaohjelmistoja, kuten Jira, XWiki ja Codecks. Projektinhallintaohjelmistoilla tehdään näkyväksi työprosessit, mikä mahdollistaa työn vaiheiden arvioinnin, työprosessien ongelmakohtien paikallistamisen ja töiden läpimenoajan lyhentämisen.
Versionhallintaohjelmistoista esitellään Git ja Subversion, joista kumpaa tahansa käyttäen on tavoitteena ylläpitää yhtä todenmukaista versiota ohjelmistokokonaisuudesta. DevOps-periaatteiden mukaan lähdekoodin jakamisen lisäksi kuka tahansa voi versionhallinnan avulla luoda toisiinsa nähden identtiset kehitysympäristöt käyttöönottoketjun jokaisessa vaiheessa. Versionhallintaohjelmistojen avulla voidaan automatisoida paljon toistuvia työprosesseja, kuten koontiversion tekeminen, ohjelman tarkistaminen ja virheitä havaitessa palauttaminen aiempaan versioon.
Automatisaatio nopeuttaa ohjelmistokehityksen työprosesseja ja lisää toimintavarmuutta vähentämällä manuaalista työskentelyä. Automatisaation lisääminen on hidasta ennen kuin sen tekeminen vakinaistuu, eikä aluksi vaikuta edistävän projektia itseään, mutta siihen käytetty aika säästyy projektin edetessä, kun automaattiset toiminnot eivät enää kuluta työaikaa. Testien automatisoinnin seurauksena ohjelmoijat joutuvat myös miettimään reunatapauksia koodin logiikassa. Säännöllisesti lähetettävät automaattiset raportit prosessien etenemisestä lisäävät avoimuutta koko organisaation läpi, mutta myös yhteistyökumppaneiden ja asiakkaiden suuntaan.
DevOps-periaatteet on kehitetty tukemaan ketterän kehityksen puutteita, joiden seurauksena projekti ei pysy aikataulussa. Projektinhallinnan osalta esitellään Scrum-toimintaohjeita, jotka muodostavat rungon päivittäiselle työntekijöiden väliselle kommunikoinnille, sekä lyhyesti erilaisia DevOps-käytäntöihin soveltuvia projektinhallintaohjelmistoja, kuten Jira, XWiki ja Codecks. Projektinhallintaohjelmistoilla tehdään näkyväksi työprosessit, mikä mahdollistaa työn vaiheiden arvioinnin, työprosessien ongelmakohtien paikallistamisen ja töiden läpimenoajan lyhentämisen.
Versionhallintaohjelmistoista esitellään Git ja Subversion, joista kumpaa tahansa käyttäen on tavoitteena ylläpitää yhtä todenmukaista versiota ohjelmistokokonaisuudesta. DevOps-periaatteiden mukaan lähdekoodin jakamisen lisäksi kuka tahansa voi versionhallinnan avulla luoda toisiinsa nähden identtiset kehitysympäristöt käyttöönottoketjun jokaisessa vaiheessa. Versionhallintaohjelmistojen avulla voidaan automatisoida paljon toistuvia työprosesseja, kuten koontiversion tekeminen, ohjelman tarkistaminen ja virheitä havaitessa palauttaminen aiempaan versioon.
Automatisaatio nopeuttaa ohjelmistokehityksen työprosesseja ja lisää toimintavarmuutta vähentämällä manuaalista työskentelyä. Automatisaation lisääminen on hidasta ennen kuin sen tekeminen vakinaistuu, eikä aluksi vaikuta edistävän projektia itseään, mutta siihen käytetty aika säästyy projektin edetessä, kun automaattiset toiminnot eivät enää kuluta työaikaa. Testien automatisoinnin seurauksena ohjelmoijat joutuvat myös miettimään reunatapauksia koodin logiikassa. Säännöllisesti lähetettävät automaattiset raportit prosessien etenemisestä lisäävät avoimuutta koko organisaation läpi, mutta myös yhteistyökumppaneiden ja asiakkaiden suuntaan.