4. “¡¿También hacéis esto aquí?!”

Kawahara:

Cuando existían los repetidores para el modo Encuentros al azar de Nintendo DS, usabas la propia consola a fin de intercambiar datos con otra persona, pero ahora los datos subidos mediante puntos de acceso tales como Nintendo Zones se almacenan temporalmente en un servidor. Por eso decidimos preparar un servidor en la empresa, pero teníamos que esperar alrededor de un mes hasta que llegase.

Iwata Asks
Iwata:

Sin embargo, el tiempo apremiaba.

Kawahara:

Sí. Por eso decidimos utilizar una nube20, algo que hoy en día está en boca de todos. Utilizamos AWS21, en concreto. Debido a ello, siempre que decidimos emplear un cierto número de servidores, pudimos emplear nuevos servidores el mismo día. Ahora podíamos utilizar un servicio muy práctico.20. Nube: una forma de computación que guarda y procesa datos a través de internet bajo petición.21. AWS (Amazon Web Services): Amazon.com proporciona servicios de computación remota empleados por muchas de las principales compañías del mundo.

Iwata:

Usar la nube como servidores es una solución que viene como anillo al dedo al establecer un servicio cuando, como en el caso de los repetidores de StreetPass, no puedes predecir cuántos encuentros reportarán los cien mil puntos de acceso repartidos por todo el mundo. Así puedes aumentar fácilmente el número de servidores de acuerdo con las circunstancias, o bien reducir la cantidad si no los ves necesarios.

Kawahara:

Sí.

Iwata:

En realidad, Miiverse22 para Wii U presenta una estructura similar. Muchas empresas de servicios web de grandes dimensiones están cambiando su estructura de servidores por la nube.22. Miiverse: un servicio de red que permite a gente de todo el mundo conectarse con sus personajes Mii y disfrutar con más intensidad de los videojuegos integrados con la consola Wii U. La gente puede interactuar compartiendo sus pensamientos en las comunidades de sus juegos favoritos y publicando tanto comentarios como ilustraciones hechas a mano.

Yamazaki:

Sí. Establecer esta clase de servicio en tan poco tiempo sin una nube resulta inconcebible. Otra de las razones estribaba en acelerar el tiempo de respuesta. Cuando un jugador llega a un repetidor, tenemos que recibir los datos de esa persona y pasar los datos de otra.

Iwata:

Si hay un retraso, los jugadores se irán.

Yamazaki:

Exacto. Por eso, durante el desarrollo nos planteamos instalar servidores para América en el propio país y otros servidores para las regiones destinatarias. Pero, tras someterlo a evaluación, nos decantamos por instalar los servidores en una sola ubicación. Pero solo el mero hecho de poder plantearse estas cosas y trabajar con flexibilidad cuando lo necesitábamos constituyó una ventaja con un servicio como AWS.

Iwata:

¿Cuánto tiempo lleva procesar un intercambio de StreetPass en un repetidor?

Konno:

Son datos que calculé yo mismo, pero cuando es rápido tarda entre 20 y 30 segundos; si lleva más tiempo, más o menos un minuto.

Iwata Asks
Inoue:

Depende de la velocidad de la conexión, pero como se tarda un poco en conectarse al servidor, da la impresión de que le lleva ese tiempo. Sin embargo, una vez establecida la conexión, el procesamiento en sí en el servidor tarda menos de un segundo para la mayoría de los casos.

Kawahara:

Hmm... Para que el servicio empezase con rapidez adoptamos una serie de métodos. ¿Puedo explayarme?

Iwata:

Sí, adelante.

Kawahara:

Varios de nuestros equipos de desarrollo de servidores utilizan software de código abierto. Nosotros formamos uno de dichos equipos y utilizamos una serie de programas de código abierto.

Iwata:

Los programas, manuales y demás información para el software de código abierto están disponibles en internet para cualquiera. Al estar "abierto", los programadores de cualquier lugar pueden pulirlo continuamente. Un ejemplo representativo y bien conocido es el sistema operativo Linux23.23. Linux: sistema operativo desarrollado por un estudiante universitario de Finlandia. Posteriormente se lanzó como freeware y fue mejorado por muchos desarrolladores.

Kawahara:

Sí. De entre todo el software de código abierto, adoptamos un programa de gestión de datos llamado HBase24. HBase puede manejar grandes cantidades de información, además de resultar idóneo para incrementar el rendimiento del sistema mediante la adición de servidores. Creía que se ajustaba a un escenario en el cual los datos se procesasen constantemente, además de poder potenciarlo para ampliar la infraestructura en caso necesario, dependiendo del volumen de trabajo. Ya lo estábamos probando en otro proyecto más o menos desde finales del año pasado, de modo que ya nos habíamos empapado bastante sobre él.24. HBase: un producto desarrollado por una empresa sin ánimo de lucro estadounidense, partidaria del software de código abierto. Algunas de las principales redes sociales, como LINE o Facebook, lo utilizan.

Iwata:

Como es software de código abierto, hay otras compañías web que lo están utilizando, además de Nintendo.

