Passa al contenuto principale
2024

Nintendo Systems potenzia la produttività tramite l'ingegneria della piattaforma con i Servizi gestiti AWS

Vantaggi

120
task Amazon ECS al giorno di lancio di un videogioco di primaria importanza.
10 volte
aumento delle vendite totali di contenuti digitali dal 2017 al 2023

AWS re:Invent 2023

Il contenuto di questo caso di studio è stato presentato durante AWS re:Invent 2023 nella sessione “Modernization of Nintendo eShop: Microservice and Platform Engineering”. Guarda il video per maggiori informazioni.

Informazioni su Nintendo Systems Co., Ltd

Nintendo Systems è stata fondata nell'aprile del 2023 con un team di ingegneri di Nintendo e DeNA Co., Ltd. per sviluppare sistemi per la distribuzione dell'intrattenimento Nintendo agli utenti. I collaboratori mettono a frutto i loro diversi punti di forza, la profonda conoscenza dell'originalità di Nintendo e della tecnologia di DeNA, e l'apprezzamento per l'originalità e la flessibilità. Questo avviene attraverso discussioni mirate a creare risultati e sistemi straordinari, che possono essere ottenuti solo con un lavoro di squadra.

Panoramica

Nintendo Co., Ltd. ha fondato Nintendo Systems Co., Ltd. nell'aprile del 2023 per creare sistemi tramite i quali distribuire intrattenimento ai clienti in modo ottimale. La nuova azienda, che si occupa anche della modernizzazione della piattaforma Nintendo eShop, ha adottato l'ingegneria della piattaforma nel 2020. Nintendo Systems ha scelto i Servizi gestiti di Amazon Web Services (AWS) per modernizzare una piattaforma interna condivisa per lo sviluppo di sistemi orientati ai clienti. La tecnologia AWS consente a Nintendo Systems di sviluppare internamente e autonomamente sistemi che possano resistere a picchi.

Opportunità | Modernizzare l'architettura per supportare la crescita dei servizi

Nintendo Systems è responsabile dello sviluppo e della gestione dei servizi di rete Nintendo, come Nintendo Account e Game News. Nintendo eShop, un negozio online che consente agli utenti di scaricare software e acquistare contenuti aggiuntivi via Internet, è uno dei servizi offerti dall'azienda.

Lanciato nel 2011, ora Nintendo eShop offre un servizio attivo 24 ore su 24, 7 giorni su 7 in più di 40 Paesi per Nintendo Switch, che ha venduto più di 130 milioni di unità in tutto il mondo. Le vendite di contenuti digitali di Nintendo sono aumentate più di dieci volte tra il 2017 e il 2023: oggi quasi il 50% delle vendite totali di videogiochi di Nintendo è costituito da acquisti digitali.

Inizialmente, Nintendo gestiva la piattaforma eShop on-premises, ma nel 2015 ha eseguito la migrazione ad AWS per soddisfare il rapido aumento di utenti per gli acquisti delle festività. “Abbiamo scelto AWS per Amazon RDS per Oracle, un servizio gestito per l'utilizzo dei database Oracle, e per la comprovata esperienza all'interno della nostra azienda”, afferma Junichi Furutaka, Chief del Systems Development Department presso Nintendo Systems.

Sebbene la migrazione ad AWS abbia risolto i problemi di scalabilità, l'architettura di Nintendo è rimasta monolitica. Di conseguenza, le limitazioni relative alle dimensioni delle istanze Amazon Relational Database Service (Amazon RDS) hanno compromesso la scalabilità complessiva del servizio eShop in presenza di traffico elevato.

Inoltre, le nuove funzioni aggiunte e la necessità di conformarsi ai requisiti legali internazionali, essendo un servizio globale, rendevano l'infrastruttura sempre più complessa e difficile da comprendere e modificare dal punto di vista dello sviluppo applicativo. Shinya Ogura, Manager del System Development Department di Nintendo Systems, afferma: “Con il passare del tempo, disponevamo di un numero sempre minore di ingegneri in grado di comprendere la nostra logica preesistente. La modernizzazione dell'architettura era una necessità assoluta per rimuovere gli ostacoli al miglioramento delle funzionalità e all'aumento della produttività”.

Soluzione | Creazione di un approccio di ingegneria della piattaforma

Per il progetto di modernizzazione, Nintendo Systems ha optato per la separazione dei servizi attraverso l'adozione di un'architettura a microservizi, al fine di garantire manutenibilità a lungo termine, maggiore produttività, cicli di rilascio accelerati e scalabilità efficiente in termini di costi. In precedenza, ogni servizio era sviluppato da uno sviluppatore di app e da un ingegnere DevOps e i due ruoli erano distinti in base alla conformità e alla governance. Gli ingegneri DevOps erano responsabili delle implementazioni e delle modifiche dell'architettura.


