Artikkelit

Suomi.fi-palveluväylän versio 6.19.x julkaistaan

Seuraava Suomi.fi-palveluväylän versio julkaistaan

Suomi.fi-palveluväylän seuraava uusi ohjelmistoversio 6.19.x julkaistaan syyskuun lopussa. Tämän ohjelmistoversion julkaisun ja asennuspaketit tekee Suomen ja Viron yhteinen Nordic Institute for Interoperability Solutions (NIIS) instituutti. Aikaisemmin Palveluväylän asennuspaketit tehtiin Väestörekisterikeskuksen toimesta mutta jatkossa NIIS huolehtii ohjelmistokehityksestä ja asennuspakettien julkaisusta.

Palveluväylän keskusympäristöt päivitetään syksyn aikana mainittuun julkaistavaan versioon. Versionumeron viimeinen numero tarkentuu vielä ennen julkaisua. Keskusympäristön päivitys ei vaikuta yksittäisten liityntäpalvelinten toimintaan, mutta keskusympäristön päivityksen aikana uusien liityntäpalvelinten tai organisaatioiden lisääminen palveluväylään ei ole mahdollista. Päivityksen tarkka ajankohta ilmoitetaan ympäristökohtaisilla jakelulistoilla viikkoa ennen päivitystä.

Päivitysten suunnitellut ajankohdat ovat (muutokset mahdollisia):

  • Kehitysympäristö (FI-DEV) viikolla 42 (maanantai 15.10.2018)
  • Testiympäristö (FI-TEST)viikolla 44 (maanantai 29.10.2018)
  • Tuotantoympäristö (FI) viikolla 46 (maanantai 12.11.2018)

Ylläpito lähettää tarkemmat päivitystä koskevat ohjeet liityntäpalvelinten teknisille yhteyshenkilöille keskusympäristöjen päivityksen jälkeen. Keskusympäristön päivityksen jälkeen on suositeltavaa päivittää liityntäpalvelimet uuteen versioon neljän viikon kuluessa. Uuden version päivityksen myötä liityntäpalvelimen uudet sekä parannetut ominaisuudet tuovat lisää tehokkuutta väylän toimintaan, joten versiopäivitys kannattaa tehdä ensi tilassa.

Version 6.19.x uusia ominaisuuksia ja parannuksia

Syyskuun lopussa julkaistavan version 6.19.x julkaisutiedote sisältää tarkemmat tiedot uuteen versioon tehdyistä ominaisuuksista ja parannuksista. Julkaisutiedote julkaistaan samaan aikaan kun uusi versio tulee saatavilla. Yleisellä tasolla seuraavat asiat on sisällytetty julkaistavaan versioon.

  • Parannettu asiakaspuolen (service consumer/client) liityntäpalvelimen toimintaa silloin jos palvelun tarjoajan puolella (service provider/server) on käytössä kuormantasaaja tasaamaan kuormaa useamman liityntäpalvelimen välillä.
  • Liityntäpalvelin osaa jatkossa käsitellä sisäisen varmenteen (internal TLS varmenne) varmenneketjun jos sitä on käytetty sisäisen varmenteen yhteydessä. Liityntäpalvelimen sisäistä varmennetta käytetään liityntäpalvelimen ja asiakasjärjestelmän sekä liityntäpalvelimen ja palveluntarjoajan välisissä HTTPS-yhteyksissä.
  • Liityntäpalvelimen käyttöliittymässä näkyvät uutena ominaisuutena käytetyn varmennepalvelun CA-varmenteiden (Certificate Authority) tiedot. Aikaisemmin näitä tietoja ei ollut nähtävillä käyttöliittymässä.
  • Liityntäpalvelimen toimintaa on parannettu toipumaan nopeammin tilanteesta jossa OCSP-palvelun (Online Certificate Status Protocol) käyttöyhteys on ensin katkennut mutta sen jälkeen palvelu on palautunut toimintaan.
  • Ubuntu 14.04 käyttöjärjestelmässä liityntäpalvelimen ohjelmiston asennusvaiheessa uudelle palvelimelle asentuu aina OpenJDK 8 (ei uudempi OpenJDK versio). Liityntäpalvelimen ohjelmisto on riippuvainen OpenJDK 8 versiosta ja uudemmilla versioilla saattaa esiintyä virhetilanteita.
  • Paikallisen X-Road kehitysympäristön asennusohjeet on päivitetty paremmin kattavaksi. Asennusohjeet löytyvät täältä.

Asennukseen ja päivitykseen liittyvää ohjeistusta

Uusi liityntäpalvelimen ohjelmistoversio eri Palveluväylän ympäristöihin (FI-DEV, FI-TEST ja FI) tulee saataville siinä vaiheessa kun Palveluväylän ylläpito päivittää kyseisen ympäristön keskuspalvelimen uuteen versioon. Kun keskusympäristön päivitys on valmis, ylläpito ilmoittaa liityntäpalvelimen ohjelmistoversion latauslinkin kyseiseen ympäristöön. Ylläpito lähettää sähköpostilla myös tarkemmat päivitystä koskevat ohjeet liityntäpalvelinten teknisille yhteyshenkilöille keskusympäristöjen päivityksen jälkeen.

Uusi liityntäpalvelimen ohjelmisto voidaan päivittää toimivan v.6.16.0 tai v.6.17.0 asennuksen päälle (Huom. Palveluväylän versiota 6.18.x ei ole olemassa Suomessa – versio 6.18.x on vain Virossa käytössä). Päivityksiä muiden vanhempien ohjelmistoversioiden päälle ei ole testattu mutta hyvin todennäköisesti päivitys onnistuu normaalisti.

Asennus- ja päivitysohjeet löytyvät alla mainituista linkeistä. Uuden ohjelmistoversion julkaisun lähestyessä/tapahtuessa mainittuja ohjeita päivitetään vielä tarpeen vaatiessa ajanmukaiseksi.

Ubuntu 14.04 LTS

Red Hat Enterprise Linux 7

Youtubesta löytyy myös havainnolliset videot liityntäpalvelimen käyttöönottoon liittyen:

Ennen päivitysasennusta tai päivitysasennuksen yhteydessä tarkista seuraavat asiat:

  • Liityntäpalvelimen Member-tasolle ei saa jatkossa olla liitettynä palveluita
    • Versiosta v.6.9.3 lähtien liityntäpalvelimen kautta väylään tarjottavien palveluiden liittäminen suoraan Member-tasolle ei ole sallittua tai edes mahdollista, vaan palvelut on kytkettävä ainoastaan Alijärjestelmän tasolle.
    • Palvelut on kytkettävä ainoastaan Alijärjestelmän tasolle, palveluiden kytkemistä Member-tasolle ei enää tueta. Palvelut on siirrettävä käsin Member-tasolta Alijärjestelmän tasolle ennen päivitysasennuksen aloittamista. Jos palveluita ei siirretä manuaalisesti pois, kaikki Member-tasolta löytyvät palvelut poistetaan automaattisesti. Huom! Asennusohjelma ei pysäytä asennusta tai anna automaattista virheilmoitusta tästä tilanteesta.
    • Ohjeet palvelujen lisäämisestä/siirtämisestä Alijärjestelmän-tasolle löytyvät täältä.
  • Versiosta v.6.16.0 lähtien liitettävien palveluiden käyttämät WSDL-tiedostot validoidaan liityntäpalvelimen ohjelmiston toimesta. Validointi tapahtuu silloin kun a) joko kokonaan uuden palvelun WSDL-tiedosto lisätään (importataan) tai b) kun vanhan (jo olemassa olevan) palvelun WSDL-tiedosto päivitetään (refresh toiminnallisuus). Validoinnin epäonnistuessa WSDL-tiedoston lisääminen (importointi) tai päivittäminen (refresh) ei onnistu. WSDL-tiedosto on muokattava oikean syntaksin mukaiseksi, jotta sen validointi onnistuu. Lisäohjeita WSDL-tiedoston syntaksiin löytyy täältä.
    • WSDL-tiedoston voi validoida etukäteen esimerkiksi erillisellä tietokoneella käyttäen command line -työkalua, joka on saatavilla osoitteesta: http://x-road.ee/valid/
      • Samasta verkko-osoitteesta löytyvät ohjeet työkalun käyttöön.

Mitoita liityntäpalvelin ja säädä muistiasetukset kohdalleen

Suosittelemme huomioimaan sivuillamme julkistetun ohjeistuksen siitä, miten muistiasetuksia kannattaa säätää omalla palvelinalustalla. Ohjeistus auttaa jokaista palveluväylään liittynyttä organisaatiota parantamaan oman liityntäpalvelimensa suorituskykyä, koska liityntäpalvelimen asennuspaketissa asetettavat vakioasetukset eivät useinkaan sovellu suoraan käyttöön, ainakaan optimaalisella tasolla. Lisää muistiasetuksien optimoinnista täältä. Ohjeiden lukeminen ja käyttöönotto todellakin kannattaa, koska se auttaa parantamaan liityntäpalvelimen suorituskykyä merkittävästi.

Muistathan myös tarkistaa, että oma liityntäpalvelimesi on mitoitettu kapasiteetiltaan ja suorituskyvyltään oikein väylän käyttöä varten. Ohjeistusta löydät täältä.

Ulkoisen kuormantasaajan käyttö mahdollista

