Tests de charge dans l'hébergement de jeux, Partie 2

Et nous revoilà avec Philip Cote qui est de nouveau avec nous pour parler des tests de charge pour l’hébergement de serveurs de jeux. Si vous venez juste d'arriver, assurez-vous de consulter Partie 1 où nous présentons les raisons pour lesquelles les studios de jeux devraient effectuer des tests de charge avant de lancer leur jeu. Passons tout de suite au sujet !

Y a-t-il quelque chose de spécial dans le trafic des jeux vidéo ? Qu'est-ce qui le différencie du trafic web standard, surtout pendant un test de charge ?

La vérité est que le trafic web a beaucoup évolué. Avec le fonctionnement actuel, vous pourriez commencer une session sur Amazon mais vous retrouver connecté via 40 serveurs différents aux quatre coins du globe. Chacun de ces serveurs s'occupe de différents aspects de votre expérience sur ce site web. Et avec des répartiteurs de charge déplaçant le trafic entre différentes machines, vous n'avez pas à vous soucier de la persistance entre vous et le serveur. Le trafic de jeu est complètement différent. Dans un jeu en ligne, le joueur doit être en ligne du début de la session jusqu'à sa fin. Dans ce scénario, si vous essayez de couper la connexion, le jeu sera perdu.  En raison de cette caractéristique particulière, il est impossible de rediriger le trafic de jeu d'un serveur à un autre – du moins, pas encore. Les répartiteurs de charge ne peuvent pas être utilisés pour équilibrer la charge sur cinq serveurs différents. Et contrairement au trafic web, il n'est pas possible d'utiliser des clusters dans l'hébergement de jeux. Ce n'est tout simplement pas ainsi que fonctionnent les serveurs de jeux. Puisque les serveurs de jeux ne laissent jamais de place pour un plan B, nous chez Edgegap aspirons à la stabilité dans nos tests de charge. Nous vérifions nos serveurs pour voir s'ils peuvent durer toute la durée d'un match sans aucun problème. Jusqu'à présent, ils le peuvent – et nous attribuons principalement cet exploit aux conteneurs qui alimentent la solution d'Edgegap.

Combien de temps durent généralement vos tests de charge ?

Cela dépend de ce que nous essayons de tester. Si notre objectif était la stabilité à long terme, nous ferions des tests pendant sept jours d'affilée. Si nous souhaitions tester la logique de notre outil, trois heures suffisent largement. Le délai pour chaque test dépend du composant qui est sous examen.

Vous avez mentionné plus tôt que vous utilisez l'intelligence artificielle pour vos tests de charge. Pourriez-vous apporter plus de précisions sur ces IA ?

Passer à l’IA pour nos tests de charge est une décision qui a considérablement amélioré la qualité des métriques que nous obtenons. En temps normal, nous ne sommes pas en mesure de recevoir des données des joueurs eux-mêmes. Mais notre technologie IA nous permet de rassembler toutes sortes de données de première partie provenant des robots qui jouent à nos jeux simulés. Recourir à l'IA nous aide également à savoir si nous avons pris la bonne décision à tout moment. En comparant nos paramètres à la fin de chaque test de charge, nous pouvons évaluer chaque joueur. Ces scores nous aident à déterminer si le choix du jeu était le meilleur et si la latence n’a pas souffert tout au long du jeu. Ce sont le genre de métriques qui valident les tests de charge et elles ne peuvent être obtenues que par le biais de l’IA.

Y a-t-il des éléments spécifiques que vous recherchez dans un test de charge ?

Bien sûr ! En ce moment, nous avons 250 emplacements dans le monde, ce qui signifie que nous pouvons déployer n'importe quel type de jeu sur tous ces sites. Notre objectif est d'atteindre 1000 d'ici la fin de l'année. Cela représenterait 1000 sites dans le monde qui doivent être opérationnels. Lorsque vous regroupez mille serveurs dans le même centre de données, cela devient un défi. Évoluer dans 1000 endroits différents en même temps devient un cauchemar parce que vous devez surveiller tous les sites impliqués. En même temps. Réaliser cela nécessite une connexion Internet fiable, donc nous assignons généralement des outils internes pour valider les connexions et assurer que tous les serveurs sont réactifs. Nous utilisons un module interne pour valider l'état de chaque point d'accès chaque minute. Des vérifications fréquentes comme celles-ci garantissent que nos services ne se détériorent pas.  S'il y a un site avec l'un de ces problèmes, nos systèmes arrêtent automatiquement d'envoyer des jeux à cet emplacement. Et à la fin de la journée, nous faisons un inventaire de tous les emplacements qui ont échoué pendant le déploiement. Nous utilisons également l'apprentissage automatique pour surveiller les sites qui nous génèrent des erreurs répétées pendant le déploiement. Mettre sur liste noire ces emplacements est notre façon de garantir que notre réseau ne comprend que des serveurs sans problèmes.

