RadioMedia – äänestysjärjestelmä toistuviin kampanjoihin

Toimiston ilmoittama referenssi

Tekijä: Digitoimisto Dude Oy

Teknologiat: Asiakaskohtainen ohjelmointityö, WordPress

Projektin budjetti: 10 000–30 000 €

Projektin tyyppi: Web-sovellus, mobiilisovellus tai asiointipalvelu, Yrityksen sivusto kuluttajille

Lähtökohta

RadioMedia tarvitsi yleisöäänestyksen RadioAwards-kilpailun yhteyteen, jossa kansa äänestää vuoden radiojuontajan ja vuoden radio-ohjelman. Järjestelmän pitää kestää tuhansia samanaikaisia äänestäjiä, äänestämisen täytyy olla yksinkertaista mobiilissa, väärinkäyttö pitää estää ilman, että se hankaloittaa tavallisen, rehellisen äänestäjän kokemusta, ja kaiken pitää toimia luotettavasti juuri silloin, kun kävijöitä on eniten.

Erityinen haaste on liikenteen äkillinen moninkertaistuminen: radiomainos tai somepostaus voi tuoda tuhansia äänestäjiä minuuteissa. Valmiit kolmannen osapuolen äänestystyökalut eivät täyttäneet näitä tarpeita riittävästi, joten päätimme rakentaa oman.

Samaa järjestelmää hyödynnettiin myöhemmin Kaikkien aikojen kotimainen radiobiisi -kampanjassa. Radiobiisi sai oman tunnistettavan ilmeensä ja sivustonsa, mutta pyöri samalla teknisellä selkärangalla.

Tavoitteet

– Rakentaa kuormantasattu, korkean saatavuuden järjestelmä, joka kestää isoja kävijäryntäyksiä valtakunnallisen kampanjan aikana siten, että palvelut pysyvät aina pystyssä ja äänet eivät katoa
– Pitää äänestäminen yksinkertaisena ja nopeana
– Estää väärinkäyttö ilman äänestäjää hidastavia ratkaisuja
– Antaa ylläpidolle reaaliaikainen näkymä äänimääriin ja mahdollisuus ladata tulokset
– Tehdä järjestelmästä uudelleenkäytettävä myös mahdollisten uusien kilpailujen tarpeisiin
– Mahdollistaa tulosten vaivaton näyttäminen muilla RadioMedian sivuilla

Mitä tehtiin

– Suunnittelimme ja rakensimme räätälöidyn, tietoturvallisen ja korkean saatavuuden äänestysjärjestelmän, jota voidaan käyttää toistuvasti eri kampanjoissa
– Vikasietoinen, kuormantasattu arkkitehtuuri, jossa äänet eivät katoa edes tilapäisten palvelinongelmien yhteydessä
– Reaaliaikainen monitorointi, joka valvoo koko ketjua vastaanottimesta tietokantaan, ei pelkästään sitä ovatko palvelimet ylhäällä
– Ylläpidon hallintanäkymä: reaaliaikainen äänimäärä, CSV-export ja kampanjan ajastus suoraan WordPressin hallinnasta
– RadioMedian ekosysteemin kanssa keskusteleva rajapinta (API) ja rajapintapalvelin, jonka kautta äänestysten tulokset näkyvät automaattisesti muilla RadioMedian sivustoilla

RadioAwardsin yleisöäänestyksessä äänestäjä selaa ehdokkaita kahdessa kategoriassa: vuoden radio-ohjelma ja vuoden radiojuontaja. Ehdokkaita voi suodattaa radiokanavan mukaan tai hakea vapaalla haulla. Äänestäjä valitsee suosikkinsa molemmissa kategorioissa, tarkistaa valintansa yhteenvetonäkymässä ja rekisteröi äänensä, samalla halutessaan osallistuen palkinnon arvontaan. Kaikki tapahtuu sujuvasti ilman sivulatauksia. Ehdokkaiden järjestys arvotaan päivittäin, jotta listauksen alkupää ei anna kenellekään etua.

Arkkitehtuurin tärkein lähtökohta oli yksinkertainen: äänestysruuhkaa ei voi ennustaa täsmälleen, ja yksittäisen osan kaatuminen ei saa vaikuttaa äänten tallentumiseen. Äänet vastaanotetaan erillisen äänestysrajapinnan kautta, josta ne siirtyvät väliaikaiseen jonoon ja kulkeutuvat sieltä pysyvään tietokantaan. Jokainen äänestysputken lenkki on itsenäinen: vaikka yksi osa ketjusta olisi tilapäisesti poissa käytöstä, äänet odottavat ja siirtyvät kantaan heti yhteyden palauduttua. Ääni ei katoa missään tilanteessa.

Ylläpidolle rakennettiin hallintanäkymä WordPressin adminiin: reaaliaikainen äänimäärä, tulokset ladattavissa CSV-tiedostona äänestäjätietoineen ja suostumuksineen, sekä kampanjan ajastus: milloin äänestys avautuu, milloin se sulkeutuu ja mitä sivulla näytetään ennen ja jälkeen äänestysajan. Järjestelmä tarjoaa myös julkisen rajapinnan, jonka kautta äänestyksen tulokset voidaan näyttää automaattisesti muilla RadioMedian sivustoilla.

Lopputulos

Järjestelmää on käytetty tämän referenssin julkaisuajankohtana kahdessa yleisöäänestyksessä: RadioAwardsin yleisöäänestyksessä ja Kaikkien aikojen kotimainen radiobiisi-kampanjassa. Äänet tallentuivat, ruuhkahuiput kestettiin ja ylläpito pystyi seuraamaan tilannetta reaaliajassa. Esimerkiksi Radiobiisi-kampanjassa kertyi 12538 ääntä. Tiheimmillään RadioAwardsin vuoden 2026 äänestyksessä ääniä annettiin noin kymmenien äänten sekuntivauhdilla, jonka aikana järjestelmä toimi kuin rasvattu.

Rakentamamme infrastruktuuri on RadioMedian omissa käsissä ja uudelleenkäytettävissä. Seuraava äänestyskampanja ei vaadi järjestelmän rakentamista alusta, vaan ainoastaan uuden kampanjasivuston luomisen.

Projektin kohokohdat

Tarkkaan suunniteltu vikasietoinen äänestysputki
Äänestysjärjestelmän suurin haaste ei ole äänten vastaanottaminen normaaliolosuhteissa, vaan äänten säilyminen silloin, kun jokin menee pieleen. Rakensimme arkkitehtuurin, jossa äänten vastaanottava palvelu ja tietokanta voivat molemmat olla tilapäisesti alhaalla ilman, että äänet katoavat. Vikasietoisuus testattiin käytännössä sammuttamalla palvelimia kesken äänestyksen ja varmistamalla, että äänet tallentuvat oikein.

Koko ketjun kattava monitorointi
Pelkkä tieto siitä, että palvelimet ovat ylhäällä, ei riitä kertomaan toimiiko järjestelmä. Rakensimme räätälöidyn monitoroinnin, joka seuraa koko ääniputkea: vastaanotetaanko ääniä, siirtyvätkö ne jonosta kantaan, päivittyvätkö tulokset rajapintaan. Testikäytön aikana tämä osoittautui tärkeäksi: automaattinen valvonta havaitsi, että äänten virtaus oli katkennut, vaikka palvelut näyttivät ulospäin toimivan normaalisti. Ongelma paikannettiin ja korjattiin nopeasti juuri siksi, että valvonta kattoi koko ketjun yksittäisten palvelimien sijaan.

Uudelleenkäytettävä alusta, ei kertaluontoinen projekti
Järjestelmä rakennettiin alusta asti palvelemaan useampaa kampanjaa. WordPress Multisite mahdollistaa sen, että eri kampanjat pyörivät samalla pohjalla mutta omilla osoitteillaan ja ilmeillään. Uuden äänestyksen käynnistäminen vaatii käytännössä vain ehdokkaiden syötön ja ajoituksen asettamisen, ei kehitystyötä.

