Miten huomioida energiatehokkuus web-palveluissa?

Katso tallenne

Internetin käyttämä energiamäärä on alkanut kiinnittämään enemmän ja enemmän huomiota. Jotkut vertaavat, että jos internet olisi valtio, olisi se kuudenneksi suurin valtio sen ympäristökuormituksen näkökulmasta. Toisaalta, internet myös tehostaa toimintaa valtavasti, joten asia ei ole niin suoraviivainen. Tästä asian kaksipuoleisuudesta on kirjoittanut esimerkiksi professori Jukka Manner.

Selvää on kuitenkin se, että web-palveluiden käyttämä energia on kasvanut koko ajan 2000-luvulla. Web-sivustot ovat kasvaneet koossa, ne vaativat nopeampia yhteyksiä, ne kuluttavat enemmän palvelintehoja ja vaativat kohtuullisen uusia puhelimia toimiakseen nopeasti. Tämä on outo yhtälö, koska luulisi kehityksen tuovan myös tehokkuusetuja. Näin ei kuitenkaan käytännössä ole, tai ainakaan tehokkaampia teknologioita ei hyödynnetä laajamittaisesti.

North Patrol on suunnitteluun erikoistunut konsulttitoimisto. Suunnittelemme, autamme teknologiavalinnoissa, kilpailutamme. Emme myy toteutusprojekteja, emmekä lisenssejä, olemme aidosti asiakkaan puolella.

Huomiota tähän aiheeseen on pyrkinyt nostamaan esimerkiksi Tieken Green ICT -hanke, jonka webinaarissa allekirjoittanut oli hiljattain puhumassa siitä, miten web-palveluiden energiatehokkuutta voitaisiin parantaa. Tiivistän tässä tuon esityksen havaintoja. Voit myös katsoa puheenvuoron kokonaisuudessaan YouTubesta tai selata esityksen esityskalvot (pdf-tiedosto).

Ongelmat ovat moninaiset: palvelimista päätelaitteisiin

Energiatehokkuus web-palveluissa rakentuu ainakin kolmesta eri osa-alueesta.

  1. Palvelinympäristöjen käyttämä energia ja kuormitus ympäristölle
  2. Tiedonsiirron käyttämä energia ja kuormitus ympäristölle
  3. Päätelaitteiden käyttämä energia ja kuormitus ympäristölle

Perinteisesti palvelimet on nähty isoimpana kuormitustekijänä, kun jokainen web-palvelu on vaatinut fyysisiä palvelimia pyöriäkseen, ja näitä palvelimia on pitänyt myös pitää pyörimässä vuorokauden kaikkina aikoina. Vikasietoisuuden varmistamiseksi on usein pyöritetty vielä useampia samankaltaisia palvelimia, jotta yhden hajotessa, on toinen voinut jatkaa toimintaa. Tästä maailmasta on toki siirrytty paljon virtualisoituihin ympäristöihin, joissa kymmenet, jopa sadat eri palvelut jakavat fyysisten palvelimien resursseja. Tällaisissa ympäristöissä automatiikka jopa laittaa palvelimia nukkumaan, kun tarpeet ovat vähäiset, esimerkiksi öisin. Täten palvelinten osalta on helppo sanoa, että olemme menneet eteenpäin, ainakin resurssien käytön tehokkuudessa.

Tiedonsiirron osalta taas web-palvelut eivät ole menneet juurikaan parempaan suuntaan. Kuvien ja videoiden käyttö on kasvanut tasaisesti, eikä laskusuhdannetta ole näköpiirissä. Olemme toki kehittyneet esimerkiksi kuvien ja videoiden optimoinnissa , mutta samalla himot isoja kuvia ja liikkuvaa kuvaa kohtaan ovat vain kasvaneet. Tehokkaammat pakkausalgoritmit ovat myös keskittyneet pääosin tiedonsiirron minimoimiseen, eikä niiden aiheuttama kuormitus päätelaitteille ole useinkaan saanut huomiota. Monenlaiset analytiikka- ja mainontatyökalut ovat myös yleistyneet viimeisen kymmenen vuoden aikana sivustoilla, ja muodostavat jopa 40% verkkosivustojen tiedonsiirrosta tällä hetkellä - ja myös nämä hidastavat sivustojen latautumista ajoittain merkittävästi. Perinteinen html-tiedostomuoto on vain noin yhden prosentin keskimääräisen web-sivun latautumisesta. Suurin osa siirrettävästä tiedosta on grafiikkaa, evästeitä ja palvelun toimintoihin liittyviä tiedostoja (kuten erilaisia Javascript-kirjastoja).

