4. “Também fazes isto aqui?!”

Kawahara:

Quando havia pontos de retransmissão para o Modo Tag na Nintendo DS, usavam a própria consola para trocar dados com outra pessoa, mas agora os dados carregados em pontos de acesso através do serviço Nintendo Zone são guardados num servidor durante algum tempo. Por isso decidimos preparar um servidor na empresa, mas tivemos de esperar um mês pela entrega.

Iwata Asks
Iwata:

Todavia, tinham de se apressar.

Kawahara:

Pois. E por isso decidimos usar um serviço de nuvem20, algo de que se ouve falar muito hoje em dia. Mais especificamente, usámos AWS21. Por este motivo, sempre que decidíamos usar um certo número de servidores conseguíamos usar servidores novos nesse mesmo dia. Era um serviço muito conveniente.20. Nuvem: Tipo de computação que guarda e processa dados na Internet à medida que estes vão sendo necessários.21. AWS = Amazon Web Services: A amazon.com fornece serviços de computação remotos utilizados por grandes empresas em todo o mundo.

Iwata:

A utilização de nuvens como servidores é ideal quando se oferece um serviço em que, tal como com os pontos de retransmissão StreetPass, não é possível prever quantos utilizadores irão aceder aos 100.000 pontos de acesso espalhados pelo mundo. Desta forma, facilmente se aumenta ou diminui o número de servidores conforme as circunstâncias.

Kawahara:

Exatamente.

Iwata:

Atualmente, o Miiverse22 para a Wii U tem uma estrutura semelhante. Há várias grandes empresas de serviços online que estão a reavaliar a sua estrutura de servidores e a optar por nuvens.22. Miiverse: Um serviço de rede que permite a utilizadores de todo o mundo entrarem em contacto através das suas personagens Mii e, assim, desfrutar ainda mais dos videojogos integrados na consola Wii U. Pode-se interagir partilhando pensamentos nas comunidades dos jogos favoritos e publicando ilustrações e comentários feitos à mão.

Yamazaki:

Sim. É impossível imaginar dar início a este tipo de serviço em tão pouco tempo sem uma nuvem. Outra razão era a necessidade de encurtar o tempo de resposta. Quando um jogador chega a um ponto de retransmissão, temos de recolher os dados dessa pessoa e de transferir os dados de outra pessoa.

Iwata:

Se demorar, os jogadores vão-se embora.

Yamazaki:

Precisamente. Por isso, durante o desenvolvimento, falámos sobre a possibilidade de colocar servidores para os EUA nos EUA, e outros servidores nas áreas que se destinavam a servir. Mas depois de analisarmos prós e contras, decidimos colocar todos os servidores num único sítio. Mas a questão aqui foi podermos sequer considerar estas coisas e podermos ter a flexibilidade conforme necessitávamos – é esta a vantagem de um serviço como o AWS.

Iwata:

Quanto tempo demora a completar uma troca StreetPass num ponto de retransmissão?

Konno:

Fui eu mesmo que analisei estes dados: são cerca de 20 ou 30 segundos quando é rápido e cerca de um minuto quando é mais demorado.

Iwata Asks
Inoue:

Depende da velocidade da ligação, mas como demora um bocadinho a fazer a ligação ao servidor, parece que demora muito tempo. Mas depois de já estares ligado, o processamento no servidor demora menos de um segundo, na maioria dos casos.

Kawahara:

Hum… Para um serviço arrancar rapidamente adotámos uma série de métodos. Posso continuar?

Iwata:

Sim, claro.

Kawahara:

Internamente, há várias equipas de desenvolvimento de servidores que utilizam proativamente software open source. Somos uma dessas equipas e usámos vários programas de software open source.

Iwata:

Na Internet qualquer pessoa pode encontrar programas, manuais e outras informações sobre software open source. É aberto por definição, por isso os programadores do mundo podem continuar a melhorar o software. Um exemplo representativo e muito conhecido é o sistema operativo Linux23.23. Linux: Um sistema operativo desenvolvido por um estudante universitário da Finlândia. Foi lançado mais tarde como freeware e melhorado por vários criadores.

Kawahara:

Exatamente. Foi a partir desses programas de software open source que adotámos um software de gestão de dados chamado HBase24. O HBase suporta grandes quantidades de processamento ao mesmo tempo que consegue melhorar a capacidade do sistema ao adicionar servidores. Achei que se adequava ao nosso cenário, onde os dados seriam processados constantemente, sabendo que podíamos facilmente expandir a infraestrutura conforme o volume de dados a tratar. Já o estávamos a testar noutro projeto desde o final do ano passado, por isso conhecíamos bem o software.24. HBase: Produto desenvolvido por uma organização sem fins lucrativos nos EUA que apoia software open source. É usado por grandes serviços de redes sociais tais como LINE e Facebook.

Iwata:

Uma vez que se trata de software open source, há muitas empresas ligadas à Internet para além da Nintendo que o usam.

