FinOps SQL Server-datamigraatioissa

Jani Savolainen

FinOps, eli Financial Operations on määritelmänsä mukaan ”kehys ja kulttuurikäytäntö, joka keskittyy taloudellisen vastuun tuomiseen pilvimenoihin tavalla, joka tasapainottaa kustannuksia, operatiivista tehokkuutta ja laatua.” FinOpsin avulla monialaiset tiimit, kuten rahoitus, suunnittelu, tuote ja toiminnot, tekevät yhteistyötä hallitakseen pilvikustannuksia tehokkaasti ja maksimoidakseen liiketoiminnan arvon. Käsitteeseen liittyy eräänlaisena sivutuotteena myös vastuullisuusnäkökulma (=sustainability). Huom! FinOpsia voidaan tehdä myös On-premisessä datamigraatioiden yhteydessä.

Datamigraatiot ovat tyypillisesti mittavia, monialaista osaamista vaativia hankkeita, joilla on merkittävä impakti bisnekseen. Datamigraatio on prosessi, jossa valitaan, valmistellaan, poimitaan sekä mahdollisesti muunnetaan tietoja ja siirretään ne pysyvästi dataympäristöstä toiseen. SQL Server-alustojen datamigraatio voi tapahtua useista syistä, kuten palvelinten tai tallennuslaitteiden vaihto, konsolidointi sekä datakeskuksen siirto on-premisestä julkipilveen, kuten Microsoft Azure. Kustannussyyt sekä niiden läpinäkyvyys, tietokannan tarve olla lähellä sovelluksia (pilveen viedyt sovellukset), tietoturva sekä operatiivinen tehokkuus ovat keskeisiä draivereita Azureen mentäessä. Kuitenkin, tietoalustan kustannukset eivät ole aina automaattisesti julkipilvessä edukkaampia kuin on-premisessä, eritoten jos FinOps-osuutta ylenkatsotaan.

SQL Server-datamigraatiot suoritetaan yleensä siten, että ne on mahdollisimman automatisoituja, mikä vapauttaa henkilöresursseja toisteisista rutiineista, ja jotta manuaalisessa toisteisessa työssä helposti tapahtuvia virheitä voitaisiin välttää. Vaikka migraatiot ovatkin usein pitkälle automatisoituja, niitä tulee monitoroida ja migraatioiden onnistumiset tulee aina verifioida huolellisesti: ”What goes out, must come in”.

FinOpsin osa-alueet

FinOps voidaan jakaa viiteen eri osa-alueeseen:

  • Näkyvyys ja vastuullisuus
  • Kustannusoptimointi
  • Operatiivinen tehokkuus
  • Tehokkaat tiimit
  • Datalähtöinen päätöksenteko

Näkyvyydellä ja vastuullisuudella tarkoitetaan kustannusten reaaliaikaista läpinäkyvyyttä, ennustettavuutta, sekä kontrollia eri sidosryhmien välillä.

Kustannusoptimoinnin tavoitteena on saavuttaa säästöjä ja parempi TCO ilman, että palveluiden suorituskyvystä tai saatavuudesta tingitään. Tähän liittyy mm. sellaisia käsitteitä kuin oikein mitoittaminen (right-sizing), konsolidointi ja tarvelähtöinen dynaaminen skaalaus, mikä on julkipilven, kuten Azure, eräitä etuja.

Operatiivinen tehokkuus tarkoittaa sitä, että kustannusten seuranta on jatkuvaa ja kattavaa siten, että muuttuviin tarpeisiin kyetään reagoimaan nopeasti.

Tehokkaat tiimit tarkoittaa, että datainsinöörit suunnitellessaan sekä jatkokehittäessään data-alustaa ymmärtävät ja hallitsevat arkkitehtuurin ja konfiguraatioiden vaikutuksen data-alustan kustannuksiin. Tämä jakaa osaltaan kokonaiskustannusten vastuuttamista.

Datalähtöinen päätöksenteko FinOpsin avulla perustuu luotettavaan dataan, jonka avulla organisaatiot voivat paremmin ennakoida ja hallita kustannuksiaan.

FinOpsin rooli datamigraatioissa

