View: https://www.youtube.com/watch?v=grdawJ3icdA
Close if old.
UPDATE:
Main takeaways:
- The frontend of the Nintendo eShop on the Nintendo 3DS and the Nintendo Switch are both written in React (likely ReactJs) as a single-page application.
- It is unknown how they are able to handle memory usage on the embedded devices.
- The plan is for Nintendo to maintain the Nintendo eShop for at least 20+ years starting from 2011 (to achieve long-term maintainability), when the Nintendo 3DS launched.
- They are using the Domain Driven Design Principle to help split the modular monolithic backend into an infrastructure that can be more manageable and maintained easily while allowing them to support the increasing requirements as time went by.
- Their microservice team is split into Service teams and a large Embedded team, for compliances and governance requirements.
- Each Service team has a group of developers, which handles the applications and a group of DevOps which handle the infrastructure.
- The DevOps group in the Service team collaborates with the Embedded DevOps team to fulfill the infrastructure deployments.
- Each team are autonomous and independent of each other, as they handle their respective services.
- As they went from 2017 to 2020, it was then realized it is difficult for Nintendo to transition the DevOps to other projects, since they are very engrained into the services. So, in 2020, they began looking to "Platform Engineering", and has continued to do this to this day (2020 ~ 2023).
- Platform engineers help to develop toolchains and workflows, enabling self-service capabilities for software engineering organizations, and bundling them into an internal developer platform, so that the Service team developers can use that platform while reducing the cognitive loads.
- In other words, the Service team developers do not need to concern about the DevOps and backend integration with Amazon AWS as they develop their services.
- As a result, each Service team has their own independent AWS account, allowing the Nintendo Systems to be freed from the limitations of using a single AWS account. Many services, such as Nintendo SDK, network services, various QA processes for each titles in development, and so on, all benefit from this.
- Due to internal organizational constraints, there isn't a dedicated platform engineering role. However, this lack of a dedicated team allowed Nintendo Systems to enable the creation of a lightweight platform sufficient for their needs.
- Instead of using Amazon EKS to manage Kubernetes clusters, they went with Amazon ECS, and let the service teams manage their ECS clusters independently. This allowed the developers to not be concerned about managing the clusters, and to be more interested in their services.
- The way the microservice and platform engineering works is:
- It dynamically checks the user's digital assets (games, DLCs, add-ons, etc.) when the user launches a game on the game console (e.g., Nintendo Switch).
- It is designed so that the service itself is accessed frequently in a short period of time on launch days of major titles.
- To achieve that availability and scalability to use the service under heavy traffic spikes, the entire internal developer platform (IDP) is built as a microservice itself, using IDP components in a self-service manner.
- It uses Amazon ECS Fargate, DynamoDB and S3 for storage, and CloudHSM for DRM-related processes.
- During the launch of The Legend of Zelda: Tears of the Kingdom:
- They scaled the number of ECS tasks to around 120 tasks, and (unknown quantities) of AWS CloudHSM instances.
- These numbers are based on sales forecasts and actual pre-order numbers.
- DynamoDB capacity mode (used for provisioning based on predictable traffic) was changed to on-demand mode during this period of time to accommodate the unpredictable traffic.
- Within a matter of minutes, the traffic was several times higher than normal.
- About the e-Commerce API Platform:
- This platform is what powers the Nintendo eShop, My Nintendo Store, Year-in-Review site, mobile apps and more.
- Third party developers engaging in the e-Commerce API platform are increasing as a result to demand.
- Nintendo is currently pursuing a business strategy for its e-Commerce API Platform.
Last edited: