Koostettavat ratkaisut – Mihin ne sopivat ja mihin eivät?

Vähän ehkä kulunutkin sanonta on, että jos sovelluskehittäjälle annettaisiin vapaat kädet valita, niin verkkosivustot rakennettaisiin aina viimeisimmillä ja trendikkäimmillä välineillä, asiakkaan toiveista ja etenkin kustannuksista välittämättä. Verkkopalveluiden tapauksessa voitaisiin tällöin tarkoittaa esimerkiksi headless-mallin mukaista sisällönhallintaa, Reactin tai Vuen kaltaisia JavaScript-ohjelmistokehyksiä sekä niitä täydentäviä mikropalveluja ja ohjelmistokirjastoja, joista moni ei välttämättä ole koskaan kuullutkaan.

North Patrol on suunnitteluun erikoistunut konsulttitoimisto. Suunnittelemme, autamme teknologiavalinnoissa, kilpailutamme. Emme myy toteutusprojekteja, emmekä lisenssejä, olemme aidosti asiakkaan puolella.

Ensikuulemalta ehkä pelottava ajatus. JavaScript-pohjainen sovelluskehittäminen on kuitenkin viime vuosina ottanut isoja harppauksia eteenpäin, eikä se enää ole asiakkaankaan kannalta pelkästään suuri ja tuntematon uhka. Verkkopalveluissa hyödynnetään myös entistä enemmän valmiita tuotteita ja/tai alustaratkaisuja, eikä kaikkea enää tarvitse tehdä täysin pitkästä tavarasta. Moneen tarpeeseen räätälöity ratkaisu voi muutenkin sopia paremmin kuin esimerkiksi monoliittinen verkkosisällön julkaisujärjestelmä.

Kaikki verkkopalvelut rakennetaan räätälöiden

Termi "räätälöity ratkaisu" alkaa myös olemaan jo hieman vaikeasti määriteltävissä, ja ehkä vähän vanhahtavakin. Yksikään verkkopalvelu ei tänä päivänä synny ilman jonkinasteista räätälöintiä. Ennemminkin pitäisi puhua koostettavista ratkaisuista, tai kuten kolmannella kotimaisella usein puhutaan, composable-arkkitehtuurin mukaisista ratkaisuista. Näissä verkkopalvelukokonaisuus toteutetaan tyypillisesti erilaisia, jopa hyvin itsenäisiä komponentteja yhdistelemällä.

Verkkopalvelu voidaan rakentaa esimerkiksi siten, että sisällönhallinnasta huolehtii yksi sovellus, raakadatan varastoinnista toinen, datan rikastamisesta kolmas, hakupalvelusta neljäs ja käyttäjälle näkyvästä esityskerroksesta viides. Ja liikenne näiden välillä hoidetaan modernien ohjelmointirajapintojen, kuten REST, välityksellä.

Suosittuja koostamisen teknologioita

North Patrolin konsultoimiin kilpailutuksiin jätetyissä tarjouksissakin on yhä useammin mukana ainakin joitakin composable-mallin mukaisia elementtejä. Näissä liikennöinti eri osien välillä tapahtuu useimmiten juuri REST-rajapintakutsuilla. Usein ratkaisuissa on hyödynnetty myös suosituimpien alustaekosysteemien, kuten Microsoft Azure, Google Cloud Platform ja Amazon Web Services, tarjoamia valmispalveluja, joita yhdistelemällä melkeinpä ratkaisu kuin voidaan rakentaa. Silloin tosin tyypillistä on, että pysytellään pitkälti yhden ekosysteemin sisällä.

Alla joitakin poimintoja niistä teknologioista, joita meille useimmin tulee vastaan. Ratkaisut ovat toki aina asiakaskohtaisia ja sovitetaan niihin tarpeisiin ja järjestelmiin, jotka tilanteeseen parhaiten sopivat.

Sisällönhallintaan tarjolla paljon tuttujakin tuotenimiä

Sisällönhallintaan yleisin ratkaisu on edelleen aika perinteinen, useimmiten WordPress tai Drupal, mutta myös headless-ratkaisut ovat selkeästi nostamassa päätään. Headless-ratkaisuista selkeästi ykkönen Pohjoismaissa on tällä hetkellä Contentful, mutta myös Prismic, Sanity ja Strapi ovat suosittuja. Tästä aiheesta kannattaa lukea lisää aikaisemmasta jutustamme Suosituimmat rajapintalähtöiset CMS-tuotteet Suomessa ja Pohjoismaissa.

