Hoe Fortnite met petabytes aan gamedata jongleert in de AWS-cloud

Wanneer je het snelst groeiende online game van het moment uitgeeft, heb je een infrastructuur nodig die daar tegen opgewassen is. Epic Games, uitgever van de wereldhit Fortnite, is sinds kort all-in gegaan in Amazon Web Services.

Fortnite heeft op minder dan een jaar tijd meer dan 125 miljoen spelers aangetrokken. Begin juni stond het aantal maandelijks actieve gebruikers op 40 miljoen, volgens officiële cijfers van de Chinese internetreus Tencent, dat voor 40 procent eigenaar is van Epic Games.

Elk seizoen komen er nog nieuwe spelers bij, waardoor Epic Games het dataverbruik van Fortnite maandelijks met 2 petabytes ziet aandikken. Elke minuut krijgen de servers van de uitgever een gigantische 92 miljoen gebeurtenissen te verwerken. Om die wildgroei aan informatie onder controle te houden, heeft Epic zijn samenwerking met Amazon Web Services verstevigd.

Amazon Web Services

Sinds Fortnite een jaar geleden op de wereld werd losgelaten, maakt Epic Games gebruik van de diensten van AWS voor zijn spelservers, back-endsystemen, databases en websites. Voortaan gaat het ook diensten voor analytics, machine learning en containertechnologie bij AWS afnemen om de spelervaring voor miljoenen gamers voortdurend te verbeteren.


Lees ook: CTO Amazon: Beveiliging van de cloud is een gedeelde verantwoordelijkheid


“We hebben de capaciteit tot het uiterste gerekt”, zegt Chris Dyl, Director of Platform bij Epic Games, tijdens een presentatie op de AWS Summit in New York, waar ZDNet over bericht. Dat bewees het bedrijf recent nog maar eens tijdens een in-game evenement waarbij een raketschip in de spelwereld werd gelanceerd. Alle 125 miljoen spelers werden uitgenodigd om gelijktijdig deel te nemen. Akamai, dat load balancing van internetverkeer voor Epic verzorgt, registreerde een recordverkeer van 37 terabytes per seconde op zijn platform.

Dankzij de schaalbaarheid van AWS had Epic Games voldoende capaciteit voorhanden om het evenement zonder veel problemen te laten verlopen. “De snelle groei van Fortnite is een typisch voorbeeld van hoe het omarmen en volledig benutten van de cloud een grote invloed kan hebben op het traject van een bedrijf”, zegt Mike Clayville, VP voor Worldwide Commercial Sales bij AWS.

Onvermijdelijke problemen

Toch lopen de zaken niet altijd van een leien dakje. Wanneer je zo’n snelle groei verwezenlijkt op zo’n korte tijd, gaat het soms té hard. Fortnite kende in het afgelopen jaar af en toe pannes en onderbrekingen. Die incidenten worden telkens door Epic aangegrepen om de infrastructuur verder op punt te zetten, zoals recent nog na de  introductie van een nieuwe limited time mode (Playground).

Die limited time mode moest kort na lancering tijdelijk weer offline worden gehaald omdat het een te grote last veroorzaakte op de matchmaking service die spelers koppelt aan beschikbare servers, met te lange wachttijden als gevolg.

 

Wanneer je zo’n snelle groei verwezenlijkt op zo’n korte tijd, gaat het soms té hard.

 

“Het proces om Playground stabiel en in handen van onze spelers te krijgen, was moeilijker dan we hadden gewild”, schrijven de Fortnite-ontwikkelaars in een postmortem. “We waren gedwongen om belangrijke noodupgrades aan onze Matchmaking Service aan te brengen, maar deze veranderingen zullen het spel goed van pas komen terwijl we blijven groeien en onze spelersbasis uitbreiden.”

Het zijn dit soort problemen die in de toekomst nog eenvoudiger moeten kunnen worden aangepakt, of helemaal vermeden, door de doorgedreven samenwerking met Amazon Web Services. Als een van de grootste cloudplatformen ter wereld, heeft AWS reeds veel gedaan in de zin van functionaliteit voor ontwikkelaars van toepassingen zo groot als Fortnite, die nu door de speluitgever worden geïmplementeerd.

Architectuurlessen

“We hebben besloten om all-in te gaan met AWS, omdat ze ons in staat stellen een spelervaring van hoge kwaliteit aan te bieden aan miljoenen gamers over heel de wereld, op hetzelfde moment”, zegt Dyl. “We zijn verheugd om samen met AWS ons gebruik van analytics, machine learning en gecontaineriseerde applicaties met behulp van Kubernetes uit te breiden om deze omvangrijke infrastructuur nog eenvoudiger te kunnen onderhouden.”

 

De architectuur van Epic is een real-time pijplijn die alles integreert.

 

De architectuur van Epic bestaat uit meerdere bewegende delen en microservices, maar in het algemeen wordt alles in Amazon S3 bewaard. “Het is een real-time pijplijn die alles integreert van S3 tot Spark tot scores tot telemetriegegevens tot Tableau en SQL. We gebruiken de gegevens voor alles van ARPU tot game-analyse en verbeteringen”, zegt Dyl.

ZDNet onderscheidt op basis van de presentatie van de Epic-topman volgende kernpunten van de architectuur, die veelal ook voor andere bedrijven een les kunnen zijn:

 

  • Epic gebruikt Amazon S3 als een data lake, ofwel een opslaglocatie waarin alle ruwe data – ongestructureerd, semi-gestructureerd en gestructureerd – in het oorspronkelijke formaat wordt opgeslagen. Van daaruit kan de data voor verschillende doeleinden worden ingezet.
  • Een goede architectuur is fundamenteel. Groei gebeurt vaak in opstoten in plaats van organisch, en de interesse bij een productlancering wordt vaak onderschat. In geval van Epic werd het architectuurteam van AWS al snel bij de samenwerking betrokken. Alles wordt volgens best practices getest en de gevoeligheden van de klant worden geanalyseerd. Analytics was vast geen prioriteit voor Epic op dag één, maar de architectuur moet ook klaar zijn voor noden die pas later komen.
  • (Open source) tools voor het verwerken van grote hoeveelheden gegevens, zoals MapReduce van Google, zijn van kritiek belang. Bij Epic staat Apache Spark centraal in de architectuur voor de verwerking van big data workloads.
  • Fortnite is opgebouwd uit microservices. Kleine functies zoals het leaderboard, statistieken of analyse van de spelervaring. Het voordeel van een toepassing in kleinere services op te splitsen, is dat je modulair te werk kan gaan. Het maakt de software gemakkelijker te begrijpen, ontwikkelen en testen, en is beter bestand tegen erosie van de architectuur.