FinOpsilla on merkittävä rooli datamigraatioissa sekä eritoten organisaatioiden siirtäessä työkuormia ja dataa paikallisista ympäristöistä pilveen. Kun otetaan huomioon pilvimigraatioiden kustannukset, monimutkaisuus ja taloudelliset vaikutukset, FinOps voi tarjota puitteet näiden kustannusten tehokkaalle hallinnalle ja optimoinnille.

FinOps jakaantuu datamigraatioissa seuraaviin osa-alueisiin:

  • Migraatiota edeltävä suunnittelu ja kustannusarvio
  • Migraation aikainen kustannusoptimointi
  • Migraation jälkeinen kapasiteetti- ja kustannusoptimointi
  • Hallinto ja vastuullisuus
  • Dataohjatut oivallukset ja raportointi

Migraatiota edeltävä suunnittelu ja kustannusarvio

Migraatiota edeltävä suunnittelu ja kustannusarvio jakaantuu seuraaviin alakohtiin:

  • SQL Server -performanssidatan monitorointi
  • Budjetointi, ennustaminen ja kapasiteettisuunnittelu
  • Tavoitteiden (KPI) määrittäminen

SQL Server -performanssidata tulee kerätä kaikilta SQL Servereiltä, instansseilta sekä tietokannoilta, jotta kapasiteettisuunnittelua ja konsolidointia voidaan tehdä kattavasti data-alustan kaikilla tasoilla. Tähän sopivia tuotteita ovat SQL Serverien monitorointiin ja kapasiteettisuunnitteluun erikoistuneet työkalut, kuten SQL Governor, jolla voidaan myös tunnistaa käyttämättömät tietokantaresurssit jo projektin alkuvaiheessa, ettei niitä turhaan siirretä uuteen ympäristöön tuottaen lisäkuluja.

Budjetointi ja ennustaminen tapahtuu parhaiten yhdistäen kokemusperäistä tietoa aiemmista vastaavista migraatioista sekä arvioimalla kapasiteettitarpeet laskemalla eri skenaarioita loogisille osa-alueille, kuten kehitys-, testi- ja tuotantoympäristöt liiketoiminta-alueittain.

Kapasiteettisuunnittelussa voidaan soveltaa seuraavia metodeja palvelinklustereihin, palvelimiin, instansseihin tai liittyen:

  • Lift and Shift (siirretään työkuormat uuteen ympäristöön ”as is”)
  • Right-sizing eli palvelinten tai Managed instanssien uudelleenmitoittaminen
  • Serveritason konsolidointi (optimoidaan hostien kokonaismääärä)
  • Instanssitason konsolidointi (optimoidaan hostattujen virtuaalikoneiden, Managed Instance poolien tai fyysisten palvelinten määrää)
  • Tietokantatason konsolidointi (harmonisoidaan työkuormat jopa instanssitasolle saakka)

Tavoitteiden määrittämisessa määritelläänbudjetti ja rahalliset KPI:t, joiden puitteissadatamigraation on kokonaisuudessaan toteuduttava ja haluttu ROI saavutetaan.

Migraation aikainen kustannusoptimointi

FinOps-tiimit seuraavat migraatiokustannuksia reaaliaikaisesti, sekä tunnistavat mahdolliset odottamattomat kustannukset tai resurssipiikit pitääkseen menot kurissa. FinOpsin parhaat käytännöt sekä kapasiteettisuunnitteluohjelmistot kuten SQL Governor auttavat sopeuttamaan resurssien käyttöä merkittävästi historiaan pohjautuvien ennusteiden sekä reaaliaikaisten tarpeiden mukaan, välttäen palveluiden ylitarjontaa. Saattaa kuitenkin olla, että esimerkiksi SQL Serverin versionoston myötä, varsinkin jos edellinen versio on jo vanha (2008R2 – 2016), uudella palvelualustalla joudutaan optimoimaan uutta tietokantainstanssia, kuten esimerkiksi säätämään instanssi- ja tietokantatason konfiguraatioita, kuten Max degree of parallelism ja Cost threshold for paralellism -asetuksia. Muut optimoinnit on syytä jättää migraation jälkeiseen aikaan, kun telemetriikkaa ja SQL Serverin käyttöstatistiikkaa on kylliksi kerätty uudesta ympäristöstä. Tosin Query Store on syytä kytkeä päälle heti migraation jälkeen.