Ulkoisen kuormantasaajan käyttö on ollut mahdollista palveluväylän versiosta 6.16.0 lähtien.

  • Lue lisää ulkoisen kuormantasaajan käytöstä palveluväylässä täältä.
  • Englanninkielinen asennus- ja konfigurointiohje kuormantasaajan käyttöönottoa varten löytyy täältä.

Uuden version asennukseen ja päivitykseen liittyviä kysymyksiä voit lähettää osoitteeseen palveluvayla(at)palveluvayla.fi.

Suomi.fi-palveluväylän versio 6.17.x julkaistaan

Suomi.fi-palveluväylän kehitys-, testi- ja tuotantoympäristöt päivitetään versioon 6.17.x

Palveluväylän keskusympäristö päivitetään talven ja alkukevään aikana versiosta 6.16.0 versioon 6.17.x. Versionumeron viimeinen numero tarkentuu vielä ennen julkaisua. Keskusympäristön päivitys ei vaikuta yksittäisten liityntäpalvelinten toimintaan, mutta keskusympäristön päivityksen aikana uusien liityntäpalvelinten tai organisaatioiden lisääminen palveluväylään ei ole mahdollista. Päivityksen tarkka ajankohta ilmoitetaan ympäristökohtaisilla jakelulistoilla viikkoa ennen päivitystä.

Päivitysten suunnitellut ajankohdat ovat (muutokset mahdollisia):

  • Kehitysympäristö (FI-DEV) viikolla 9 (maanantai 26.2.2018)
  • Testiympäristö (FI-TEST) viikolla 11 (maanantai 12.3.2018)
  • Tuotantoympäristö (FI) viikolla 15 (maanantai 9.4.2018)

Ylläpito lähettää tarkemmat päivitystä koskevat ohjeet liityntäpalvelinten teknisille yhteyshenkilöille keskusympäristöjen päivityksen jälkeen. Keskusympäristön päivityksen jälkeen on suositeltavaa päivittää liityntäpalvelimet uuteen versioon neljän viikon kuluessa. Uuden version päivityksen myötä liityntäpalvelimen uudet ominaisuudet ja resurssien optimointi tuovat lisää tehokkuutta väylän toimintaan, joten versiopäivitys kannattaa tehdä ensi tilassa.

Version 6.17.x uusia ominaisuuksia ja parannuksia

  • REST Adapter Service -komponenttiin on tehty useita parannuksia. REST Adapter Service -komponentti mahdollistaa REST/JSON <-> SOAP -muunnokset Palveluväylän viesteissä.
    • Dokumentaatiota on parannettu. Katso lisää Github repositoriosta täältä.
    • Komponentti on muutettu Spring Boot -sovellukseksi. REST Adapter Servicen paketointi ei enää myöskään asenna Tomcat-palvelinta, vaan toimii itsenäisenä ajettavana Java-sovelluksena.
    • Korjattu mahdollinen tietoturvaongelma liittyen komponentissa käytettyyn viestien salaustoiminnallisuuteen. Joissain tapauksissa oli mahdollista, että muunnettu JSON-viesti säilyi salaamattomana SOAP-viestin bodyssä.
    • Luotu kontribuointiohjeet ja changelog-tiedosto REST Adapter Service -repositoriolle.
  • Parannettu X-Roadin tekemää lokitusta niin, ettei turhia virheilmoituksia tule lokitiedostoihin järjestelmäkonfiguraatioiden latauksesta. Aikaisemmin liityntäpalvelimen lokitiedostoihin saattoi tulla satunnaisesti ylimääräisiä ja turhia virhetulosteita.
  • Paikallisen X-Roadin ja kehitysympäristön pystyttämiseen tehty parannuksia:
    • Lisätty tuki CentOS 7 käyttöjärjestelmälle (LXD-konttituki). Asiaan liittyvät ohjeet on päivitetty:
    • Liityntäpalvelimille asennettavan maakohtaisen variantin (ee, fi, vanilla) voi valita Ansible skriptissä (kts. ohjeet yläpuolen linkistä). Oletusarvona asennuksessa on vanilla, joka tarkoittaa niin sanottua perusasennusta ilman maakohtaisia asetuksia.
  • Liityntäpalvelimen ympäristön monitorointirajapintaa on parannettu ja tehty uusia ominaisuuksia:
    • Monitoroinnin toteutusta on parannettu kestämään mahdolliset komponentin uudelleen käynnistykset.
    • Liityntäpalvelimen ylläpitäjällä on mahdollisuus rajoittaa liityntäpalvelinympäristön monitorointirajapinnan palauttamaa datan määrää env-monitor parameterin avulla. Jos datan palautus on rajoitettu kyseisellä parametrilla, niin tällöin vain liityntäpalvelimen ohjelmiston versionumero ja varmenteiden tiedot (mm. voimassaoloajat) välitetään kyselyn vastauksena. Jos rajoitusta ei ole käytetty niin palautetaan kaikki rajapinnan tarjoamat datat.
      • Lue lisää ympäristön monitorointidatasta täältä ja rajoitusparametrista täältä.
    • Ympäristön monitorointidatan keskitetty keräys FI-TEST -ympäristön liityntäpalvelimilta on otettu käyttöön version 6.16.0 myötä. Version 6.17.x myötä monitorointidatan keskitetty keräys otetaan käyttöön FI-ympäristössä myöhemmin.
  • Parannettu liityntäpalvelimen viestinvälityksen suorituskykyä aikaleimauksen aikana.
  • Palveluväylän koulutusmateriaalit on päivitetty ajantasalle ja julkaistu avoimena lähdekoodina: https://vrk-kpa.github.io/xroad-training/
  • Dokumentoitu yhtenäinen ja suositeltu tapa, jolla eri tyyppisiä autentikaation tunnisteita (security token) voi välittää SOAP-pyynnön otsikkotiedoissa Palveluväylän yli. Katso lisätietoja täältä.
  • Maakohtaisille (EE, FI) X-Road-arvoille on lisätty omat sarakkeet System parameters -dokumenttiin.
  • Optimoitu liityntäpalvelimen Messagelog tietokannan yhteyspoolien asetuksia, jotta ylimääräisiä resursseja ei turhaan kulutettaisi.
  • Korjattu ympäristön monitorointirajapinnan SystemCpuLoad-arvon laskenta.
  • Korjattu rikkoutuneet liityntäpalvelimen pääsylokit.
  • Liityntäpalvelimen signer.log antaa yksityiskohtaisempaa tietoa mahdollisista OCSP-virheistä.
  • Jatkossa suositeltavin tapa kutsua liityntäpalvelimen getWsdl metapalvelua on käyttää HTTP POST-metodia. Lue lisää getWsdl -palvelusta täältä.
    • getWsdl metapalvelun HTTP GET-metodin tietoturvaa on parannettu ja lisätty parametri, jolla HTTP GET-metodin voi kytkeä kokonaan pois päältä. HTTP GET-metodissa kutsut tehdään liityntäpalvelimen omistajan nimissä ja allekirjoituksella, joka ei ole hyvän tietoturvan mukaista – siksi HTTP GET-metodin käytön voi estää parametrilla.
    • Liityntäpalvelimen ohjelmiston päivitysasennuksessa getWsdl (HTTP GET) toimii kuten ennenkin. Uusissa (puhtaalle palvelimelle tehtävissä) asennuksissa getWsdl (HTTP GET) on kytketty oletuksena parametrilla pois päältä ja vain HTTP POST-metodi on käytössä. Lue lisää parametrista täältä.
    • Sekä getWsdl HTTP GET ja POST-metodit tukevat nyt myös member-tason HTTPS- ja HTTPS NO AUTH- asetuksia.
  • Toteutettu Palveluväylän yli tapahtuviin tiedoston siirtoihin helppokäyttöinen ja vapaasti kaikkien käytettävissä oleva palvelu xroad-fileservice. Palvelu löytyy täältä.
  • Korjattu paikallisen X-Roadin asennuksen ongelma, joka aiheutti asennuksen keskeytymisen tilanteessa jossa maakohtaista määrittelyä ei oltu tehty.
  • Liityntäpalvelimen metapalveluiden dokumentaatiota on parannettu ja tarkennettu.
  • Liityntäpalvelimen sisäiseen kuormantasaukseen (ns. ”fastest wins” -periaate) on tehty parannuksia, jotta mm. yhteyskatkoista toivuttaisiin nopeammin.
  • Jatkossa Palveluväylän liityntäpalvelimien julkaisupakettien asennus ja päivitys vaatii kaikilta asennettavilta X-Road-paketeilta samoja versionumeroita. Tämä parantaa epäyhteensopivuusongelmia kun pakettien versionumerot tarkistetaan jo asennusvaiheessa. Aikaisemmin pakettien oli oltava versioltaan samoja tai uudempia, jatkossa versionumeroiden on oltava samat.
  • Päivitetty X-Roadin pakettiriippuvuuksia, jotta mahdolliset vanhentuneista komponenttien versioista johtuvat haavoittuvuudet on estetty.
  • Korjattu liityntäpalvelimen käyttöliittymän Internal TLS -varmenteen vaihtamiseen liittyvä ongelma. Edellisessä versiossa ei pystynyt vaihtamaan liityntäpalvelimen käyttämää sisäistä varmennetta käyttöliittymän kautta.

 

Asennukseen ja päivitykseen liittyvää ohjeistusta

