Teknologien bak TV 2 Sumo

Med 73.000 loggmeldinger i sekundet, fra 16 ulike plattformer, kan ikke bergenserne bare stole på magefølelsen.

- Før var det nok mange som oppfatta, både internt og eksternt, at TV 2 og TV 2 Sumo fighta litt. Publiseringsstrategien vår var ikke helt koordinert.

«Det er ikke sikkert vi heter TV 2 Sumo om noen år, men bare TV 2.»

Det forteller Stian Totland, teamleder og produkteier i TV 2 Sumo, til kode24. Vi møter han og en håndfull Sumo-utviklere i Media City-bygget i Bergen sentrum, der rundt 22 dedikerte utviklere lager en av Norges aller største strømmetjenester.

- Men i den nye mediehverdagen er det vel nå opplest og vedtatt at strømmedelen er det nye gullet. Det er ikke sikkert vi heter TV 2 Sumo om noen år, men bare TV 2, fortsetter Totland.

- Det er et enormt fokus på Sumo fra hele organisasjonen.

Det fokuset kan Sumo trenge. For å lage en strømmetjeneste er ikke småtteri.

Bare noen av folka som står bak TV 2 Sumo. Fra venstre: Løsningsarkitekt Erik Bell, frontend-utvikler Remi Sture, fullstack-utvikler Glenn Hisdal og produkteier Stian Totland. 📸: Ole Petter Baugerød Stokke
Bare noen av folka som står bak TV 2 Sumo. Fra venstre: Løsningsarkitekt Erik Bell, frontend-utvikler Remi Sture, fullstack-utvikler Glenn Hisdal og produkteier Stian Totland. 📸: Ole Petter Baugerød Stokke Vis mer

Kjøper strømmeløsninger

Nøyaktig hvordan strømmetjenester fungerer er, for å si det forsiktig, ganske komplisert. Så vi starter på starten.

- Selve videoene ligger som MPEG-filer i ulike kvaliteter, som pakketeres med blant annet DRM-løsninger. Selve lagringen av masterfilene har vi inhouse, også genereres det versjoner som vi hiver opp på Akamai og Telenor sine CDN-løsninger, forklarer fullstack-utvikler Glenn Hisdal til kode24.

"Content delivery network", CDN, er altså noe TV 2 Sumo kjøper fra andre, og som sørger for at tusenvis av brukere kan åpne den samme videofila samtidig, nærmest øyeblikkelig.

Alle videoene er delt opp i biter. Trykker du på en Farmen Kjendis-episode, får maskinen din et manifest som sier hvilke videobiter den trenger, og showet starter når bitene begynner å tikke inn. Bitene er bare to sekunder lange, og hvor lang tid det tar å laste ned én av disse bestemmer kvaliteten på bitene du blir servert videre. Adaptiv strømming, kaller man det, og skal sørge for at du slipper å vente på bufring.

I tillegg til CDN-løsningene kjøper Sumo strømmetjenester fra Wowza for "video on demand"-biten, altså det som ligger lagret, og Elemental for direktesendinger.

Dette er løsninger hvor maskin- og programvare henger tett sammen, og de innkjøpte tjenestene tar seg av mye av selve strømmingen. Men backend-biten stopper overhodet ikke der.

I disse lokalene sitter TV 2 Sumo sine dedikerte utviklere. I tillegg bidrar også andre avdelinger. 📸: Ole Petter Baugerød Stokke
I disse lokalene sitter TV 2 Sumo sine dedikerte utviklere. I tillegg bidrar også andre avdelinger. 📸: Ole Petter Baugerød Stokke Vis mer

73.000 per sekund

CMS-et til TV 2 Sumo, altså det som blant annet presenterer innholdet til brukeren, er en såpass diger greie at de ble skilt ut som et eget datterselskap i 2011: Vimond, som nå leverer video-CMS til en rekke aktører verden over fra hovedkvarteret i Bergen.

Løsningsarktitekt Erik Bell er opptatt av å hente inn gode tall for innsikt og analyse. 📸: Ole Petter Baugerød Stokke
Løsningsarktitekt Erik Bell er opptatt av å hente inn gode tall for innsikt og analyse. 📸: Ole Petter Baugerød Stokke Vis mer

Men heller ikke et innkjøpt CMS gjør at Sumo kan hoppe bukk over egne backend-løsninger. Blant annet henter de inn heftige mengder data for innsikt, som brukes til både analyse og personlige anbefalinger til brukerne.

- Sist tirsdag kom det inn 870 millioner loggmeldinger. På det travleste, da Barcelona møtte Liverpool, kom det 22 millioner på fem minutter. 73.000 i sekundet, altså, smiler løsningsarkitekt Eirik Bell.

Disse enorme datamengdene utgjør nå rundt 44 terrabyte. Kafka-clustere formidler dataen videre til Elasticsearch, og denne delen av backend-en koder Sumo i språket Go.

- Primært for to grunner: Oppstartstid og skallering, sier Bell, som skryter av hvor raske løsninger Go sørger for.

Utviklerne i TV 2 Sumo bruker en hel haug ulike teknologier og språk for å sette sammen tjenesten sin. De velger det som passer best for oppgaven. 📸: Ole Petter Baugerød Stokke
Utviklerne i TV 2 Sumo bruker en hel haug ulike teknologier og språk for å sette sammen tjenesten sin. De velger det som passer best for oppgaven. 📸: Ole Petter Baugerød Stokke Vis mer

Velger Go for hastighet

- Ellers på backend-en har vi brukt litt av hvert opp i gjennom, smiler fullstack-utvikleren Hisdal, og tenker seg om.

