Skip to main content

Fuld plade til TV 2

En bingo-applikation til hele Danmark

pr-41-1160x508

En applikation til live TV-Bingo

Det er lørdag aften og aftenunderholdningen begynder om et kvarter. I studiet er de sidste forberedelser i gang og hjemme i stuerne logger seerne på tv2.dk for at få spilleplader til deres computere og telefoner. Aktiviteten på serverne tusind-dobles i minutterne før og lige efter Fuld Plade programmet går i gang. Vores applikation er allerede i arbejde.

 

Så er vi klar. Den farverige underholdning brager løs på skærmen og tallene findes på opfindsomme måder, herunder ved at spørge tilfældige mennesker hvad det næste tal skal være. Det er sjovt og virker temmelig ukontrolleret, og det er det sådan set også, indtil vi nærmer os at nogen får bingo. Herfra tager Peytz over og sikrer, at vinderen bliver udtrukket, når det passer produceren.

Second screen

Applikationen ved hvilke plader, der er i spil, og kender derfor også den til enhver tid korteste vej til en bingo. Seerne følger med på spillepladen og markerer selv de udtrukne numre undervejs (Og ja, vi kunne godt udfylde dem automatisk, men så ville der jo ikke være noget ved det).

 

Second Screen hedder det, når seerne underholder sig med en telefon, tablet eller pc, mens de ser tv. For Fuld Plade udsendelsen er applikationen selve udsendelsen. Skulle systemet gå ned, ville tv-programmet stoppe.

fuldplade-iphone-1
Når det kommer til at lave interaktive Second Screen integrationer, har der sjældent været noget så gennemført som Fuld Plade. Det, at gøre hele programmet 100% afhængig af en digital interaktion med seeren, er meget ambitiøst og risikofyldt.

 

Anders Kring, Digital Plaforms Chef, TV 2

Bingo til tiden

Hele 600.000 danskere deltog i spillet, og vi kan hilse fra udviklerholdet og sige, at SÅ mange samtidige logins er lidt af en digital samurai-kunst. Faktisk blev presset på TV 2’s eget login-system så stort i peak-perioden, at vi måtte bygge et dedikeret Fuld Plade-login – på kun en enkelt arbejdsuge over julen.

Det, vi lavede med Fuld Plade, var helt nyt for TV 2 i den skala. Vi havde ingen ide om hvor stort det ville blive, og kunne kun skalere vores systemer i forhold til tænkte estimater. Det gjorde, at vi til at starte med havde et par børnesygdomme. Vi fik dog hurtigt løst disse igennem et effektivt samarbejde med Peytz.

 

Anders Kring, Digital Plaforms Chef, TV 2

Det nye high-performance login-system integrerede med TV 2’s eget login-system, således at brugerdata blev sammenkørt og “vasket” efter hver omgang Fuld Plade.

Med en deltagerprocent af seerne på 57% blev Fuld Plade den største digitale interaktion med et tv-program i dansk tv-historie.

Resultatet blev, at både TV 2 og Peytz fik pladen fuld. Alle fik Bingo til tiden og Fuld plade blev en stor succes. Bingo!

ekstra-3-1402x700

Teknikken bag applikationen

For at imødekomme behovet for stor skalerbarhed i løsningen og mange samtidige indloggede brugere i peak-belastning, valgte Peytz at udvikle en løsning baseret på udviklingssproget GoLang, perfekt til applikationer, der kræver en høj grad af parallelisering.

diagram-1

Arkitekturen blev bygget op omkring en JavaScript klient-applikation, som via OAuth op imod et loginsystem validerer brugerlogins og derefter bruger et specialudviklet REST-baseret API til at deltage i selve bankospillet. API’et blev bygget op omkring et køsystem for at undgå back-pressure, et problem der særligt optræder i relationelle databaser.

 

Vi valgte samtidig at køre applikationen i Docker-containere i skyen med Googles OpenSource Kubernetes som orkestreringsværktøj for at sikre maksimal fleksibilitet og skalerbarhed.

 

Den teknisk indkapsling i separate containere gav os mulighed for at skalere individuelle dele af systemet baseret på nøglemetrikker som belastning, antal brugere, svartider etc.

 

Kort sagt; Systemet var i stand til at køre fuld autoskalering baseret på brugsmønstre. Samtidig skulle Fuld plade bruge meget mindre computingpower i dagene mellem programmerne og kun køre med maksimal power i få timer op til programstart.

Brug for hjælp til dit næste projekt?