L'azienda è passata a un approccio di ingegneria della piattaforma per uno sviluppo e un'amministrazione efficienti. Questo approccio consente di automatizzare le operazioni dell'infrastruttura tramite funzionalità self-service che rendono il lavoro degli sviluppatori di app più fluido e più produttivo.


“Data la carenza di ingegneri DevOps, avevamo bisogno di creare un sistema che migliorasse la produttività dello sviluppo consentendo agli sviluppatori di app di creare applicazioni e infrastrutture autonomamente”, spiega Ogura. “Tuttavia, non è realistico aspettarsi l'implementazione end-to-end da parte degli sviluppatori di app. Abbiamo quindi deciso di adottare l'ingegneria della piattaforma, che offre un'infrastruttura self-service condivisa, per alleggerire il carico di lavoro degli sviluppatori di app”.


L'elemento chiave per l'ingegneria della piattaforma è stata una nuova piattaforma interna per gli sviluppatori (Internal Developer Platform, IDP), comprendente un framework applicativo, un orchestratore di container e funzionalità CI/CD (integrazione continua/distribuzione continua). Nintendo Systems si avvale di una piattaforma per l'esecuzione di applicazioni su Amazon ECS tramite i servizi gestiti di AWS Fargate, mentre i suoi sviluppatori realizzano applicazioni e infrastruttura utilizzando l'IDP.


“Abbiamo confrontato Amazon ECS e Amazon Elastic Kubernetes Service (Amazon EKS) come possibili candidati per l'infrastruttura di esecuzione delle applicazioni”, afferma Furutaka. “Per la governance, abbiamo creato account AWS dedicati per ogni servizio, ma eseguire Kubernetes per ogni account si è rivelato complicato. Abbiamo scelto la piattaforma Amazon ECS su AWS Fargate per consentire agli sviluppatori che non hanno familiarità con Kubernetes di sviluppare e gestire applicazioni in container con facilità”.

Risultato | Avvio più rapido di applicazioni e servizi di infrastruttura Risultato | Avvio più rapido di servizi applicativi e di infrastruttura

L'iniziativa riguardante l’ingegneria della piattaforma ha avuto un impatto significativo sulla consapevolezza degli sviluppatori di app e degli ingegneri DevOps, stimolando lo sviluppo dei componenti dell'IDP. In preparazione al lancio, nel maggio 2023, del videogioco Legend of Zelda: Tears of the Kingdom, gli sviluppatori di app si sono avvalsi dei componenti dell'IDP per lo sviluppo self-service, di Amazon ECS su AWS Fargate come piattaforma applicativa, di Amazon DynamoDB per i database e di AWS CloudHSM per la gestione dei diritti digitali.

Il sistema ha resistito ai picchi di traffico del giorno di lancio grazie al fatto che gli sviluppatori di app hanno utilizzato le previsioni di lancio e i preordini del gioco per scalare Amazon ECS a 120 task, scalare le istanze AWS CloudHSM e modificare la modalità di capacità di Amazon DynamoDB.

“Abbiamo constatato che il nostro approccio legato all'ingegneria della piattaforma con AWS ha portato a uno sviluppo più efficiente, al lancio più celere di nuovi servizi per applicazioni e infrastruttura, e a una riduzione dei tempi di sviluppo”, afferma Ogura. “Continueremo a promuovere l'ingegneria della piattaforma per tutti i team di servizio”.

Come prossimo passo, Nintendo Systems implementerà Amazon ECS Service Connect e Amazon VPC Lattice per favorire ulteriormente il self-service, semplificando le connessioni tra account diversi e VPC diverse.

Furutaka afferma: “AWS ci ha fornito ampie informazioni sin dalla fase di selezione dell'architettura. Le richieste di revisione della nostra architettura durante lo sviluppo sono state accolte con generosi consigli e le nostre numerose domande tecniche hanno ricevuto risposta attraverso canali diretti. I Servizi gestiti AWS sono fondamentali per lo sviluppo self-service. In futuro, continueremo ad adottare nuove funzionalità AWS per migliorare la nostra piattaforma di servizi”.

Diagramma dell'architettura

Missing alt text value
«Abbiamo scoperto che il nostro approccio all'ingegneria della piattaforma con AWS ha portato a uno sviluppo più efficiente e al lancio più rapido di nuovi servizi per applicazioni e infrastrutture».

Shinya Ogura

Manager, System Development Department presso Nintendo Systems

Sistemi Nintendo

Two individuals standing in front of a modern bookshelf filled with books and decorative items.

Shinya Ogura

Missing alt text value

Junichi Furutaka

Missing alt text value