Fikk du med deg BlimE-dagen 11. november?

NRK Super inviterte alle barnehager og skoler til å delta på BlimE-dansen og oppfordret også alle til å sende inn film av dansingen. For å muliggjøre dette er vår egen Stian Gjedrem en viktig spiller.

I 4 år har Stian sittet hos NRK og vært en del av teamet “Digital Spedisjon”. Teamet har ansvaret for store deler av infrastrukturen som må på plass for at BlimE! skal kunne gjennomføres. For oss som ser det hele utenfra er det https://bidra.nrk.no som er teamets mest synlige bidrag. Her tar NRK imot bidrag fra publikum og som BlimE!-fan får man mulighet til å laste opp video med der man danser til årets BlimE!-låt. Bortimot 1000 videoer lastes opp og alle må holdes rede på.

Videoen lastes rett opp i NRKs store sentrale lagring og samtidig sendes en melding til det interne systemet “Monitor” som i følge Stian “Is where the magic happens”. Her får NRKs medarbeidere mulighet for å se videoen og moderere, så alle innslag blir sjekket at foreldre eller lærere faktisk har vært med på det hele og at det er greit å publisere dem. Når det godkjennes her, så fører en publisering til at det havner på nett og i NRKs store videoproduksjonssystem for å kunne benyttes senere.

Stian forteller at brukervennlighet og robusthet har vært det vanskeligste for å lage løsningene. Selv om ytelsen må være på plass og skalering var hvor det tidligere systemet feilet, så er det en løsning som er lett å skalere med å legge til nye maskiner og så lenge man har nok hardware, så har det ikke vært store problemer med å få løsningene til å takle trykket. I forkant har man også ytelsestestet godt med verktøyet K6 for å forsikre seg om at ting fungerer når det gjelder som mest. Dermed var teamet helt rolige da innsendingene begynte å renne inn fra nær og fjern. K6 spinner opp flere maskiner som kan simulerer brukere ved å sende egendefinerte forespørsler til systemet og ved å justere litt på noen brytere, kan man velge hvor mange samtidige brukere systemet får og man kan finne punktet hvor systemet ikke tåler mer. Stian kan fortelle at K6 har vært helt instrumentelt for å få tryggheten om at dette fungerer når trykket er som størst.

For å løse behovene til BlimE!  valgte man å lage bidra.nrk.no som en React Single Page Application (SPA). Monitor lages i Svelte, med en Node backend som streamer alle endringer til klienten gjennom GraphQL-subscriptions som Apollo hjelper til med. “Vi ønsket en litt enklere modell enn React med Redux som vi har brukt tidligere. Svelte var noe vi hadde begynt å leke oss litt med, og så langt i prosjektet har fascinasjonen bare blitt sterkere og vi er godt fornøyd med valget.” sier Stian

Som databaseløsning har man valgt å gå for MongoDB Atlas som er MongoDB sin hostede løsning. Mongo ble valgt mye på grunn av “Change streams” som gjør at man enkelt kan abonnere på endringer i databasen, slik at Monitor får opp nye endringer med en gang. For å integrere med andre systemer hos NRK, så brukes det .NET-tjenester som kommuniserer via NServicebus for robust og sikker meldingshåndtering. Det hele hostes på Kubernetes i en løsning som sakte men sikkert flyttes fra on-prem og ut i skyen på Azure. 

“Jeg synes det er et veldig inspirerende prosjekt å jobbe på, og vi har fått stor frihet i teknologivalg. 4 år er lenge å sitte på samme prosjekt, men utfordringene her hos NRK gjør at jeg ønsker å være her i lang tid, og det blir vanskelig å se at neste prosjekt skal toppe dette”, avslutter Stian.