Tester une charge pour 1000 emplacements prendra-t-il plus de temps que pour 250 ?

Pas nécessairement. Nous aurions juste besoin d'incorporer plus de joueurs dans nos tests de charge et d'avoir davantage de serveurs de jeux déployés.

Que faites-vous lorsqu'un certain emplacement échoue ?

Lors du test de charge, la partie automatisée de notre système retire les sites échoués de l'emplacement sélectionné. De cette façon, nous n'envoyons plus de trafic vers ces sites. Après cela, je fais des suivis avec les fournisseurs défaillants. Puisque plusieurs fournisseurs fournissent plusieurs parties de notre infrastructure, c’est beaucoup de suivis. Nous incitons les fournisseurs à réparer ce qui doit être réparé afin que nous puissions remettre le site en ligne. Notre solution repose sur le fait d'avoir des centaines de serveurs décentralisés, donc il est toujours préférable d'avoir le plus de sites possible disponibles pour le déploiement à tout moment.

Suivez-vous chaque test de charge et comparez-vous les résultats entre eux ?

Nous le faisons. Les variables que nous suivons varient entre des centaines à plusieurs milliers. Encore une fois, cela dépend de l'objectif de chaque test de charge. Mais les composants auxquels nous prêtons le plus attention incluent : la vitesse de déploiement, sa qualité, le nombre de sites disponibles, la latence, le jitter, la perte de paquets, et bien sûr, le coût. Dans l'hébergement de jeux, le coût est toujours un facteur crucial. Chez Edgegap, nous protégeons la viabilité de notre solution en nous assurant que nos serveurs paient toujours le bon montant pour les sites disponibles. Nous comparons également la taille des machines que nous utilisons pour chaque test de charge, ainsi que leur type et leur efficacité. Donc oui, nous faisons beaucoup de comparaisons avec les références passées pour déterminer si chaque test de charge a répondu à nos attentes.

Quels outils tiers utilisez-vous pour surveiller les tests de charge et votre environnement ?

Dans l'ensemble, nous sommes répartis sur de nombreux outils pour surveiller nos environnements. Pour tout ce qui concerne le CPU, la mémoire et le réseau, nous utilisons notre outil de surveillance interne. Tandis que nous stockons tous nos journaux générés dans notre BigData repository. Nous utilisons également cet outil pour analyser les conclusions de nos tests.  L'avantage de réaliser beaucoup de tests de charge avec les mêmes outils est que nous pouvons préparer des tableaux de bord comme modèles et les utiliser de manière répétée. Nous avons trouvé que cette tactique est efficace en termes de ressources. Cependant, nous sommes toujours à la recherche de nouveaux outils qui mettent en lumière des facteurs mineurs, apparemment insignifiants, qui contribuent à une mauvaise expérience pour le joueur.

Comment vous assurez-vous d'apprendre de chaque test de charge ?

Une fois que mon équipe et moi rassemblons toutes les métriques, nous faisons un debriefing. Nous échangeons des notes. Nous marquons ce qui s'est bien ou mal passé. Mais surtout, nous nous efforçons de répondre à la question 'Que pourrions-nous faire mieux ?' Veiller à ce que mon équipe soit pleinement impliquée dans nos tests de charge est quelque chose que je considère comme non négociable. Pourquoi ? Parce que je trouve que tenir tout le monde informé les incite toujours à donner le meilleur d'eux-mêmes. Donc, chaque fois que nous nous réunissons pour du brainstorming, je partage mes idées sur ce que nous pouvons faire différemment pour le prochain test de charge. Le développeur y met également son grain de sel. Et ainsi de suite – cela continue encore et encore. Lorsque vous avez une équipe qui est engagée dans une amélioration constante, comme celle ici chez Edgegap, vous constatez que cet effort collaboratif se traduit par de meilleurs tests de charge plus éclairants.

Conclusion

Comme les anciennes méthodes de divination, les tests de charge sont un moyen de voir dans le futur. Ce sont des processus soigneusement planifiés et orientés données qui garantissent que votre jeu ne plante pas à mi-parcours d'un match en ligne, laissant vos joueurs perdus et mécontents. Si vous souhaitez en savoir plus sur la façon dont vous pouvez héberger votre jeu sur des serveurs décentralisés qui ont été testés par des milliers de joueurs IA, contactez-nous pour Commencer !  

Écrit par

l'équipe Edgegap