4. "Ma qui fate anche questo?"

Kawahara:

Con la modalità Incontri casuali per Nintendo DS, si poteva usare la console per scambiare dati con un'altra persona, ora invece i dati caricati dai punti d'accesso come Nintendo Zone restano per un po' nella memoria del server. Quindi abbiamo pensato di creare un server internamente, ma per averlo pronto avremmo dovuto aspettare un mese.

Iwata Asks
Iwata:

E voi non avevate molto tempo.

Kawahara:

Sì. Quindi abbiamo deciso di usare un servizio cloud20, molto popolare in questo periodo. Per la precisione, ci siamo serviti di AWS21. In questo modo, in qualsiasi momento avessimo avuto bisogno di usare un certo numero di server, potevamo averne di nuovi senza attendere neanche un giorno. Questo servizio è stato davvero una scelta azzeccata.20. Cloud: tecnologia che permette di salvare ed elaborare dati in base alle proprie necessità attraverso Internet.21. AWS = Amazon Web Services: Amazon.com fornisce servizi di telecomputing, utilizzati da molte grandi aziende in tutto il mondo.

Iwata:

L'uso del cloud come server è ideale nel caso di servizi per cui, come nel caso dei punti di scambio StreetPass, è impossibile prevedere in anticipo il numero di accessi presso 100.000 punti di scambio nel mondo. In questo modo si può facilmente aumentare e ridurre il numero dei server a seconda delle circostanze.

Kawahara:

Esatto.

Iwata:

In realtà, Miiverse22 per Wii U ha una struttura simile. Molte grandi aziende che gestiscono servizi web stanno passando i loro server su cloud.22. Miiverse: servizio di rete, integrato in Wii U a livello di sistema, per collegarsi con gli utenti di tutto il mondo usando i personaggi Mii e vivere un'esperienza di gioco ancora più ampia. Le persone possono interagire condividendo le loro riflessioni nelle comunità dei loro giochi preferiti e postando commenti e illustrazioni disegnate a mano libera.

Yamazaki:

Sì. È impossibile pensare di avviare questo tipo di servizio, in così poco tempo, senza il cloud. Un'altra ragione poi, è stata la necessità di velocizzare il tempo di risposta. Quando un giocatore arriva presso un punto di scambio, dobbiamo estrarre i suoi dati e scambiarli con quelli di un'altra persona.

Iwata:

Se bisogna aspettare gli utenti se ne vanno.

Yamazaki:

Esatto. Per questo durante lo sviluppo abbiamo valutato la possibilità di collocare i server per l'America in America, e gli altri nelle rispettive regioni di riferimento. Alla fine però, abbiamo deciso di collocare tutti i server in un'unica posizione. Tuttavia, già l'essere stati in grado di considerare queste opzioni e lavorare in modo flessibile quando necessario è stato un vantaggio grazie ad un servizio come AWS.

Iwata:

Quanto tempo serve per completare uno scambio StreetPass presso un punto di scambio?

Konno:

Secondo le mie misurazioni personali, 20-30 secondi quando lo scambio è veloce, altrimenti circa un minuto.

Iwata Asks
Inoue:

Dipende dalla velocità di connessione, ma visto che ci vuole un po' per collegarsi al server, praticamente la durata è quella. Una volta stabilita la connessione, nella maggior parte dei casi, l'effettiva elaborazione sul server dura meno di un secondo.

Kawahara:

Per avviare velocemente il servizio abbiamo adottato una serie di metodi. Vado avanti io?

Iwata:

Sì, grazie!

Kawahara:

Internamente ci sono diversi team di sviluppo server che utilizzano software open-source in modo proattivo. Noi siamo uno di questi team e abbiamo usato una serie di software open-source.

Iwata:

I programmi, i manuali e le altre informazioni per i software open-source si trovano su Internet e chiunque può avervi accesso. Sono "open", quindi i programmatori di tutto il mondo possono continuamente apportare dei miglioramenti. Un esempio noto e rappresentativo è il sistema operativo Linux23.23. Linux: sistema operativo sviluppato da uno studente universitario in Finlandia. È stato messo in circolazione come freeware e migliorato da numerosi programmatori.

Kawahara:

Esatto. Oltre a questi software open-source, abbiamo usato un software di gestione dei dati chiamato HBase24. HBase è in grado di gestire un alto numero di processi, migliorando allo stesso tempo le prestazioni del sistema attraverso il trasferimento su server. Ho pensato fosse adatto per un caso come il nostro, in cui vengono continuamente elaborati dati, e che fosse una buona piattaforma per espandere l'infrastruttura se necessario, in base al carico di lavoro. Lo stavamo già testando su un altro progetto dalla fine dell'anno scorso, quindi sapevo già qualcosa sulle sue funzioni.24. HBase: prodotto sviluppato da un'azienda no-profit in America che supporta software open-source. Viene usato dai più importanti social network come LINE e Facebook.