Päätelaitteidenkin saralla kehitys on ollut ristiriitaista, voisi sanoa että sekä positiivista että negatiivista. Positiivista on ehdottomasti päätelaitteiden tehokkuuden kasvu, joka on mahdollistanut sen, että monipuoliset web-sovellukset pyörivät nopeammin ja paremmin nykyaikaisilla kännyköillä ja läppäreillä. Aiemminhan moni asiointisovellus esimerkiksi vaati erillisen Java-virtuaalikoneen lataamisen tai jopa Flash-laajennuksen, jotta pystyttiin toteuttamaan monipuolisempia käyttöliittymiä ja enemmän laskentaa. Se negatiivinen asia on, että samalla kun päätelaitteiden teho on kasvanut, olemme myös keksineet enemmän tapoja käyttää sitä tehoa. Nykyisin moni varsin tavallinenkin sivusto esimerkiksi hyödyntää Javascriptiä niin paljon, että vanhalla kännykällä sivuston käyttäminen on tuskaisen hidasta, koska vanha päätelaite ei jaksa pyörittää kaikkea sitä logiikkaa mitä Javascript-elementit vaativat siltä.

Asiaa monimutkaistaa vielä se, että ei ole välttämättä ollenkaan huono asia kuormittaa niitä päätelaitteita, koska meidän päätelaitteissa yleensä tehoa riittää vallan mainiosti. Ongelmaksi päätelaitteen kuormittaminen muodostuu oikeastaan vasta sitten, kun se kuormitus alkaa hidastamaan palveluita niin merkittävästi, että käyttäjä alkaakin huonontuneen käyttökokemuksen seurauksena pohtia uuden laitteen hankintaa. Esimerkiksi Applen mukaan iPhone 13 -puhelimen ympäristökuormituksesta vain 16 prosenttia muodostuu käytön aikana. Täten päätelaitteiden kuormitusta tulisi tehdä mahdollisimman maltillisesti, jotta emme entisestään kannusta käyttäjiä vaihtamaan puhelimiaan nopeammassa tahdissa.

Energian käytön ja kuormituksen mittaaminen on alkutekijöissään

Isoin ongelma nykytilassa on kuitenkin se, että näistä kolmesta osatekijästä (palvelimet, tiedonsiirto, päätelaitteet) me mittaamme helposti ja tarkasti tällä hetkellä lähinnä tiedonsiirtoliikennettä, eli kuinka paljon web-sivustot siirtävät tietoa sivuston ensimmäisessä latauksessa ja käytön aikana. Tämä on ehdottomasti isoin ongelma energiatehokkuuden kehittämisessä tällä hetkellä. On vaikea kehittää sitä, mitä emme mittaa, tai edes oikein osaa mitata kunnolla.

Onneksi jotain sentään osataan jo mitata

Esimerkiksi North Patrolissa olemme jo usean vuoden ajan käyttäneet sivustojen nopeutta ja keveyttä tärkeänä kriteerinä kilpailutuksissa, ajoittain jopa sitoen tiukat nopeus- ja suorituskykytavoitteet osaksi kilpailutusten bonus-malleja. Tällä on pyritty tehostamaan erityisesti sivustojen latausnopeutta ja vähentämään kuormitusta päätelaitteille, jotta myös vanhoilla puhelimilla sivustot latautuisivat vikkelästi.

Teoriassa tämä nopeuden painottaminen voi keventää myös palvelinten kuormitusta, mutta käytännössä näin ei välttämättä ole, koska monia asioita voidaan nopeuttaa myös lisäämällä vain palvelinkapasiteettia ja laskentaa palvelimella, jolloin saatetaan itse asiassa vain lisätä palvelinten kuormitusta. Sama pätee osittain päätelaitteisiin, koska nykyaikainen web-teknologia mahdollistaa laskennan siirtämistä myös käyttäjän päätelaitteelle, jolloin sivusto voi olla erittäin nopea uudella älypuhelimella, mutta tuskastuttavan hidas vanhalla päätelaitteella. Täten voi sanoa, että esimerkiksi nopeuden ja keveyden vaatiminen on hyvä tavoite, jolla yleensä edistetään hyviä asioita myös energiatehokkuuden näkökulmasta, mutta sekin voi johtaa vääränlaisiin tuloksiin, jos emme huomioi kaikkia osa-alueita.

