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

Lors d'une récente conversation avec le CTO d'Edgegap, Philip Cote éclaire un des aspects moins souvent abordés de l'hébergement de jeux. Il révèle comment Edgegap aide les studios de jeux à préparer leur jeu pour le lancement en utilisant une variété de méthodes de test de charge.

Notre première question est assez simple : qu'est-ce qu'un test de charge ?

Il s'agit de générer des joueurs fictifs pour jouer à un jeu simulé. En gros, cela consiste à essayer de simuler la charge la plus extrême possible dans un jeu en faisant apparaître de nombreux joueurs virtuels à travers le monde.

Pourquoi s'embêter à tester la charge à l'échelle mondiale ?

Les plus grands jeux en ligne d'aujourd'hui peuvent accueillir des joueurs de tous les coins du monde en même temps. La plupart des studios de jeux à venir aspirent également à une échelle mondiale. Si nous devions générer tous nos joueurs d'un seul endroit, nos systèmes ne fonctionneraient pas de manière optimale. En générant des adresses IP aléatoires à travers le monde et en faisant correspondre ces joueurs pour obtenir un scénario réel, nous nous préparons à toutes les possibilités.

Cela semble être une procédure étendue. Est-ce le cas ?

Oui, surtout quand on considère que nous testons une charge au moins deux fois supérieure au volume de trafic dans les jeux de nos clients. De cette manière, même en cas de hausse de trafic ou de panne, nous aurons toujours assez de marge pour doubler la capacité de notre plateforme. Mais c'est plus facile pour nous maintenant qu'au début. Nos premiers tests de charge étaient réalisés physiquement par de vraies personnes, donc c'était incroyablement exigeant. Maintenant, nous générons de l'IA sur des joueurs fictifs et les faisons jouer. L'une de nos nouvelles méthodes de test de charge consiste à faire jouer ces joueurs virtuels à l'un des premiers jeux vidéo jamais créés, Pong. Nous mettons en ligne deux joueurs fictifs, leur faisons demander un match, et une fois que notre système de matchmaking en génère automatiquement un, un serveur est déployé. Dès que l'IA prend l'initiative et commence à contrôler les lignes blanches à l'écran, nous surveillons chaque métrique disponible. Nous testons chaque aspect de notre solution et allons même jusqu'à tester les joueurs eux-mêmes.

Les tests de charge sont-ils si importants dans le jeu en ligne ?

Pourquoi ? Parce qu'ils sont des personnes passionnées. Si un joueur a une mauvaise expérience en jouant à un jeu, il se manifeste généralement sur Reddit ou Twitter. Il n'y a pas de « Je vais revenir dans une heure ». En raison de la forte probabilité qu'un joueur abandonne un jeu une fois qu'il l'a quitté, nous devons être certains à 100 % que notre outil déploie tous les bons serveurs au bon endroit au bon moment.


Comment vous préparez-vous à un test de charge ? Quelles étapes suivez-vous ?

L'équipe Edgegap fonctionne comme une équipe de vol. À la barre, nous avons Mathieu, notre fondateur et pilote. La première étape consiste généralement à effectuer une vérification pré-vol. Ici, nous listons toutes les tâches pertinentes sur nos pages Wiki internes qui sont ensuite validées automatiquement. Ensuite, il y a moi - le chef de contrôle aérien. Comme je l'ai mentionné plus tôt, nos tests de charge sont deux fois plus élevés que le plus gros trafic qu'un client de jeu peut nous envoyer. Je dois donc m'assurer que tout ce qui doit être ajusté est en ordre. J'ai également tendance à ne pas annoncer que nous allons faire un test de charge à l'avance. La plupart de nos tests commencent par moi appelant une réunion improvisée avec tout le monde et disant quelque chose comme, « Hé, nous nous rencontrons cet après-midi à x heure. » Une fois que tout le monde a rejoint, je fais l'annonce et commence à passer en revue les chiffres. Les calculs sont réalisés bien avant les tests afin que nous sachions exactement combien de jeux nous devons produire et les étapes que nous devons suivre pour y parvenir. La raison pour laquelle nous ne programmons pas nos tests de charge est que nous voulons imiter la réalité aussi fidèlement que possible. Dans la vie réelle, nous n'aurions aucune préavis avant qu'un jeu d'un client ne connaisse une hausse de trafic. Pourquoi nos tests de charge devraient-ils être différents ?

Au-delà de garantir que vos serveurs peuvent gérer des hausses de joueurs simultanés, quels autres objectifs les tests de charge visent-ils à atteindre ?

Nos objectifs sont souvent axés sur la détermination de la stabilité de notre plateforme. L'Arbitrium d'Edgegap est basé sur un système de micro-services, ce qui signifie qu'il ne s'agit pas d'une seule machine gérant tous les processus, mais d'une multitude de petits composants, chacun ayant une fonction spécifique. Ces composants s'ajustent en taille en fonction des besoins de la plateforme. Et parce qu'ils sont des centaines à travailler activement à tout moment, il est facile que des erreurs s'accumulent et obligent le système à se déstabiliser. C'est une autre chose à laquelle nous prêtons attention : les erreurs. Nos tests de charge veillent à ce que chaque composant prenne toujours la bonne décision - qu'il s'agisse de s'ajuster vers le haut ou vers le bas. C'est tout pour la Partie 1 de l'interview avec le CTO d'Edgegap ! Restez à l'écoute pour la Partie 2 où nous parlerons de ce qui est particulier à la circulation des jeux vidéo qui doit être pris en compte lors des tests de charge, et pourquoi le suivi des résultats de test à test est si important. En attendant, n'hésitez pas à nous contacter si vous souhaitez en savoir plus.

Écrit par

l'équipe Edgegap