JavaScriptiä käyttöliittymäkerroksen rakentamiseen

Vaikka sisällönhallintajärjestelmäksi tarjottaisiinkin vaikkapa WordPressiä, mukaan on usein liitetty erilaisia JavaScript-pohjaisia osakokonaisuuksia. Käyttöliittymäkerros tai sen osa on tällöin useimmiten rakennettu siten, että pohjalla on joko React tai Vue ohjelmistokehys, jota on täydennetty erilaisilla käyttöliittymän rakentamiseen tarkoitetuilla kirjastoilla ja/tai ohjelmistokehyksillä.

Reactin kanssa paljon käytettyjä käyttöliittymäkirjastoja/-kehyksiä ovat mm. MaterialUI ja React Bootstrap. Suorituskykyä, skaalautuvuutta ja tietoturvaa taasen pyritään kohentamaan Gatsbyn tai Next.js:n kaltaisilla kokonaisuuksilla. Vue-toteutuksissa vastaavia ratkaisuja tarjoavat esimerkiksi Bootstrap Vue, Nuxt.js ja Gridsome.

Pisimmälle vietyjen laajennusten ympärille on myös syntynyt varsin uskottavaa liiketoimintaa. Tästä hyvänä esimerkkinä on mm. Vue Storefront, joka on tuotteistanut kokonaisen verkkokaupan esityskerroksen ja tarjoaa sitä palveluna eri teknologioilla tuotetuille verkkokauppa-alustoille.

Taustajärjestelmiä mukaan tarpeen ja tarkan harkinnan perusteella

Taustajärjestelmien liittäminen kokonaisuuteen vaatii aina tarkkaa harkintaa. Kaikki järjestelmät eivät tarjoa moderneja rajapintoja ja/tai rajapintojen muokkaaminen tarvetta vastaavaksi voi olla yllättävän työlästä. Usein on myös niin, että taustajärjestelmään tallennettu data ei sovellu sellaisenaan verkossa hyödynnettäväksi. Silloin pitää miettiä voidaanko dataa rikastaa jossain toisessa järjestelmässä, onko taustajärjestelmään tehtävä muutoksia vai pitääkö tarpeeseen keksiä jotain aivan muuta. Nämä pohdinnat on aina tehtävä tapauskohtaisesti.

Helpompia tapauksia ovat ns. Saas-palvelut, jotka useimmiten tarjoavat joustavat rajapinnat jo valmiiksi. Tällaisia ovat esimerkiksi hakupalvelut, joista kannattaa lukea lisää aikaisemmasta jutustamme SaaS-hakuratkaisut kotimaisilla sivustoilla 2023.

Asiakkaillamme on myös usein käytössä erilaisia tapahtumienhallintaratkaisuja tai varausjärjestelmiä, kuten Lyyti, ja sellainen on usein helposti liitettävissä kokonaisuuteen. Myös erilaisia, pienempiä ja isompia chat-ratkaisuja, kuten NinChat, Giosg tai Rocket.chat, on markkinoilla paljon ja ne ovat helposti lisättävissä kokonaisuuteen. Verkkomaksamiseen liittyvissä tarpeissa mukaan saatetaan liittää myös esimerkiksi Paytrailin, Shopifyn tai vaikkapa Lippu.fi:n kaltaisia elementtejä.

Hieman hankalampia tapauksia ovat sitten varsinaiset liiketoimintajärjestelmät, eli vaikkapa asiakkuudenhallintaratkaisut tai tuotetiedonhallintaan käytettävät taustajärjestelmät. Niiden tietomallit on usein suunniteltu liiketoiminnan pyörittämisen näkökulmasta eikä välttämättä sisällön esittämiseen verkkosivuilla, joten oikeanlaisen tiedon kaivaminen niistä saattaa vaatia isompaakin jumppaa. Siitä huolimatta voi hyvin olla, että jumppa kannattaa silti tehdä.

Kuulostaa modernilta ja toimivalta, eikö vain? Miksi kaikkia verkkopalveluja ei sitten kannattaisi rakentaa näin? Pohditaanpa hetki mallin plussia ja miinuksia.

Koostamisen edut

Composable-mallin kiistattomana etuna voidaan pitää ainakin tietynlaista joustavuutta. Kaikki munat eivät ole samassa korissa ja yksittäisiä toiminnallisia kokonaisuuksia voi kehittää toisistaan riippumatta. Palikoita voidaan testata itsenäisemmin, mikä nopeuttaa kehitystyötä ja helpottaa laadunvarmistusta. Kokonaisia palikoita voi myös tarpeen mukaan korvata toisilla, ja jos jotain ei löydy valmiina, palikka voidaan toteuttaa itse.