Uusi liityntäpalvelimen ohjelmistoversio eri palveluväylän ympäristöihin (FI-DEV, FI-TEST ja FI) tulee saataville myöhemmin ilmoitettavasta latauslinkistä kun palveluväylän ylläpito päivittää kyseisen ympäristön keskuspalvelimen. Ylläpito lähettää tarkemmat päivitystä koskevat ohjeet liityntäpalvelinten teknisille yhteyshenkilöille keskusympäristöjen päivityksen jälkeen.

Uusi liityntäpalvelimen ohjelmisto voidaan päivittää toimivan v.6.9.3 tai v.6.16.0 asennuksen päälle. Päivityksiä muiden versioiden päälle ei ole testattu.

Asennus- ja päivitysohjeet:

Ubuntu 14.04 LTS

Red Hat Enterprise Linux 7

Youtubesta löytyy myös havainnolliset videot liityntäpalvelimen käyttöönottoon liittyen:

Ennen päivitysasennusta tai päivitysasennuksen yhteydessä tarkista seuraavat asiat:

  • Ubuntu-palvelimilla version 6.17.x päivitysasennus tulee asentaa komennolla ”apt-get upgrade –with-new-pkgs”, jotta uudet riippuvuudet tulevat asennetuksi. Vaihtoehtoisesti voi käyttää apt-get:in sijasta apt:ia (”apt upgrade”), joka tekee oletuksena päivityksen oikein.
  • Liityntäpalvelimen Member-tasolle ei saa jatkossa olla liitettynä palveluita
    • Versiosta v.6.9.3 lähtien liityntäpalvelimen kautta väylään tarjottavien palveluiden liittäminen suoraan Member-tasolle ei ole sallittua tai edes mahdollista, vaan palvelut on kytkettävä ainoastaan Alijärjestelmän tasolle.
    • Palvelut on kytkettävä ainoastaan Alijärjestelmän tasolle, palveluiden kytkemistä Member-tasolle ei enää tueta. Palvelut on siirrettävä käsin Member-tasolta Alijärjestelmän tasolle ennen päivitysasennuksen aloittamista. Jos palveluita ei siirretä manuaalisesti pois, kaikki Member-tasolta löytyvät palvelut poistetaan automaattisesti. Huom! Asennusohjelma ei pysäytä asennusta tai anna automaattista virheilmoitusta tästä tilanteesta.
    • Ohjeet palvelujen lisäämisestä/siirtämisestä Alijärjestelmän-tasolle löytyvät täältä.
  • Versiosta v.6.16.0 lähtien liitettävien palveluiden käyttämät WSDL-tiedostot validoidaan liityntäpalvelimen ohjelmiston toimesta. Validointi tapahtuu silloin kun a) joko kokonaan uuden palvelun WSDL-tiedosto lisätään (importataan) tai b) kun vanhan (jo olemassa olevan) palvelun WSDL-tiedosto päivitetään (refresh toiminnallisuus). Validoinnin epäonnistuessa WSDL-tiedoston lisääminen (importointi) tai päivittäminen (refresh) ei onnistu. WSDL-tiedosto on muokattava oikean syntaksin mukaiseksi, jotta sen validointi onnistuu. Lisäohjeita WSDL-tiedoston syntaksiin löytyy täältä.
    • WSDL-tiedoston voi validoida etukäteen esimerkiksi erillisellä tietokoneella käyttäen command line -työkalua, joka on saatavilla osoitteesta: http://x-road.ee/valid/ Samasta verkko-osoitteesta löytyvät ohjeet työkalun käyttöön.

Mitoita liityntäpalvelin ja säädä muistiasetukset kohdalleen

Suosittelemme huomioimaan sivuillamme julkistetun ohjeistuksen siitä, miten muistiasetuksia kannattaa säätää omalla palvelinalustalla. Ohjeistus auttaa jokaista palveluväylään liittynyttä organisaatiota parantamaan oman liityntäpalvelimensa suorituskykyä, koska liityntäpalvelimen asennuspaketissa asetettavat vakioasetukset eivät useinkaan sovellu suoraan käyttöön, ainakaan optimaalisella tasolla. Lisää muistiasetuksien optimoinnista täältä. Ohjeiden lukeminen ja käyttöönotto todellakin kannattaa, koska se auttaa parantamaan liityntäpalvelimen suorituskykyä merkittävästi.

Muistathan myös tarkistaa, että oma liityntäpalvelimesi on mitoitettu kapasiteetiltaan ja suorituskyvyltään oikein väylän käyttöä varten. Ohjeistusta löydät täältä.

Ulkoisen kuormantasaajan käyttö mahdollista

Ulkoisen kuormantasaajan käyttö on ollut mahdollista palveluväylän versiosta 6.16.0 lähtien.

  • Lue lisää ulkoisen kuormantasaajan käytöstä palveluväylässä täältä.

Uuden version asennukseen ja päivitykseen liittyviä kysymyksiä voit lähettää osoitteeseen palveluvayla(at)palveluvayla.fi.

Palveluväylään lisää tehoa – kuormantasaajan käyttö mahdolliseksi

Suorituskykyä ja toimintavarmuutta lisää

Suomi.fi-palveluväylään liitettävien palveluiden suorituskykyä ja toimintavarmuutta voidaan jatkossa merkittävästi parantaa, kun seuraava palveluväylän versio (versio 6.16.x) julkaistaan syksyllä. Uudessa versiossa on mahdollista käyttää ulkoista kuormantasaajaa tasaamaan liityntäpalvelinten kuormitusta. Tämä tarkoittaa sitä, että liityntäpalvelimia voi olla useita. Tällöin ne kaikki tarjoavat saman palvelun palveluväylään mutta väylän suuntaan ne näkyvät kuitenkin vain yhtenä rajapintana. Ulkoinen kuormantasaaja huolehtii rajapinnassa siitä, että viestiliikenteen kuormitus jaetaan tasaisesti klusterissa olevien eri liityntäpalvelinten kesken. Tällöin palvelukutsuja voidaan käsitellä yhtäaikaisesti huomattavan paljon enemmän verrattuna yhteen palvelukutsuja käsittelevään liityntäpalvelimeen.

Palveluväylän sisäinen kuormantasaus

Aikaisemmin palveluväylässä on jo ollut mahdollista käyttää X-Roadin sisäistä ns. High Availability-toiminnallisuutta (HA), jolloin väylän sanomia välittävät liityntäpalvelimet ovat voineet olla kahdennettuja tai jopa monennettuja. Tällöin yhden liityntäpalvelimen vikaantuessa on ”vara-liityntäpalvelin” otettu käyttöön ja palvelun toiminta on jatkunut lähes keskeytyksettä. HA-toiminnallisuus ei ole kuitenkaan osannut jakaa kuormaa eri liityntäpalvelimien kesken, vaan käytännössä se on vain ohjannut kuorman jollekin liityntäpalvelimelle.

 

Kuva 1. Sisäisen kuormantasauksen periaate. Kuvassa käytetyt lyhenteet: IS = information system (tietojärjestelmä, sovellus), SS = Security Server (liityntäpalvelin).

 

Palveluväylän ulkoinen kuormantasaus

Kuormantasaus tarkoittaa sitä, että käsiteltävä kuorma jaetaan käytössä olevien liityntäpalvelimien kesken, jolloin yksittäinen palvelin ei ylikuormitu. Jos yksittäinen palvelin vikaantuu eikä sitä voida enää käyttää, osaa kuormantasaaja tällöin reitittää liikenteen uudelleen niin, ettei vikaantunutta palvelinta turhaan yritetä käyttää. Näin liikenne ohjautuu muille, toimiville palvelimille.

Kuva 2. Ulkoisen kuormantasauksen periaate.

Palveluväylän tapauksessa merkittävä asia on myös se, että vaikka klusterissa olisi useampia liityntäpalvelimia, tarvitaan palveluväylän varmenteita (autentikointi- ja allekirjoitusvarmenne) vain yhtä liityntäpalvelinta varten. Väylässä on siis virallisesti yksi liityntäpalvelin (master), joka klusterin muut liityntäpalvelimet (noodit, slavet) teeskentelevät olevansa. Klusterissa olevat liityntäpalvelimet käyttävät kaikki samoja varmenteita eikä jokainen liityntäpalvelin tarvitse omia varmenteita, mikä on merkittävä parannus varmenteiden käsittelyssä. Palveluväylän liityntäpalvelin-ohjelmisto osaa replikoida varmenteet ja käyttää niitä klusterissa olevien palvelinten kanssa oikein.

Kuormantasaajan suorituskykymittaukset

Ulkoisen kuormantasaajan käyttämistä palveluväylän tarpeisiin on testattu kevään ja kesän aikana kehitystiimin omissa suorituskyky- ja regressiotesteissä. Lisäksi ulkoinen toimittaja on tehnyt erillisen suorituskykytestauksen omassa palveluväylä-ympäristössään käyttäen omaa ulkoista kuormantasaaja.

Suorituskykytestejä varten FI-TEST -palveluväylä-ympäristöön luotiin alla oleva kuvan mukainen testauskonfiguraatio. Kuormantasausta käytettiin sekä palvelupyyntöjen lähettäjän että palveluntarjoajan päässä palveluväylän ja liityntäpalvelinten välissä. Lisäksi sekä asiakasjärjestelmän että palveluntarjoajan järjestelmien ja liityntäpalvelinten välissä käytettiin ulkoisia kuormantasaajia. Kuormaa pyrittiin tasaamaan mahdollisimman paljon.

