跳至主要內容
2024 年

Nintendo Systems 利用 AWS 受管服務進行平台工程,以提高生產力

優勢

120 項
在一款重要遊戲的發布當日使用了 120 項 Amazon ECS 任務
10 倍
2017 至 2023 年內容總銷售額增長了 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,以建立能夠順暢為客戶提供娛樂內容的系統。這家新公司於 2020 年採用了平台工程,現在還在對 Nintendo eShop 平台進行現代化改造。Nintendo Systems 選擇使用 Amazon Web Services (AWS) 受管服務,以現代化其用於開發客戶導向系統的共用內部平台。藉助 AWS 技術,Nintendo Systems 得以在內部開發能夠以自助方式應對存取暴增的系統。

機會 | 對架構進行現代化改造以支援服務增長

Nintendo Systems 負責開發和營運 Nintendo 網路服務,例如 Nintendo Account 和 Game News。Nintendo eShop 是該公司提供的服務之一,同時也是一個線上商店,讓使用者能夠透過網際網路下載軟體和購買其他內容。

Nintendo eShop 於 2011 年推出,目前在 40 多個國家/地區為全球銷量已達 1.3 億多台的 Nintendo Switch 提供全年無休服務。從 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