Julkaistu 22.11.2024

Paikkatietopalvelut pilveen

Osa organisaatioista on luopunut viime vuosina konesaleistaan ja vienyt ylläpidettävät palvelunsa pilveen. Niistäkin, jotka eivät vielä ole siirtymää tehneet, pohtivat sitä. Tässä artikkelissa käymme läpi, miksi paikkatietopalveluita ylläpidetään pilvipalveluissa.

Mitä hyötyä pilvisiirtymästä on?

Miksi paikkatiedot kannattaa laittaa pilveen? “Minne muualle?” on nohevan ihmisen vastakysymys. 

Oikeastaan pilvipalvelun ainoa vaihtoehto on palveluiden ylläpito konesalissa. Jos organisaatiolla on oma konesali valmiina ja siellä on servereitä tyhjänä, niin palvelut voi pystyttää tietenkin sinne. Kaikilla näin ei tietenkään ole. 

Pilvialustat sen sijaan ovat helppo tapa testata esimerkiksi GeoServerin uusinta versiota muutamalla klikkauksella. Jos nopeutta kaivataan, pilvialustat tarjoavat ehdottomasti nopeimman tavan aloittaa uusia palveluita.

Jos palvelut on aloitettu pilvessä ja todettu, että niillä ei ole niin valtavaa liikennemäärää, että oman konesalin hankinta kannattaa, on kustannustehokasta jatkaa palvelun ylläpitoa pilvessä. Jos taas liikennemäärät kasvavat todella korkeiksi, niin kannattaa tehdä laskelmat, tulisiko oma konesali kuitenkin halvemmaksi. Pilvipalveluiden hinta nimittäin riippuu käytön määrästä (ja muista muuttujista, joista lisää tuonnempana). 

Palvelu konttiin ja kontti pilveen

Pilvipalvelut tarjoavat usein palvelimien lisäksi muitakin palveluita. Palvelun voi toteuttaa esimerkiksi käyttäen kontteja palvelimien sijaan. Konttitoteutus voi myös laskea palvelun hintaa.

Monista ohjelmistoista on olemassa kontitetut versiot, jotka voi käynnistää yhdellä komennolla joko pilveen tai omalla koneella. Kontti tarkoittaa sitä, että sen sijaan että olisi kokonainen kone, jossa on ohjelmisto, koneella on käynnissä virtuaaliympäristö kuten Docker. Dockerissa puolestaan on sekä haluttu ohjelmisto että sen suljettu ympäristö. GeoServeriä esimerkkinä käyttäen: GeoServer voidaan asentaa joko omalle koneelleen, tai konttiratkaisuna jolloin se on suljetussa ympäristössä ja samalla palvelimella voi olla useita muitakin ohjelmistoja omissa konteissaan. Tämä suljettu ympäristö on vakiomuotoinen ohjelmisto-image, jota kutsutaan konttialustaksi. 

Kun ohjelmisto on konttialustalla, sillä mitä muuta samalla palvelimella on, ei ole enää väliä. Samalla koneella tai alustalla voidaan ylläpitää montaa eri palvelua. Sekä Azure että AWS tarjoavat alustoja, joissa voi pyörittää kontteja (Docker-imageja). Palveluita voi käynnistää ja ylläpitää näillä alustoilla, jolloin ei tarvitse enää välittää palvelimesta, vaan asiakas maksaa vain niistä resursseista, mitä kone käyttää. Asiakas ei siis tiedä, millaisella koneella ohjelmisto on, vaan esimerkiksi että se vaatii 4 Gt muistia ja käyttää 2 CPU:ta. Palvelimien sijaan siis ylläpidetään vain ohjelmistoja (ns. serverless eli palvelimeton palvelu). 

Muita pilvipalveluiden mahdollisuuksia

Konttien ajamisen lisäksi pilvipalveluissa tehdä paljon muitakin mahdollisuuksia. Esimerkiksi Contend delivery network mahdollistaa nettisivujen tai muiden nettipalveluiden jakamisen tiettyjen pilvessä olevien palveluiden välillä. Samoin voidaan tehdä koodia, jota ajetaan palveluna: esimerkiksi Lambda-funktioita, jotka käynnistyvät pyydettäessä, mutta eivät ole koko ajan pyörimässä.

Tarjolla on myös valvonta- ja lokitustyökaluja. Nämä ovat automatisoituja, eli niitä ei tarvitse asentaa, mutta ne pitää osata konfiguroida. Käyttäjä voi esimerkiksi määrittää palvelun lähettämään sähköpostitse hälytyksen, jos GeoServerin levytila on täyttymässä. Asioiden valvonnan lisäksi voidaan myös kerätä lokitietoja, joista voidaan tarkastella palvelun historiatietoja halutulta aikaväliltä. Se, mitä lokitetaan ja kuinka pitkään lokia säilytetään, riippuu pilvipalvelusta ja siellä ylläpidettävästä ohjelmistosta sekä lokitusasetuksista.