Kuva 3. Ulkoisen kuormantasauksen testauskonfiguraatio.

 

Yksittäinen viesti kulkee järjestelmässä niin, että asiakasjärjestelmän sovellus generoi palvelukutsujen SOAP-sanomia kuormantasaajan #1 läpi asiakaspään liityntäpalvelimille (liityntäpalvelimet #1 ja #3), jotka pyytävät sanomiin vastausta palveluntarjoajan liityntäpalvelimelta (liityntäpalvelimet #2 ja #4). Kuormantasaaja #3 jakaa palvelukutsut palveluntarjoajan liityntäpalvelinten #2 ja #4 kesken. Nämä liityntäpalvelimet saavat vastaukset palvelukutsuihin palveluntarjoajan sovellukselta. Tämä sovellus tuottaa vakiovastauksen ja vastaussanomat voidaan määritellä testin konfiguroinnilla. Vastaussanoma kulkee samaa reittiä takaisinpäin, jolloin kuormantasaajat #4 ja #2 jakavat matkan varrella kuormaa.

Testissä mitattiin kuinka kauan koko viestiketjun (palvelukutsu–vastaus) suorittamiseen kuluu aikaa ja montako viestiä järjestelmän läpi kulkee. Lisäksi mitattiin sekä liityntäpalvelimien että asiakasjärjestelmän ja palveluntarjoajan sovelluksen palvelimien CPU-kuormitusta. Näin pystyttiin päättelemään mikä osa järjestelmästä mahdollisesti hidasti eniten viestin välitystä. Testin aikana palvelukutsujen määrää lisättiin niin, että testin aluksi yhtäaikaisia palvelukutsuja oli vain yksi kappale, mutta testin lopussa yhtäaikaisia kutsuja oli 250.

Testin aikana kaikissa liityntäpalvelimissa oli samanlainen alustakokoonpano, joka on käytännössä sama kuin suositeltava minimikokoonpano liityntäpalvelimelle:

  • OS: Red Hat 7
  • Keskusmuisti: 4 Gb
  • 2 CPUs
  • Levytila: 70 Gt

Seuraavissa kuvissa on esitetty sanomien läpimenomäärät ja keskimääräiset vasteajat testeissä käytetyille palvelukutsuille kullakin sanomakoolla. Kuvassa 4 näkyy kuinka monta sanomapakettia on siirretty kullakin sanomakoolla yksittäisen testin aikana. Testin suoritusaika on vakio ja viestejä lähetetään väylän siirrettäväksi niin nopeasti kuin mahdollista.

Kuva 4. Viestien läpimenomäärät kuormantasauksella ja ilman kullakin sanomakoolla mitattuna.

Kuvassa 5 näkyy palvelukutsujen keskimääräiset vasteajat kullakin sanomakoolla testien aikana.

Kuva 5. Keskimääräiset palvelukutsujen vasteajat kullakin sanomakoolla.

 

Tulokset näyttävät, että osassa testejä suorituskyky tuplaantui tai kasvoi jopa tätäkin enemmän. Toisaalta testauksen aikana huomattiin, että testauksessa palveluntarjoajan päässä käytetty vastaanottava sovellus muodostui pullonkaulaksi silloin kun käytettiin isompia sanomakokoja. Vastaanottava sovellus ei pystynyt käsittelemään saapuneita palvelukutsujen sanomia tarpeeksi nopeasti, vaan kutsut jonoutuivat ja niiden käsittely hidastui. Tästä syystä testitulokset ovat näissä testitapauksissa huonompia kuin jos vastaanottava sovellus olisi pystynyt käsittelemään palvelukutsuja yhtä nopeasti kuin liityntäpalvelimet niitä välittivät. Tämä näkyy siinä, että 100K:n kokoisissa ja sitä isommissa sanomissa kuormantasauksen vaikutus suorituskykyyn putoaa ja tasoittuu suurin piirtein samaan lukemaan kuin ilman kuormantasausta. Jälkikäteen arvioiden myös palveluntarjoajan sovellus olisi pitänyt olla kahdennettu (kaksi sovellusta olisi vastannut palvelukutsuihin), jotta palveluväylän siirtokykyä olisi saatu paremmin mitattua. Joka tapauksessa tällä testillä pystyttiin osoittamaan, että palveluväylässä pullonkaulaa sanomien välityksessä ei muodostunut. Jos pullonkaula muodostui, olivat syyt jossain muualla järjestelmässä, esimerkiksi verkkoyhteyksissä tai palvelupuolen sovelluksessa – kuten tässä tapauksessa todettiin.

Yhteenvetona voi sanoa, että palveluväylän suorituskyky osoittautui merkittävästi paremmaksi ulkoista kuormantasaajaa käytettäessä.

Ulkoisen kuormantasaajan kolme tärkeää hyötyä

Kolme suurinta kuormantasaajan tuomaa etua ovat skaalautuvuus, korkea saatavuus ja hallittavuus. Jos esimerkiksi liityntäpalvelimen toimintaan tarvitaan lisää suorituskykyä vaikkapa lisääntyneen käytön takia (palvelukutsuja tulee jatkossa yhä enemmän), voidaan nykyinen liityntäpalvelin kloonata toiseksi tai useammaksi liityntäpalvelimeksi. Kuorma jakaantuu tällöin kahdelle tai useammalle liityntäpalvelimelle. Näin yhtäaikaisten käyttäjien määrää voidaan kasvattaa ja vasteajat pienevät.

Kuormantasaajan avulla järjestelmä toimii aikaisempaa paremmin myös mahdollisissa vikatilanteissa. Kuormantasaaja poistaa vikaantuneen liityntäpalvelimen käytöstä (liikennettä ei enää ohjata sille) ja liikenne ohjautuu muille, toiminnassa oleville liityntäpalvelimille. Järjestelmän toimintavarmuutta voidaan parantaa vielä lisää kahdentamalla (HA toiminnallisuus) myös itse kuormantasaaja niin, että niitä on kaksi kappaletta toimintakunnossa. Tällöin yhden kuormantasaajan vikaantuminen ei lamauta järjestelmän toimintaa.

Hallittavuudella tarkoitetaan sitä, että liityntäpalvelinklusterin toimintaa voidaan hallita kuormantasaajan avulla. Esimerkiksi liityntäpalvelimia huollettaessa tai päivitettäessä voidaan kuormantasaajalle kertoa, että kyseinen liityntäpalvelin ei ole toimintakunnossa, eikä sille saa ohjata toistaiseksi liikennettä. Tällainen tilanne voi tulla vastaan vaikkapa päivitettäessä liityntäpalvelimen ohjelmistoa uuteen versioon, jolloin päivityksen ajaksi kyseinen palvelin otetaan pois klusterista. Palvelin palautetaan kun ohjelmisto on päivitetty.

Milloin kuormantasausta kannattaa käyttää?

Ulkoisen kuormantasaajan käyttöä kannattaa harkita ainakin siitä tapauksessa, jos yhtäaikaisia palvelukutsuja tulee (tai voi tulla) niin paljon, ettei yhden liityntäpalvelimen kapasiteetti riitä palvelemaan kaikkia palvelukutsuja riittävän nopealla vasteajalla. Lisäksi, jos äkillisiä kuormituspiikkejä on odotettavissa, voidaan palvelun toimivuus varmistaa näiden ruuhkahetkien ajalle kuormatasauksella ja lisäämällä liityntäpalvelimia klusteriin. Tarkkoja palvelukutsujen määriä, jolloin kuormantasaajan käyttö on suositeltavaa on hankalaa sanoa. Muuttuvia tekijöitä tässä yhtälössä ovat esimerkiksi palveluntarjoajan liityntäpalvelimen kapasiteetti ja suorituskyky (mm. muisti ja suoritin), sekä palveluväylään tarjottavalle palvelulle ominainen käytös, esimerkiksi miten suuria sanomia sen pitää käsitellään ja miten usein. Ohjeistusta yksittäisen liityntäpalvelimen mitoitukseen löytyy täältä: Liityntäpalvelimen tekniset vaatimukset. Arviona voisi sanoa, että silloin kun yhtäaikaisten käyttäjien määrä nousee useisiin kymmeniin tai satoihin (tai jopa tuhansiin) ja palvelun on pystyttävä käsittelemään satoja tai tuhansia sanomia lyhyessä ajassa, on kuormantasaajan käyttö suositeltavaa.

Mikäli palvelun saatavuus on ehdottaman tärkeää on kuormantasaajan käyttö tällöin perusteltua. Jos esimerkiksi ohjelmistopäivitykset on pystyttävä tekemään ilman katkosta, on kuormantasaaja ehdoton valinta, koska yksittäinen liityntäpalvelin voidaan irrottaa huoltotoimenpiteitä varten klusterista. Muut klusterin liityntäpalvelimet mahdollistavat palvelun toiminnan tällä välin.

Ulkoisen kuormantasaajan käyttämisestä palveluväylässä julkaistaan asennus- ja konfigurointiohjeet. Kannattaa huomioida, että palveluväylä mahdollistaa ulkoisen kuormantasaajan käytön, mutta kuormantasaajan hankinta, konfigurointi ja ylläpito oman palvelun käyttöön on kunkin organisaation vastuulla. Teknisenä yksityiskohtana mainittakoon, että käytettävän kuormantasaajan pitää tukea HTTP-pohjaista statustilan tarkistusta (ns. health check toiminnallisuus klusterin noodeille) sekä TCP-tason kuormantasausta. Ehdottomasti suositellaan myös, että kuormantasaajan toiminta on varmennettu HA toiminnallisuudella, jolloin yksittäisen kuormantasaajan vikaantuminen ei lamauta koko järjestelmän toimintaa.

