Infrastruktuurikoodin Laadunhallinta DevOps-Prosessissa: Kirjallisuuskatsaus laadunhallinnan haasteisiin
Jokinen, Atte (2022)
Jokinen, Atte
2022
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-05-11
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202205034265
https://urn.fi/URN:NBN:fi:tuni-202205034265
Tiivistelmä
Modernissa sovelluskehityksessä korostuu nopeus ja ketteryys. DevOps-toimintamalli pyrkii vastaamaan tähän tarpeeseen tuomalla kehityksen, testauksen ja ylläpidon tiiviisti yhteen sen sijaan, että kehitysprosessin osa-alueet olisivat siiloutuneet erilleen toisistaan. Nopeaa toimitusta ja ketterää kehitystä varten modernit ohjelmistot toimitetaan yhä useammin pilvialustoilla, kuten Amazon Web Servicessä, Google Cloudissa tai Azuressa.
Kirjallisuuskatsaus käsittelee pilviympäristöjen suunnittelun ja toteutuksen laadunhallintaa kun ympäristöjä määritellään ohjelmistokoodina. Työn tavoitteena on selvittää laadunhallinnan haasteita modernien pilviympäristöjen määrittämisessä ohjelmistokoodina (Infrastructure as code, myöhemmin IaC) ja mihin tulee kiinnittää huomiota niiden kehityksessä osana DevOps-prosessia. Työn alussa esitellään aihe ja siihen tiiviisti liittyviä muita aiheita. Aluksi esitellään DevOps ja sen historiaa, mitä pilvi-infrastruktuurilla tarkoitetaan ja infrastruktuurin määrittely koodina ja miksi sitä halutaan käyttää. Kirjallisuuskatsaukseen valikoitiin tuoreita IaC:n laadunhallintaan liittyviä tutkimuksia. Valikoiduista tutkimuksista nostettiin esille virhekuvioita ja niiden tunnistamista, koodihajuja, eli lähdekoodin ominaisuuksia, jotka mahdollisesti viittaavat ongelmiin, antitoimintamalleja ja tietoturvan antitoimintamalleja. Työssä esitellään valikoituneiden tutkimusten havaintoja sekä ratkaisuja laadunhallinnan haasteisiin. Lopuksi nämä havainnot kootaan yhteen ja sovitetaan DevOps-prosessin vaiheisiin.
Kirjallisuuskatsauksessa havaittiin, että monet haasteet IaC-kehityksessä ovat verrannollisia perinteisen ohjelmistokehityksen haasteiden kanssa. Esitellyissä tutkimuksissa nousi esiin toistuvasti testaus- ja varmistusresurssien allokoinnin tärkeys. Havaittiin, että antitoimintamallien ja koodihajujen tunnistaminen ja vikojen kategorisointi ovat hyviä työkaluja testaus- ja laadunvarmistusresurssien ohjaamisessa. Myös tutkielmassa esille nostettu viallisten skriptien toimenpiteiden tunnistaminen on tapa kohdistaa laaduntarkistusresursseja sinne, missä virheitä todennäköisimmin on. Kirjallisuuskatsauksessa tuli esille, että työkalujen käyttö laadunhallinnassa on tehokas tapa ennaltaehkäistä virheitä. Havaittiin myös, että IaC-kehitys vaatii hyvät toimintamallit ja esiteltiin useita antitoimintamalleja IaC-kehityksessä. Kirjallisuuskatsauksesta voidaan päätellä, että IaC-kehitys on hyvin lähellä perinteistä ohjelmistokehitystä ja sen laadunhallintaan voidaan soveltaa samoja työkaluja ja metodeja kuin perinteisen ohjelmistokehityksen laadunhallintaan.
Kirjallisuuskatsaus käsittelee pilviympäristöjen suunnittelun ja toteutuksen laadunhallintaa kun ympäristöjä määritellään ohjelmistokoodina. Työn tavoitteena on selvittää laadunhallinnan haasteita modernien pilviympäristöjen määrittämisessä ohjelmistokoodina (Infrastructure as code, myöhemmin IaC) ja mihin tulee kiinnittää huomiota niiden kehityksessä osana DevOps-prosessia. Työn alussa esitellään aihe ja siihen tiiviisti liittyviä muita aiheita. Aluksi esitellään DevOps ja sen historiaa, mitä pilvi-infrastruktuurilla tarkoitetaan ja infrastruktuurin määrittely koodina ja miksi sitä halutaan käyttää. Kirjallisuuskatsaukseen valikoitiin tuoreita IaC:n laadunhallintaan liittyviä tutkimuksia. Valikoiduista tutkimuksista nostettiin esille virhekuvioita ja niiden tunnistamista, koodihajuja, eli lähdekoodin ominaisuuksia, jotka mahdollisesti viittaavat ongelmiin, antitoimintamalleja ja tietoturvan antitoimintamalleja. Työssä esitellään valikoituneiden tutkimusten havaintoja sekä ratkaisuja laadunhallinnan haasteisiin. Lopuksi nämä havainnot kootaan yhteen ja sovitetaan DevOps-prosessin vaiheisiin.
Kirjallisuuskatsauksessa havaittiin, että monet haasteet IaC-kehityksessä ovat verrannollisia perinteisen ohjelmistokehityksen haasteiden kanssa. Esitellyissä tutkimuksissa nousi esiin toistuvasti testaus- ja varmistusresurssien allokoinnin tärkeys. Havaittiin, että antitoimintamallien ja koodihajujen tunnistaminen ja vikojen kategorisointi ovat hyviä työkaluja testaus- ja laadunvarmistusresurssien ohjaamisessa. Myös tutkielmassa esille nostettu viallisten skriptien toimenpiteiden tunnistaminen on tapa kohdistaa laaduntarkistusresursseja sinne, missä virheitä todennäköisimmin on. Kirjallisuuskatsauksessa tuli esille, että työkalujen käyttö laadunhallinnassa on tehokas tapa ennaltaehkäistä virheitä. Havaittiin myös, että IaC-kehitys vaatii hyvät toimintamallit ja esiteltiin useita antitoimintamalleja IaC-kehityksessä. Kirjallisuuskatsauksesta voidaan päätellä, että IaC-kehitys on hyvin lähellä perinteistä ohjelmistokehitystä ja sen laadunhallintaan voidaan soveltaa samoja työkaluja ja metodeja kuin perinteisen ohjelmistokehityksen laadunhallintaan.
Kokoelmat
- Kandidaatintutkielmat [8798]