Koulukoulu.fi
Koulukoulu rakentaa siltaa kodin ja koulun välille. Koulukoulu on maksuton verkkokurssi tämän päivän peruskoulusta, tämän päivän peruskoululaisten huoltajille. Enemmän jaettua ymmärrystä, entistä parempaa yhteistyötä. Lasten vuoksi.
Päätettiin toteuttaa verkkopalvelu, joka kokoaa yhteen tietoa tämän päivän peruskoulusta niin, ettei käyttäjä koe oppikokonaisuutta puuduttavana ja siksi jätä verkkokurssia kesken. Tärkeän asian välittämistä lähdettiin ratkomaan saumattomalla käyttökokemuksella, joka mahdollistaa kurssin suorittamisen missä tahansa, millä päätelaitteella tahansa, milloin tahansa ja kuinka monessa osassa tahansa.
Koulukoulu-verkkopalvelu on rakennettu mikropalveluarkkitehtuuria hyödyntämällä. Koulukoulun sisällönhallinta, käyttäjähallinta ja käyttöliittymä ovat kaikki tosisistaan erillisiä kokonaisuuksiaan.
Koulukoulun sisällönhallinta on rakennettu WordPress-julkaisujärjestelmän päälle. Koska sisällönhallinta on täysin erillään varsinaisesta julkisesta verkkopalvelusta, sen taustalle riittää ihan tavallinen web-hotelli. Kun REST-rajapinnan kautta varsinaiseen verkkopalveluun kulkevat sisällöt välitetään CDN-palvelun kautta, sisällönhallinnan taustalla olevaa palvelinta ei kuormiteta juuri lainkaan.
Koulukoulun käyttöliittymä, eli varsinainen käyttäjille näkyvä toteutus on rakennettu NuxtJS-sovelluksena. NuxtJS on modernien web-sovellusten kehittämiseen loistavasti soveltuva JavaScript-pohjainen sovelluskehys. NuxtJS pohjautuu Vue.js-kirjastoon, joka on Reactin ohella yksi tämän hetken suosituimpia käyttöliittymän rakentamiseen käytettyjä JavaScript-kirjastoja.
Kun verkkopalvelun tulee varautua vaihteleviin kävijämääriin ja suuriin kävijäpiikkeihin, kannattaa palvelinalustaksi useimmiten valita skaalautuva pilvipalvelu. Koulukoulun alustaksi valittiin Googlen Cloud Run -pilvipalvelu. Google Cloud Run on moderni saumattomasti skaalautuva Serverless-tyyppinen pilviympäristö, joka soveltuu hyvin esimerkiksi juuri Koulukoulun kaltaisten NuxtJS-sovellusten alustaksi. Pienenä bonuksena Cloud Runin osalta voidaan nostaa esille myös se, että sen europe-north1-lokaatio sijaitsee fyysisesti Suomessa. Kun NuxtJS-sovelluksen paketointiin hyödynnetään lisäksi Googlen Cloud Build -palvelua, sovelluksen muutokset siirtyvät automatisoitujen toimintojen avulla sekunneissa kehittäjän työpöydältä verkkopalvelun käyttäjien saataville – ilman käyttökatkoja.
Koska kyseessä on verkkokurssi, palvelussa käsitellään paljon käyttäjäkohtaista dataa. Verkkokurssin käyttäjädatalle on lisäksi ominaista se, että datan tulee olla reaaliaikaista, ja että sitä sekä haetaan että tallennetaan toistuvasti. Tästä saattaa varsinkin suurilla käyttäjämäärillä muodostua palvelun kuormituksen ja suorituskyvyn kannalta pahin pullonkaula. Koulukoulun osalta oli siis varsin loogista ja tärkeää, että myös käyttäjähallinta erotettiin omaksi kokonaisuudekseen. Koulukoulun käyttäjähallinnassa luotettiin Googlen Firebase -pilvipalveluun. Firebase tarjoaa valmiit taustatoiminnot oleellisimpiin käyttäjätoimintoihin, kuten esim. autentikointiin sekä salasanan palauttamiseen ja vaihtamiseen. Kun myös kaikki käyttäjäkohtainen data on tallennettuna Firebase-palvelun sisällä olevaan Cloud Firestore NoSQL-tietokantaan, käytössä on käyttäjämääristä ja muista järjestelmistä riippumaton skaalautuva käyttäjähallinnan kokonaisratkaisu.
Lue lisää: Räätälöidyt web-sovellukset – kaikki julkaisut Vierityspalkissa