Kuormantasattu palvelininfrastruktuuri
RadioMedian yleisöäänestyskoneen rakentamisessa myös palvelininfralla oli suuri merkitys. Uskomme, että verkkopalvelu ja palvelimet kulkevat käsi kädessä. Kun verkkopalvelussa vierailee kymmeniä tuhansia kävijöitä päivässä, sivujen on pysyttävä pystyssä vaikka kaikki hakkaisivat selaimen päivitä-nappia yhtä aikaa. RadioMedian palvelut hyödyntävät useampaa palvelinklusteria, joka oli onnistumisen takeena projektissa etenkin ääniputken osalta.

Tekninen toteutus tarkemmin

Käyttöliittymä ja äänestysputki
Järjestelmä koostuu useasta erillisestä palvelusta, jotka on suunniteltu toimimaan yhdessä vikasietoisesti. Käyttöliittymä on toteutettu React-pohjaisena sovelluksena WordPress Multisiten päällä, ehdokasdata välimuistissa ja äänestyslomake palvelinpuolen validoinnilla.

Äänestys-API on erillinen TypeScriptillä kirjoitettu palvelu, joka pyörii Bun-ajoympäristöllä. API vastaanottaa äänet ja siirtää ne Redis Streams -jonoon, josta erillinen worker-prosessi kirjoittaa ne PostgreSQL-kantaan. Tämä ketju on se, mikä tekee järjestelmästä vikasietoisen: lähes jokainen osa voi kaatua ilman, että äänet katoavat. Tietokannasta pidetään yllä reaaliajassa päivittyvää replikaa toisella palvelimella.

Palvelininfrastruktuuri
Hyvissä ajoin ennen toteutusta palvelininfrastruktuuri suunniteltiin huolella vastaamaan RadioMedian tarpeita siten, ettei mikään kivi jäänyt kääntämättä.

Liikenne ohjataan palvelimille kuormantasaajan kautta, joka jakaa pyynnöt kahdelle tehokkaalle korkean suorituskyvyn, WordPressille optimoidulle palvelimelle ja kahdelle äänestysrajapintapalvelimelle. DNS suojaa samalla palvelimet palvelunestohyökkäyksiltä ja oteilta. WordPress-palvelimet on suojattu palomuurilla, joka sallii liikenteen ainoastaan Cloudflaren IP-osoitteista. Koko järjestelmä pyörii yhteensä 11 RadioMedialle tarkkaan räätälöidyllä palvelimella.

Välimuisti ja suorituskyky
Välimuisti on rakennettu kerroksittain: Cloudflare CDN staattisille resursseille, FastCGI-välimuisti WordPress-sivuille, Redis Object Cache Pro objektivälimuistille ja transient-välimuisti ehdokasdatalle (24h) sekä äänestystuloksille (1min). Ehdokkaiden satunnainen järjestys arvotaan kerran päivässä ja välimuistitetaan, jotta sama järjestys pysyy koko päivän mutta vaihtuu seuraavana.

Monitorointi
Monitorointi kattaa palveluiden saatavuuden (Better Stack), räätälöidyn pipeline-monitorin koko ääniputkelle, Redis Streams -jonon koon ja käsittelytahdin sekä JavaScript-virheet tuotannossa. Kaikki palvelut on stressitestattu ennen julkaisua simuloiden todellisia olosuhteita.


Sinua voisi kiinnostaa myös

Walkin uudistettu verkkosivusto

Tekijä: Evermade

Tärkein teknologia: WordPress

Projektin budjetti: yli 60 000 €