Yhteenveto

Palveluväylä on suorituskykyinen tapa siirtää tietoa. Jatkossa sinne liitettyjen palveluiden suorituskykyä voidaan skaalata ylöspäin melkeinpä miten paljon vain. Tämä tehdään kuormantasauksen avulla liittämällä klusteriin lisää liityntäpalvelimia. Palveluväylä tuo tiedonsiirtoon tietoturvaa, aikaleimausta, varmenteita ja vakioituja ratkaisuja palveluiden liittämiseksi ja käyttämiseksi väylässä. Palveluväylä tarjoaa siis tietoturvalla varustettua siirtokyvykkyyttä. Ostoskanavan sanoin, ei siinä vielä kaikki: tämä kaikki on saatavilla valmiina paketoituna kokonaisuutena, jossa on mukana monipuoliset ohjeistukset. Ja se on vieläpä käytettävissä ilmaiseksi! Liity mukaan Palveluväylään

Hannu Hakala

Kirjoittaja työskentelee IT-alan palveluyritys Cybercomin palveluksessa ja on Suomi.fi-palveluväylän tuoteomistaja. Hän on innokas digitalisoitumisen puolestapuhuja: ”Mikä onkaan hienompaa, kuin tehdä digitalisaatiota kotimaan hyväksi”.

Tule mukaan X-Road-yhteisön tapahtumaan Viroon 7.9.2017

(Päivitetty 24.8.2017, ohjelma ja kuljetuksien aikataulut tarkentuneet)

7. syyskuuta Virossa järjestetään kansainvälinen X-Road-yhteisön kokoontuminen. Tapahtuma järjestetään Nelijärven virkistyskeskuksessa (noin 60 kilometriä Tallinnasta).

Englanninkielisessä tapahtumassa käsitellään mm. seuraavia mielenkiintoisia ja päivänpolttavia aiheita X-Roadin tiimoilta:

  • Missä Viron ja Suomen X-Road-ratkaisuissa tällä hetkellä mennään?
  • NIIS – Nordic Institute for Interoperability Solutions, Suomen ja Viron yhteisen X-Road instituutin esittely
  • MyData & X-Road – insinöörin silmin nähtynä
  • X-Road-protokollan käyttömahdollisuudet

Kuljetus ja majoitukset

Tallinnan satamasta järjestetään bussikuljetus tapahtumapaikalle illalla 6.9.2017. Bussi lähtee D-terminaalin edestä klo 19.00 kohti Nelijärveä. Yöpyminen ja majoitus on tapahtuman järjestäjän puolesta järjestetty Nelijärven virkistyskeskuksen tiloissa. Illalla on iltapala ja mahdollisuus saunomiseen paikan päällä.

Paluukuljetus Tallinnan sataman D-terminaaliin lähtee 7.9.2017 n. klo 17.30 Nelijärven virkistyskeskuksesta jotta matkustajat ehtivät klo 19.30 lähtevään Tallinkin lauttaan. Kuljetukset tarjotaan kaikille englanninkielisen ilmoittautumislomakkeen kautta ilmoittautuneille osallistujille. Tapahtuman järjestäjä lähettää vielä erikseen lisätietoja kuljetuksista ja käytännön järjestelyistä ilmoittautuneille.

Osallistuminen on ilmaista

Tapahtuma, majoitus, ruokailut ja kuljetus Tallinnan satamasta tapahtumapaikalle ja takaisin ovat ilmaisia.

 

Ilmoittaudu heti mukaan

Lisätietoja tapahtumasta sekä ilmoittautumislomake löytyvät alla olevan linkin takaa: https://xtee2017.publicon.ee/

Paikkoja tapahtumaan on rajoitetusti ja paikat annetaan ilmoittautumisjärjestyksessä, joten kannattaa toimia nopeasti!

Yhteisön kokoontumisissa käsiteltävät teemat valitaan kulloinkin pinnalla olevien aihepiirien mukaisesti. Teemojen käsittely on asiantuntevaa, mutta samalla hyvin käytännönläheistä sisältäen vapaamuotoista keskustelua aiheiden tiimoilta. Tapahtumassa on mahdollista tavata X-Roadin ydinhenkilöitä ja verkostoitua yhteisön jäsenten kanssa. Tule siis mukaan tapaamaan X-Roadin taustalla olevia henkilöitä ja kuulemaan uusimmat X-Road kuulumiset.

Lisätietoa X-Roadista

Suomi.fi-palveluväylän ja Viron kansallisen integraatioalusta X-tee:n taustalla on yhteinen X-Road-ratkaisu. Järjestelmä on tällä hetkellä käytössä molemmissa maissa ja tulevaisuudessa sitä tullaan käyttämään myös maiden välisessä tietojen vaihdossa. Lue lisää:

Palveluväylän uusi tuotantoversio tulossa – muutoksia liittyneille organisaatioille

Palveluväylän seuraava tuotantoversio (versionumero 6.9.x) julkaistaan alkuvuoden aikana. Uusi versio sisältää muutamia uudistuksia ja muutoksia toiminnallisuudessa, jotka vaativat mahdollisesti toimenpiteitä palveluväylään jo liittyneiltä organisaatioilta.

Jotta asiakkaiden palveluiden käyttöön ei tule katkoksia uuden version asennuksen myötä ja siirtyminen uuteen versioon on mahdollisimman ongelmatonta, organisaation on hyvä tarkistaa alla mainitut asiat oman liityntäpalvelimensa ja palveluväylään tarjottavien palveluiden osalta. Muutoksiin ei ole tarvetta, jos oman liityntäpalvelimen ja palveluiden asetukset sekä toiminnallisuudet on alun perinkin tehty suositusten ja X-Road-rajapintakuvausten mukaisesti.

  1. Liityntäpalvelimen Member-tasolle ei saa jatkossa olla liitettynä palveluita
    • Jatkossa liityntäpalvelimen kautta väylään tarjottavien palveluiden liittäminen suoraan Member-tasolle ei ole sallittua tai edes mahdollista, vaan palvelut on kytkettävä vain ja ainoastaan Alijärjestelmä-tasolle.
    • Palvelut on kytkettävä vain ja ainoastaan Alijärjestelmä-tasolle, palveluiden kytkeminen Member-tasolle ei ole enää tuettuna. Palvelut on siirrettävä manuaalisesti käsin Member-tasolta Alijärjestelmä-tasolle ennen päivitysasennuksen aloittamista. Jos palveluita ei siirrä manuaalisesti pois, kaikki Member-tasolta löytyvät palvelut poistetaan automaattisesti. Huom! Asennusohjelma ei pysäytä asennusta tai anna automaattista virheilmoitusta tästä tilanteesta.
    • Ohjeet palvelujen lisäämisestä/siirtämisestä Alijärjestelmän-tasolle löytvät täältä: https://esuomi.fi/palveluntarjoajille/palveluvayla/tekninen-aineisto/konfigurointiohjeita/uuden-palvelun-lisaaminen-liityntapalvelimelle/
  1. Palvelun lähettämä Content-Type HTTP-otsikkotieto lähetetään jatkossa sellaisenaan vastaanottajalle
    • Asiakkaan palveluväylään liittämän palvelun väylään lähettämän SOAP-sanoman Content-Type-otsikko lähetetään jatkossa version 6.9.x myötä sellaisenaan vastaanottajalle. Aikaisemmin väylän ohjelmisto on pyrkinyt päättelemään Content-Type-otsikkoa oikeaksi:
      • Aikaisemmissa palveluväylän versioissa Content-Type-otsikko asetettiin joko 1) multipart/related, jos SOAP-sanomassa oli mukana liitetiedosto tai 2) text/xml, jos sanoma oli normaali SOAP-sanoma ilman liitetiedostoja. Palveluväylän ohjelmisto siis muunsi asiakkaan palvelun asettaman, mahdollisesti jonkun muun Content-Type-otsikkotiedon joko 1) tai 2) -tyyppiseksi.
    • Palveluiden ja tietojärjestelmien toiminta saattaa muuttua version 6.9.x myötä, jos sanoman Content-Type-otsikko onkin jatkossa erilainen kuin aikaisemmin. Automaattista muunnosta ei tehdä enää yllä olevan mukaisesti, vaan Content-Type-otsikko menee läpi sellaisenaan kuin se on alun perin palvelun myötä asetettu. Tästä syystä on tarkistettava, miten omat palvelukutsut ja niihin saadut vastaukset on toteutettu:

Palveluväylän ylläpito auttaa tarvittaessa: palveluvayla@palveluvayla.fi

Suorituskykyinen Suomi.fi-palveluväylä

Suomi.fi-palveluväylä tarjoaa vakioidun tavan tietojen siirtoon organisaatioiden välillä mahdollistaen turvallisten palvelukokonaisuuksien rakentamisen kansalaisille, yrityksille ja viranomaisille. Tämän palveluväylä tarjoaa ja lupaa. Mitä sanan ”siirtoon” taakse kätkeytyy? Minkälaista dataa palveluväylässä voidaan itseasiassa siirtää ja miten suorituskykyinen se on? Yritän kirjoituksessani avata asiaa, koska useissa keskusteluissa useiden eri tahojen suunnalta on kysytty tätä ja toivottu selkeytettävän.

