Tekniken bakom Superlive

I lördags, i samband med melodifestivalfinalen, var det premiär för vårt senaste projekt Superlive som är en vidareutveckling och paketering av olika externa och egna tjänster för att få till en riktigt bra direktrapportering för stora evenemang.

Vi vill passa på att ge en liten inblick i några av de utmaningar som ett system av den här kalibern ställer oss inför. Med den massiva trafik som vi har på Aftonbladet.se är det inte helt okomplicerat att åstadkomma.

Superlive

Uppdateringen

Vi utvärderade flera olika tekniker för att uppdatera sidan utan att användaren behövde ladda om sidan, och lutade länge åt en comet-lösning för att pusha ut uppdateringar direkt i den stund de sker. I slutändan visade det sig att en traditionell pull-lösning där webbläsaren frågar efter nytt innehåll med ett lagom intervall var bäst lämpat av flera orsaker:

  • Bandbreddsanvändningen. Pulllösningar drar ofta betydligt högre bandbredd än pushlösningar på grund av den mängd onödiga anrop som behöver göras. I vårt användningsfall kom vi att skicka ut ny data i genomsnitt ungefär varannat anrop, så det var inte ett problem. Genom att lägga tjänsten under en separat domän helt utan cookies och den sällan använda svarskoden “204 No Content” kunde vi ytterligare minimera den effekten.
      I stället kunde vi utnyttja att användarnas anrop naturligt spreds ut över ett antal sekunder till att mildra de bandbreddstoppar som uppstår när man vill pusha ut stora mängder data till många använvändare exakt samtidigt. Genom att enkelt kunna trycka ut ändringar av pull-intervallet under gång hade vi ett system som väldigt lätt kunde anpassa sig efter behovet.
  • Uppdateringsfrekvensen. När vi testade upptäckte vi att uppdateringar av de redaktionella puffarna oftare än ett par gånger i minuten inte tillförde någonting till upplevelsen utan snarare kändes störande.
  • Enkelheten. Vi kunde använda precis samma teknik som vi använder för att leverera den vanliga sajten. Vid två likvärdiga lösningar är det i regel alltid bäst att välja den enklaste.

En vidareutveckling av tjänsten kan förstås innebära att vi kommer till andra slutsatser, men i det här pilotfallet var det ett enkelt val.

Lasttester

Trafiken på Aftonbladet.se en melodifestivalkväll är alltid ganska speciell med en enorm trafiktopp direkt efter att SVT avslutar sin sändning (antalet visningar tredubblas på mindre än en halvminut). Det ställer förstås också stora krav på de bakomliggande systemen, och vi ville inte kasta oss ut i den utan att veta att allting skulle fungera friktionsfritt.

Därför genomförde vi en “dold lansering” ett par dagar tidigare, då vi lät alla besäökare på vår startsida även hämta in en utseendelös version av superlivetjänsten, komplett med simulerade liveuppdateringar och allt. För besökarna på sajten syntes förstås ingeting, men vi kunde testa hela systemet med verklig trafik, vilket gjorde att vi kunde känna oss helt säkra på att systemen skulle palla trycket många gånger om.

Backuplösningar

Även om vi förvissat oss om att våra egna system skulle klara av anstormningen var vi noga med att se till att vi hade alternativ om någonting skulle hända. Vi inkluderade också tjänster som Cover It Live och Shoot It Live som vi inte själva har kontroll över. Därför såg vi till att bygga in funktioner för att snabbt kunna ersätta även dessa med annat innehåll utan att användaren skulle behöva ladda om sidan.

Vi såg även till att separera Superlive helt från den vanliga sajten, både logiskt och fysiskt, så att en störning i den ena tjänsten inte skulle kunna påverka den andra. Dessutom anpassade vi de vanliga backuplösningarna som vi har till att dra nytta av Superlive.

Resultatet

Under kvällen hade vi som väntat inga som helst tekniska problem. Istället kunde vi som alla andra fascineras över hur bra slutresultatet blev, och njuta av hur väl det togs emot av besökare på sajten. Jan Helin har skrivit mer om det.

Slutligen måste jag förstås framhålla att tankarna bakom Superlive i flera delar har sin grund i olika Hack Day-projekt. En kreativ miljö där utvecklare får möjlighet att testa sina idéer gör det mycket lättare att skapa kreativa lösningar även för de mest centrala systemen.

 


A Holistic View on Developer Productivity

What does developer productivity mean, really? Is it churning out more code or less code? Is it to have less bugs in production or shipping code more often? Is it doing a lot of things or just one thing? Let’s think about this for a moment. I believe developer productivity is about getting more things […]


Improving the usability of Aftonbladet Video-clip pages

We have recently started the process of improving the usability of video-clip pages. In order to get an idea of where Aftonbladet stands compared to other world-class online video/news providers, we conducted an online test answered by 110 visitors of Aftonbladet TV. In this test we compared their perception of an Aftonbladet TV video-clip page […]


Schibsted’s 1st iOS Deployment Meet-up

Schibsted’s 1st iOS Deployment Meet-up Thursday, 28th of April 2016: getting to know each other, guests arrive Friday, 29th of April 2016: the meet-up date We here at Aftonbladet had been planning on having a meet-up with iOS developers across various Schibsted companies for many months. We had a range of topics in mind for […]


Hackday: The Future of Storytelling is social, engaging and rewarding

We gathered students, journalists, developers and designers to get together and conceptualize something new for the news industry. This was our first organized hack event – The Future of Storytelling Hack. The hack was a team-based, news-media-focused prototyping and experimentation event within storytelling over two days at Kungsbrohuset, Schibsted and Aftonbladets headquarter in Stockholm. A good story used to […]