Digitaalinen uudistus materiaalitieteen edelläkävijälle Walki on suomalaislähtöinen teollisuusyritys ja materiaalitekniikan suunnannäyttäjä, joka toimii kansainvälisesti edistyneiden laminaatti- ja pakkausratkaisujen parissa. Uudistettu walki.com antaa markkinointi- ja myyntitiimeille työkalut modernin B2B-sisältöstrategian toteuttamiseen. Sivusto varmistaa huippuluokan suorituskyvyn ja tarjoaa skaalautuvan alustan yrityksen kasvulle kestävyyden ja materiaali-innovaatioiden saralla. Lähtökohta Walkin aiempi verkkopalvelu rajoitti suunnittelun joustavuutta, käytettävyyttä ja hakukonelöydettävyyttä. Maailmanlaajuisena teollisuuden […] Lue lisää

Flumenia – verkkosivuston uudistus

Tekijä: Digitoimisto Dude Oy

Tärkein teknologia: WordPress

Projektin budjetti: 10 000–30 000 €

Lähtökohta Flumenia myi osan liiketoiminnastaan ja kaipasi uutta, raikasta alkua myös verkkosivujen osalta. Yhteistyö Duden ja Flumenian välillä on jatkunut tiiviinä useita vuosia aiemman verkkosivuprojektin ja yhteisten asiakkuuksien parissa. Kun Flumenian strategia ja palvelukonsepti uudistui, oli yhteistyötä helppo jatkaa verkkosivujen uudistusprojektilla. Tavoitteet Esittää palveluiden sisältö visuaalisesti, jäsennellen ja ymmärrettävästi Tuoda uusi palvelukonsepti (mm. tiimivalmennus, markkinointipäällikön […] Lue lisää

Turun AKK

Tekijä: Digitoimisto Dude Oy

Tärkein teknologia: WordPress

Projektin budjetti: 30 000–60 000 €

Lähtökohdat Dude toteutti Turun AKK:n verkkosivujen kattavan uudistuksen, jossa tavoitteena oli parantaa sivuston käytettävyyttä, saavutettavuutta ja hakukonelöydettävyyttä. Tavoitteet Parantaa sivuston saavutettavuutta ja käytettävyyttä. Helpottaa tiedon löydettävyyttä ja selkeyttä. Optimoida sivustorakenne vastaamaan nykyaikaisia SEO-vaatimuksia. Mahdollistaa koulutustarjonnan selailu sujuvasti. Kehittää käyttäjäpolkuja eri kohderyhmille (alanvaihtajat, osaamisen kehittäjät, ensimmäistä tutkintoaan suorittavat). Uudistaa taustateknologian ja koodipohjan vastaamaan WordPressin standardeja ja […] Lue lisää

GROOM – Parturipalvelut ja verkkokauppa uudelle tasolle

Tekijä: Digitoimisto Dude Oy

Tärkein teknologia: WordPress

Projektin budjetti: 30 000–60 000 €

GROOM on ollut miesten parturipalveluiden edelläkävijä jo vuodesta 2005. Dude uudisti heidän verkkosivustonsa ja verkkokauppansa vastaamaan GROOMin ainutlaatuista tunnelmaa: tyyliä, laatua ja maskuliinista eleganssia. Projektin tavoitteena oli luoda sivusto, joka henkii premium-laatua ja tarjoaa yhtä sujuvan kokemuksen sekä verkossa että parturissa. Lähtökohdat GROOMin asiakkaille parturissa käynti ei ole pelkkä rutiini, se on elämys. Samalla verkkosivuston […] Lue lisää

Rakentaja-lehti

Tekijä: Digitoimisto Dude Oy

Tärkein teknologia: WordPress

Projektin budjetti: 10 000–30 000 €

Lähtökohta Rakentaja-lehti haluttiin tuoda selvemmin esiin omana julkaisunaan ja samalla kasvattaa sen digitaalista tavoittavuutta. Vanha lehtialusta ei palvellut lukijaa tai toimitusta nykyaikaisella tavalla. Uudessa toteutuksessa tavoitteena oli tehdä lehdestä helposti selattava, ajankohtainen ja visuaalisesti houkutteleva, jotta sisältö tavoittaa entistä laajemman yleisön. Sivusto rakennettiin multisite-toteutuksena osaksi Rakennusliiton verkkopalvelua. Tavoitteet Parantaa Rakentaja-lehden näkyvyyttä ja saavutettavuutta verkossa Houkutella […] Lue lisää

Tuusulan kunnan uudet verkkosivustot

Tekijä: Poutapilvi web design Oy

Tärkein teknologia: WordPress

Projektin budjetti: 30 000–60 000 €

Tuusulan verkkopalvelu-uudistuksessa Poutapilvi suunnitteli ja toteutti laajennettavan WordPress-pohjaisen verkkopalvelukokonaisuuden, jonka ytimen muodostaa Tuusula.fi. Tavoitteena oli parantaa palvelujen ja sisältöjen löydettävyyttä, uudistaa käyttökokemus ja rakentaa yhtenäinen tekninen ympäristö pääpalvelulle ja erilaisille erillissivustoille. Kokonaisuuteen kuuluvat nykyisin: https://tuusula.fi/ https://erkkola.fi/ https://keskiuudenmaanymparistokeskus.fi/ https://kulttuurikasvatus.tuusula.fi/ https://focusbusinesspark.fi/ https://www.halosenniemi.fi/ Hajautetuista sivustoista yhteiseksi verkkopalveluympäristöksi Ennen uudistusta Tuusulan verkkopalvelukokonaisuus muodostui useissa eri teknisissä ympäristöissä toimivista sivustoista. […] Lue lisää

Vierityspalkki.fi

Julkaistu vuodesta 2006. Vierityspalkki on blogi verkkopalveluiden kehityksestä, internetin teknologioista ja alan toimistoista. Seuraa, niin tiedät miten ja kenen toimesta syntyvät parhaat verkkopalvelut, verkkokaupat ja räätälöidyt web-sovellukset. Uutiskirjeellä on jo yli 1100 tilaajaa.


Tilaa uutiskirje.

  • 40-50 asiantuntija-artikkelia vuosittain.

    Toimitettua asiasisältöä verkkopalveluiden uudistuksista ja kotimaisen ohjelmistoalan tapahtumista. Vierityspalkki nostaa esiin alan puheenaiheita ja tuoretta tutkimustietoa, osallistuu keskusteluun sekä haastattelee alan asiantuntijoita ja toimistoja. Julkaistuja artikkeleita jo yli 1000 kappaletta.


    Kaikki artikkelit

  • 150-200 julkaistua referenssicasea joka vuosi.

    Julkaisut-palsta tarjoaa näkyvyyttä kiinnostaville uusille verkkopalveluille ja web-sovelluksille, ja antaa asiakkaille mahdollisuuden arvioida eri toimistojen osaamista.


    Selaa toimistojen julkaisuja

  • 300-400 työpaikkailmoitusta vuosittain.

    Vuodesta 2007 toiminut ilmoituspalsta on edelleen sivuston suosituin osio. Moni asiantuntija on löytänyt useammankin työpaikan palstan kautta vuosien varrella.


    Selaa avoimia työpaikkoja

  • 31 kokenutta digitoimistoa

    on päässyt aina ajantasaiselle Toimistot-listalle. Lista on auttanut asiakkaita löytämään kokeneita digitoimistokumppaneita jo usean vuoden ajan. Lista keskittyy WordPress-toimistoihin ja räätälöityjen web-sovellusten tekijöihin.


    Selaa Toimistot-listaa

Tilaa kuukausikirje

Kerran kuukaudessa ilmestyvä uutiskirje koostaa artikkelit, julkaisut, työpaikat ja linkkivinkit. Kirjeellä on jo yli 1100 tilaajaa.
Huom. Sähköpostiosoitettasi ei luovuteta eteenpäin, eikä käytetä mihinkään muuhun tarkoitukseen – ihan oikeasti.

Siirry takaisin sivun alkuun