跳至主要内容
2024 年

Nintendo Systems 巧借 AWS 托管式服务推行平台工程方法,助力提高生产力

优势

在一款大型游戏的发布日当天
运行了 120 项 Amazon ECS 任务
10 倍
内容的总销售额增长到 10 倍

AWS re:Invent 2023

此案例研究的内容在 AWS re:Invent 2023 上的“Nintendo eShop 的现代化改造:微服务和平台工程”会议上进行介绍。请观看此视频,了解更多信息。

关于任天堂系统有限公司

Nintendo Systems 成立于 2023 年 4 月,拥有一支由来自 Nintendo 和 DeNA Co., Ltd. 的工程师组成的团队,致力于开发用来向用户提供 Nintendo 娱乐内容的系统。员工们发挥各自的优势,结合对 Nintendo 创新和 DeNA 技术的广泛了解,秉承对独创性和灵活性的热衷,积极探讨如何打造出只有通过团队协作才能实现的卓越成果与系统。

概览

Nintendo Co., Ltd. 于 2023 年 4 月成立了 Nintendo Systems Co., Ltd,以期创建能够顺利为客户提供娱乐内容的系统。这家新公司还在对 Nintendo eShop 平台进行现代化改造,并于 2020 年采用了平台工程。Nintendo Systems 选择使用 Amazon Web Services(AWS)托管式服务,对共享内部平台进行现代化改造,用于开发以客户为导向的系统。借助 AWS 技术,Nintendo Systems 得以在内部实现系统开发,做到以自助方式应对访问激增情况。

机会 | 对架构进行现代化改造以支持服务增长

Nintendo Systems 负责开发和运营 Nintendo 网络服务,例如 Nintendo Account 和 Game News 等。Nintendo eShop 是该公司提供的服务之一,同时也是一个网上商店,便于用户通过互联网下载软件和购买其他内容。

Nintendo eShop 于 2011 年推出,目前在 40 多个国家/地区为 Nintendo Switch 提供全天候服务,该产品的全球销量已达 1.3 亿多台。从 2017 年到 2023 年,Nintendo 数字内容的销售额增长到十倍以上。如今,Nintendo 游戏总销售额的将近 50% 来源于数字购买。

Nintendo 最初在本地运行 eShop 平台,但在 2015 年将其迁移到 AWS,以便应对假日购物季的快速用户增长。“我们之所以选择 AWS,是因为 Amazon RDS for Oracle 是一项使用 Oracle 数据库的托管式服务,而且在我们公司内部表现得非常出色,”Nintendo Systems 的系统开发部负责人 Junichi Furutaka 表示。

尽管迁移到 AWS 解决了扩展方面的问题,Nintendo 的架构仍然单一。因此,对 Amazon Relational Database Service(Amazon RDS)实例大小的限制,导致难以在流量高峰期间扩展整个 eShop 服务。

此外,由于新增了一些功能,以及作为一项全球服务需要满足国际法律要求,基础设施在应用程序开发方面变得越来越复杂,且趋向黑盒化。Nintendo Systems 的系统开发部经理 Shinya Ogura 认为:“随着时间的推移,了解我们以前的逻辑的工程师越来越少。为了消除障碍,进而增强功能并提高生产力,必须对架构进行现代化改造。”

解决方案 | 构建平台工程方法

对于现代化改造项目,Nintendo Systems 采用微服务架构将各项服务分离,因此实现了长期可维护性、更高的生产力、更短的发布周期,以及经济高效的可扩展性。以前,每项服务都是由应用程序开发人员和 DevOps 工程师共同开发,并根据合规性和治理要求对两者的角色进行区分。DevOps 工程师负责部署和架构变更。


该公司改用平台工程方法,进而实现高效的开发和管理。这种方法通过自助式功能来自动执行基础设施运营,这样一来,应用程序开发人员的工作就变得更加顺畅、高效。


“DevOps 工程师人手不足,因此我们需要创建一个系统,使得应用程序开发人员能够自主开发应用程序和基础设施,从而提高开发生产力,”Ogura 解释道。“然而,让应用程序开发人员完成端到端部署是不现实的。因此,我们决定采用平台工程,提供共享自助式基础设施,进而减少应用程序开发人员的工作量。”


平台工程的核心在于全新的内部开发人员平台(IDP),其中包括应用程序框架、容器编排工具和 CI/CD(持续集成/持续交付)。Nintendo Systems 运营着一个平台,以便在 AWS Fargate 托管式服务上的 Amazon ECS 上执行应用程序,而内部开发人员则利用 IDP 构建应用程序和基础设施。


“我们将 Amazon ECS 和 Amazon Elastic Kubernetes Service(Amazon EKS)作为应用程序执行基础设施的候选对象进行了比较,”Furutaka 说道。“为了进行治理,我们为每项服务创建了专用的 AWS 账户,但发现很难为每个账户运行 Kubernetes。我们选择了 AWS Fargate 平台上的 Amazon ECS,这样不熟悉 Kubernetes 的开发人员也能够轻松在容器中构建并操作应用程序。”

成果 | 更快地推出应用程序和基础架构服务成果 | 更快地推出应用程序和基础架构服务

平台工程方法颠覆了应用程序开发人员和 DevOps 工程师的认知,并推动了 IDP 组件的开发工作。在为 2023 年 5 月发布的《塞尔达传说:王国之泪》游戏做准备时,应用程序开发人员利用 IDP 组件进行自助式开发,将 AWS Fargate 上的 Amazon ECS 用作应用程序平台,以及将 Amazon DynamoDB 用作数据库,并通过 AWS CloudHSM 来管理数字版权。

该系统经受住了发布日流量高峰的考验,原因在于,应用程序开发人员基于游戏的发布预测和预购数据,将 Amazon ECS 扩展到 120 项任务、扩展了 AWS CloudHSM 实例,同时调整了 Amazon DynamoDB 的容量模式。

“我们发现,使用 AWS 的平台工程方法,有助于在应用程序和基础设施方面,提高开发效率,加快新服务的推出速度,同时缩短开发时间,”Ogura 表示。“我们会继续在所有服务团队中推广平台工程。”

下一步,Nintendo Systems 将采用 Amazon ECS Service Connect 和 Amazon VPC Lattice,进而通过简化跨账户和跨 VPC 连接,来进一步推动自助服务。

在 Furutaka 看来,“从架构选择阶段开始,AWS 就为我们提供了充足的信息。在开发过程中,我们的架构审查请求得到了详尽的建议,众多技术问题也通过直接渠道获得了解答。AWS 托管式服务对于自助式开发是不可或缺的。展望未来,我们会继续应用新的 AWS 功能来改进我们的服务平台。”

架构图

Missing alt text value
“我们发现,我们使用AWS的平台工程方法可以提高应用程序和基础设施新服务的开发效率和更快的推出速度。”

Shinya Ogura

Nintendo Systems 系统开发部经理

任天堂系统

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