Nopeuden ja keveyden vaatimuksen mahdollistaa se, että on olemassa varsin vakiintuneita mittareita ja työkaluja näiden asioiden mittaamiseen. North Patrolin kilpailutuksissa on yleensä nojattu Googlen Lighthouse -työkalun mittaristoihin, koska tämä on alalla laajasti hyväksytty malli mitata palveluiden nopeutta. Erityisesti ”time to interactive” on mielestämme hyvä mittari, koska se mittaa sitä pistettä, kun sivusto on latautunut niin täydellisesti, että tavallinen käyttäjä voi ryhtyä klikkailemaan ja vierittämään sivustoa. Tähän tavoitteeseen ei siis riitä se, että ”jotain näkyy käyttäjälle”, vaan web-palvelu on aidosti toiminnallinen. Googlen suosittelema optimiarvo tälle tilanteelle on alle viisi (5) sekuntia, joten tätä tasoa on myös selkeätä vaatia kilpailutuksissa. Vaatimukseen kannattaa lisäksi asettaa jokin taso päätelaitteelle ja tiedonsiirtonopeudelle, eli millaisella puhelimella tai tietokoneella tavoitetaso tulee saavuttaa. Mitä vanhempi puhelin ja hitaampi yhteys ovat vaatimuksena, sitä haastavampi tuo viisi sekuntia on saavuttaa.

Nopeusoptimoinnissa on myös se hyvä puoli, että se pakottaa teknisen toimittajan ja sisällöntuottajat yhteistyöhön. Tyypillisesti kun jopa 50% sivustojen tiedonsiirtokuormasta syntyy kuvista, ja iso osa sivustojen kuvista tuotetaan ja ladataan sisällöntuottajien toimesta, joten teknisen kumppanin on myös koulutettava sisällöntuottajia kuvien optimoinnissa ja oikeanlaisessa syöttämisessä palveluun. Videoiden osalta kannattaa käyttää kolmannen osapuolen palveluita (kuten Vimeo), mutta jos tämä ei ole mahdollista, on videoiden optimointiin kiinnitettävä erityistä huomiota.

Emme tiedä (kovin helposti) paljonko palvelimet vievät energiaa

Palvelinkuormituksen kohdalla pitäisi ensinnäkin tietää paljonko oma palvelinympäristö kuluttaa energiaa, ja kuinka paljon palvelin tekee töitä oman web-palvelun pyörittämiseksi milloinkin. Tällä hetkellä edes isot pilvipalveluympäristöt (Amazon, Microsoft, Google) eivät raportoi asiakkailleen yksittäisten palvelinympäristöjen energiankulutusta. Microsoftilla on toki Emissions Impact Dashboard ja Googlella Carbon Footprint -työkalu, mutta nämä ovat vielä varsin korkean tason raportteja. Täten vaikka pystyisimme asettamaan jonkinlaiset raja-arvot sille, kuinka paljon web-palvelumme saisi kuluttaa energiaa palvelimelta per käyttäjä ja per vierailu, emme pystyisi tätä useimmissa tapauksissa mitenkään seuraamaan. Työkaluja tähän toki on, joten jos asiakkaat tätä vaatisivat, alkaisi tällaisia raportteja kyllä saamaan.

Päätelaitteiden kuormituksen mittaamiseen ei ole juurikaan tähän tarpeeseen tehtyjä työkaluja

Sama ongelmallinen tilanne vallitsee päätelaitteiden kohdalla. Moni moderni sivusto rasittaa todella paljon päätelaitteita, ja näin edistää sitä kierrettä, että käyttäjät joutuvat uusimaan puhelimiaan ja tietokoneitaan muutaman vuoden välein. Tätä selaimille ja päätelaitteen prosessorille syntyvää kuormitusta ei kuitenkaan tällä hetkellä osata erityisen hyvin mitata. Joitain työkaluja sentään on. Esimerkiksi Safari-selaimessa on sisäänrakennettu energiavaikutuksen mittaustyökalu, jolla voidaan verrata eri sivustojen energiankulutusta keskenään. Myös Googlen Chromen DevTools-työkalusta löytyy sovellusten suorituskykyä arvioivia työkaluja (Performance-osio DevToolsissa), joilla voidaan arvioida eri palveluiden resurssikuormittavuutta. Työkalut ovat kuitenkin ensisijaisesti tehty ongelmien selvittelyyn kehitysvaiheessa, eivät systemaattiseen tiettyjen tavoitearvojen seurantaan.