Historiaa

On totta, että X-Roadissa käytettävä SOAP-tiedonsiirtoprotokolla on alun perin suunniteltu pienten sanomien siirtoon. Moni on ihmettelyt, miksi ylipäätään SOAP-tiedonsiirtoprotokollaa käytetään X-Roadin perustekniikkana. Eikö olisi järkevämpää käyttää jotain nykyaikaisempaa protokollaa, vaikkapa REST/JSON-pohjaista tekniikkaa? Lyhyt vastaus on, että kun koko X-Road-järjestelmää aloitettiin suunnittelemaan 90-luvun loppupuolella Virossa, mietittiin, mikä olisi hyvä ja luotettava tapa siirtää dataa silloisissa tietoverkoissa ja käytössä olevilla protokollilla. Siihen aikaan kun varteenotettavia ja jo hyväksi koettuja protokollia ei ollut liiemmälti. Silloin päätettiin valita käyttöön XML-pohjainen XML-RPC-protokolla. XML oli tullut silloin jo laajemmalti käyttöön (vuonna 1996 julkistettiin ensimmäinen luonnosversio XML-spesifikaatiosta ) ja näytti, että siitä tulee valtaprotokolla tiedon siirtoon tietoverkoissa, joten valinta oli luonteva.

Vuonna tehtiin 2002 SOAP RPC/encoded -tuki, SOAP document/litteral wrapped -tuki valmistui vuonna 2010. Viron puolella nykyisen SOAP-protokollan vakiintuminen ja laaja käyttö ovat valideja perusteluja sille, miksi SOAP- protokollaa edelleenkin käytetään X-Roadin pohjana. Suomen puolella ei ole toistaiseksi lähdetty tekemään poikkeavaa linjausta, koska se vaatisi aika ison kehitystyön. Ajatus- ja ideatasolla tätä on jo mietitty.

REST/JSON-sovitin saatavilla

REST/JSON-pohjaisten järjestelmien liittäminen Suomi.fi-palveluväylään on kuitenkin mahdollista niin sanotun Rest Gateway -sovittimen avulla. Komponentti on saatavilla ilmaiseksi avoimena lähdekoodina Github repositoriosta. Komponenttia on testattu ja koestettu paljon ja sitä käytetään jo useissa erilaisissa palveluväyläliitynnöissä kytkemään REST/JSON-pohjainen tietojärjestelmä palveluväylään.

Suorituskyvyn parantaminen syksyn teemana kehitystyössä

Syksyn aikana Suomessa tehdyssä Palveluväylän kehitystyössä on keskitytty suorituskyvyn parantamiseen, jotta palveluväylän siirtokyky tukee paremmin erityisesti Suomessa väylään liittyviä organisaatioita. Suorituskykyä on parannettu mm. optimoimalla tietokantahakujen suorittamista, kehittämällä varmenteiden tarkistuksessa käytettävän OCSP-palvelun (Online Certificate Status Protocol) toimintaa ja parantamalla välimuistin käyttöä. Viimeisimpänä isona parannuksena on julkistettu ohjeistus siitä, miten muistiasetuksia kannattaa säätää omalla palvelinalustalla. Ohjeistus auttaa jokaista palveluväylään liittynyttä organisaatiota parantamaan oman liityntäpalvelimensa suorituskykyä, koska liityntäpalvelimen asennuspaketissa asetettavat vakioasetukset eivät useinkaan sovellu suoraan käyttöön, ainakaan optimaalisella tasolla. (Lisää muistiasetuksien optimoinnista täältä). Ohjeiden lukeminen ja käyttöönotto todellakin kannattaa, koska se auttaa parantamaan liityntäpalvelimen suorituskykyä merkittävästi.

Ystävämme Virossakaan eivät ole lepäilleet laakereillaan, vaan ovat omalta osaltaan tuoneet panoksensa X-Road-väylän suorituskyvyn parantamiseksi. He ovat toteuttaneet mm. uuden SOAP Body parserin, jonka pitäisi tuoda huomattavaa suorituskyvyn parannusta ja muistin käytön optimointia viestien välitykseen. Heiltä saatujen alustavien suorituskykytestien pohjalta puhutaan useiden kymmenien prosenttien parannuksesta varsinkin suurilla (>= 1MB) ja kompleksista rakennetta sisältävillä SOAP-viesteillä. Tämä merkittävä parannus on tulossa seuraavaan julkaistavaan versioon (versio 6.9.0). Tarkempia mittaustuloksia saadaan, kunhan teemme Suomen palveluväylässä omat suorituskykymittauksemme.

Yleinen suorituskyky

Palveluväylän yleisestä suorituskyvystä puhuttaessa voidaan antaa tiettyjä yleislinjauksia siitä, minkälaiseen tiedonsiirtoon palveluväylä on suunniteltu ja missä se on parhaimmillaan. Lopulta väylän siirtokyvykkyys eri järjestelmissä riippuu monesta eri asiasta, kuten: minkälaisia viestejä halutaan siirtää, miten isoja ne ovat, mikä on käytettävän verkon siirtonopeus ja miten paljon yhtäaikaisia käyttäjiä/palvelukutsuja järjestelmässä on. Alla on listattuna muutama ohjenuora, minkälaisiin tiedonsiirtoihin palveluväylä on erityisen soveltuva:

  • Parhaimmillaan siirtokyky on siirrettäessä pieniä synkronisia viestejä
  • Sanomakoolla 100 kt ja alle suorituskyky on paras
  • Yli 500 kt sanomakoolla suorituskyky laskee jonkin verran

Suorituskykymittausten tuloksia

Jotta palveluväylän suorituskyvystä saisi paremman kuvan ja sitä voisi verrata vaikkapa oman järjestelmän tarpeisiin, on alla esitelty suorituskykymittausten tuloksia. Palveluväylän jokainen julkaistava versio suorituskykytestataan kattavasti ja mittaustulokset dokumentoidaan säännönmukaisesti. Saatuja tuloksia analysoidaan ja verrataan esimerkiksi edellisen version mittaustuloksiin, jotta nähdään, miten suorituskyky on muuttunut eri versioiden välillä.

Testit suoritetaan kuvan 1 mukaisella testijärjestelmällä. Kuormageneraattorilla ajetaan pyyntösanomia asiakaspään liityntäpalvelimelle (Security Server 1), joka pyytää sanomiin vastausta palveluntarjoajan liityntäpalvelimelta (Security Server 2). Tämä liityntäpalvelin saa vastaukset testipalvelulta. Testipalvelu tuottaa vakiovastauksen sekä siihen liittyvät liitetiedostot, ja sanomakoot voidaan määritellä testin konfiguroinnilla. Vastaussanoma kulkee samaa reittiä takaisinpäin ja testissä mitataan, miten kauan koko viestiketjun (kyselysanoma – vastaussanoma) suorittamiseen kuluu aikaa.

palveluvayla_blogi_suorituskykytestaus

Kuva 1. Suorituskykymittauksen testijärjestely.

Testit ajetaan niin, että ensin määritetään kyseisessä testiajossa siirrettävä sanomakoko. Tämän jälkeen määritellään, miten yhtäaikaisten käyttäjien määrää lisätään testin aikana. Tyypillinen skenaario on, että testin aluksi käyttäjiä on 1, jonka jälkeen määrää kasvatetaan: käyttäjämäärä nousee askelittain, suurimmillaan yhtäaikaisia käyttäjiä on normaalitapauksessa n. 150-300.

Seuraavissa kuvissa on esitetty kolme eri testimittausta 100 B, 100 K ja 500 K viestipaketeilla uusimmalla liityntäpalvelimen versiolla (versio 6.7.13) suoritettuna ja suositeltavin muistiasetuksin tehtynä. Kumpikin liityntäpalvelin on varustettu samanlaisella alustakokoonpanolla:

  • OS: Red Hat 7
  • Keskusmuisti: 4 Gb
  • 1 CPU (E5-2650 v3, 2.50 GHz)
  • Levytila: 7 Gb

Kuvissa esiintyvä lyhenne TPS tarkoittaa ’Transactions Per Second’, eli montako tapahtumaa sekunnissa tapahtuu ja ’Transactions’ termi tarkoittaa tapahtumien lukumäärää, eli montako viestipakettia on siirretty. Kullekin tietyn kokoiselle viestipaketille on esitetty aina kaksi kuvaa: mittaustulokset vasteajoille ja tapahtumamäärät testin suorituksen aikana.

100B viestipakettien mittaustulokset

palveluvayla_blogi_100b_response_times

Kuva 2. 100B viestipakettien vasteajat.

palveluvayla_blogi_100b_transactions

Kuva 3. 100B viestipakettien tapahtumamäärät.

100K viestipakettien mittaustulokset

palveluvayla_blogi_100k_response_times

Kuva 4. 100K viestipakettien vasteajat.

palveluvayla_blogi_100k_transactions

Kuva 5. 100K viestipakettien tapahtumamäärät.

500K viestipakettien mittaustulokset

palveluvayla_blogi_500k_response_times

Kuva 6. 500K viestipakettien vasteajat.

palveluvayla_blogi_500k_transactions

Kuva 7. 500K viestipakettien tapahtumamäärät.

Mittaustuloksista lyhyesti

