任天堂 eShop 的现代化:微服务和平台工程

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 Nintendo eShop 是一种基于网络的电子商务服务,您可以在其中浏览和购买任天堂交换机和其他任天堂平台的数字软件。随着数字业务的不断增长,任天堂系统必须对服务系统进行现代化,以提高灵活性和上市速度。在本论坛中,请聆听 Nintendo Systems 关于将其单体应用程序解耦为基于微服务的架构的决策和过程,并了解他们如何通过平台工程减轻微服务的痛点。了解 Nintendo Systems 如何使用亚马逊云科技基础设施开发用于自主、跨职能开发的平台。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1200字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 内部部署、迁移至亚马逊云科技和现代化。起初,任天堂eShop是一个内部部署的单体系统,核心应用程序服务器和数据库在首次推出时部署在内部。为满足可扩展性、可用性、性能和安全需求的增长,团队加强了对系统的支持,并添加了新的应用程序服务器。然而,单体应用和共享数据库的复杂性使得提高生产效率变得困难。 因此,第二阶段的主要任务是将核心系统迁移至亚马逊云科技,以便实现更高程度的基础设施灵活性和可扩展性。这个系统已经在多个亚马逊云科技账户和虚拟专用网络(VPC)上进行了重构。然而,由于各个应用程序之间的紧密关联,主要功能的发布仍然需要至少三个月的时间。 考虑到Nintendo Switch Online用户的不断增长,任天堂决定对其架构进行现代化改造,以提高灵活性和长期的维护能力。公司采用了三个关键的战略举措:转向微服务架构、实施平台工程以及扩大电子商务API平台。 首先,任天堂逐步将原有的单体系统转型为微服务架构。相较于模块化的单体系统,微服务基于各服务的独立部署和技术选择,具有更好的长期维护性。 起初,任天堂遵循单一责任原则,将单体系统分解成具有离散数据和功能的微服务。然而,这种方法使得预估所需微服务的总数变得困难。 因此,任天堂转而采用领域驱动设计方法,先将系统划分为诸如订单管理之类的领域范畴,然后进一步分解成微服务。这样,可以根据管理每个领域的团队规模来更好地预测微服务的粒度。 这些微服务由负责每个微服务内的所有开发和运营活动的跨职能服务团队负责运营。然而,由于缺乏专门的平台工程团队,高效地扩展微服务数量变得具有挑战性。 这促使任天堂实施了第三个策略:建立内部平台工程能力。为了提高开发者的生产力和服务效率,同时减轻认知负担,公司构建了一整套可重用的组件,包括框架、容器编排、持续集成和持续部署(CI/CD)管道以及可观测性工具等。 跨职能工作小组负责创建这些平台组件,作为提供给服务团队的“产品”。例如,在对比了EKS和ECS之后,由于管理开销较小且更轻量,[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)被选为容器编排工具。ECS实现了自助服务模式,每个微服务都有独立的亚马逊云科技账户,而EKS则需要大量集群管理。 任天堂并未设立专门的平台团队,而是鼓励开发者自主构建平台,以满足他们的需求。此举的目标并非打造一个功能齐全的开发人员门户,而是实现最基本的核心组件以提高开发者的效率和工作自主性。 为了证明这些策略的效果,奥仓分享了一个成功案例,即在游戏《塞尔达传说:泪之谷》发布期间,微服务架构成功应对了巨大的流量峰值。据预订单数据显示,开发人员通过自助式基础设施扩容和容量升级,轻松地应对了启动日当天流量数倍增长的情况。 总的来说,奥仓概述了任天堂的现代发展之路——将其庞大的eShop系统拆解成基于内部开发者平台的微服务,并计划进一步拓展至电子商务API平台。这一新架构已经展示了其能力,能够顺利应对如新游戏发布等重大流量事件,吸引数百万热情的粉丝。随着现代化进程的推进,任天堂将持续优化开发者的体验。 在奥仓的演讲结束后,岩井补充了一些关于任天堂的微服务转型和平台工程基础的详细信息。 他详细解释道,任天堂将整个系统拆分成微服务的原则包括单一职责、长期可维护性、提高生产力、实现更快发布速度和成本效益可扩展性。然而,岩井也注意到微服务带来了复杂性。为了解决这个问题,任天堂专注于内部平台工程,即建立工具和实践来简化开发和操作员的工作流程。尽管拥有专门的平台团队是理想状况,但目前任天堂主要依赖跨职能工作小组来构建符合他们需求的组件。 岩内详细地介绍了该平台的工程组件。在经过对EKS和ECS的评估后,他们最终选择了[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)作为容器编排的首选方案。这一选择的主要原因在于EKS将需要大量投入在集群管理上,而ECS则提供了更为轻量级的管理服务。此外,ECS使得微服务能够拥有独立的亚马逊云科技账户,使得团队可以全面掌控。 为了实现跨账户之间的微服务互联,任天堂期望ECS能够集成VPC传输网关和服务发现功能。这将有助于简化跨账户的服务网络连接和可观察性。 在账户管理方面,亚马逊云科技组织帮助任天堂高效地为每个微服务提供独立的亚马逊云科技账户,同时应用一致的治理控制。任天堂还将在各个账户中汇总日志和安全数据,以便监控潜在问题。 最后,为了让任天堂eShop功能作为一个API平台对外提供服务,Kong API网关为开发者提供了一个统一的访问电子商务微服务的途径。任天堂还为API的使用构建了一个管理仪表板,并为API发现创建了开发者门户。 总的来说,岩内在文章中重申了任天堂现代化的成功之旅——通过利用微服务、平台工程和API网关,将任天堂eShop转变为一个现代、可扩展且对开发者友好的架构。事实证明,这种架构能够顺利应对重大流量事件,如新游戏发布,从而吸引了数百万热情的粉丝。随着现代化进程的推进,任天堂将持续改进开发者和用户的体验。 **下面是一些演讲现场的精彩瞬间:** 全球知名的电子游戏公司任天堂利用其eShop服务为全球超过1.2亿的Switch用户提供丰富的在线内容。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_0.png) 作为行业领导者的任天堂与亚马逊云科技展开合作,共同探讨如何通过提供游戏服务器、新闻资讯和数字购买等服务来提升玩家的游戏体验。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_1.png) 亚马逊云科技致力于为客户提供一站式服务,助力企业构建从浏览、购买到交付数字商品的端到端数字商贸平台。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_2.png) 通过迁移至亚马逊云科技,任天堂得以实现更高的灵活性和可扩展性,同时也能更好地支持新任天堂平台的运营需求。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_3.png) 在合作过程中,双方团队共同制作了各种模板、模块和库,以便实现自助式基础设施和应用开发。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_4.png) 此外,亚马逊云科技还允许每个服务拥有自己的账户,以满足大规模系统中多种环境的需求。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering/images/rebranded/GAM306-Modernization_of_Nintendo_eShop__Microservice_and_platform_engineering_5.png) ## 总结 任天堂eShop是全球性的电子商务服务,专为任天堂游戏设备提供数字游戏购买。随着数字销售的逐年增长,其后台系统变得愈发复杂且难以扩展。为提高灵活性和可维护性,任天堂系统开始进行现代化改造,将eShop过渡到微服务架构并实施平台工程。 通过将单体系统逐步拆分成按领域划分的独立微服务,实现了独立的开发和部署。每个微服务都有相应的跨职能团队负责端到端的拥有权。然而,随着微服务的增加,专门的devops工程师无法跨团队进行扩展。 为了最大限度地提高生产力,引入了平台工程,以提供开发者自助服务能力并减轻认知负担。共同构建了诸如容器平台、CI/CD和应用框架等组件。选择[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)而非EKS,以避免Kubernetes集群管理的高昂开销。 最近的一个成功案例是,由于开发人员使用平台工程的主动扩展,主要游戏标题得以顺利发布。目前,正开发一个具有集中式API网关的电子商务API平台,以支持各种电子商务用例并向更多开发者展示功能。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