Milloin tietokanta-alustan modernisointi on perusteltua?

Jani Savolainen

Milloin tietokanta-alustan modernisointi on perusteltua?

Tietokanta-alusta kehittyy jatkuvasti sen myötä, kun organisaatioon tulee uusia sovelluksia, käyttäjiä ja lisää dataa. Yleensä juurisyynä on kasvava ja kehittyvä liiketoiminta, mutta myös stabiilimmissa tilanteissa tietokanta-alusta ja siihen kohdistuva kuormitus voi ajan saatossa muuttua merkittävästikin. Siten se alustakokonaisuus, joka aikanaan on rakennettu parhaiden käytäntöjen mukaisesti ja sen hetkisen kuormituksen pohjalta, ei välttämättä enää 3-4 vuoden jälkeen vastaakaan tämän päivän liiketoimintavaatimuksiin.

Tarve modernisointiin voi tulla myös versiotuen loppumisen myötä. Nythän olemme tilanteessa, jossa SQL Server 2008 ja 2008 R2 -versioiden tuki loppuu tulevana kesänä (9.7.2019). Microsoftin linjaus asiasta on, että ”tuen päättyminen tarkoittaa, että säännöllisten tietoturvapäivitysten julkaiseminen loppuu. Kyberhyökkäykset yleistyvät ja kehittyvät jatkuvasti. Sovellusten ja datan käyttäminen ilman tukea jäävillä ohjelmistoversioilla voi aiheuttaa merkittäviä tietoturva- ja vaatimustenmukaisuusriskejä. On erittäin suositeltavaa, että asiakkaat päivittävät järjestelmänsä niiden uusimpiin versioihin. Se takaa parhaan suorituskyvyn ja tehokkuuden sekä säännölliset tietoturvapäivityksen”.  

Liiketoiminta-, tai tietoturvakriittisten järjestelmien yhteydessä ei pidä käyttää vanhentuneita, ohjelmistotoimittajan tuen piiristä pudonneita tietokantaversioita. Tai jos käyttöä kuitenkin jatketaan niin sen taustalla tulee olla tietoinen päätös ja siihen liittyvä riskiarviointi on tehtävä.

Microsoftin tuotetuen loppuminen vaikuttaa myös sovellustoimittajiin: uudet sovellukset eivät välttämättä toimi vanhan SQL Server -version kanssa, ja tällöin liiketoiminnan sovelluspäivitys voi muuttua laajemmaksi hankkeeksi kantakerroksesta alkaen.

Uudet SQL Server -versiot sisältävät merkittäviä parannuksia

Jos edellä oleva olikin hieman peloittelua niin sitten positiivisiin puoliin, joita modernisoinnilla on saatavilla. SQL Server 2008R2 on oivallinen kantamoottori, mutta merkittävää kehitystä on vuosikymmenen aikana tapahtunut. Uudet versiot tuovat mukanaan parannuksia ja mahdollisuuksia data-alustan kehittämiseen on valtava määrä. Ja mikä parasta, monet uudet ominaisuudet eivät vaadi Enterprise -versiota vaan ne on tuotu myös Standard -versioon.

SQL Server -versiopäivitys

Muutamia esimerkkejä uudempien SQL Server -versioiden sisältämistä parannuksista:

  • Ylläpitäjiä ilahduttavia ominaisuuksia ovat parannukset vikasietoisuuteen ja järjestelmän valvontaan sekä suorituskykyyn. AlwaysOn Availability Groupit mahdollistavat vikasietoisuuden yksinkertaisten DAS-ratkaisujen (Direct Attached Storage) avulla. Korkean käytettävyyden ratkaisun voi toteuttaa ilman mutkikasta infraa vaativaa SAN -ratkaisua, FibreChannelia, iSCSI -verkkoja tai virtualisointialustan raakalevyjä.
  • QueryStore kerää automaattisesti tietoja kyselyistä ja niiden suorituskyvyssä tapahtuneista muutoksista. Tämä helpottaa merkittävästi järjestelmän suorituskyvyn seuraamista, eikä erillistä valvontasovellusta välttämättä tarvita.
  • Resource Governor mahdollistaa työkuormien jaottelun ja sekä levy- että prosessoriajan kiintiöinnin. Esimerkiksi pitkille analysointi- ja ETL -latausajoille voidaan asettaa kiintiö, joka hillitsee niiden vaikutusta muuhun käyttöön.
  • Valtaosa tietokantapalvelimista kärsii levyjen hitaudesta, ja tämä korostuu iäkkäämmässä ympäristössä jossa myös levyjärjestelmä on vuosia vanha. Tyypillistä on myös suorittimien suhteellisen suuri joutenolo. Kun palvelin odottaa tietojen hakua levyltä, ei prosessoreillakaan ole juuri tekemistä. Tässä SQL Server tarjoaa uusia mahdollisuuksia: käytetään vähän suoritinaikaa datan pakkaamiseen ja purkamiseen lennossa. Tällöin levyn käsittely vähenee ja suorituskyky paranee. Rivi- ja sivutason pakkaaminen ovat olleet aiemmin Enterprise -version herkkuja, mutta SQL Server 2016 SP2 toi ne myös standardiversioon.
  • Columnstore index sekä pakkaa että ryhmittelee tiedot sarakkeittain perinteisen rivityksen sijaan. Tämä mahdollistaa analytiikkalaskennassa merkittäviä suorituskykyparannuksia.
  • Sovelluskehittäjien aika on yrityksessä merkittävä menoerä. Heitä ilahduttavatkin uudet ominaisuudet, kuten R- ja Python -tuki, natiivituki Json -tietorakenteille, uusia T-SQL -funktoita merkkijonojen käsittelyyn,  DML-toimenpiteisiin sekä viimeinkin surullisen kuuluisan String or binary data would be truncated -virheilmoituksen paremmat diagnosointimahdollisuudet.

