Tekoälyn hyödyntäminen pilvipalveluiden optimoinnissa – AI ja FinOps

Pilvipalveluiden kustannustehokkuus on merkittävä tekijä yrityksille ja muille organisaatioille, jotka siirtyvät yhä enemmän pilvipohjaisiin ratkaisuihin. Kustannusten hallinta ja optimointi ovat avainasemassa, kun pyritään varmistamaan, että investoinnit pilviteknologiaan tuottavat toivotun kaltaisia tuloksia.

Kustannusten hallinta keskeisenä teemana

Tuoreiden tutkimusten perusteella pilvipalveluiden kustannusten hallinta (FinOps) ohitti tietoturvan merkittävimmäksi koettuna pilvipalveluiden käyttöön kohdistuvana haasteena1.

Netum on panostanut vahvasti sekä tekoälyratkaisuihin että pilvipalveluiden kustannustehokkaaseen hallintaan tuottaakseen parhaan mahdollisen arvon asiakkailleen. Netum on virallinen AWS-yhteistyökumppani ja osallistunut yhteiskunnallisesti merkittävien AWS-alustalle kehitettyjen ratkaisujen toteutukseen. Netumin asiantuntijat osallistuivat hiljattain pohjoismaiden AWS Stockholm Summit 2024 -pilvipalvelutapahtumaan ja valtionhallinnon päätapahtumaan Valtio Expoon, joista jälkimmäisessä esittelimme näkemyksiämme pilvipalveluiden kustannustenhallinnan erityispiirteistä julkisen sektorin hankkeissa. Erilaiset tekoälyratkaisut ja FinOps olivat keskeinen teema useissa AWS Summit -tapahtumassa pidetyissä esityksissä ja työpajoissa. Tapahtumassa esiteltiin tuoreita case-ratkaisuja, joita osallistujat voivat sen jälkeen muokata omiin projekteihinsa asiakkaidensa tarpeiden mukaisesti.

Oikealla mitoituksella merkittävimmät kustannussäästöt

Kokemus ja tutkimukset viittaavat siihen, että virtuaalipalvelimet ovat usein työkuormaan nähden ylimitoitettuja ja merkittävä osa kapasiteetista menee hukkaan. Esimerkiksi Cast AI on tutkimuksessaan päätynyt siihen, että julkipilvipalveluissa keskimääräinen palvelimen prosessorikuorma olisi vain 13%2. Koska suurin osa pilvipalveluiden kustannuksista muodostuu edelleen virtuaalipalvelimista ja palvelimen hinta määräytyy useimmiten suoraan sen koon perusteella, palvelimien mitoitus oikein mahdollistaa useimmiten myös merkittävimmät kustannussäästöt. Netumin asiantuntijat arvioivat parhaillaan tekoälyratkaisun käyttöä virtuaalipalvelinten mitoituksen arvioinnissa ja sen mahdollisuuksia alentaa asiakkaiden pilvipalveluiden käytöstä aiheutuvia kustannuksia.

Pilvi-infrastruktuuri koodina

Yleinen käytäntö pilvipalveluiden toteutuksessa on jo pitkään ollut pilvi-infrastruktuurin määrittely ohjelmakoodina. Koodina konfiguroidaan esimerkiksi virtuaalipalvelimet ja erilaiset verkkokomponentit. Pilvi-infrastruktuuri luodaan ja sitä hallinnoidaan siten  pitkälti samaan tapaan kuin sovellukset. Tämä infrastruktuuri koodina -lähestymistapa (Infrastructure as a Code, IaC) on edellytyksenä myös AWS Summit Stockholm 2024 -tapahtumassa esitellylle esimerkkiratkaisulle, jossa AWS CloudFormation -työkalua käyttävän AWS infrastruktuurin muutosten arviointiin käytettiin teköälyratkaisua3. Kuten sovelluskehityksessäkin, pilvikehittäjät tekevät pilviresursseja koskevat muutokset GitHub-palveluun sijoitettuun lähdekoodiin ja tekevät muutoksista pull request -pyynnön, joka vastuuttaa toisen kehittäjän katselmoimaan ja hyväksymään muutokset. Vasta hyväksytyn katselmoinnin jälkeen muutos voidaan viedä eteenpäin eri ympäristöihin.

Yksi pilvipalveluiden kustannusten näkökulmasta erityisen merkittävä esimerkki infrastruktuuria koskevasta koodimuutoksesta on virtuaalipalvelimen koon kasvattaminen. Vertaiskatselmoinnin lisäksi koodimuutokset analysoidaan Anthropic Claude-3-Sonnet -tekoälymallin avulla. Malli käyttää muutoksia arvioidessaan apuna metriikkaa, kuten palvelimen historiallista prosessorikäyttöä, päätelläkseen sen, ovatko ehdotetut muutokset kustannustehokkaita. GitHub-palveluun palautetaan vertaiskatselun tekevälle henkilölle pull request -pyynnön yhteyteen päätöksenteon tueksi kommentti, joka kertoo tekoälyn suorittaman analyysin lopputuloksen.