Iwata:

Trattandosi di un software open-source, oltre che da Nintendo è usato anche da altre aziende che operano attraverso il web.

Kawahara:

Sì. Abbiamo usato anche Puppet25, un altro software open-source, per la gestione della configurazione dei server. In realtà lo usiamo da tre anni ormai, e possiamo riutilizzare le impostazioni esistenti come punto di partenza ogni volta che iniziamo a lavorare su un nuovo progetto.25. Puppet: strumento di gestione della configurazione per la gestione automatizzata di sistemi. Il linguaggio di programmazione è Ruby.

Iwata:

Per lanciare un servizio di rete su larga scala, la prima cosa da fare è configurare più server affinché possano lavorare insieme. Gestire questa configurazione presuppone un grande lavoro, quindi l'uso di un software di gestione specifico. Avendolo impostato in anticipo potevate iniziare questo progetto in qualsiasi momento.

Kawahara:

Sì. Il lancio è avvenuto a tre mesi dell'avvio del progetto perché avevamo usato Puppet in precedenza. Abbiamo usato anche un programma chiamato Fluentd26, un altro software open-source che permette la raccolta dei dati di accesso utilizzati su un server in tempo reale, semplificandone l'analisi.26. Fluentd: strumento per la raccolta di un grande numero di dati log. Fluentd consente di elaborare un gran numero di dati per scopi specifici.

Iwata:

Usando Fluentd, si può sapere in istante che tipo di utente sta scambiando dati con StreetPass, quanti incontri si stanno verificando e presso quali punti d'accesso.

Kawahara:

Sì. In questo modo è possibile analizzare la situazione nel suo complesso in circa un minuto. C'è ancora un'altra cosa da dire...

Iwata:

Prego. (ride)

Kawahara:

Molti membri del nostro team sono bravi a lavorare con Ruby27, quindi questo linguaggio viene usato in numerose aree.27. Ruby: linguaggio di programmazione sviluppato per semplificare questo processo.

Iwata:

Ruby è un noto linguaggio di programmazione sviluppato da un giapponese, Yukihiro Matsumoto.

Kawahara:

Sì. Altri team usano linguaggi come Java28 e Perl29, ma questa volta dovevamo avviare il servizio al più presto, quindi abbiamo optato per Ruby, un linguaggio semplice.28. Java: linguaggio di programmazione usato in numerosi settori: dai servizi pubblici, alle applicazioni business, passando per i videogiochi.29. Perl: linguaggio di programmazione adatto per scrivere programmi di applicazione web, gestione di sistemi, elaborazione di testi e altri usi.

Iwata:

Tutti sanno che Nintendo è una società per la quale lavorano numerose persone impegnate nella realizzazione di videogiochi, ma sfatiamo il mito secondo cui quando si tratta di costruire server e gestirne la funzionalità, ci affidiamo ad aziende esterne perché non abbiamo nessuno che se ne occupi internamente.

Yamazaki:

Esatto. Il reparto Network Development & Operations impiega da solo oltre 100 collaboratori, la maggior parte dei quali sono ingegneri. Ci sono anche ingegneri che lavorano per conto del cliente, quindi non sono tutti ingegneri che si occupano di server.

Iwata:

Ho saputo che quando qualcuno inizia a lavorare in azienda, ricorre la domanda "Ma qui fate anche questo?!"

Iwata Asks
Konno:

Ciononostante le cose sono cambiate dai tempi di Nintendo DS, abbiamo fatto una serie di progressi. All'epoca di Nintendo DS il punto di scambio era il DS stesso! (ride)

Iwata:

Yamazaki-san e altri li mettevano personalmente negli armadietti a gettone! (ride)

Tutti:

(risate)

Iwata:

Questa volta però, abbiamo usato l'infrastruttura Nintendo Zone già esistente nei negozi con l'idea di avviare il servizio aggiornando semplicemente il software di Nintendo 3DS30 e i server, e assicurandoci che avrebbe funzionato presso i punti d'accesso già presenti per avviare il servizio rapidamente.30. Aggiornamento software di Nintendo 3DS: per utilizzare i punti di scambio StreetPass è necessaria la versione Nintendo 3DS 6.2.0-12E o successiva. Le console Nintendo 3DS con versioni precedenti devono essere aggiornate.

Kawahara:

Esatto.

Konno:

In realtà avevo due idee per avviare il progetto. Una era usare i punti d'accesso esistenti, e l'altra era il metodo di collocazione fisica usato per Nintendo DS. Quindi ho chiesto agli altri quale fosse la più realistica.

Iwata:

Immagino che le abbiamo bocciato la seconda perché infattibile. (ride)

Konno:

Sì. Proprio così. (ride)

Yamazaki:

La mia reazione è stata "Dacci tregua!" Non ci penso proprio a girare per il mondo nascondendo console Nintendo 3DS in armadietti a gettone! (ride)

Tutti:

(risate)