Pilvialustoissa on myös mahdollista käyttää erilaisia säästösuunnitelmia ja sitoumuksia pitkäkestoisiin migraatioihin liittyen, jolloin säästöjä saadaan lisää.

Migraation jälkeinen kapasiteetti- ja kustannusoptimointi

Migraation jälkeen FinOps-tiimi varmistaa, että kustannukset kohdistetaan tarkasti eri osastoille tai projekteille, jotta jokainen tiimi ymmärtää omat kulunsa. FinOps-tiimi auttaa myös tunnistamaan mahdollisesti jäljelle jääneet käyttämättömät resurssit, sekä helpottaa niiden poistamista tarpeettomien kustannusten välttämiseksi. FinOps-tiimi pyrkii jatkuvasti optimoimaan resursseja uudessa pilviympäristössä varmistaen, että työkuormat pysyvät kustannustehokkaina ajan mittaan.

Yleensä ensimäisen kerran 1 kokonaisen kuukauden (=bisnessykli) jälkeen migraatiosta, on erinomaisen tärkeää benchmarkata uuden tietokantaympäristön suorituskyky palvelin-, instanssi- ja tietokantatasolla verrattuna vanhaan ympäristöön. Esimerkiksi SQL Governor-tuotteesta löytyy benchmarking-työkalu, jonka KPI:den ja graafien avulla näkee helposti systemin pullonkaulat sekä edistysaskeleet. Mikäli optimointitarpeita ilmenee, voidaan SQL-alustaa optimoida esimerkiksi pakottamalla tietokantainstanssilla paremmin performoivia execution plänejä Query Storesta käsin, tai jopa ottamaan Legacy Cardinality Estimator käyttöön ongelmatietokantojen osalta. Ei ole myöskään tavatonta, etteikö joskus jouduttaisi kirjoittamaan jotakin T-SQL-koodia hieman uusiksikin tai tunkkaamaan indeksointia, mikäli se on sovellustoimittajan puolelta mahdollista. Nämä ongelmat paljastuvat usein vähitellen jo migroiduissa ympäristöissä, joten joitakin näitä toimenpiteitä, eritoten indeksointiin ja koodioptimointiin liittyen, päästään tekemään vasta migraation jälkeen. SQL Governor tarjoaa hyvän työkalukokoelman myös monien näiden ongelmien selvittämiseen.

Hallinta ja vastuullisuus

Migraation aikana FinOps-tiimi voi laatia käytäntöjä, kuten ohjeita hyväksyttävistä menoista, resurssikulutuksesta ja tietojen poistumisrajoituksista, varmistaakseen kustannusten hallinnan. Edelleen; tarjoamalla reaaliaikaisen näkyvyyden migraatiokustannuksiin FinOps antaa suunnittelutiimeille mahdollisuuden tehdä kustannustietoisia valintoja ja olla vastuussa menoistaan.

Dataohjatut oivallukset ja raportointi

FinOps tarjoaa säännöllisiä raportteja ja dashboardeja, joiden avulla sidosryhmät voivat ymmärtää migraatiokustannuksia, seurata edistymistä suhteessa budjettiin sekä varmistaa organisaation taloudellisen tehokkuuden. Esimerkiksi Azuressa laskutuksen telemetriikkatiedot ja ennusteet olemassaolevan konfiguraation osalta on saatavissa ”out of the box”. Tämä yhdistettynä AI-pohjaisen SQL Governor-tuotteemme kykyyn laskea olemassa olevien tietokantojen, instanssien ja virtuaalikoneiden kapasiteettitarve-ennusteita ja konsolidointimahdollisuuksia eri konfiguraatioilla pitkällä aikavälillä saadaan todella tehokas kombinaatio, jonka pohjalta saadaan optimoitua TCO:ta parhaalla mahdollisella tavalla.

Lift and Shift – myrkkyä TCO:lle

