Public service i topklasse

For at kunne fastholde brugerne skal DRs TV-applikation være fejlfri og top-tunet. ProData-konsulent Sebastian Ostenfeldt Jensen fortæller her, hvordan et dedikeret team, opfindsomme løsninger og en fejlfinder-app sikrer høj performance.

Interview med ProData-konsulent Sebastian Ostenfeldt Jensen, Fullstack udvikler hos DR.


Kan du huske dengang, man skulle sidde foran sit fjernsyn på et bestemt tidspunkt for at se nyhederne eller næste afsnit af yndlingsserien? Nu forventer de fleste af os, at vi kan fange favoritprogrammet på farten, eller når vi tilfældigvis har lyst. Vi zapper ikke længere mellem tv-programmer, men mellem udbydere, så hvis Danmarks nationale public service-selskab vil holde fast i seerne, skal der leveres tjenester i topklasse.

Når du tager din mobil i hånden og åbner DR TV appen for at se den store bagedyst eller X-factor, træder du ind et univers af indhold. Indhold, der er leveret af den TV-applikation, som Sebastian Ostenfeldt Jensen og hans kollegaer er ansvarlige for. Det er fra denne TV-applikation, at alt indhold bliver leveret, uanset om du streamer DRs programmer fra din mobiltelefon, din computer eller playstation. Det er med andre ord rygraden for DRs TV streamingtjenester. Og en fejlfri og top-tunet TV-applikation er derfor en afgørende brik i at indfri DRs ambitioner om at levere streamingtjenester af højeste kvalitet.

”Når vi taler om performance, skelner vi ikke mellem klienter som mobil og browser. Det er TV-applikationen, der afgørende for, hvilken oplevelse du får på den tjeneste, du anvender,” siger ProData-konsulent Sebastian Ostenfeldt Jensen, der er en af de krøllede hjerner i udviklingsteamet, der skal sikre at appen lever op til forventningerne.

Hellere fem separate kald

Udviklerne holder konstant øje med, hvor de kan justere og optimere. Mange forbedringer er ikke strengt nødvendige for, at tjenesterne kan fungere godt, men ”godt” er ikke godt nok set gennem DRs ambitiøse briller. Derfor arbejder udviklingsholdet proaktivt med at finde forbedringer, der sikrer bedre brugeroplevelser. Og det er mange små tiltag, der løfter TV-applikationen. Blandt andet har en omstrukturering af de API’er, der taler sammen med tjenesterne, givet et betydeligt performanceløft: API’erne var tidligere struktureret uhensigtsmæssigt, da man havde ét API, der skulle hente en meget stor mængde indhold til streamingtjenesternes afspilningssider. I stedet splittede udviklerne kaldne til API’et op, hvilket giver bedre svartider, når brugerne går ind på deres favoritprogram. Sebastian Ostenfeldt Jensen fortæller:

”API’et vil meget hellere have fem separate kald, der beder om fem separate ting. Det øger performance væsentligt, giver bedre svartider og tager noget af belastningen på det enkle API.”

Netop på afspilningssiderne, hvor brugerne streamer programmer, var der forbedringer at hente. Nederst på siderne får brugerne vist lister med relaterede og populære programmer, men listerne blev indlæst på en uhensigtsmæssig måde. Hver gang en bruger skiftede afspilningsside, kaldte applikationen til API’et for at bede om data på relaterede lister. Det var unødvendigt, da denne del af siden ikke ændrede sig.

Sebastian Ostenfeldt Jensen og holdet så derfor en mulighed i at ændre den måde, afspilningssiderne indlæste listerne med de relaterede programmer. Inspirationen var en singlepage-tilgang, som nyere applikationer normalt bliver udviklet med i dag og som kun indlæser det indhold, der ændrer sig. Han siger:

”For at nedsætte den mængde af indhold, der indlæses, når brugeren skifter afspilningsside, indsatte vi et ESI-link på afspilningssiderne. ESI-linket henviser til en separat adresse, hvor listerne med de relaterede og populære programmer ligger. Henvisningen giver hurtigere indlæsning af indholdet og bedre svartider, da det nye ESI-link spiller sammen med Varnish, DRs cache-server.”

Selvstændig app til fejlfinding

Til måling af svartider benytter DR en række af værktøjer, der indikerer TV-applikationens performance. Men værktøjerne bidrager også til at lokalisere relevante fejl og potentielle forbedringer. Fra et af monitoreringsværktøjerne opfangede udviklerne svartider, der ikke levede op til ambitionsniveauet. 

”Forbindelsen mellem TV-applikationen og vores interne servere blev afbrudt, men vi kunne ikke se, hvad fejlen skyldtes, eller hvor den lå,” siger Sebastian Ostenfeldt Jensen.

Til at løse mysteriet – og andre, der måtte opstå – udviklede ProData-konsulenten en separat applikation med et eneste formål: at finde fejlen. En simpel applikation, der simulerer den måde TV-applikationen laver kald til API’erne og genererer data til yderligere analyse.Sebastian Ostenfeldt Jensen siger:

”Det smarte ved applikationen er, at man kan ændre indstillingerne og simulere et væld af scenarier. På den måde bliver vi klogere på, hvornår og hvor problemer opstår.”

I samarbejde med DRs DevOps-hold og backend-teamet analyserer udviklerne løbende på de data, den separate applikation leverer – og udbedrer de fejl og forbedringsmuligheder, analyserne afslører. Endnu en indsats, der optimerer svartiderne for TV-applikationen.

Sebastian Ostenfeldt Jensen glæder sig over at have fået et medansvar for at forbedre TV-applikationens performance. De fleste af os bliver irriterede, hvis vi skal vente på at vores yndlingsserie begynder at afspille, og konsulenten er ingen undtagelse:

”Jeg bliver selv hamrende irriteret, hvis en app har for lange svartider, så det falder mig meget naturligt at bidrage til, at DRs brugere får den bedste streamingoplevelse.”

 


Blå bog:

Navn: Sebastian Ostenfeldt Jensen

Alder: 37

Uddannelse: Datalog fra Københavns Universitet

Titel: Fullstack udvikler, ProData Consult. I opgave hos Danmarks Radio.

 

ProData Consult gemmer data i din browser / enhed ved hjælp af cookies med henblik på statistik og optimering af vores hjemmesider og eventuelt til målrettet annoncering. Ved at acceptere, giver du os dit samtykke til denne brug af cookies. Læs vores privatlivspolitik for mere information. Du kan altid trække dit samtykke tilbage her: Persondata politik & cookies

Webstedet kræver brug af "Nødvendige cookies". Vores nødvendige cookies bruges kun til at levere en korrekt fungerende hjemmeside og webservice.

Udvalgte tredjepartstjenester kan lagre cookies for at placere relevante annoncer, der leveres til dig på tredjepartswebsteder.