Tilanne on erityisen ongelmallinen siksi, että järkevä mittaus edellyttäisi kaikkien osa-alueiden huomioimista. Jos mittaamme vain yhtä aluetta, voi tilanne pahentua toisella osa-alueella. Esimerkiksi jos saisimme hyvät mittarit palvelinkuormituksen mittaamiseen, voisivat koodarit vain siirtää enemmän laskentaa tehtäväksi käyttäjien päätelaitteille, emmekä me pystyisi tätä mittaamaan kovin helposti.

Esimerkiksi kilpailuttamisen ja hyvän ostamisen näkökulmasta olisi ehdottoman tärkeätä pystyä mittaamaan näitä kaikkia kolmea osa-aluetta: palvelinkuormitusta, tiedonsiirron määrää ja päätelaitteiden kuormitusta. Ennenkuin osaamme mitata näitä kaikkia kolmea, on hyvin vaikea laskea kokonaiskuormitusta nykyaikaiselle web-palvelulle.

Toisaalta, mitkä olisivat edes järkevät raja-arvot eri osa-alueille? Paljonko on asiallinen palvelinkuormitus per web-sivu? Paljonko on päätelaitteen järkevä energiankulutus per sivulataus? Tätä keskustelua ei oikeastaan ole edes aloitettu.

Mitä voi tehdä juuri nyt?

Onneksi aika paljon voi tehdä, vaikka tarkkoja mittareita ei olisikaan käytössä. Esimerkiksi palvelinten kohdalla voi vaatia, että palvelinympäristöt käyttävät uusiutuvaa energiaa. Tällainen vaatimus voisi jo olla esimerkiksi julkishallinnossa perusvaatimuksena, koska sellaisia palvelinympäristöjä löytyy jo todella paljon, jotka ilmoittavat saavansa kaiken energian uusiutuvista lähteistä. Jos tällainen vaatimus yleistyisi, alkaisi se todennäköisesti myös lisäämään tällaisten ympäristöjen saatavuutta markkinoilta. Esimerkiksi kotimainen UpCloud kertoo kaikista palvelinkeskuksistaan niiden energianlähteen.

Palvelinympäristöjen osalta on myös syytä varmistua, että hyödyntää virtualisoitua kapasiteettia, jossa oman sivuston tarpeisiin ei varata liiallisesti jatkuvasti käynnissä olevaa kapasiteettia. Web-palveluiden kuormitus on hyvin vaihtelevaa, ja suurimmaksi osaksi palvelut eivät vaadi kovin raskasta rautaa pyöriäkseen, kun käyttäjiä on vähän. Tällöin on aivan ehdottoman tärkeätä, että palvelu pyörii joustavassa palvelinympäristössä, joka osaa luovuttaa kapasiteettia muille palveluille silloin kun ei itse sitä tarvitse. Ihanteellisestihan virtualisoitu ympäristö ajaa itsensä osittain alas silloin kun sitä ei tarvita, jolloin energiankulutus voi olla jopa lähes nollassa, silloin kun omaa web-palvelua ei kukaan käyttäjä tarvitse.

Web-palveluiden nopeutta kannattaa myös vaatia, vaikka se ei yksinään olekaan täydellinen mittari. Jos esimerkiksi asettaa jokaiselle sivulle ”time to interactive” -mittarin viiteen sekuntiin, varmistaa jo tällä yksinään palvelun olevan hyvin nopea ja miellyttävä käyttäjille, ja todennäköisesti myös parantaa energiatehokkuutta merkittävästi, niin palvelinpäässä kuin käyttäjien päätelaitteissa.

Sivuston keskeiset nopeusmittarit kannattaa myös esitellä sisällöntuottajille, ja opettaa heidät käyttämään esimerkiksi Googlen Lighthouse -työkalua, joten he voivat itsekin mitata omien sivujensa nopeutta ja sivujen vaatimaa tiedonsiirtokapasiteettia. Näin kaikki sivuston rakentamiseen osallistuvat tahot sitoutuvat energiatehokkuuteen, ja pyrkivät omalta osaltaan optimoimaan niitä asioita joihin, voivat vaikuttaa. Omalta tekniseltä kumppanilta voi jopa vaatia tällaisen energiatehokkuuteen tähtäävän optimointikoulutuksen järjestämistä omille sisällöntuottajille.

