Gestion des pics de trafic imprévus – Comment l'orchestrateur d'Edgegap gère la montée en charge pour votre jeu

Vous avez ajouté des serveurs de jeux Edgegap et l'orchestration à votre jeu (félicitations !) et maintenant vous êtes prêt à franchir la prochaine étape – lancer votre hébergement de serveurs de jeux multijoueurs dans le monde réel.

Cela peut sembler décourageant. Que se passe-t-il si cela ne s'échelonne pas comme pour tant de grands projets ?

Ce guide est destiné à vous aider à préparer le lancement de votre jeu en mettant en évidence comment Edgegap gère une augmentation du trafic pour garantir que votre jeu s'échelonne en synchronisation avec la demande des joueurs.

Cet article doit être utilisé en tandem avec notre “Liste de vérification avant le lancement des jeux multijoueurs”.

Comment Edgegap gère-t-il les pics de charge imprévus sur sa plateforme ?

Tout d'abord et avant tout, nous considérons chaque déploiement comme une entité distincte sur notre plateforme. Chaque déploiement est un pod au sein de notre infrastructure. Les demandes proviennent de diverses sources, y compris les clients de jeu eux-mêmes, le système de matchmaking, ou toute autre manière par laquelle les utilisateurs interagissent avec notre API.

Une fois qu'une demande arrive dans notre système, nous lançons immédiatement la télémétrie et la géolocalisation du joueur et assignons des tâches à nos travailleurs pour provisionner un serveur dans notre infrastructure. En une seconde ou deux, le conteneur est opérationnel, prêt pour les joueurs entrants.

Comment assurons-nous que toute l'infrastructure nécessaire est en place pour servir ces déploiements rapidement ?

Nous avons développé une couche d'abstraction supervisant 17 fournisseurs différents, allant des fournisseurs de cloud, de bare metal, d'edge et de Container –en tant que Service. Ceux-ci sont situés dans le monde entier, nous fournissant à travers plus de 600 centres de données.

Notre liste de fournisseurs mélange ceux avec un service mondial, tels qu'Amazon, Google et Azure, aux côtés de services localisés spécifiques à un pays/région. Cette approche complémentaire garantit que vous avez la meilleure couverture et donc, votre jeu peut exploiter le plus grand réseau de points d'accès distribués au monde.

Au sein de notre plateforme, ces entités sont connues sous le nom de Points d'Accès, avec des informations essentielles telles que la capacité, la charge de travail actuelle, les ressources disponibles et d'autres indicateurs pertinents pour la prise de décision. En créant cette couche abstraite, vous n'avez pas à vous soucier d'où viendront vos joueurs, ou avec quel fournisseur vous devez travailler.

Cela vous permet de vous concentrer sur le jeu, tandis qu'Edgegap se concentre sur l'orchestration et la gestion de l'infrastructure sous-jacente.

Quelles sont les priorités de la plateforme Edgegap, et dans quel ordre ?

La plateforme Edgegap priorisera les éléments suivants, dans cet ordre :

  1. Vous fournir un serveur de jeu fonctionnel, basé sur les exigences que vous spécifiez dans votre profil d'application

  2. Rapprocher le serveur de jeu autant que possible, avec le chemin réseau le plus court, des joueurs pour offrir la meilleure expérience de jeu, basée sur une variété de mesures de télémétrie.

  3. Obtenir un serveur de jeu fonctionnel aussi rapidement que possible. L'objectif étant 1-2 secondes.

Lorsque nous faisons face à une poussée (et nous entendons par là, une ÉNORME quantité de trafic en très peu de temps ; par ex., 40+ déploiements par seconde, ce qui signifie 1 300 joueurs essayant d'entrer dans une partie dans un jeu de 32 joueurs chaque seconde, c'est 4,6 millions de joueurs en 60 minutes), la liste ci-dessus deviendra plus difficile à fournir pendant les premières minutes de la poussée. Dans ces rares cas, l'élément en dessous de la liste sera le premier à être abandonné.

Combien de temps faut-il généralement à la plateforme pour se stabiliser en cas de poussée imprévue de trafic ?

La plateforme s'échelonnera, de plusieurs manières, en fonction du trafic. Si le nombre de demandes dépasse la capacité actuelle, cela peut prendre jusqu'à 10-15 minutes pour que la plateforme se stabilise et rétablisse les 3 priorités ci-dessus pour chaque demande.