Teknisesti malli mahdollistaa myös selkeämmän ja paremmin roolitetun kokonaisarkkitehtuurin verkkopalvelulle. Selkeä roolitus on erityisen tärkeää tilanteissa, jossa verkkopalvelukokonaisuus rakennetaan erilaisten taustajärjestelmien, kuten tuotetietokannan, varausjärjestelmän tai asiakkuudenhallintajärjestelmän ympärille. Asiakkaalle näkyvä osa on tällöin usein vain jäävuoren huippu, ohut pintakerros, joka sisältää vain vähän varsinaista toimintalogiikkaa.

Mikään teknologia ei vielä takaa onnistumista

Composable-mallia perustellaan usein myös yhtenäisemmällä asiakaskokemuksella, suorituskyvyllä, kehitystyön ketteryydellä ja nopeudella sekä monilla muilla sellaisilla argumenteilla, joiden toteutuminen on erityisen paljon kiinni siitä, miten hyvin tai huonosti toteutus suunnitellaan ja tehdään. Ja näissä asioissa korostuu tietenkin paitsi toimittajan myös tilaajan organisaation asiantuntemus, kun eri järjestelmät pitää saada keskustelemaan keskenään.

Hyvänkin arkkitehtuurin päälle on täysin mahdollista tehdä sutta ja sekundaa.

Koostamisen haasteita

Rakennuspalikoiden itsenäisyys muodostaa toisaalta myös merkittävän haasteen. Koska kokonaisuuden osia voidaan kehittää toisistaan riippumatta, toisinaan jopa eri organisaatioissa ja toisistaan tietämättä, muutosten hallintaan on kiinnitettävä erityisen paljon huomiota. Yllättäen ilmaantuvat muutokset tietorakenteisiin tai rajapintoihin saattavat aiheuttaa palikoiden yhteensopimattomuusongelmia ja pahimmillaan halvaannuttaa koko palvelun. Kaikkien osapuolten on pidettävä toisensa ajan tasalla jatkuvasti.

Toinen palikoiden erillisyydestä seuraava asia on, että palvelun ylläpitäjien on usein sukkuloitava useiden eri järjestelmien välillä saadakseen aikaan halutunlaisen lopputuloksen. Käyttökokemus ei välttämättä aina ole sitä, mitä vaikka viestinnällisten verkkosivustojen ylläpidossa ollaan totuttu käyttämään. Tämä luo haasteita myös esimerkiksi koulutusten suhteen.

Rajapintaistettujen palvelujen käyttö edellyttää myös keskimääräistä enemmän teknistä osaamista. Jos jotain menee pieleen, riittävän osaavaa teknistä tukea on oltava saatavilla hyvin nopeasti. Erityisesti JavaScript-pohjaisiin kirjastoihin tulee päivityksiä jatkuvasti, niiden julkaisua, yhteensopivuutta ja vaikutuksia on seurattava jatkuvasti ja ne pitää osata myös päivittää olemassa oleviin järjestelmiin ilman ongelmia.

Tästä seuraa mm. asia, jota ei ehkä niin usein tule ajateltua: Koostetuissa ratkaisuissa nimenomaan ylläpitovaiheen isot työmäärät ja kustannukset usein yllättävät. Kokonaisuus vaatii tyypillisesti monoliittiseen ratkaisuun verrattuna enemmän jatkuvaa hoivaa ja huolenpitoa. Vaikka ensimmäinen tuotantoversio syntyisikin ketterästi ja nopeasti, kokonaisuuden elinkaarikustannukset voivat olla moninkertaiset monoliittisempaan ratkaisuun verrattuna.

Laajempien kokonaisuuksien ratkaisu

Koostettavat ratkaisut sopivat tyypillisesti parhaiten nimenomaan sellaisten laajojen palveluiden alustaksi, joihin liittyy monimutkaisia käsittelyprosesseja, joissa on tarve yhdistellä tietovirtoja eri lähteistä ja joille tavoitellaan pitkää elinkaarta. Loppukäyttäjälle näkyvä osa palvelua on tällöin vain pieni osa kokonaisuutta. Esimerkkinä voisi olla vaikkapa B2B-verkkokaupat, joiden tuotedata on organisaation sisäisissä järjestelmissä ja joihin halutaan persoonallista brändileimaa, mutta valmiista verkkokauppa-alustoista ei löydy sopivaa ratkaisua.

