Green coding: Considering environmental sustainability while building software
Hirvelä, Jaakko (2024)
Hirvelä, Jaakko
2024
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
Hyväksymispäivämäärä
2024-12-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2024112810602
https://urn.fi/URN:NBN:fi:tuni-2024112810602
Tiivistelmä
The ever-increasing use and demand for software increases also the energy and resource consumption of the whole information and communication technology sector. At the same time, global warming and climate change keep progressing. To slow, or help stop this progress, the ICT sector should take a closer look at its own role and environmental impact. This thesis approaches the problem through the ideas of green coding, green software and green IT.
To get a better idea, the thesis answers the question of what green coding is and what does it consist of. This includes answers also to why is software currently not environmentally sustainable. The second question answered is that how can green coding practices be implemented in software development. For example, different tools are compared and the implementation of energy-conscious architecture is discussed. Most literature encourages to leverage the public cloud to minimize the environmental impact of software. The thesis also notes that for green software, the environmental aspects have to considered already in the requirements phase of software development.
The majority of the research was done as a literature review. Small interviews were also included as part of research to compare against findings from literature. With the interview results and findings from literature, condensed guidelines on green coding were also formed. Expert colleagues from Evitec Solutions helped fine-tune these guidelines.
Wider adoption of green coding practices would minimize software’s environmental impact and possibly even reduce operational expenses for software providers. Existing research and the field of green coding are still young and need more work. Especially tools for measuring software’s energy efficiency and environmental impact are partly lacking and need more developing. There is also a lack of formal specification to what makes software green. Ohjelmistojen määrän ja laajuuden kasvu kasvattaa samalla niiden ympäristövaikutuksia. Ohjelmistot vaikuttavat epäsuorasti kasvihuonekaasujen lisääntyneeseen kasvuun. Kasvaneita ohjelmistoja varten tarvitaan entistä enemmän laitteistoa. Vanhat laitteet taas päätyvät suurelta osin elektroniikkajätteeksi. Ilmasto ja ympäristö ovat tämän päivän ylikulutuskulttuurissa kovalla koetuksella. Tämän työn tarkoituksena on etsiä keinoja pienentää edes ICT-sektorin ympäristövaikutusta.
Keinoja etsitään hakemalla vastauksia kysymyksiin: mitä on vihreä koodaus ja miksi nykyiset ohjelmistot eivät ole ympäristön kannalta kestäviä. Toinen kysymys tutkii, kuinka vihreän koodauksen käytäntöjä voidaan soveltaa ja ottaa käyttöön ohjelmistokehityksessä. Työssä vertaillaan esimerkiksi erilaisia työkaluja energiatehokkuuden näkökulmasta. Lisäksi tutkitaan millaisista arkkitehtuurivalinnoista voisi olla hyötyä, jos halutaan pienentää ohjelmiston energiankulutusta. Monet kirjalliset lähteet suosittelevat pilvipalveluiden hyödyntämistä ohjelmiston ympäristövaikutusten minimoimiseksi. Työssä todetaan myös, että vihreää ohjelmistoa varten ympäristönäkökulma on otettava huomioon jo ohjelmistokehityksen määrittelyvaiheessa.
Suurin osa työstä koostuu laajasta kirjallisuuskatsauksesta. Kirjallisista lähteistä löydettyä tietoa täydennettiin pienimuotoisilla haastatteluilla. Haastatteluiden tuloksia pystyttiin myös vertailemaan kirjallisten lähteiden tuloksia vasten. Kirjallisuuskatsaus, haastattelut ja asiantuntijat Evitec Solutionsilta auttoivat lopuksi koostamaan yleiset ohjenuorat vihreän koodauksen käytännöistä.
Laajalla vihreän koodauskäytäntöjen omaksumisella voitaisiin pienentää ohjelmistojen ympäristövaikutuksia merkittävästi. Vihreät käytännöt voisivat myös pienentää ohjelmistotoimittajien toimintakustannuksia, kun ohjelmistot vaatisivat vähemmän suorituskykyä ja sitä mukaa vähemmän laitteistoresursseja. Olemassaoleva kirjallisuus ja tutkimus vihreästä koodauksesta on kuitenkin kovin nuorta. Esimerkiksi ohjelmistojen energiatehokkuutta ja ympäristövaikutuksia mittaavat työkalut, joita työkin esittelee, kaipaavat vielä kehitystä.
To get a better idea, the thesis answers the question of what green coding is and what does it consist of. This includes answers also to why is software currently not environmentally sustainable. The second question answered is that how can green coding practices be implemented in software development. For example, different tools are compared and the implementation of energy-conscious architecture is discussed. Most literature encourages to leverage the public cloud to minimize the environmental impact of software. The thesis also notes that for green software, the environmental aspects have to considered already in the requirements phase of software development.
The majority of the research was done as a literature review. Small interviews were also included as part of research to compare against findings from literature. With the interview results and findings from literature, condensed guidelines on green coding were also formed. Expert colleagues from Evitec Solutions helped fine-tune these guidelines.
Wider adoption of green coding practices would minimize software’s environmental impact and possibly even reduce operational expenses for software providers. Existing research and the field of green coding are still young and need more work. Especially tools for measuring software’s energy efficiency and environmental impact are partly lacking and need more developing. There is also a lack of formal specification to what makes software green.
Keinoja etsitään hakemalla vastauksia kysymyksiin: mitä on vihreä koodaus ja miksi nykyiset ohjelmistot eivät ole ympäristön kannalta kestäviä. Toinen kysymys tutkii, kuinka vihreän koodauksen käytäntöjä voidaan soveltaa ja ottaa käyttöön ohjelmistokehityksessä. Työssä vertaillaan esimerkiksi erilaisia työkaluja energiatehokkuuden näkökulmasta. Lisäksi tutkitaan millaisista arkkitehtuurivalinnoista voisi olla hyötyä, jos halutaan pienentää ohjelmiston energiankulutusta. Monet kirjalliset lähteet suosittelevat pilvipalveluiden hyödyntämistä ohjelmiston ympäristövaikutusten minimoimiseksi. Työssä todetaan myös, että vihreää ohjelmistoa varten ympäristönäkökulma on otettava huomioon jo ohjelmistokehityksen määrittelyvaiheessa.
Suurin osa työstä koostuu laajasta kirjallisuuskatsauksesta. Kirjallisista lähteistä löydettyä tietoa täydennettiin pienimuotoisilla haastatteluilla. Haastatteluiden tuloksia pystyttiin myös vertailemaan kirjallisten lähteiden tuloksia vasten. Kirjallisuuskatsaus, haastattelut ja asiantuntijat Evitec Solutionsilta auttoivat lopuksi koostamaan yleiset ohjenuorat vihreän koodauksen käytännöistä.
Laajalla vihreän koodauskäytäntöjen omaksumisella voitaisiin pienentää ohjelmistojen ympäristövaikutuksia merkittävästi. Vihreät käytännöt voisivat myös pienentää ohjelmistotoimittajien toimintakustannuksia, kun ohjelmistot vaatisivat vähemmän suorituskykyä ja sitä mukaa vähemmän laitteistoresursseja. Olemassaoleva kirjallisuus ja tutkimus vihreästä koodauksesta on kuitenkin kovin nuorta. Esimerkiksi ohjelmistojen energiatehokkuutta ja ympäristövaikutuksia mittaavat työkalut, joita työkin esittelee, kaipaavat vielä kehitystä.