Derfor valgte NRK Lit, Spring Boot, MySQL og Kubernetes for Maskorama

- Til vanlig ville vi nok lagd en React-løsning, forteller team-lederen.

Team-leder Camilla Drangsholt Nilsen, altså til høyre, forteller hvordan de lagde Maskorama-gjetteleken på NRK.no. 📸: Julia Naglestad / NRK / Privat / kode24
Team-leder Camilla Drangsholt Nilsen, altså til høyre, forteller hvordan de lagde Maskorama-gjetteleken på NRK.no. 📸: Julia Naglestad / NRK / Privat / kode24 Vis mer

Rundt én million nordmenn benka seg foran hver episode av NRKs andre sesong av Maskorama denne vinteren.

Og selv om maskene og artistenes får mest oppmerksomhet, ligger det mye kode bak serien, også, gjennom NRKs digitale gjettelek.

- Ingen andre land har hatt publikumsinteraksjon slik NRK har utvikla, forteller team-leder Camilla Drangsholt Nilsen i NRKs Publikumsinteraksjon-avdeling til kode24.

For selv om konseptet med syngende maskekledde kjendiser opprinnelig kommer fra Korea, og senere har gjort suksess i USA før det ble kjøpt opp av NRK, var altså Norge først ut med nettsider som lot publikum gjette hvem som skjulte seg bak maskene for å vinne premier og ære.

- Da vi startet opp prosjektet så vi dette som en unik mulighet til å utvikle en ny og engasjerende måte å se TV på. NRK har utviklet hele løsningen fra konsept til ferdig utviklet løsning både i publikums-appen og avviklingssystemet bak, sier Drangsholt Nilsen, som kan fortelle alt om hvordan de gjorde det.

Maskorama-gjette-appen er ikke lenger tilgjengelig, da alle "artistene" har tatt av seg maskene. Men det så blant annet sånn her ut. 📸: NRK
Maskorama-gjette-appen er ikke lenger tilgjengelig, da alle "artistene" har tatt av seg maskene. Men det så blant annet sånn her ut. 📸: NRK Vis mer

Mange kokker

Målet med Maskorama-gjetteleken var å lage noe så enkelt at hele familien kunne være med - det måtte både være enkelt å forstå hva leken gikk ut på, og faktisk være med på den.

For å få det til satt de NRKs publikumsinteraksjons-team på saken: Fire utviklere, to designere, en tekstforfatter, en produktutviklingssjef og en team-leder. I tillegg samarbeida de tett med de som lager det faktiske TV-programmet, både i NRK og produksjonsselskapet Freemantle.

Dessuten sørget de for å dra med seg tilgjengelighetsekspertene på huset.

- Publikumsinteraksjon i NRK skal være for alle, noe som krever mer av hvordan vi jobber med tilgjengelighet, forteller Drangsholt Nilsen.

Lit og Tailwind

Maskorama-gjetteleken er en nettside bygget i Lit. Lit-biblioteket markedsfører seg som et lettvekter-bibliotek, som i stor grad baserer seg på eksisterende web-komponenter.

- Det er ikke ofte vi hører om Lit. Hva var bakgrunnen for det valget?

- Til vanlig ville vi nok lagd en React-løsning, men vi hadde mulighet til å prøve noe nytt, så vi ville gjøre oss noen erfaringer med Custom Elements og Lit, svarer Drangsholt Nilsen.

For CSS-en gikk NRK for Tailwind CSS, som er et mer kjent valg for mange.

- Vi ville også prøve å bruke et utility-first CSS-rammeverk. Det er bra for hurtig iterering og prototyping, samt at det gir en liten fotavtrykk med tanke på KB, fortsetter hun.

Har du hørt om Lit? Ikke vi heller, før vi lærte at NRK brukte biblioteket for å bygge frontenden til Maskorama-gjetteleken.
Har du hørt om Lit? Ikke vi heller, før vi lærte at NRK brukte biblioteket for å bygge frontenden til Maskorama-gjetteleken. Vis mer

Java og Kubernetes

Backenden til Maskorama-systemet er et API skrevet i Java med Spring Boot.

- Bakgrunnen for valget var at vi hadde god kompetanse på Java i teamet, og også en god del erfaring med Spring Boot. Det ble også vurdert å gå for en ren Java EE-løsning, som vi har benyttet tidligere, men vi får mye gratis med Spring Boot, forklarer Drangsholt Nilsen.

Både frontenden og backenden serveres gjennom Docker-containere i Kubernetes.

- Hele stacken til Maskorama lever i skyen, alt fra databasen til klienten brukerne ser for avstemning. Vi benytter oss av Kubernetes for å drifte Docker-containere, fordi dette gir oss enkel tilgang til skalering og lastbalansering, samt en evne til å flytte mellom ulike leverandører hvis behovet skulle melde seg, forklarer Drangsholt Nilsen.

«Det er svært få som vet hvem som gjemmer seg bak maskene, og vi er ikke blant dem!»

Takla millioner

Da NRK hadde store problemer med nett-avstemningen til Melodi Grand Prix i 2020, ble det spekulert i om Googles Firebase hadde noe av skylda - noe NRK nekta for.

- Men hva bruker dere for database på Maskorama?

- MySQL. Dette igjen fordi vi allerede hadde kompetanse på det, og i huset er det bred driftskompetanse på MySQL, svarer team-lederen.

NRKs løsning skal ha hatt flere hundre tusen unike brukere, og flere millioner gjetninger i løpet av sesongen. Uten at noe krasja, så langt offentligheten vet. Drangsholt Nilsen tror det er flere grunner til dette.

- Vi tester godt i forkant og skalerer opp alle ledd for å ta imot trafikken, begynner hun.

- Konseptet er også utarbeidet tett med redaksjonen, slik at det er mulig for publikum å gjette gjennom hele sendingen - foruten et lite opphold hvor vi stenger for å hente ut resultat - og hele uken. Dette fordeler engasjementet utover, og lar publikum få muligheten til å gjette, selv om de skulle se det i reprise.

Vet ikke riktig svar

- Alt i alt: Hva har vært det vanskeligste ved å lage løsningen deres?

- Det vanskeligste har vært å “scope ned” løsningen. Siden dette er et morsomt prosjekt var det mange ideer som vi ikke hadde tid til å implementere. Vi fortsetter utviklingen av løsningen, og ser på nye og spennende utvidelser, sier Drangsholt Nilsen til kode24.

- Man kan jo gjette på hvem som skjuler seg bak maskene, og være med i en trekning om man gjetter riktig. Med andre ord må løsningen deres finne ut om folk har gjetta riktig, og dermed også vite hva som er riktig svar. Hvordan løser dere dette, uten at utviklerne deres vet hvem som skjuler seg bak maskene? Eller veit de det, kanskje?

- Det er svært få som vet hvem som gjemmer seg bak maskene, og vi er ikke blant dem! Svaret legges inn manuelt av en avviklingsoperatør fra redaksjonen. Her går vi gjennom alle riktige skrivemåter, som kan være mange. Dette valgte vi fremfor en algoritme, der vi mener dette blir mer rettferdig. Da særlig med tanke på de som skriver feil, har problemer med å skrive, eller ikke helt har riktig stavemåte.