Pitkän elinkaaren takaamiseksi on kuitenkin aina varmistettava, että teknistä osaamista löytyy jatkossakin, ja että euroja löytyy takataskusta myös pitkään ylläpito- ja jatkokehitysvaiheeseen.

Koostaminen ei siis ole hopealuoti, joka sopii kaikille ja kaikenlaisiin palveluihin. Pieniäkin verkkopalveluja voi toki suunnitella composable-mallin mukaan, mutta usein niihin tarpeisiin löytyy kustannustehokkaampia ja käyttäjäystävällisempiäkin ratkaisuja. Arkkitehtuuri kannattaakin suunnitella jo varhaisessa vaiheessa ja puntaroida eri vaihtoehtojen etuja ja haittoja huolella.

Lue lisää aiheesta

Lue palveluistamme Pyydä tarjous

PS. Sinua voisi kiinnostaa tulossa oleva webinaarimme: Verkkokaupan uudistaminen ja kehittäminen (7.3.2024 klo 09:15). Varaa paikka

Kimmo Parkkinen

FM Kimmo Parkkinen on määrittely-, suunnittelu- ja hankintavaiheen asiantuntija. Kimmo konsultoi asiakkaita tietojärjestelmien teknologia- ja toimittajavalinnoissa, toiminnallisten vaatimusten määrittelyssä sekä teknisessä suunnittelussa. Hänen erityisalueitaan ovat mm. teknisesti haastavien tietojärjestelmien suunnittelu, dokumentointi ja mallintaminen.

Kimmolla on yli 25 vuoden kokemus tietojärjestelmien ja verkkopalveluiden kehittämisestä. Aikaisemmassa työhistoriassaan Kimmo on työskennellyt mm. puolueettomana konsulttina sekä verkkopalveluja toimittavan yrityksen ohjelmistoarkkitehtina, tuotantopäällikkönä ja ohjelmistosuunnittelijoiden lähimpänä esimiehenä.

Myynti verkossa

Autamme verkkokaupan suunnittelussa, määrittelyssä ja kilpailutuksessa. Etsimme tavoitteisiisi oikeat strategiat, kanavat ja teknologiat, jotta voit ryhtyä pyörittämään menestyvää verkkokauppaa.

Lue palveluistamme

Pyydä tarjous

North Patrol lyhyesti

Meitä on kymmenen konsulttia, kaikki kokeneita suunnittelijoita tai teknologia-asiantuntijoita. Vuosittain meillä suunnitellaan ja valmistellaan yli 50 erilaista digipalvelu-uudistusta ja tietojärjestelmähanketta. Asiakkaamme ovat olleet erittäin tyytyväisiä työhömme (arvosana 9,5/10), ja monet heistä palaavat asiakkaiksi yhä uudestaan.

Lue lisää meistä

Miten erotumme kilpailijoistamme?

  • Digipalveluiden suunnitteluun erikoistuminen

    Olemme erikoistuneet digipalveluiden laadukkaaseen suunnittelutyöhön ja vaatimusmäärittelyyn. Missiomme on auttaa asiakkaita onnistumaan hankkeissaan luomalla mahdollisimman hyvät lähtökohdat toteutusvaiheelle – oli sitten kyse ketterästä toteutuksesta omalla tiimillä tai kumppanin kanssa tehtävästä hankkeesta tai julkisesti kilpailutettavasta urakasta.

  • Emme myy koodausta emmekä lisenssejä

    Moni teknologiakonsultti suosittelee asiakkailleen teknisiä ratkaisuja, joita sama talo myös toteuttaa. Meillä tätä vinoumaa ei ole, koska meiltä ei voi ostaa koodausta tai lisenssejä eikä meillä ole riippuvuuksia teknologiatoimittajiin. Näkökulmamme ohjelmistomarkkinaan on laaja-alainen. Tavoitteena on aina löytää asiakkaalle parhaiten soveltuva ohjelmistoratkaisu, oli se sitten räätälöity ratkaisu, saas-palvelu, avoimen lähdekoodin alusta tai näiden yhdistelmä.

  • Realistisuus ja kaukonäköisyys

    Suunnittelemme digipalveluiden palvelukonsepteja, toteutustapoja ja arkkitehtuureja, jotka kestävät aikaa ja jatkokehittämistä. Me painotamme ratkaisujen toteutuskelpoisuutta, hyvien kumppaniehdokkaiden löytymistä ja kustannusten ennustettavuutta.

Siirry takaisin sivun alkuun