Kuinka onnistut tietokanta-alustan modernisointihankkeessa

Modernisointi on järkevää aloittaa nykyisen alustan auditoinnilla. Auditoinnilla selvitetään resurssivaatimukset (CPU, muisti ja levytila), jotta pystytään varmistamaan uuden alustan resurssien riittävyys vuosiksi eteenpäin  ̶   eli tyypillisesti 4-5 vuodeksi. Resurssien tarve voidaan ennustaa seuraamalla nykyisen alustan resurssien käyttöä esimerkiksi kolmen kuukauden ajalta. Seurantaa voidaan tehdä käsipelillä tai käyttämällä siihen soveltuvaa ohjelmistoa, kuten SQL Governor. Mitä pidemmältä ajalta seurantaa tehdään sitä tarkempi ennuste tulevaisuuden tarpeista voidaan luoda.

SQL Governor uuden tietokanta-alustan suunnittelu ja optimointi

Modernisoinnissa tulee huomioida myös uuden alustan optimointi tulevan käytön vaatimuksiin. Tietokanta-alustan optimoinnin voi jakaa karkeasti kolmeen vaiheeseen; rauta/virtuaali-palvelimen optimointi, käyttöjärjestelmä-asetusten määrittely sekä itse SQL Server -asetusten optimointi. Jokaisen osa-alueen määrittely on tehtävä tarkoin, jotta vältytään tulevaisuuden suorituskykyongelmilta.

Siirtovaiheessa voidaan, ja kannattaakin, tehdä myös tietokantatason optimointia, muun muassa ottamalla käyttöön uuden SQL Server -version tuomia ominaisuuksia (Columnstore index, kompressointi jne..). Muutenkin on hyvä ottaa käyttöön parhaita tietokantatason käytäntöjä, kuten datan jakaminen useaan tiedostoon, suurten taulujen partitiointi, jne.

Uuden alustan käyttöönoton jälkeen on hyvä tehdä uusi auditointi noin kuukauden käytön jälkeen. Uudella alustalla esimerkiksi kyselyiden suorituspolut voivat olla hyvinkin erilaisia vanhaan verrattuna. Indeksien käyttö ja uusien indeksien tarve voikin olla hyvä selvittää.

Esimerkki onnistuneesta tietokanta-alustan uudistamisesta

Lopuksi käytännön esimerkki toteutetusta modernisointiprojektista, jossa DB Pro Servicen asiantuntijoilla oli merkittävä rooli.

Asiakkaamme Versowoodin modernisointiprojektissa uudistettiin sekä käyttöjärjestelmä- että tietokanta-alusta, tavoitteena kokonaisuus, joka vastaa tarpeisiin pitkälle tulevaisuuteen. Hankkeen lopputuloksena saavutettiin uusi tietokanta-alusta, jolla asiakas sai merkittäviä parannuksia tietokanta-alustan suorituskykyyn  ̶  parannukset vaihtelivat parhaimmillaan 40% ja 80 % välillä.

Kokonaisuudessaan projekti onnistui hyvin ja täytti tavoitteensa, joka oli saavuttaa tarpeisiimme optimoitu alustakokonaisuus, joka palvelee meitä useita vuosia”, totesi Versowoodin Antti Kari meille projektin jälkeen.

Häämöttääkö sinullakin tietokanta-alustan uudistamishanke edessäsi? Ota yhteyttä ja jutellaan, miten voimme olla avuksi!

DB Pro Services
Jani Savolainen, CEO

Mikko Hyvärinen, Principal Consultant, Data Platform
Panu Mäntylahti, Senior Database Administrator

Ota yhteyttä