Kuvista nähdään, että palveluväylän datan siirtokyky on hyvä tai varsin hyvä, kun viestipakettien koko ei nouse isoksi (<=500 K) ja kun yhtäaikaisten käyttäjien määrä pysyy maltillisena (<=50 yhtäaikaista käyttäjää). Edellä mainittuja arvoja suuremmilla pakettikooilla ja isommilla määrillä yhtäaikaisia käyttäjiä palveluväylän suorituskyky heikkenee. Data siirtyy, mutta jonkin verran huonommalla suorituskyvyllä. Suorituskykyyn on tulossa huomattavaa parannusta version 6.9.0 myötä. Silloin voidaan odottaa merkittävästi parempia mittaustuloksia.

Liitetiedostojen siirrosta ja suorituskyvystä

Kun on tarve siirtää väylän yli jotain muuta kuin SOAP-viestiin sisään menevää XML-dataa tai halutaan siirtää isoja tiedostoja (yleensä >=1 Mb), oikea ratkaisu on käyttää ns. SOAP Attachment -siirtotapaa. Data siirretään silloin siis liitetiedostoina väylän yli. Alla muutamia liitetiedostojen siirtoon ja suorituskykyyn liittyviä seikkoja:

  • Palveluväylän kautta siirrettävien liitetiedostojen siirtoaika muodostuu lineaarisesti tiedoston koon mukaan.
  • Ylärajaa tiedostokoolle ei ole rajoitettu, vain levytila ja käytettävissä oleva aika rajoittavat.
    • Palveluväylän kehitysympäristössä on siirretty testimielessä 30 Gt liitetiedosto ongelmitta.
  • Liitetiedostojen siirtoaika riippuu myös käytetystä laitteistosta, pääasiassa CPU:sta ja levy-IO:n ja verkko-IO:n nopeudesta.
  • Palveluväylällä saadaan useimmissa tilanteissa riittävän hyvä suorituskyky isojenkin tiedostojen siirtoon, kunhan liityntäpalvelimet ovat riittävän tehokkaita.
  • Palveluväylän kautta tehtävä tiedonsiirto on jonkin verran suoraa SOAP-kutsua tai esimerkiksi SFTP-siirtoa hitaampi. Palveluväylän kautta tiedonsiirtoon menee noin 3,3 kertaa enemmän aikaa verrattuna SFTP:n yli tiedostoa siirrettäessä.

Alla olevassa taulukossa on muutamia mittaustuloksia, joita tekemissämme testeissä on saatu.

palveluvayla_blogi_liitetiedostojen_koot

Taulukko 1. Liitetiedostojen mittaustuloksia.

Taulukossa esiintyvät termit:

SOAP direct: suora palvelukutsu tietojärjestelmien välillä (palveluväylän liityntäpalvelimet eivät osallistu viestin välitykseen)

SOAP xroad: testipalvelua käytetään palveluväylän kautta (ns. normaali tapa käyttää palveluväylää)

SFTP: siirretään tiedosto SFTP:llä

568 Mbit/s: laskennallinen siirtoaika verkon maksiminopeudella

Yhteenveto

Palveluväylä on varsin suorituskykyinen tapa siirtää tietoa. Pitää muistaa, että palveluväylä tuo tiedonsiirtoon muun muassa tietoturvaa, aikaleimausta, varmenteita ja vakioituja ratkaisuja palveluiden liittämiseksi ja käyttämiseksi väylässä. Tällöin väistämättä suorituskykyyn tulee pientä alenemaa. Kaikkea kun ei voi saada yhdessä paketissa. Palveluväylä tarjoaa siis siirtokyvykkyyttä tietoturvalla varustettuna. Ja mikä parasta: tämä kaikki on saatavilla valmiina paketoituna kokonaisuutena ja vieläpä käytettävissä ilmaiseksi! Liity mukaan täältä: Liity Palveluväylään

Hannu Hakala

Kirjoittaja työskentelee IT-alan palveluyritys Cybercomin palveluksessa ja on Suomi.fi-palveluväylän tuoteomistaja. Hän on innokas digitalisoitumisen puolestapuhuja: ”Mikä onkaan hienompaa, kuin tehdä digitalisaatiota kotimaan hyväksi”.

Suomi.fi-palveluväylän uusi versio 6.7.13 julkaistaan

Palveluväylän kehitys-, testi- ja tuotantoympäristöt päivitetään tulevina viikkoina

Palveluväylän keskusympäristö päivitetään versiosta 6.7.12 versioon 6.7.13 alla esitetyn aikataulun mukaisesti. Keskusympäristön päivitys ei vaikuta yksittäisten liityntäpalvelinten toimintaan. Päivityksen aikana uusien liityntäpalvelinten tai organisaatioiden lisääminen palveluväylään ei ole mahdollista. Päivityksen tarkka ajankohta ilmoitetaan ympäristökohtaisilla jakelulistoilla viikkoa ennen päivitystä.

Päivitysten ajankohdat ovat:

  • Kehitysympäristö (FI-DEV) 26.9.
  • Testiympäristö (FI-TEST) 3.10.
  • Tuotantoympäristö (FI) 17.10.

Palveluväylän ylläpito lähettää tarkemmat päivitystä koskevat ohjeet liityntäpalvelinten teknisille yhteyshenkilöille keskusympäristöjen päivityksen jälkeen. Keskusympäristön päivityksen jälkeen on suositeltavaa päivittää liityntäpalvelimet uuteen versioon neljän viikon kuluessa. Uuden version päivityksellä saadaan huomattavaa suorituskyvyn parantumista ja resurssien käytön optimointia, joten versiopäivitys kannattaa tehdä ensitilassa. Marras-joulukuussa on todennäköisesti tulossa vielä toinen versiopäivitys, ja versio 6.7.13 tulee olla asennettuna liityntäpalvelimille ennen sitä.

Uutta versiossa 6.7.13

Uuden version 6.7.13 tärkeimmät uudet ominaisuudet ja parannukset on lueteltu alla:

Aikaisemmin käytössä olleen liityntäpalvelimen backupin palautus toimii nyt myös uuteen (tyhjään) ympäristöön. Aiemmin palautus toimi vain samalla liityntäpalvelimella, jolla varmistus oli otettu.

Liityntäpalvelimen käyttöliittymästä näkyy statustieto siitä, ovatko yhteydet auki OCSP-palveluun.
Värikoodit:

  • Vihreä: Ok
  • Keltainen: Tila ei tiedossa
  • Punainen: Yhteyttä OCSP palveluun ei ole saatu muodostettua, OCSP vastausta ei pystytty tulkitsemaan tai vastausta ei ole saatu OCSP palvelusta

SOAP fault -viestien namespacen prefix voi olla muutakin kuin SOAP-ENV. Aikaisemmissa versioissa tämä ei ollut mahdollista ja muun kuin SOAP-ENV prefixin käyttö aiheutti virhetilanteen.

Aikaleimauksen jumiutuminen tietyssä erikoistilanteessa on korjattu.

Uutta alijärjestelmää lisättäessä näkyy oletuksena vain oman organisaation alijärjestelmät. Aikaisemmin näkyi kaikkien muidenkin instanssien alijärjestelmä.

Liityntäpalvelimella on mahdollista käyttää Oracle JDK:ta OpenJDK:n sijaan. Tähän liittyen on tehty ohjeistus, jolla Oracle JDK:n asennus ja päivitys voidaan tehdä sekä Ubuntulle että RHEL7:lle.

Viestien (ns. messagelog-tietokanta) arkistointia on parannettu niin, että sen muistin kulutus ei kasva rajatta, vaikka kannassa olisi kymmeniä tuhansia tietueita.

Esuomi.fi-sivuston ohjeistusta on lisätty X-Road-tiedonsiirtoprotokollan osalta. Erityisesti lukuja 3 ja 5 on päivitetty. Tärkeä huomattava seikka on, että X-Roadin versiossa 5 oli pakollista ympäröidä kysely- ja vastaussanoma request/response XML-elementtiin eli request/response-kääreisiin, mutta X-Roadin versiossa 6 request/response-kääreiden käyttö ei ole enää pakollista.

Liityntäpalvelimen suorituskykyä on parannettu optimoimalla tietokantahakujen suorittamista silloin, kun kannasta haetaan liityntäpalvelimen konfiguraatiotietoja.

Metaspacen muistin määrää on säädetty, jotta signer-prosessi ei kaadu muistin loppumiseen.

Liityntäpalvelimessa käytetyt riippuvuuspaketit on päivitetty uusimpiin versioihin, jotta mahdolliset haavoittuvuudet vanhoissa paketeissa tulevat korjatuksi.

Lisäksi on tehty useita OCSP-protokollaan liittyviä parannuksia:

  • Epäonnistuneiden OCSP-vastausten hakua yritetään uudelleen Fibonaccin sarjan mukaisesti: ensimmäisen epäonnistuneen haun jälkeen yritetään uudelleen 10 s kuluttua, toisen epäonnistumisen jälkeen 20 s kuluttua sitten sarja etenee 30 s, 50 s, 80 s, 130 s jne.
  • OCSP-vastausten verifiointi tehdään vain kerran per sanoma ja saatu vastaus laitetaan välimuistiin, josta se voidaan noutaa tarvittaessa uudelleen.
  • OCSP-vastaus haetaan nyt global configurationissa määritellyn intervallin mukaisesti. Intervalli on testissä ja tuotannossa yksi tunti. Tuotannossa OCSP-palvelun palauttama vastaus päivittyy uuteen kerran tunnissa ja vastaus on voimassa 24 tuntia. Tunnin päivitysintervallilla OCSP-palvelu voi olla alhaalla noin 22 tuntia ennen kuin se vaikuttaa liityntäpalvelinten toimintaan.