Pieni varoituksen sana ”Lift and Shift”:iin liittyen, se kun ei ole pelkkää ruusuilla tanssimista. Mitä suurempi tietokantaympäristö, sitä enemmän asioita menee tämän ajattelumallin myötä vääjäämättä pieleen: Suuri osa tietokannoista ylimitoittuu tai alimitoittuu: Ylimitoittuneet tietokannat eivät performoi tarpeeksi hyvin, ja näin ollen generoivat epäkäytettävyystilanteita sekä piilokustannuksia. Alimitoitetut tietokannat taasen tulevat suotta kalliiksi varaten ylimääräistä kapasiteettia eritoten Azure VM:issä ja Managed Instansseissa, eikä Azure sql:n Hyperscalekaan ilmaiseksi tule.

Lift and Shiftin idea sinällään on hyvä, että minimoidaan näkyvät migraatiokustannukset ja time-to-solution, mutta se voi aiheuttaa valtavasti päänsärkyä esimerkiksi siirryttäessä julkipilveen kuten Microsoft Azure. Vaikka Azureen meneminen Lift  and Shiftillä voi kuulostaa äkkiseltään helpolta, ei se sitä käytännössä kuitenkaan usein ole: Kun joudutaan vaihtamaan tallennuskapasiteetin service tiereitä, arvuuttelemaan virtuaalikoneen kokoa tai tyyppiä yhdestä toiseen, tai törmätään korkeamman käytettävyyden konfiguraatioon, jota ei voi käytännössä downgreidata jälkikäteen, ollaan ongelmisssa – tämänkin tiedon tulee perustua ennakointikykyiseen telemetriikkatietoon, jotta ratkaisu on kestävällä pohjalla. Pelkkä peräpeiliin tuijottaminen ei riitä.

Lisäksi syntyy epäkäytettävyystilanteita sekä uudelleenoptimoinnin / -konfiguroinnin aiheuttamia käyttökatkoja. Tällöin rahaa ja aikaa palaa samalla, kun palveluiden SLA:t alenevat. Toki palvelimet, instanssit ja tietokannat voidaan myös optimoida migraation jälkeen, mutta tämä prosessi ottaa aikaa aivan yhtälailla kuin ennen migraatiota, jolloin myös investoinnin kokonaiskustannukset ovat iso kysymysmerkki. Palvelun käyttöönoton jälkeen et varmasti halua ylimääräisiä käyttökatkoja bisneskriittisiin järjestelmiisi, etenkään terveydenhuoltoalalla, teollisuuden piirissä, tai muissa aikakriittisissä ympäristöissä.

Vaihtoehto Lift and Shiftille osana vaatimusmäärittelyä

Joskus Lift and Shift on kuitenkin ainoa ratkaisu, koska tähän voi liittyä politiikkaa ja kaupallisia reunaehtoja, sekä ajallisia paineita. Joka tapauksessa, aina tulisi tehdä perusteellinen vaatimusmäärittely datamigraatiohankkeeseen liittyen,ennen kuin lähdetään tekemään siirtoa uuteen ympäristöön. Tässä läpikäydään organisaation tarpeet läpi mukaanlukien bisnesimpaktianalyysi, kohdearkkitehtuuri- ja kapasiteettisuunnitelma, sekä säästölaskelma ja jatkuvasti päivittyvä riskianalyysi, sekä mietitään migraatiopolku eri osakokonaisuuksille, joka tyypillisesti kattaa joukon valmistelevaa performanssioptimointia, right-sizingia sekä työkuormien konsolidointia palvelin-, instanssi- ja tietokantatasolla. Näin osutaan heti maaliin erittäin suurella prosentilla ja Lift and Shift -ongelmilta vältytään.

Yhteenveto

FinOps kehittää datamigraatioihin liittyen vahvaa taloudellista selkärankaa ja pitää budjetin kurissa eritoten julkipilveen kuten Azure siirryttäessä. Palkintona säästetään resursseja, kuten rahaa, energiaa, ympäristöä. Kestävästi, pala kerrallaan. Oletko kiinnostunut SQL Governorista, FinOpsista ja datamigraatioista? Ole hyvä ja ota yhteyttä!

Jani K. Savolainen

jani.savolainen@dbproservices.fi

0440353637

VP & Chairman

DB Pro Services Oy

Ota yhteyttä