Alla olevassa kaaviossa asia on esitetty yksinkertaistettuna ja käytetyt AWS-palvelut on kuvattuna tarkemmin.

  1. Herätteen antaa koodimuutosten ja pull requestin seurauksena syntyvä webhook. AWS API Gateway on täysin hallinnoitu palvelu. Sen avulla voidaan helposti julkaista, ylläpitää ja valvoa tarvittava rajapintaratkaisu, johon webhook välitetään. AWS Lambda on tapahtumavetoinen serverless-funktio.
  2. API Gatewayn kautta käynnistyvä ensimmäinen funktio (AuthAndQueue) varmentaa webhookin, ja siirtää sen tiedot eteenpäin viestinä SQS-jonoon (AWS Simple Queue Service). SQS on täysin hallinnoitu viestijonopalvelu, joka mahdollistaa automaattisesti skaalautuvan viestien lähettämisen, tallentamisen ja vastaanottamisen.
  3. Toinen funktio noutaa SQS-jonosta viestin ja noutaa sen tietojen perusteella kooditiedostot, joihin on ehdotettu koodimuutoksia. Sen jälkeen funktio tekee kutsun tekoälypalvelulle.
  4. Käytettävä tekoälypalvelu on Amazon Bedrock, joka mahdollistaa generatiivisen tekoälyn hyödyntämisen (GenAI) ja tarjoaa yhden rajapinnan kautta useita tekoälymalleja, ja monipuolisia työkaluja ja resursseja, jotka helpottavat sovellusten kehitystä ja optimointia. Tekoälyn päätöksiinsä tarvitseman metriikan tuottaa AWS CloudWatch -palvelu, joka tarjoaa reaaliaikaisen seurannan AWS-pilvipalveluiden ja sovellusten suorituskyvystä. Se mahdollistaa myös hälytysten asettamisen ja siten nopean reagoinnin tilanteisiin.
  5. Lopuksi GitHubin pull requestille palautetaan yhteenveto tekoälyn tuottamasta analyysista katselmoijan luettavaksi.

Tekoälyn turvin kohti älykkäämpää ja tehokkaampaa pilvipalveluiden käyttöä

Netum soveltaa kuvatun ratkaisun menetelmiä palveluidensa jatkuvassa kehityksessä tavoitteenaan tarjota asiakkailleen entistä kustannustehokkaammin toimivat pilvialustaratkaisut. Ratkaisu tarjoaa perustan pilvialustan kehitystä tai ylläpitoa koskevien GitHub pull requestien varmentamiseen ja perusarkkitehtuuriin. Yksi jatkossa ratkaistavia seikkoja on se, että YAML- tai JSON-muodossa kirjoitettavan AWS CloudFormation -koodin käyttäminen pilvi-infrastruktuurin määrittelyssä ainakin sellaisenaan on vähenemään päin, ja ratkaisun soveltaminen edellyttää siksi jatkokehitystä. CloudFormationin sijaan suositaan aidoilla ohjelmointikielillä toteuttavia ratkaisuja, joista esimerkkejä ovat Pulumi ja CDK. Huomioitava on myös Terraform, jolla on kokonaan oman HCL-syntaksinsa.

Yksityiskohtina edellisten vuoksi muokkausta vaativat ainakin tekoälyn promptaus (kehotteiden kirjoittaminen), millä kerrotaan tekoälylle, mitä sen halutaan tekevän. Tutkintaa vaatii lisäksi se, miten tekoäly suoriutuu muutosten tunnistamisesta mainittujen muiden IaC-työkalujen tapauksessa. Käytännön ratkaistava seikka on myös palvelimen id-tunnisteen noutaminen historiallista prosessorikäyttöä koskeviin kutsuihin, mikä vaatii muutoksia erityisesti Pulumin ja Terraformin tapauksissa, koska ne eivät käytä AWS CloudFormationia pilvipalveluiden tilan hallinnointiin.

Kuvattu lähestymistapa ei ainoastaan säästä aikaa ja resursseja, vaan myös edistää läpinäkyvyyttä ja perusteltuja päätöksiä pilvi-infrastruktuurin muutoksissa. Se osoittaa, kuinka tekoäly ja automatisoidut työkalut voivat parantaa pilvipalveluiden kustannustehokkuutta, mikä on erityisen hyödyllistä IaC-menetelmiä käyttäville kehittäjille. Tämä on tärkeä askel kohti älykkäämpää ja kustannustehokkaampaa pilvipalveluiden käyttöä.

 

Jos pilvipalvelujen optimointi kiinnostaa ja haluat aiheesta lisätietoja, ole yhteydessä, autamme mielellämme!

 

Tapani Höök,
Pilviarkkitehti, Netum Oy
tapani.hook@netum.fi