Kulissien takana: Suomi24-keskustelualustan järeä uudistus

Jukka Ukkonen • 9. syyskuuta 2019

Pääsimme toteuttamaan Allerille Suomi24-keskustelualustan mittavaa uudistusta. Projektia on ollut toteuttamassa Jukka Ukkonen, ja hän kertoo projektista hieman tarkemmin:

“Suomi24-keskustelualustan uudistusprojekti on ollut erittäin mielenkiintoinen. Ensinnäkin keskustelualustalla on pitkä historia ja sillä on erittäin paljon käyttäjiä. Keskustelualusta oli ollut muutaman vuoden ylläpitovaiheessa, eikä uusia ominaisuuksia oltu kehitetty hetkeen. Teknologia ei ollut ajan tasalla, joten prosessien modernisoinnille ja automatisoinnille oli jo selvä tarve .

Uudistukseen on kuulunut ohjelmistokehitysprosessin ja -työnkulun muutoksia, sovellusten muuttaminen Docker-konteissa suoritettavaksi, sovellusten siirto AWS-palveluihin, CI/CD automatisointi sekä käyttöliittymän modernisointi (frontend- ja backend-muutokset).

Suomi24:n lokaali kehitysympäristö uudistettiin siten, että kaikkia sovelluksia ajetaan lokaalisti Docker-konteissa. Kaikki lokaalin kehitysympäristön pystytykseen vaadittavat toimenpiteet automatisoitiin mahdollisimman pitkälle docker-composen ja bash-skriptien avulla. Aiemmin uusilla kehittäjillä kesti tyypillisesti kahdesta viikosta kuukauteen pystyttää toimiva kehitysympäristö. Automatisoinnin jälkeen kehitysympäristö saadaan toimintaan alle puolessa tunnissa. Asiakkaan tiimille opetettiin myös gitin käyttöä ja mietittiin yhdessä tiimin kanssa sopiva versionhallintamalli.

Suomi24-palvelun node.js:llä toteutetun backend-sovelluksen riippuvuuksien hallinta vaihdettiin bowerista npm:ään ja paketointityökalu Gulpista Webpackiin. Samalla päivitettiin joitain vanhoja kirjastoja ja järkevöitettiin paketointiprosessia.

Suomi24 node.js backend-sovelluksen suoritusalusta vaihdettiin AWS:än dedikoiduilta palvelimilta Docker-kontteihin ECS klusteriin. Serverin päivitys toteutettiin aiemmin manuaalisesti palvelimilla ajettavilla bash-skripteillä. Uudistuksessa päivitysten asennusprosessi automatisoitiin CircleCI:n, CloudFormationin ja AWS CodeDeployn avulla. 

Näiden muutosten jälkeen sivustolle haluttiin täysin uusi ilme, jolloin seuraava looginen askel oli modernisoida ja uudistaa käyttöliittymä/frontend-koodi aiemmin käytetystä FlightJS:stä Reactiin. Käyttöliittymän uudistuksessa näkymiä uudistetaan yksi kerrallaan. Uudistus pitää sisällään Reactin lisäksi muitakin osia, kuten esimerkiksi mainosten hallinnan ja SEO:on liittyvien ongelmien ratkaisut. Näkymien uudistamisen yhteydessä on tehty myös muutoksia backend-sovelluksille, kuten esimerkiksi React-sovelluksen renderöinti palvelimella suorituskyvyn ja SEO:n parantamiseksi sekä muutoksia datan hakuun ja käsittelyyn.

Lähitulevaisuudessa tietokannat migratoidaan AWS:n RDS-palveluun sekä nykyiset backend-sovellukset pilkotaan omiksi mikropalveluiksi AWS:n ECS-palveluun ja Lambda-funktioiksi. Myös testauskäytäntöjä uudistetaan syksyn aikana.

Projekti on tällä hetkellä kestänyt noin vuoden. Ensimmäinen osa alkoi syksyllä 2018, ja siinä oli vahvasti mukana Markus Nousiainen. Tämä projektin ensimmäinen osa päättyi tammikuussa 2019, ja heti sen jälkeen alkoi nyt käynnissä oleva toinen osa. Tällä osalla ei ole tarkkaa lopetusaikaa. Kehitystiimimme toimii hyvin, ja yritämme jatkuvasti parantaa tuotteen laatua ja omaa tekemistämme esimerkiksi kehittämällä ohjelmistokehitysprosessia ja hyödyntämällä uusia teknologioita.

Asiakkaan kanssa tehdään erittäin tiivistä yhteistyötä. Olen mukana asiakkaan tiimissä ja työskentelen paljon heidän tiloissaan. Arjessa ei välttämättä edes erota, että olen Webscalen väkeä. Tämä työskentelytapa mahdollistaa parhaan mahdollisen lopputuloksen. Olen itse tykännyt tästä projektista. On ollut palkitsevaa auttaa asiakasta sopivien ratkaisujen löytämisessä.”

Viimeisimmät kirjoitukset

Webscale viisi vinkkiä pilvikulujen hallintaan
23. huhtikuuta 2025
Julkinen pilvi on tuonut mukanaan ennennäkemätöntä skaalautuvuutta, joustavuutta ja nopeutta, mutta pilven käyttöönoton seurauksena myös kulut saattavat karata pilviin. Julkisen pilven hyödyntäminen vaatii myös erilaista suhtautumista kuluihin, kun pääomaa ei tarvitse varata omaan laitteistoon.
Pulvipulssi_webscale
17. huhtikuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset julkipilvimarkkinoilta suoraan asiantuntijoiltamme. Tutustu SST-kehykseen, joka helpottaa full stack -sovellusten rakentamista omalle infrastruktuurille. Se tarjoaa selkeän ja abstraktoidun tavan määritellä koko sovelluksen rakenne.
Max Niskanen, Webscale Head of Sales
8. huhtikuuta 2025
Webscalen myyntitiimi vahvistuu, kun Max Niskanen liittyi joukkoomme Head of Sales -roolissa. Max tuo mukanaan yli kymmenen vuoden kokemuksen IT-alan myynnistä ja liiketoimintajohdosta. Teknologian lisäksi Maxin intohimoihin kuuluvat hapanjuurileivonta, historia ja vaellukset luonnossa.
Pilvipulssi
20. maaliskuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset julkipilvimarkkinoilta suoraan asiantuntijoiltamme. Serverless Framework v3 on elinkaarensa päässä ja organisaatiot joutuvat nyt pohtimaan päivittävätkö seuraavaan versioon vai siirtävätkö softat kokonaan toiseen työkaluun.
Lisää kirjoituksia