Quand les points de relais "Tag Mode" existaient pour la Nintendo DS, on utilisait la console elle-même pour échanger des données avec une autre personne, mais désormais, les données chargées à partir de points d'accès comme les Nintendo Zones sont conservées pendant un certain temps sur un serveur. Nous avons donc décidé de préparer un serveur dans la société, mais il fallait attendre près d'un mois pour la livraison.
Or vous étiez pressés.
Oui. Nous avons donc opté pour un service de type cloud20 (en nuage), dont on entend beaucoup parler en ce moment. Pour être plus précis, nous avons utilisé AWS21. Grâce à cela, si nous décidions d'utiliser un certain nombre de serveurs, nous étions capables de les mobiliser le jour même. Il nous était désormais possible d'utiliser un service très pratique.20. Cloud : type d'informatique (aussi appelé "en nuage") permettant la sauvegarde et le traitement des données à la demande sur Internet.21. AWS = Amazon Web Services : Amazon.com fournit des services informatiques à distance utilisés par beaucoup de grandes sociétés à travers le monde.
Se servir du "cloud" comme serveur convient particulièrement bien à un service pour lequel, comme avec les points de relais StreetPass, il est impossible de prévoir à l'avance le nombre de connexions arrivant des 100 000 points d'accès à travers le monde. Il est ainsi facile d'augmenter de nombre de serveurs selon les circonstances, ou de le réduire si tant de serveurs ne sont pas nécessaires.
C'est exact.
D'ailleurs, Miiverse22 pour Wii U possède une structure semblable. De nombreuses sociétés de services Internet de grande taille remplacent leur structure de serveurs par le "cloud".22. Miiverse : service en réseau permettant à des joueurs du monde entier de se connecter par l'intermédiaire de leurs Mii et de profiter pleinement des jeux vidéo intégrés dans la console Wii U elle-même. Les joueurs peuvent interagir en partageant leurs avis au sein des communautés consacrées à leurs jeux favoris et en postant des dessins et des commentaires.
Oui. Il est impossible d'envisager le lancement de ce genre de service dans un délai aussi court sans un "cloud". Une des autres raisons de ce choix est qu'il nous fallait accélérer le temps de réponse. Quand un joueur arrive dans un point de relais, nous devons recevoir les données de cette personne et lui transmettre les données de quelqu'un d'autre.
S'il y a un décalage, les joueurs partent.
Exactement. Durant le développement, nous avons donc envisagé de placer des serveurs pour l'Amérique en Amérique et d'autres serveurs dans leurs régions cibles respectives. Finalement, après une étude, nous avons décidé de placer tous les serveurs dans un seul et même endroit. Néanmoins, le simple fait de pouvoir réfléchir à ces solutions au départ et d'avoir une certaine flexibilité en cas de besoin était un avantage certain dans le fait de travailler avec un service comme AWS.
Combien de temps faut-il pour réaliser un échange StreetPass au niveau d'un point de relais ?
J'ai mesuré cela moi-même : il faut 20 à 30 secondes quand tout va vite, et si cela prend un peu plus de temps, environ une minute.
Tout dépend de la vitesse de connexion, mais comme il faut un peu de temps pour se connecter au serveur, je dirais que c'est à peu près cela. Cependant, une fois la connexion établie, le traitement réel des données sur le serveur prend moins d'une seconde, dans la plupart des cas.
Hum… Pour lancer le service rapidement, nous avons opté pour un certain nombre de méthodes. Puis-je continuer ?
Oui, je vous en prie.
En interne, plusieurs équipes de développement des serveurs utilisent en amont des logiciels libres. Nous sommes une de ces équipes et nous utilisons un certain nombre de programmes logiciels libres, en "open source".
Les programmes, les manuels et autres sources d'information concernant les logiciels libres sont disponibles sur Internet, et tout le monde peut y accéder. Ils sont "libres de droits", ce qui veut dire que les programmeurs du monde entier peuvent les améliorer en permanence. Un bon exemple, assez connu, de ce type de logiciels libres est le système d'exploitation Linux23.23. Linux : système d'exploitation développé par un étudiant d'université finlandais. Il est ensuite sorti comme logiciel libre et a été amélioré par de nombreux développeurs.
C'est exact. Outre ces logiciels libres, nous avons adopté un logiciel de gestion des données baptisé HBase24. HBase peut traiter de grandes quantités d'opérations, tout en améliorant la performance du système lorsqu'il vient s'ajouter aux serveurs. Je me suis dit qu'il convenait à notre scénario, dans lequel des données seraient traitées en permanence. De plus, nous pourrions facilement nous en servir comme base afin de développer l'infrastructure, si besoin, en fonction de la charge de travail. Nous le testions déjà sur un autre projet depuis la fin de l'année dernière, nous avions donc déjà appris pas mal de choses dessus.24. HBase : produit développé par une organisation américaine à but non lucratif, qui soutien les logiciels libres. Il est utilisé par d'importants services de réseaux sociaux, comme LINE et Facebook.
Comme il s'agit d'un logiciel libre, de nombreuses entreprises du web, outre Nintendo, s'en servent.
Oui. Nous avons aussi utilisé Puppet25, un autre programme logiciel en "open source". C'est un programme destiné à gérer la configuration des serveurs. En fait, nous l'utilisons depuis maintenant trois ans et nous sommes capables de réutiliser les paramètres existants comme point de départ quand nous commençons à travailler sur un nouveau projet.25. Puppet : outil de gestion automatique de configuration de serveurs. Le langage de programmation est Ruby.
Pour lancer un service de réseau à grande échelle, il faut d'abord configurer plusieurs serveurs pour qu'ils travaillent ensemble. Gérer cette configuration demande énormément de travail, il existe donc un logiciel spécifique dédié à cette gestion. Vous vous êtes préparés en avance afin que nous puissions commencer le projet à tout moment.
Oui. Nous avons pu sortir cela trois mois après le début du projet car nous avions adopté Puppet bien en avance. Nous avons aussi adopté un autre outil, appelé Fluentd26, qui est un autre programme logiciel libre. Sa mécanique permet de collecter les journaux d'accès qui s'accumulent sur un serveur, en temps réel, et de faciliter leur analyse.26. Fluentd : outil destiné à la collecte de grandes quantités de données d'un fichier journal. Fluentd rend possible le traitement d'un grand nombre de données à des fins spécifiques.
En utilisant Fluentd, vous pouvez connaître en un clin d'œil le type d'utilisateurs ayant des rencontres StreetPass, le nombre de connexions et les points d'accès utilisés.
Oui. Cela nous a permis de comprendre l'ensemble de la situation avec un décalage d'environ une minute seulement. Encore une chose...
Oui, allez-y. (rire)
De nombreux membres de l'équipe sont très doués pour travailler en Ruby27, pour ce système, le langage Ruby est donc utilisé dans de nombreuses régions.27. Ruby : langage de programmation développé pour permettre la programmation sans stress.
Ruby est un langage de programmation très connu développé par un japonais, Yukihiro Matsumoto.
Oui. D'autres équipes utilisent des langages différents, comme Java28 et Perl29, mais nous devions cette fois lancer le service le plus vite possible, nous avons donc adopté Ruby, qui est assez léger.28. Java : langage de programmation utilisé dans différents domaines, des infrastructures réseau aux jeux vidéo, en passant par les applications professionnelles.29. Perl : langage de programmation permettant l'écriture de programmes destinés aux applications web, à la gestion système, au traitement de texte et autres.
Dans le monde entier, tout le monde sait que Nintendo est une société où de nombreuses personnes créent des jeux vidéo. Beaucoup de gens supposent que lorsqu'il s'agit de construire des systèmes de serveurs, de les gérer et de les faire fonctionner, nous confions ce travail à des entreprises externes et que personne ne fait cela en interne, mais c'est faux.
C'est exact. Le Département développement et gestion des réseaux à lui seul emploie plus de 100 personnes, des ingénieurs pour la plupart. Certains travaillent aussi sur le côté client, tous les ingénieurs ne sont donc pas des ingénieurs serveur.
J'ai entendu dire que les nouveaux arrivants étaient souvent surpris de cela et disaient : "Ça aussi, vous le faites ici ?"
Les choses sont malgré tout très différentes de l'époque de la Nintendo DS. Nous avons fait beaucoup de progrès. À l'époque de la Nintendo DS, nous utilisions une vraie console Nintendo DS comme point de relais ! (rire)
Yamazaki-san et les autres allaient les placer eux-mêmes dans des consignes ! (rire)
(rires)
Cette fois, nous utilisons l'infrastructure Nintendo Zone déjà existante dans les boutiques et avons fait en sorte de lancer le service en modifiant simplement le logiciel Nintendo 3DS30 et les serveurs. Nous avons dans le même temps veillé à ce que ça marche avec chacun des points d'accès existants, ce qui nous a permis de lancer le service assez vite.30. Modifier le logiciel Nintendo 3DS : il est nécessaire de disposer de la console Nintendo 3DS version 6.2.0-0U ou ultérieure pour pouvoir utiliser les points de relais StreetPass. Les consoles Nintendo 3DS fonctionnant avec une version antérieure doivent être mises à jour.
C'est exact.
En réalité, j'avais deux idées en tête pour commencer ce projet. L'une consistait à utiliser les points d'accès existants, l'autre consistait à placer physiquement des relais, comme à l'époque de la Nintendo DS. J'ai donc commencé par me demander : "Quelle solution est la plus réaliste ?"
J'imagine qu'on vous a dit que la deuxième était irréalisable. (rire)
Oui. Exactement ! (rire)
J'ai dit : "Pas question !" Je refuse d'aller cacher des consoles Nintendo DS dans des consignes partout dans le monde !" (rire)
(rire)
© 2024 Nintendo.