Liityntäpalvelimen suorituskykyä on parannettu keskuskonfiguraation välimuistiin tallennusta optimoimalla.

AntiDosConnectionManagerin lokiin kirjoittaman virheilmoituksen ’Insufficient resources, closing connection’ tasoa on nostettu WARN-tasolta ERROR-tasolle, jotta virhetilanteeseen voidaan reagoida nopeammin.

On korjattu ongelma, joka jätti palvelun tuottajan liityntäpalvelimelle TCP-yhteyksiä satunnaisesti avoimiksi niin, että avoimien yhteyksien määrä kasvoi pikkuhiljaa isommaksi. Tämä kulutti siten ylimääräisiä palvelimen resursseja. Korjaus toimiii niin, että se sulkee avoimeksi havaitut TCP-yhteydet automaattisesti samalla, kun TLS-tason yhteys päätetään jolloin ylimääräisiä avoimia yhteyksiä ei jää auki.

Asennukseen ja päivitykseen liittyvää ohjeistusta

Uusi versio on saatavilla osoittesta: http://www.nic.funet.fi/pub/csc/x-road/client/6.7.13/

Uusi liityntäpalvelin voidaan päivittää toimivan v.6.7.7 tai v.6.7.12 asennuksen päälle. Päivityksiä muiden versioiden päälle ei ole testattu.

Asennus- ja päivitysohjeet löytyvät esuomi.fi-sivustolta:

Ubuntu 14.04 LTS

Red Hat Enterprise Linux 7

Youtubesta löytyy myös havainnolliset videot liityntäpalvelimen asennukseen ja alijärjestelmän järjestelmän lisäämiseen.

Katso videot täältä:

https://www.youtube.com/watch?v=1z2PWOzVdFA

https://www.youtube.com/watch?v=X9XEfzYKx5c

Asennukseen ja päivitykseen liittyviä kysymyksiä voi lähettää osoitteeseen palveluvayla(at)palveluvayla.fi.

Suomi.fi-palveluväylästä palveluja meille kaikille

Mikä on Suomi.fi-palveluväylä?

Suomi.fi-palveluväylä on digitaalisten palveluiden infrastruktuuri, joka perustuu yhteentoimivuuden takaavaan järjestelmään. Suomi.fi-palveluväylä tarjoaa vakioidun tavan tietojen siirtoon organisaatioiden välillä mahdollistaen turvallisten palvelukokonaisuuksien rakentamisen niin kansalaisille, viranomaisille kuin yrityksillekin.

Tarkemmin avattuna siis, palveluväylä on ratkaisu tiedon siirtämiseksi eri osapuolten välillä luotettavasti, tietoturvallisesti ja hyväksikäyttäen vakioitua tapaa liittyä ja käyttää väylää. Tavoitteena on ollut alusta saakka, ja tulee jatkossakin olemaan, varmatoiminen ja ehdottoman luotettava tapa tiedon liikuttamiseksi. Hyvä tekninen kuvaus siitä, miten tieto liikkuu palveluväylällä, löytyy tästä blogista.

Palveluväylä ei ole perinteisessä mielessä ”väylä”, kuten ESB on ohjelmistokehittäjille tai vaikkapa teollisuuden puolella ovat sarjaliikenneväylä, CAN-väylä tai ModBus-väylä. Siinä ei siis ole mitään erikseen johdotettua siirtotietä, joka olisi tehty vain tätä tarkoitusta varten. Nimenomaan päinvastoin: palveluväylä toimii normaalin internetin ylitse ja se käyttää yleisiä verkkoja siirtotienään. Palveluväylä onkin nimenä vähän harhaanjohtava. Parempi nimi voisi olla vaikka palveluverkko tai -kerros.

Palveluväylän tekninen toteutus perustuu virolaisten kanssa yhteistyössä kehitettävään X-Road 6 -teknologiaan. Virossa kyseinen teknologia ja järjestelmä on ollut käytössä jo yli kymmenen vuotta, ja sitä käyttää yli 900 organisaatiota. Päivittäin eteläisen naapurimaamme X-Road-väylällä käytetään yli kahta tuhatta palvelua, joten mistään pienen mittakaavan järjestelmästä ei ole kyse.

Miksi Suomi.fi-palveluväylä?

Se on vankka ja laajalti koestettu perusta (tuotantokäyttö alkoi Suomessa 18.11.2015) jonka päälle palvelut voidaan tehdä. Sen avulla voi jakaa omia palveluja ja tietoja sekä käyttää hyväksi muiden liittyneiden toimijoiden tekemiä palveluja ja tietovarantojen tietoja. Kansallinen palveluarkkitehtuuri nojaa kokonaisuudessaan vahvasti palveluväylän päälle ja hyödyntää sen ominaisuuksia. KaPA-ohjelmassa luodaan kansallinen palveluväylä (tiedon välityskerros), kansalaisten, yritysten ja viranomaisten tarvitsemat yhteiset palvelunäkymät, uusi kansallinen sähköinen tunnistusratkaisu sekä kansalliset ratkaisut organisaatioiden ja luonnollisten henkilöiden roolien ja valtuutusten hallintaan. Seuraavassa sama kuvan muodossa esitettynä.

Palveluväylän kokonaisuus

Jos liityn palveluväylään, mitä siitä hyödyn?

Palveluväylä itsessään ei siis suoraan tarjoa valmiita palveluita käytettäväksi sanan perinteisessä merkityksessä, vaan se on tiedonsiirtoalusta. Jo alusta ja sen infrastruktuuri tarjoavat useita hyötyjä:

  • Palveluväylän kautta on mahdollista saada pääsy mm. useisiin julkishallinnon rekistereiden ja järjestelmien tietoihin
  • Tunnistautuminen, varmenteet ja tiedon salaus ovat valmiiksi ratkaistuna
  • Käyttöoikeuksien hallinta on toteutettuna
  • Tuotteistetun ja vakioidun tavan liittyä väylään ns. liityntäpalvelimen kautta
  • Selkeät yhteiset rajapinnat, joiden kautta voidaan kysellä tietoja
  • Säästöt infrastruktuuri-, arkistointi- ja ylläpitokustannuksista
  • Liityntäkatalogin avulla muiden tarjoamat rajapinnat ja sisältötiedot kaikkien nähtäville
  • Aikaleimatut sanomat, lokituspalvelut ja varmuuskopioinnit valmiina

Palveluväylän hyödyt syntyvät ensi kädessä kuitenkin siihen kytketyistä palveluista. Siis siitä, että väylään on liittynyt palvelun tuottajia ja niiden hyödyntäjiä ja tiedonsiirto näiden välillä tapahtuu standardoitulla tavalla, jolloin voidaan helposti ja nopeasti etsiä ja noutaa tietoa eri toimijoiden välillä. Palveluväylä tarjoaa siihen ratkaisun.

Miksi liittyä Suomi.fi-palveluväylään?

Karrikoiden tämän voisi tiivistää kahteen sanaan:

  1. Laki
  2. Raha

Laki: ns. KaPA-laki sisältää valtion ja kuntien viranomaisille velvoitteen käyttää KaPA-ohjelman palveluita kaikessa sähköisen asiointipalvelujen tuotannossa. Laki velvoittaa julkishallinnon organisaatiot liittymään palveluväylään ja mahdollistaa liittymisen myös yrityksille. Liittyminen on siis pakollista lain määrittelmissä puitteissa. KaPA-laki astuu voimaan heinäkuun puolivälissä.

Raha: Palveluväylään liittyminen on ilmaista. Siis ilmaista ihan kaikille, jotka siihen haluavat liittyä, myös yrityksille ja yksityishenkilöille julkishallinnon lisäksi. Eikä siinä kaikki, julkishallinnon organisaatiot voivat saada Suomi.fi-palveluiden käyttöönottoon valtiovarainministeriön myöntämää rahoitusta liittymiseen. Lisäksi siltä niin sanotulta ’pyörän keksimiseltä uudestaan’ vältytään, kun käytetään valmiita ja toimivia palveluväylän tarjoamia ominaisuuksia.

Tätä tehdään suomalaisia varten

Suomi.fi-palveluväylää tehdään Suomen ja suomalaisten eduksi. Kansallinen palveluarkkitehtuuri ja siihen kiinteästi liittyvä palveluväylä on osa hallituksen rakennepoliittista ohjelmaa, jolla mahdollistetaan julkisten palveluiden entistä tehokkaampi hyödyntäminen. Mukana tekemisessä on iso joukko ihmisiä, joiden ammattitaito ja sitoutuminen työskentelyyn on silmiinpistävän kovaa luokkaa. Uskon vahvasti, että tekemisen myötä valmistuu, ei pelkästään hyvää, vaan priimaa.

Hannu Hakala

Kirjoittaja työskentelee IT-alan palveluyritys Cybercomin palveluksessa ja on Suomi.fi-palveluväylän tuoteomistaja. Hän on innokas digitalisoitumisen puolestapuhuja: ”Mikä onkaan hienompaa kuin tehdä sitä kotimaan hyväksi”.

Kirjoitus on alun perin julkaistu Cybercomin blogissa.