- 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.
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.
Kent får AVI-filer til å klikke, for kunstens skyld
"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.
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.
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.
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.
- 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.
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.
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.
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.
Fiken blåser i SCRUM
- 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.
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.
Slik bygger de Vipps
Ny farge, nye språk og nye folk. - Det er bedre nå.