FotMob er en av verdens største fotball-apper, med omlag 50 millioner nedlastinger og rundt 14 millioner aktive brukere, og utvikles fra kontorene deres på Kokstad i Bergen.
- Push-varsler er en helt sentral del av brukeropplevelsen vår, forteller utvikleren Øystein Bjerland i FotMob til kode24.
For eksempel kan brukerne få varsel når et lag klarer å føre ballen inn i det andre lagets mål, eller om fotballspiller som plutselig heller har lyst til å spille for dette andre laget.
Såpass mange baller og spillere og appbrukere er i sving, at det kan dreie seg om 2 millioner mottakere av ett varsel, 200 millioner varsler hver dag i helgene, og totalt rundt 4 milliarder varsler i måneden.
Det blir fort dyrt. Men nå har bergenserne funnet en måte å skrumpe regninga.
2,5 millioner i året
- Peak ytelse på utsending av HTTP-forespørsler er på over 600.000 per sekund, der hver HTTP-forespørsel representerer ett varsel til èn bruker, forklarer Bjerland.
Inntil nå har FotMob fått to eksterne leverandører til å ta seg av alle varslene: Airship og OneSignal, begge basert i USA. De skal være blant de aller største på området, med over hundre ansatte hver.
Prisen: 2,5 millioner kroner i året. Og selv om prisen var høy, var ikke alltid ytelsen så høy.
- I 2022 opplevde FotMob en betydelig vekst, med over 4 millioner nye brukere. Dette presset tredjepartsløsningene til bristepunktet, og push-varsler kunne ta mer enn et minutt å nå frem, sier Bjerland.
Når de i tillegg gikk glipp av verdifull innsikt ved å ikke styre prosessen selv, var ikke bergenserne i tvil lenger: De måtte lage noe selv.
Sånn skal FotMob bli verdens største: - Vi trodde ikke på iPhone
AWS og Java-biblioteker
Utviklerne satt seg noen mål - få ut alle varslene innen 10 sekunder, mer innsikt, lavere regning - og endte opp med et egetutvikla system:
- Løsningen kjører på AWS, definert i deres AWS CDK (Amazon Web Services Cloud Development Kit), som lar dem skrive "infrastruktur som kode".
- Applikasjonene kjøres som Docker-containere i et cluster (ECS), som kan skaleres opp og ned automatisk ved behov - for eksempel når populære kamper spilles.
- Serverne kjører i Oregon for å være nærmest mulig Google og Apple, mens testmiljøet kjører i Paris.
- Varslene til Apple-enheter, gjennom Apple Push Notification service (APNs), håndteres av Java-biblioteket Pushy.
- Android-enhetene får varsler gjennom Firebase Cloud Messaging (FCM), og etter å først ha vurdert et offisielt C#-bibliotek endte FotMob opp med å lage sitt eget i samme språk, for bedre ytelse.
Sparer 1,5 million
Løsningen er i produksjon, og de første ukene etter Premier League viste resultatene at målet om push på maks 10 sekunder ble nådd for 99 prosent av meldingene.
Også innsikten deres i brukernes oppførsel skal ha blitt bedre.
Dessuten koster løsningen nå rundt millionen i året - kontra 2,5 millioner kroner for de tidligere eksterne leverandørene.
- Vi sparer over 1,5 millioner kroner i året på løsningen vår, men det viktigste er at vi får en mye raskere løsning, påpeker Bjerland i FotMob.
«Vi har fått tilbakemeldinger fra bde som står bak Bundesliga sin offisielle app, at de er imponert.»
Vanskelig skalering
- Man skulle kanskje tro at push-varsler var et relativt banalt problem, som var løst for lenge siden. Hva gjør dette såpass komplisert, og potensielt kostbart?
- Det er skaleringen her som er vanskelig. Google og Amazon har løsninger man kan bruke, men med én gang vi når våre volumer, så skalerer ikke løsningene deres bra nok, og vi ender opp med tregere push enn ønskelig, svarer Bjerland kode24.
- Vi tror vi har skrevet et av de raskeste push-meldingssystemene som eksisterer, og vi har fått tilbakemeldinger fra blant annet de som står bak Bundesliga sin offisielle app at de er imponert over hastigheten vi klarer. Videreutvikling av systemet vil å optimalisere og sørge for at løsningen blir overvåket ned til hver minste detalj. For selv om vi sparer millioner på å skrive dette selv, så er stabil drift av systemet kritisk for en livescore-app som FotMob.