Quelle est l'approche d'Edgegap face à une poussée de trafic soudaine et imprévue ?

Notre Responsable de Capacité (surnommé “Capman”) est prêt à réagir au trafic entrant, interagissant avec les travailleurs demandant des ressources.

Lorsqu'il détecte une augmentation de la demande, il augmente automatiquement les régions spécifiques où les ressources sont nécessaires en déployant des machines plus grandes. De plus, si une zone géographique nécessitant un soutien supplémentaire est détectée, elle provisionne rapidement plus de machines pour optimiser la latence et améliorer l'expérience de jeu de nos clients ; tout cela est fait automatiquement.

Lorsque notre plateforme constate une poussée de trafic, elle augmente le backend pour soutenir le trafic. Pour les plus grosses poussées où beaucoup de CPU sont nécessaires (c'est-à-dire un serveur de jeu nécessitant 2 CPUs pour chaque instance), il faut entre 2 et 5 minutes à la plateforme pour s'échelonner et se stabiliser. Après cela, le système s'échelonne beaucoup plus rapidement car il demande des serveurs plus grands. Il changera la taille des nouveaux serveurs qu'il demande à chaque fournisseur en fonction de l'afflux de trafic, demandant des serveurs petits ou grands, que l'afflux accélère ou ralentisse.

En résumé ; en cas de poussée de trafic imprévue, (encore une fois, nous ne parlons pas de fluctuations quotidiennes standard, mais de centaines de milliers de joueurs), cela prendra quelques minutes pour que le système se stabilise.

Notes supplémentaires : Cela ne se produira pas si nous sommes prévenus à l'avance d'un certain événement (lancement/patche/etc) et pour un scaling normal. Cela concerne principalement les pics imprévus ; c'est-à-dire qu'un streamer commence à jouer à votre jeu et qu'un tas de nouveaux joueurs se joignent à l'amusement.

Pourquoi cela ne se produit-il pas pour l'augmentation de trafic standard sur 24 heures, et seulement pour les poussées IMPREVUES ?

 Pour gérer cet afflux de trafic, notre plateforme est conçue pour évoluer dynamiquement vers l'ouest de la région active.

En utilisant des analyses prédictives et en surveillant les modèles de trafic, nous anticipons quand et où les pics de trafic sont susceptibles de se produire. Ainsi, notre infrastructure ajuste proactivement sa capacité en prévision de ces périodes de pointe.

Cette mise à l'échelle proactive garantit que les ressources nécessaires sont facilement disponibles précisément quand et où elles sont nécessaires, optimisant l'expérience utilisateur et maintenant un gameplay fluide, même en périodes de forte demande.

Quel est le comportement lorsque Edgegap a peu de points d'accès et que les points d'accès nouvellement alloués proviennent d'une région éloignée d'un joueur ?

Lorsqu'un déploiement est demandé, la plateforme prend la meilleure décision concernant les ressources disponibles. Si la plateforme reçoit un grand nombre de demandes imprévues pour une région spécifique, les ressources peuvent devenir rares dans cette région pendant quelques minutes (pendant que le système monte en puissance).

Dans ce cas, et uniquement pendant quelques minutes, les décisions prises seront légèrement plus éloignées de l'endroit où la décision initiale a été prise.

L'objectif est toujours d'avoir de la capacité, quelle que soit la situation. Ces scénarios extrêmes se produisent rarement et ne durent que quelques minutes, alors que le système s'échelonne et commence à apprendre le nouveau comportement.

Que puis-je faire pour obtenir les meilleures performances de la plateforme Edgegap ?

Voici quelques recommandations sur quelques points que vous pouvez faire pour tirer le meilleur parti de notre plateforme avant une poussée de trafic prévue.

Voici la liste de contrôle :

  1. Communiquez !

    • Si vous savez qu'il se passe quelque chose dans votre jeu, c'est-à-dire un lancement, des patchs, des tournois, des streamers, faites-le savoir à l'équipe.

    • Plus ils en sauront, plus ils pourront réagir rapidement. Nous avons la capacité de pré-chauffer les environnements backend pour préparer un grand nombre de serveurs pour le moment du lancement.

    • Ceci est uniquement recommandé pour un événement majeur prévu, car la plateforme commencera à apprendre le modèle de trafic au fil du temps (c'est-à-dire les vagues de trafic basses et élevées sur 24 heures) et le système s'échelonnera et se redescendra en conséquence.

  2. Pour éviter les erreurs de timeout, vous pouvez augmenter la valeur « max_time_to_deploy » de votre AppVersion soit par le tableau de bord soit à travers notre API.

    • Le timeout est la quantité de temps que notre système attendra avant de signaler un serveur de jeu (un déploiement) en erreur. Si votre jeu passe de 0 à 1 million CCU en 10 secondes, le temps de déploiement peut être légèrement augmenté pendant quelques secondes.

    • Avoir ce délai légèrement plus élevé atténuera le cas où les déploiements prennent un peu plus de temps pour des raisons de poussée de trafic et qu'ils soient signalés comme erreur par notre plateforme.

  3. Nous recommandons de configurer votre système (c'est-à-dire le lobby, le système de matchmaking) pour réessayer après quelques secondes si cela se produit.

    • Bien que la plateforme fera toujours tout son possible pour vous obtenir un serveur de jeu par un simple appel API, un flux de trafic très (et nous entendons par là TRÈS !) important en très peu de temps peut éventuellement forcer notre système à retourner un message d'erreur.

  4. Tout en parlant de plan de reprise après sinistre peut sembler contre-intuitif en rédigeant un document sur les performances, nous pensons que couvrir chaque, aspect de chaque, scénario est au cœur de ce que nous faisons et comment nous opérons.

    • Notre système est basé sur une architecture de microservices, avec des composants hautement résilients.

    • Ces composants sont indépendants des fournisseurs et peuvent fonctionner sur n'importe quel fournisseur et peuvent être facilement déployés/redéployés pour ajouter de la capacité ou réinstaller une nouvelle plateforme en cas de défaillance catastrophique.

    • De plus, notre architecture est conçue de manière à ce que les composants non critiques ne soient pas nécessaires pour le service principal (c'est-à-dire orchestrer et héberger des serveurs de jeu) qui sont la priorité absolue.

  5. Préparez-vous avec un Test de Charge !

    • Il n'y a pas de meilleure façon d'évaluer le comportement de l'infrastructure de votre jeu, d'Edgegap aux services de jeu, qu'avec un test de charge.

    • Nous recommandons fortement d'en effectuer avant votre lancement, car cela fait partie de notre liste de vérification avant le lancement. Consultez l'article pour plus de détails.

Comment maintenons-nous des prix compétitifs ?

À mesure que le trafic se stabilise, nos systèmes automatisés prendront rapidement des mesures pour réduire notre infrastructure tout en garantissant que nous maintenons la capacité nécessaire pour servir efficacement et économiquement nos joueurs. Cela implique une surveillance vigilante des modèles de trafic et des tendances d'utilisation, en utilisant des algorithmes sophistiqués et des analyses prédictives pour anticiper les fluctuations de la demande et ajuster notre infrastructure de manière dynamique.

De plus, nos stratégies d'optimisation des coûts englobent plus que simplement la réduction de l'infrastructure. Nous évaluons et optimisons continuellement notre utilisation des services cloud, explorant des options telles que des instances réservées et d'autres mesures d'économie de coûts. Cette approche proactive nous permet de maintenir une infrastructure mince et efficace, en transmettant les avantages de coûts à nos clients sans compromettre la performance ou la fiabilité.

Notre engagement envers l'efficacité et l'innovation nous permet de fournir une solution rentables qui priorise la qualité et l'évolutivité, garantissant que notre plateforme reste réactive et résiliente même pendant les périodes de volume de trafic fluctuant.

Conclusion

Il y a beaucoup de choses qu'Edgegap fait pour s'assurer que quel que soit le volume de trafic que votre jeu reçoit, il peut évoluer rapidement pour répondre à la demande des joueurs au plus haut niveau.

Cependant, il y a beaucoup de choses que vous pouvez faire pour planifier afin de prévenir les erreurs. Nous espérons que ce guide a été utile pour améliorer votre backend et, en fin de compte, vous donner la récompense ultime – la tranquillité d'esprit que quoi qu'il arrive, votre multijoueur va évoluer sans problème et garantir que vos joueurs passent un bon moment avec une expérience fluide.

Écrit par

l'équipe Edgegap