4. ‘Doen jullie dat hier ook?!’

Kawahara:

In de tijd van de Tag-stand voor de Nintendo DS gebruikte je het systeem zelf om gegevens uit te wisselen met een ander, maar nu worden gegevens die worden geüpload vanaf toegangspunten als Nintendo Zones een tijdje op de server bewaard. We besloten dus een server voor te bereiden, maar we moesten een maand wachten op de levering.

Iwata Asks
Iwata:

Maar je had haast.

Kawahara:

Ja. We besloten een cloud-dienst20 te gebruiken waar je tegenwoordig veel over hoort. Om precies te zijn, we gebruikten AWS21. Om die reden konden we, als we besloten een bepaald aantal servers te gebruiken, die nieuwe servers binnen een dag inzetten. We konden gebruikmaken van een uiterst handige dienst.20. Cloud-dienst: een vorm van computergebruik waarbij gegevens via het internet worden opgeslagen en verwerkt op externe servers, die naar behoefte kunnen worden gebruikt.21. AWS = Amazon Web Services: Amazon.com biedt externe computerdiensten, die wereldwijd door veel grote bedrijven worden gebruikt.

Iwata:

Het gebruik van servers in de cloud is uitermate geschikt voor een dienst als de StreetPass-relaissystemen, waarbij je van tevoren niet kunt inschatten hoeveel gebruik er zal worden gemaakt van de honderdduizend toegangspunten wereldwijd. Op deze manier kun je het aantal gebruikte servers indien nodig eenvoudig verhogen, of verlagen als ze niet nodig zijn.

Kawahara:

Exact.

Iwata:

In werkelijkheid maakt Miiverse22 voor de Wii U gebruik van een dergelijke infrastructuur. Veel grote leveranciers van webdiensten brengen hun servers onder in de cloud.22. Miiverse: een netwerkdienst waarmee mensen uit de hele wereld contact kunnen maken via hun Mii-personages, en meer plezier kunnen beleven aan de videogames die zijn geïntegreerd in het Wii U-systeem. Mensen kunnen van gedachten wisselen door handgetekende illustraties en berichten te plaatsen in de community’s van hun favoriete spellen.

Yamazaki:

Ja. Het is haast onvoorstelbaar om een dergelijke dienst in zo’n korte tijd op te zetten, zonder gebruik van de cloud. Een andere reden was dat de reactiesnelheid moest worden verhoogd. Als een speler bij een relaissysteem staat, moeten we de gegevens van die persoon ontvangen en de gegevens van iemand anders overzetten.

Iwata:

Als er een vertraging optreedt, gaat de speler weer weg.

Yamazaki:

Precies. Dus tijdens de ontwikkeling bespraken we de mogelijkheid om servers voor Amerika in Amerika te plaatsen, en andere servers in het gebied waar ze zouden worden gebruikt. Maar na een evaluatie besloten we uiteindelijk om alle servers op één locatie te plaatsen. Alleen al het feit dat we dit soort dingen konden overwegen en flexibel konden werken als dat nodig was, was een voordeel van een dienst als AWS.

Iwata:

Hoelang duurt het om een StreetPass-uitwisseling bij een relaissysteem te voltooien?

Konno:

Dit is wat ik zelf heb gemeten, maar 20 tot 30 seconden als het snel gaat, en als het langer duurt ongeveer een minuut.

Iwata Asks
Inoue:

Het hangt af van de verbindingssnelheid, maar omdat het even duurt om verbinding te maken met de server, voelt alsof het zo lang duurt. Als de verbinding echter eenmaal is gemaakt, duurt de werkelijke verwerking op de server in de meeste gevallen minder dan een seconde.

Kawahara:

Eh… om de dienst snel te laten starten, maakten we gebruik van een aantal methoden. Kan ik verder gaan?

Iwata:

Ja, graag.

Kawahara:

Er zijn intern een aantal serverontwikkelingsteams die actief gebruikmaken van open source-software. Wij zijn een van die teams en we gebruikten verschillende open source-softwareprogramma’s.

Iwata:

Programma’s, handleidingen en andere informatie voor open source-software zijn verkrijgbaar op het internet, en ze zijn beschikbaar voor iedereen. Het is ‘open’, dus het kan constant worden bijgeschaafd door de programmeurs van deze wereld. Een goed en bekend voorbeeld is het besturingssysteem Linux23.23. Linux: een besturingssysteem dat werd ontwikkeld door een Finse universiteitsstudent. Het werd later uitgebracht als freeware, en verbeterd door talloze ontwikkelaars.

Kawahara:

Dat klopt. We maakten gebruik van een open source-programma voor gegevensbeheer met de naam HBase24. HBase kan grote hoeveelheden gegevens verwerken, terwijl de systeemprestaties eenvoudig kunnen worden verhoogd door servers toe te voegen. Het leek mij geschikt voor ons scenario, waarbij gegevens constant worden verwerkt, en we de infrastructuur indien nodig eenvoudig konden uitbreiden, afhankelijk van het gebruik. We testten het programma al sinds eind vorig jaar voor een ander project, en we hadden er al aardig wat over geleerd.24. HBase: een product ontworpen door een Amerikaanse non-profitorganisatie die open source-software ondersteunt. Het wordt gebruikt door grote sociale netwerkdiensten, zoals LINE en Facebook.

Iwata:

Omdat de software open source is, wordt het behalve door Nintendo ook door internetbedrijven gebruikt.

Kawahara:

Ja. We gebruikten ook Puppet25, een ander open source softwareprogramma. Het is een softwareprogramma voor serverconfiguratiebeheer. We gebruiken dat in werkelijkheid al drie jaar, en we konden de bestaande instellingen gebruiken als startpunt voor nieuwe projecten.25. Puppet: een hulpmiddel voor configuratiebeheer, waarmee het systeembeheer kan worden geautomatiseerd. De programmataal is Ruby.

Iwata:

Om een grote netwerkdienst op te zetten, moet je eerst verschillende servers configureren om samen te werken. Het beheer van die configuratie neemt veel tijd in beslag, dus je gebruikt speciale software voor het beheer. Je had je van tevoren voorbereid, dus we konden dit project op elk moment beginnen.

Kawahara:

Ja. We konden het drie maanden na het begin van het project uitbrengen, omdat we Puppet van tevoren hadden omarmd. We gebruikten ook een hulpmiddel met de naam Fluentd26, een ander open source-softwareprogramma. Het biedt een mechanisme om de toegangslogbestanden op een server in realtime te verzamelen en eenvoudig te analyseren.26. Fluentd: een hulpmiddel om grote hoeveelheden loginformatie te verzamelen. Fluentd maakt het mogelijk om een veelheid aan gegevens voor een bepaald doel te verwerken.

Iwata:

Als je Fluentd gebruikt, zie je ogenblikkelijk welke soorten gebruikers StreetPass-ontmoetingen hebben, hoeveel contacten er worden gelegd en bij welke toegangspunten.

Kawahara:

Ja. Dat maakte het mogelijk om de hele situatie te overzien, met een vertraging van ongeveer een minuut. Ik heb er nog een…

Iwata:

Ja, ga je gang (lacht).

Kawahara:

Veel van onze teamleden kunnen goed overweg met Ruby27, dus Ruby is voor veel onderdelen van dit systeem gebruikt.27. Ruby: een programmeertaal die is ontwikkeld om stressvrij te programmeren.

Iwata:

Ruby is een bekende programmeertaal, ontwikkeld door de Japanner, Yukihiro Matsumoto.

Kawahara:

Ja. Andere teams gebruiken talen als Java28 en Perl29, maar omdat we de dienst zo snel mogelijk wilden inzetten, maakten we gebruik van Ruby, een eenvoudige taal.28. Java: een programmeertaal die op allerlei gebieden wordt gebruikt – van hulpprogramma’s tot videogames en bedrijfsapplicaties.29. Perl: een programmeertaal die geschikt is voor het schrijven van webapplicaties, systeembeheer, tekstverwerking en meer.

Iwata:

Het is wereldwijd bekend dat Nintendo een bedrijf is waarin talloze mensen videogames maken. Veel mensen zullen echter aannemen dat we de constructie en het beheer van serversystemen overlaten aan externe bedrijven, zonder dat iemand van Nintendo zich daarmee bezighoudt. Dat is simpelweg niet waar.

Yamazaki:

Dat klopt. De afdeling netwerkontwikkeling en projecten alleen al bestaat uit honderd werknemers, vooral engineers. En er zijn engineers die aan de client-software werken, dus het zijn niet alleen maar server-engineers.

Iwata:

Ik heb gehoord dat nieuwe werknemers vaak verrast zijn en vragen, ‘Doen jullie dat hier ook?!’

Iwata Asks
Konno:

Desondanks gaat het nu heel anders dan in de tijd van de Nintendo DS. We hebben veel voortgang geboekt. In de tijd van de Nintendo DS gebruikten we een DS als relaissysteem (lacht)!

Iwata:

Yamazaki en anderen plaatsten ze met de hand in kluisjes (lacht)!

Iedereen:

Lacht.

Iwata:

Maar dit keer gebruikten we de in winkels bestaande infrastructuur van Nintendo Zone, en probeerden de dienst op te starten door simpelweg de Nintendo 3DS-software30 en servers aan te passen. Tegelijkertijd zorgden we ervoor dat het met alle bestaande toegangspunten zou werken, dus we konden vrij snel met de dienst beginnen.30. Aanpassing van de Nintendo 3DS-software: Nintendo 3DS systeemversie 6.2.0-0U of nieuwer is benodigd om gebruik te maken van de StreetPass-relaissystemen. Nintendo 3DS-systemen die zijn voorzien van een eerdere versie, moeten worden bijgewerkt.

Kawahara:

Precies.

Konno:

Eigenlijk had ik twee plannen voor deze dienst. De eerste was met het gebruik van bestaande toegangspunten, de tweede was een methode van fysieke plaatsing, vergelijkbaar met wat we deden voor de Nintendo DS. Wat ik me dus eerst afvroeg was, ‘Wat is realistischer?’

Iwata:

Ik vermoed dat je te horen kreeg dat de tweede methode onmogelijk was (lacht).

Konno:

Ja, inderdaad (lacht)!

Yamazaki:

Ik zei, ‘Doe ons een lol!’ Je kunt wel vergeten dat ik over de hele wereld DS-systemen in kluisjes ga plaatsen (lacht)!

Iedereen:

Lacht.