Näiden ominaisuuksien käyttöönotto on konesalien vastaaviin prosesseihin verrattuna erilaista, mutta ei välttämättä helpompaa. Pilven tapauksessa komennetaan jonkun toisen tekemää palvelua, joten sen logiikkaa ja mahdollisuuksia pitää ymmärtää, jotta sen saa toimimaan haluamallaan tavalla.

Turvallisuus

Kun palvelu on laitettu pystyyn pilvessä, vastuu sen toimivuudesta on isolta osin pilvipalvelun tarjoajalla. Jos konesalissa tulee Linuxissa ongelma tai hiiri on nakertanut johtoja, niin organisaatio on omillaan. Jos omassa toteutuksessa ja palvelussa on vika, se pitää osata korjata ja ylläpitää. Pilvipalveluissa palveluntarjoaja huolehtii tällaisista seikoista, minkä vuoksi pilvipalvelut ovat tässä mielessä varmempia. Ei tarvitse osata ylläpitää palvelua tai niihin liittyviä laitteita, ja pilvipalvelun tarjoaja lupaa, että palvelu on olemassa ja vastaa pyyntöihin kuten “pystytä palvelin”.

Omassa konesalissa pitää jatkuvasti huolehtia tietoturvapäivityksistä ja Linux- tai Windows-käyttöjärjestelmäpäivityksistä. Jos taas ylläpitää pilvessä palvelimettomia palveluita, kuten kontteja tai funktioita, ei tarvitse huolehtia serverin tietoturvasta tai välttämättä käyttöjärjestelmäpäivityksistäkään, sillä ei ole niistä vastuussa. Asiakas on kuitenkin vastuussa oman ohjelmistonsa tietoturvasta: vaikka pilvialusta tarjoaisi kaiken muun, pitää silti tietää omien ohjelmistojensa versiot ja päivittää ne, kun haavoittuvuus tulee. Tämä on yhteistä sekä pilvessä että konesalissa.

Myös porttien avaaminen ja palomuuriasetukset pitää sekä konesalin että pilvialustan tapauksessa. Pilvessä ei ole oletuksena portteja auki, vaan ne pitää itse säätää (mitkä portit avataan ja mistä liikennettä sallitaan). Tämä on muistettava palveluita käynnistettäessä. Pilveen voidaan tehdä virtuaalisisäverkkoja, joissa palvelut saavat kommunikoida keskenään, mutta niihin ei pääse ulkoapäin.

On myös mahdollista, että palvelu ei ole aina ja ikuisesti saatavissa. Mitä lähempänä käyttäjää palvelu on, sitä helpommin se on saatavissa. Jos ajatellaan, että Keski-Euroopassa konesali räjähtää tai Suomen edustalla oleva merikaapeli menee poikki, niin Suomessa olevat palvelun käyttäjät eivät pääse siihen käsiksi. Toisaalta Suomen sisälläkin on mahdollista, että verkko-operaattorilla on ongelmia. Nyrkkisääntönä: mitä pidempi yhteys palvelimelle on, sitä enemmän mahdollisuuksia on, että se katkeaa.
Etäisyyksistä päästään omiin konesaleihin: mitä kauempana palvelu on, sitä suurempi sen vasteaika on. Jos haluaa lyhyen vasteajan, fyysinen etäisyys kannattaa minimoida. Ideaalitilanteessa (ajatellen vasteaikaa) palvelu olisi käyttäjän kanssa samassa huoneessa, rakennuksessa tai kaupungissa. Pilvipalvelun tarjoajan valitsemista voikin harkita siis myös sen mukaan, että heillä on datakeskus Suomessa.

Vasteajat voivat aiheuttaa ongelmia, jos pilveen otetaan tietokantayhteyksiä. Jos palvelu on kaukana käyttäjästä, yhteyden avaaminen voi viedä pitkään. Olisi hyvä, jos tietokanta ja sitä tarvitseva ohjelmisto olisivat melko lähellä toisiaan. Ongelman kiertämiseksi voidaan käyttää esimerkiksi pgBouncer-ohjelmistoa, joka pitää tietokantaa koko ajan auki, ja avausviive voidaan välttää.

Osaamisvaatimukset

Sekä konesali että pilvialustat vaativat osaamista. Konesalissa on osattava ostaa ja konfiguroida palvelimia käsin tai vaikkapa Ansiblella. Pilvialustan käyttäminen vaatii, että osaa lukea alustan dokumentaatiota, tuntee erilaisia teknologioita ja ymmärtää palvelimien toimintaa. Käyttäjän pitää myös osata komentaa alustoja konekielellä, eli klikkailemalla konsoleita tai kirjoittamalla Terraformia tai jotain muuta kieltä, jolla voi automatisoida pilvipalvelun hallintaa. Kumpikin tapa vaatii siis erikoisosaamista.