Kawahara:

Sim. Também usámos o Puppet25, outro programa de software open source. É um programa de gestão de configuração de servidores. Na realidade, já o usamos há três anos e conseguimos reutilizar as configurações existentes como ponto de partida sempre que começamos a trabalhar num projeto novo.25. Puppet: Ferramenta de gestão de configurações para a gestão automatizada de sistemas. A linguagem de programação utilizada é a Ruby.

Iwata:

Para criar um serviço de redes de grande escala é, antes de mais, necessário configurar vários servidores de modo a funcionarem em conjunto. A gestão dessas configurações dá muito trabalho, por isso é preciso usar um software específico para as gerir. Vocês já estavam preparados, por isso podiam começar o projeto quando quisessem.

Kawahara:

Sim. Conseguimos fazer o lançamento três meses depois de começar porque adotámos o Puppet com antecedência. Também adotámos uma ferramenta chamada Fluentd26, outro programa de software open source, que fornece um mecanismo para agrupar dados de acesso que correm num servidor, em tempo real, tornando mais fácil a sua análise.26. Fluentd: Ferramenta que agrupa grandes quantidades de dados de acesso. A Fluentd permite o processamento de grandes quantidades de dados para objetivos específicos.

Iwata:

Ao usar a Fluentd conseguimos perceber de imediato que tipo de utilizadores estão a ter encontros StreetPass, quantas ocorrências existem e em que pontos de acesso.

Kawahara:

Sim. E isso tornou possível compreender toda a situação com um intervalo de tempo de apenas um minuto. Só mais uma coisa…

Iwata:

Sim, sim, claro. (risos)

Kawahara:

Muitos membros da nossa equipa têm excelentes conhecimentos de Ruby27, por isso usamos muito esta linguagem em várias áreas.27. Ruby: Linguagem de programação desenvolvida para facilitar uma programação descomplicada.

Iwata:

A Ruby é uma linguagem de programação muito conhecida desenvolvida por um japonês, Yukihiro Matsumoto.

Kawahara:

É verdade. Há outras equipas que usam linguagens tais como Java28 e Perl29, mas desta vez precisávamos de dar início ao serviço o mais depressa possível, por isso adotámos Ruby, uma linguagem leve.28. Java: Linguagem de programação usada em várias áreas, desde serviços públicos a videojogos e a aplicações de negócios.29. Perl: Linguagem de programação ideal para criar programas para aplicações online, gestão de sistemas, processamento de texto e outros.

Iwata:

Toda a gente sabe que a Nintendo é uma empresa onde há imensas pessoas a criar videojogos, mas acho que muitas pessoas partem do princípio de que, no que diz respeito à construção, gestão e operação de sistemas de servidores, a Nintendo contrata outras empresas para o fazer, não havendo ninguém interno que o faça – o que não é verdade.

Yamazaki:

Sim, sim. Só o Departamento de Desenvolvimento e Operações de Redes tem mais de 100 pessoas, e a maioria são engenheiros. Também há engenheiros que trabalham na perspetiva do cliente, por isso não temos só engenheiros de servidores.

Iwata:

Ouvi dizer que quando há um membro novo, os outros ficam surpreendidos e perguntam: “Também fazes isto aqui?!”

Iwata Asks
Konno:

De qualquer forma, é muito diferente se pensarmos nos tempos da Nintendo DS. Progredimos imenso. Nos tempos da Nintendo DS, usámos uma consola como ponto de retransmissão! (risos)

Iwata:

Yamazaki-san e outras pessoas andavam a pôr consolas em cacifos de moedas à mão! (risos)

Todos:

(risos)

Iwata:

Mas desta vez usamos a infraestrutura existente na rede de serviços Nintendo Zone e o objetivo era dar início ao serviço alterando simplesmente o software da Nintendo 3DS30 e os servidores, ao mesmo tempo que nos certificávamos de que iria funcionar com os pontos de acesso existentes. Assim, o serviço arrancou bastante depressa.30. Alterar o software da Nintendo 3DS: É necessário ter uma consola Nintendo 3DS com a versão 6.2.0-0U ou posterior para usar os pontos de retransmissão StreetPass. As consolas Nintendo 3DS com uma versão anterior têm de ser atualizadas.

Kawahara:

É verdade.

Konno:

Para dizer a verdade, eu tinha dois planos para dar início ao projeto. Um era usar os pontos de acesso existentes, e o outro consistia em colocar fisicamente pontos de acesso, tal como acontecia nos tempos da Nintendo DS. E a minha pergunta inicial foi: “Qual destes planos é o mais realista?”

Iwata:

Devem ter-te dito que o segundo era impossível. (risos)

Konno:

Pois, foi isso mesmo que ouvi! (risos)

Yamazaki:

Eu dizia: “Bolas! Dá-nos algum descanso!” É que nem pensar – eu não ia andar a esconder consolas em cacifos pelo mundo inteiro! (risos)

Todos:

(risos)