Kawahara:

Sí. También usamos Puppet25, otro programa de código abierto. Es un programa de gestión para la configuración de servidores. Lo cierto es que llevamos usándolo ya tres años y podemos reutilizar los ajustes existentes como punto de partida cada vez que empezamos a trabajar en un nuevo proyecto.25. Puppet: herramienta de gestión de configuración para la administración automática de sistemas. El lenguaje de programación que emplea es Ruby.

Iwata:

Para iniciar un servicio de red de gran escala debes configurar primero varios servidores que funcionen en conjunto. Dado que la gestión de esa información supone una ardua tarea, puedes utilizar un software concreto para administrarlo. Os preparasteis a conciencia con antelación para que nosotros pudiésemos comenzar este proyecto en cualquier momento.

Kawahara:

Sí. Gracias a haber adoptado Puppet con antelación fuimos capaces de lanzar esto tres meses después de haber empezado el proyecto. También empleamos otro programa de código abierto: una herramienta llamada Fluentd26. Proporciona un mecanismo para recopilar los registros de acceso que se acumulan en un servidor, en tiempo real, y facilita su análisis.26. Fluentd: una herramienta para recopilar grandes cantidades de registros. Fluentd permite procesar un volumen ingente de datos para propósitos concretos.

Iwata:

Al usar Fluentd puedes enterarte en un santiamén de qué clase de usuarios están experimentando encuentros de StreetPass, cuántos resultados se producen y en qué puntos de acceso.

Kawahara:

Sí. Eso hizo posible comprender toda la situación con un retraso de tan solo un minuto. Y otra cosa más...

Iwata:

Adelante. (Risas)

Kawahara:

A muchos de los miembros de nuestro equipo se le da bien Ruby27, y en este sistema Ruby se emplea en multitud de áreas.27. Ruby: lenguaje de programación desarrollado para generar una programación libre de estrés.

Iwata:

Ruby es un lenguaje de programación bien conocido, desarrollado por un japonés, Yukihiro Matsumoto.

Kawahara:

Sí. Hay otros equipos que usan lenguajes como Java28 o Perl29, pero como en esta ocasión teníamos que inaugurar el servicio lo antes posible, adoptamos Ruby, que es un lenguaje sencillo.28. Java: lenguaje de programación usado en una serie de campos, desde las utilidades a los videojuegos, pasando por las aplicaciones empresariales.29. Perl: lenguaje de programación usado para elaborar programas para aplicaciones web, administración de sistemas, procesamiento de textos y otros usos.

Iwata:

Todo el mundo sabe que Nintendo es una compañía donde hay un montón de gente haciendo videojuegos, pero mucha gente seguramente asume que encargamos a empresas externas la construcción de sistemas de servidores y las tareas de gestión y manejo de estos, sin tener a nadie al cargo en el seno de la propia compañía, pero ese no es el caso.

Yamazaki:

Sí. Tan solo el Departamento de Desarrollo y Operaciones de Red ya cuenta con más de cien miembros, la mayoría de ellos ingenieros. También hay ingenieros que trabajan en el lado del cliente, por lo que no son todos ingenieros de servidores.

Iwata:

He oído decir que cuando se incorpora alguien nuevo, suele llevarse una gran sorpresa y exclama: “¡¿Esto también lo hacéis aquí?!".

Iwata Asks
Konno:

Sin embargo, es bastante diferente, en comparación con la época de la Nintendo DS. Hemos progresado a pasos agigantados. En los tiempos de la Nintendo DS, ¡usamos una DS como repetidor, ni más ni menos! (Risas)

Iwata:

¡Yamazaki y los demás las estaban poniendo en las consignas automáticas a mano! (Risas)

Todos:

(Risas)

Iwata:

Pero esta vez usamos la infraestructura ya existente de Nintendo Zone en las tiendas y nos propusimos iniciar el servicio limitándonos a cambiar simplemente el software de Nintendo 3DS30 y los servidores, cerciorándonos al mismo tiempo de que funcionaría con todos y cada uno de los puntos de acceso. Así, pudimos empezar a ofrecer el servicio con bastante celeridad.30. Cambio de software de Nintendo 3DS: para poder usar los repetidores de StreetPass con la Nintendo 3DS se necesita la versión del sistema 6.2.0-0U o posterior. Las consolas Nintendo 3DS que estén ejecutando una versión anterior deben actualizarse.

Kawahara:

Sí.

Konno:

En realidad tenía dos ideas en mente para empezar este proyecto. La primera estribaba en los puntos de acceso existentes, mientras que la segunda consistía en el método de la colocación física, al igual que con la Nintendo DS. Por eso al principio les pregunté: "¿qué opción es más realista?".

Iwata:

Supongo que te dijeron que la segunda era imposible. (Risas)

Konno:

Sí. ¡Efectivamente! (Risas)

Yamazaki:

Le dije: “¡Venga ya, danos un respiro!”. ¡Ni de broma me voy a poner a colocar consolas DS en las consignas automáticas de todo el mundo! (Risas)

Todos:

(Risas)