>> Katso puheenvuoro YouTubesta: Web-palveluiden hankinnat ja energiatehokkuus käytännössä (Perttu Tolvanen, 1.12.2021)

Lue palveluistamme Pyydä tarjous

PS. Sinua voisi kiinnostaa tulossa oleva ilmainen webinaarimme: Verkkosivustojen personointi suhteessa tietosuojaan ja evästeohjeistuksiin (27.3.2024 klo 10:00). Ilmoittaudu webinaariin

Perttu Tolvanen

KTM Perttu Tolvanen on digitaalisten palveluiden suunnittelun, arkkitehtuuriratkaisujen ja kumppanivalintojen asiantuntija. Perttu konsultoi asiakkaita hankkeiden valmistelussa ja vaatimusten määrittelyssä sekä tukee asiakkaita teknologia- ja toteuttajakumppaneiden valinnassa.

Pertulla on yli viidentoista vuoden kokemus erilaisista web-, extranet- ja intranet-projekteista mm. projektipäällikön, suunnittelijan ja konsultin rooleissa. Aiemmassa työhistoriassaan Perttu on toiminut tilaajana ja projektipäällikkönä suuressa mediayhtiössä, sisällönhallintajärjestelmien konsulttina isossa IT-alan yrityksessä sekä itsenäisenä, riippumattomana konsulttina omassa yrityksessään. Hän on myös tunnettu kouluttaja ja bloggaaja. Perttu on myös päätoimittaja web-aiheisessa Vierityspalkki.fi -blogissa.

Tietosivustot

Autamme laajojen tietosivustojen suunnittelussa, määrittelyssä ja kilpailuttamisessa. Muotoilemme konseptin, tietorakenteet, käyttökokemuksen ja toiminnot hyötypalveluksi, jota on miellyttävä käyttää, helppoa ylläpitää ja kustannustehokasta kehittää koko elinkaarensa ajan.

Lue palveluistamme

Pyydä tarjous

North Patrol lyhyesti

Meitä on kymmenen konsulttia, kaikki kokeneita suunnittelijoita tai teknologia-asiantuntijoita. Vuosittain meillä suunnitellaan ja valmistellaan yli 50 erilaista digipalvelu-uudistusta ja tietojärjestelmähanketta. Asiakkaamme ovat olleet erittäin tyytyväisiä työhömme (arvosana 9,5/10), ja monet heistä palaavat asiakkaiksi yhä uudestaan.

Lue lisää meistä

Miten erotumme kilpailijoistamme?

  • Digipalveluiden suunnitteluun erikoistuminen

    Olemme erikoistuneet digipalveluiden laadukkaaseen suunnittelutyöhön ja vaatimusmäärittelyyn. Missiomme on auttaa asiakkaita onnistumaan hankkeissaan luomalla mahdollisimman hyvät lähtökohdat toteutusvaiheelle – oli sitten kyse ketterästä toteutuksesta omalla tiimillä tai kumppanin kanssa tehtävästä hankkeesta tai julkisesti kilpailutettavasta urakasta.

  • Emme myy koodausta emmekä lisenssejä

    Moni teknologiakonsultti suosittelee asiakkailleen teknisiä ratkaisuja, joita sama talo myös toteuttaa. Meillä tätä vinoumaa ei ole, koska meiltä ei voi ostaa koodausta tai lisenssejä eikä meillä ole riippuvuuksia teknologiatoimittajiin. Näkökulmamme ohjelmistomarkkinaan on laaja-alainen. Tavoitteena on aina löytää asiakkaalle parhaiten soveltuva ohjelmistoratkaisu, oli se sitten räätälöity ratkaisu, saas-palvelu, avoimen lähdekoodin alusta tai näiden yhdistelmä.

  • Realistisuus ja kaukonäköisyys

    Suunnittelemme digipalveluiden palvelukonsepteja, toteutustapoja ja arkkitehtuureja, jotka kestävät aikaa ja jatkokehittämistä. Me painotamme ratkaisujen toteutuskelpoisuutta, hyvien kumppaniehdokkaiden löytymistä ja kustannusten ennustettavuutta.

Siirry takaisin sivun alkuun