Fullstack-utvikler Glenn Hisdal har blitt glad i Go og Kotlin. 📸: Ole Petter Baugerød Stokke
Fullstack-utvikler Glenn Hisdal har blitt glad i Go og Kotlin. 📸: Ole Petter Baugerød Stokke Vis mer

- Vi har blant annet et gammelt API skrevet i Ruby on Rails, fordi noen syntes det var kult for noen år siden. Men nå skriver vi oss bort fra det i enten Go eller Kotlin.

Go for hastigheten, som nevnt, og Kotlin blant annet fordi det gjør det enklere å finne utviklere, da Android-apper også ofte kodes i språket.

I tillegg har de løsninger i Java, Scala, Javascript/Node og Python ute i produksjon. Sistnevnte når det handler om maskinlæring. Og API-ene deres er både REST-, GraphQL- og binær-basert, hostet hos både Amazon og Google.

- Vi velger teknologi etter kompetanse og hvilket problem som skal løses, oppsummerer Hisdal.

Det er åpne kontorlandskaper som gjelder i Media City, hvor TV 2 holder til sammen med blant annet NRK. 📸: Ole Petter Baugerød Stokke
Det er åpne kontorlandskaper som gjelder i Media City, hvor TV 2 holder til sammen med blant annet NRK. 📸: Ole Petter Baugerød Stokke Vis mer

16 ulike plattformer

Om du synes TV 2 Sumo virker som et komplisert produkt allerede, blir det ikke så mye bedre når vi beveger oss over til frontend-biten: Sumo støtter i dag hele 16 ulike plattformer.

Frontend-utvikler Remi Sture foretrekker å jobbe i React. 📸: Ole Petter Baugerød Stokke
Frontend-utvikler Remi Sture foretrekker å jobbe i React. 📸: Ole Petter Baugerød Stokke Vis mer

Tre av dem handler om ulike videoformater til ulike nettlesere. Men de fleste handler om individuelle native-apper, til blant annet iOS, AppleTV, Android, Chromecast, Playstation 4, diverse smart-TV-er og flere TV-bokser. Nesten alle utvikles i Bergen av TV 2 Sumo selv.

- På web er det React som ruler her. Vi planlegger å begynne med NextJS, og generelt er det React vi koser oss med, forteller frontend-utvikler Remi Sture til kode24.

Og tidsriktig nok foregår app-utviklingen til iOS og Android i henholdsvis Swift og Kotlin.

- Med så mange apper håper jeg dere får delt litt kode mellom dem?

- Playstation, LG- og Samsung-TV-er kan dele kodebase, da alt er HTML-basert. Og noe deles mellom AppleTV og iOS. Men alt er stort sett helt native. Vi hadde hybridløsninger tidligere, men det ble en dårlig opplevelse, forklarer Hisdal.

Hit kommer all videoinnhold inn, både fra TV 2 sine egne studioer og kilder som sportsarrangementer. Herfra går det også videre til Sumo, hvor man kan se både vanlig TV-sendinger og sport direkte. 📸: Ole Petter Baugerød Stokke
Hit kommer all videoinnhold inn, både fra TV 2 sine egne studioer og kilder som sportsarrangementer. Herfra går det også videre til Sumo, hvor man kan se både vanlig TV-sendinger og sport direkte. 📸: Ole Petter Baugerød Stokke Vis mer

Lean startup

Skal TV 2 Sumo-tjenesten få en ny funksjon, må utviklerne altså implementere den i en haug ulike løsninger.

Da gjelder det å tenke seg om et par ganger først.

- Vi jobber etter lean startup-metoden, hvor vi tester, måler og lærer. Vi skal produsere data som må brukes til å ta gode valg, heller enn å bare lytte til magefølselsen til en designer eller UX-er, sier Totland.

I tillegg til de enorme datamengdene de henter inn, skal Sumo i større grad eksperimentere på brukerne sine framover.

- Vi er i en fase nå hvor vi ekspterimenterer med å eksperimentere. Vi må bli flinkere på å blant annet A/B-teste på frontend, forteller Sture.

Det er spesielt under fotballkamper at TV 2 Sumos løsninger blir satt på prøve. Så mange som samtidig skal se innhold som ikke kan forhåndslagres har skapt problemer, men utviklerne mener at det aller meste fungerer knirkefritt nå. 📸: Ole Petter Baugerød Stokke
Det er spesielt under fotballkamper at TV 2 Sumos løsninger blir satt på prøve. Så mange som samtidig skal se innhold som ikke kan forhåndslagres har skapt problemer, men utviklerne mener at det aller meste fungerer knirkefritt nå. 📸: Ole Petter Baugerød Stokke Vis mer

4K og fotball-trøbbel

Sumo er tilsynelatende mer opptatt av brukeropplevelsen enn teknologitrender som 4K-video. Utviklerne hinter om at det kommer, men 4K er foreløpig en utfordring når det kommer til tilgang på innhold, prisen på innholdet og ikke minst båndbredden innholdet krever for Sumos del.

«Video on demand og live-sendinger er to veldig forskjellige ting.»

- Folk er kanskje mer opptatt av at fotballkampene deres faktisk skal fungere? Fotball-interesserte kolleger hevder dere sliter litt under de store kampene.

- Det skal sies at vi har blitt veldig mye bedre. Tidligere var det et problem, men vi har lagt inn mye ressurser på dette, sier Totland.

- "Video on demand" og live-sendinger er to veldig forskjellige ting. VOD-innhold kan prosesseres på forhånd, men det kan man ikke med live. Det er ikke en god unnskyldning, for det skal aldri gå ned. Men hvis det gjør det, handler det om at det er live, forklarer Bell.

- Ser du på Netflix er det aldri live. Mens NRK ikke trenger å uroe seg for DRM.