Pilvialustojen automatisoituun hallintaan on useampia tapoja. Tähän käytetyistä Terraformista tai Pulumista ei ole hyötyä oman konesalin tapauksessa, mutta jos on palvelimia, konttialustoja, verkkoja, lokitusta ja muita palveluita tarjoava pilvipalvelu, niin esimerkiksi Terraform-kielellä voidaan automatisoida, mitä sinne halutaan luoda. Toinen vaihtoehto on klikkailla määritykset pilvipalvelun konsolissa, mutta silloin luonti ei ole automaattisesti toistettavissa, jos toimenpiteet haluttaisiin tehdä uudestaan.

Terraformilla sekä yksittäisten palvelimien konfigurointiin käytetyllä Ansiblella on kummallakin eräänlainen oma kielensä, mutta Pulumia voi käyttää haluamallaan ohjelmointikielellä. Ansiblen etu on, että sillä voi hallinnoida pilvipalvelussa olevia palvelimia samaan tapaan kuin oman konesalinkin palvelimia.

Hinta

Lasku tulee pilvialustoilla käytön mukaan ja lopullinen hinta riippuu siitä, mitä palveluita on valittu. Amazonin pilvipalvelu AWS:n tapauksessa alustalle maksetaan resursseista ja niistä palveluista, joita hallinnoidaan. Jokaiselle palvelulle on omat hinnastot, ja jokainen palvelu, mitä pilvestä tilataan, maksaa. Hinnastojen ilo ja kirous on siinä, että yhdistelmiä koneiden, palvelimien tehojen ja eri palveluiden automatiikan ym. muuttujien välillä on lukemattomia, ja niille jokaiselle on oma hintansa.

Laskun minimoimiseksi kannattaa pohtia, mitä palveluita tarjoaa, mille käyttäjäryhmille ja kuinka usein. Nämä vaikuttavat siihen, kannattaako palvelu toteuttaa palvelimella, konttialustana vai funktiona. Palvelin on koko ajan varattuna, ja jos sitä käytetään kerran vuodessa, niin se on paljon tyhjäkäynnillä. Jos taas prosessoritehoa tarvitaan koko ajan, palvelin tulee halvemmaksi. Satunnaisemmin käytettäessä kannattaa valita ratkaisu, jota voi tarvittaessa ajaa.

Toisaalta eri ohjelmistoilla on eri vaatimuksia mm. suorituskyvyn ja muistin suhteen, joten pienin (halvin) mahdollinen palvelin kullekin ohjelmistolle maksaa eri verran. Käytännön esimerkkinä: GeoServer vaatii koko ajan tietyn määrän muistia, vaikka sitä ei kukaan käyttäisi. Kustannuslaskelmissa toinen vaihtoehto on konesalissa oleva fyysinen kone. 

Konesalit vai pilvipalvelu?

Olennainen ero pilvipalveluilla verrattuna konesaleihin on se, että pilvessä palveluita on helpompi hallinnoida. Tiettyjä ylläpitoon liittyviä asioita ei tarvitse tehdä fyysisesti itse: ei tarvita omaa konesalia, ei tarvitse miettiä, mihin serverit laitetaan pystyyn, eikä pystytystäkään tarvitse tehdä itse. Kaapeleiden vetämisen ja koneiden kantamisen sijaan palvelut syntyvät pilvialustalle näppäilemällä läppäriä (tai pöytäkonetta).

Erityisen käteviä pilvipalvelut ovat uusien asioiden kokeiluun. Uusien palveluiden pystyttäminen on helppoa, eikä fyysistä palveluiden hallinnointia tarvita. Meillä Gispollakin kokeiluhankkeet tehdään yleensä nimenomaisesti pilvialustalla.

Huonona puolena pilvessä on se, että palveluiden siirto pilveen voi tulla yllättävän kalliiksi. Jos ylläpidettäviin palveluihin on todella paljon liikennettä, voi olla vaikea arvioida koneiden tehokkuutta sekä ennakoida palvelinkuluja. Todella isoja laskentaresursseja tarvittaessa koneiden hankkiminen fyysisesti itselle voi tulla halvemmaksi. Tällöin tosin fyysiset työt joudutaan tekemään itse. Lisäksi konesalissa saa laitteita juuri sen verran kuin tarvitaan.

Profiilikuva

Juho Rekilä

Juho on paikkatiedon, data-analyysin ja viestinnän parissa työskentelevä folkloristiikan FM. Juhoa kiinnostaa lähes kaikki paikkatietoon liittyvä, mutta hän uppoutuu mieluiten karttojen tyylittelyyn ja asiakkaiden lähettämien kysymysten ratkomiseen. Paikkatiedon lisäksi työkokemusta löytyy graafisen suunnittelun ja äänisuunnittelun saralta.