Kulissien takana: Suomi24-keskustelualustan järeä uudistus

Jukka Ukkonen • syysk. 09, 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

Webscalen konsultteja.
03 May, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, miten FinOps auttaa pilvikustannuksissa?
Webscalen konsultteja.
26 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on AWS Landing Zone?
Webscalen konsultteja.
19 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mitä on DevSecOps?
Webscalen konsultteja.
12 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on Serverless Framework?
Lisää kirjoituksia
Share by: