游戏架构演进:PUBG与Krafton
关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Game Architecture Modernization, Containerized Environment Migration, Kubernetes Adoption, Graviton Instance Optimization, Cloud Operations Automation]
导读
了解PUBG工作室如何改进亚马逊云科技架构以支持全球数百万并发游戏用户。“PUBG: Battlegrounds”最初发布时采用了包含Windows服务器的传统架构,但通过采用EKS、Graviton和Amazon Global Accelerator等亚马逊云科技服务,已经无缝地进行了修改,以提供稳定的游戏体验。来了解在实时环境中进行转型过程中获得的宝贵经验教训。
演讲精华
以下是小编为您整理的本次演讲的精华。
在线多人游戏领域中,由Krafton开发的《绝地求生》(PlayerUnknown’s Battlegrounds,简称PUBG)以其激烈的大逃杀格局吸引了全球数百万玩家,可谓是一座巍峨的成就。然而,要维持如此大规模受欢迎的游戏并非一蹴而就。随着PUBG的爆炸式增长,Krafton的DevOps团队在现有基础设施上遇到了诸多障碍,包括效率低下、团队生产力下降以及运营敏捷性有限。
认识到这些痛点后,Krafton作出了战略决策,拥抱容器化,旨在消除拖累DevOps团队的非必要重复工作。通过采用容器化,Krafton寻求简化运营流程,让团队能够专注于对游戏成功和公司发展真正重要的高价值任务。
这一旅程始于QA环境的现代化,Krafton面临着最小化维护多个环境的开销的挑战。之前,他们手动创建和管理QA环境,导致大量时间浪费和整体效率降低。为了解决这一问题,Krafton设定了三个关键实施目标:最小化运营成本、寻找标准且可扩展的解决方案,以及让团队能够自主管理自己的环境。
基于这些目标,Krafton决定使用容器和Kubernetes来管理QA环境。他们将资源划分为每个环境的专用资源和多个环境共享的资源。开发了一个Web UI工具,让团队能够直接管理自己的环境并处理生命周期管理。这种新的工作流程使Krafton能够高效处理数百个环境,最小化工作量和成本。
转而关注生产环境,Krafton着眼于流量控制和负载均衡。他们利用VPC原生功能实现EC2实例与Kubernetes Pod之间的直接通信,确保平稳高效的迁移。此外,Krafton采用Istio作为其服务网格,管理流量分发和路由策略,将主要路由规则和授权策略卸载到Istio,构建云无关的网络层。
现代化之旅延伸到会话服务器,Krafton采用了Agones这一开源游戏服务器编排解决方案。Agones提供了生命周期管理、容量管理和服务器分配功能,与现有的Kubernetes生态系统无缝集成。在迁移到Agones的过程中,Krafton将大部分管理服务功能委托给Agones控制器,由其处理容量管理、扩缩容管理和条件服务器分配。
迁移到Kubernetes为Krafton带来了显著的好处,包括通过高效的资源装箱,特别是在QA环境中,大幅降低了实例成本。然而,迁移也带来了新的挑战,如启动延迟和初始化期间的CPU争用。为了缓解这些问题,Krafton用Carpenter取代了集群自动扩缩器,实施了基于Harbor和CloudFront的ECR代理注册表,并将镜像拉取Pod部署为DaemonSet。这些努力将总启动时间从15分钟以上缩短到不到4分钟。
在现代化了大厅和会话服务器之后,Krafton探索了采用亚马逊云科技 Graviton实例来降低成本的策略。将大厅服务器迁移到Graviton相对直接,因为Krafton可以利用现有的构建工具链生成兼容的构件并为ARM架构创建容器镜像。然而,由于需要修改虚幻引擎代码库和服务器依赖库,会话服务器的迁移仍然是一个挑战。
尽管存在挑战,但迁移到Graviton实例取得了令人印象深刻的成果,Krafton在考虑性价比后,与Intel或AMD实例相比实现了约35%的成本节省。然而,Krafton注意到,在Graviton实例上处理相同的请求需要更高的CPU使用率,这表明他们的工作负载尚未完全优化为ARM架构。
在整个现代化过程中,Krafton汲取了宝贵的经验教训。PUBG的DevOps负责人Chongqing强调,专注于真正重要的事情,积极利用亚马逊云科技托管服务和开源软件,消除不必要的任务,让团队能够专注于提供真正的价值。此外,他强调了在迁移过程中意识到潜在的副作用的重要性,并始终准备好回滚计划以应对意外情况。
亚马逊云科技技术客户经理Minuk总结了Krafton令人难忘的旅程,强调了游戏行业拥抱容器和Kubernetes的好处。他强调了Amazon Elastic Kubernetes Service (EKS)在解放团队免于管理控制平面方面的作用,让他们能够专注于高效领域。Minuk还赞扬了Krafton采用Carpenter进行高效计算时间管理,以及采用Agones进行游戏服务器运营。
Minuk强调了优化云支出的重要性,赞赏Krafton使用Graviton实例节省成本。他鼓励与会者利用亚马逊云科技企业支持服务,如Countdown提供迁移协助和运营评审,以防止问题发生。Minuk还强调了客户反馈对于改进亚马逊云科技服务的价值,分享了一个例子,即Krafton的反馈导致在EKS上为Windows系统实施了特定配置。
总之,Krafton在PUBG上的现代化之旅证明了拥抱容器、Kubernetes和亚马逊云科技服务在转型游戏基础设施方面的强大力量。通过克服挑战、实施创新解决方案并利用亚马逊云科技的专业知识,Krafton实现了敏捷性、效率和成本优化,确保PUBG能够继续在全球范围内吸引玩家。
下面是一些演讲现场的精彩瞬间:
Min Sachin是亚马逊云科技的一位解决方案架构师,他介绍了Krafton如何将PUBG迁移到完全容器化的环境,与来自PUBG的DevOps主管Chongqing和亚马逊云科技的技术客户经理Minukton一同参与。
Krafton成功将PUBG的大厅服务器和游戏服务器容器化并迁移到亚马逊云科技,利用了容器和基于Graviton的工作节点的强大功能。
PUBG是一款大受欢迎的大逃杀游戏,在Steam上创下了325万并发玩家的纪录,展现了维护和扩展如此大规模多人游戏体验所需的卓越工程实力。
生动描述了大逃杀游戏的游戏循环,从进入大厅、匹配、降落地图、战斗,再回到大厅查看结果。
随着PUBG的爆炸式增长,DevOps团队面临着效率低下、生产力下降和敏捷性有限的挑战,促使他们需要一个更具可扩展性和效率的解决方案。
演讲者阐述了PUBG Battlegrounds之前的架构,强调了跨多个区域的集中式大厅服务器和分布式会话服务器,建立在亚马逊云科技服务如CloudFormation、EC2 Auto Scaling和CodeDeploy之上。
亚马逊云科技重视客户反馈,这推动了服务改进,造福整个亚马逊云科技社区,正如基于Krafton的反馈推出新功能一样。
总结
Krafton将其备受欢迎的在线多人游戏 PUBG 现代化的非凡历程展示了他们拥抱容器化和利用 亚马逊云科技 服务的战略方法。最初托管在基于 Windows 的 EC2 Auto Scaling 组上,随着游戏的受欢迎程度飙升,PUBG 的架构面临着效率低下、团队生产力下降和运营敏捷性有限的挑战。
为了解决这些问题,Krafton着手进行全面的现代化工作,从 2018 年 11 月开始将大厅服务的 QA 环境迁移到容器。到 2019 年 10 月,大厅服务器的生产环境已完全容器化,并于 2021 年 7 月重新设计并将游戏服务器迁移到容器。最近,Krafton将大厅服务器迁移到基于 亚马逊云科技 Graviton 的工作节点,优化了性价比。
迁移过程涉及将 亚马逊云科技 资源分类为专用和共享组,其中专用资源(如 SQS 队列和 DynamoDB 表)被迁移到容器应用程序中,并作为 Kubernetes 资源动态管理。共享资源(如 VPC 和 EC2 实例)使用 Terraform 和 CI/CD 管道进行管理。开发了一个 Web UI 工具,使团队能够管理自己的环境,简化流程并最小化工作量和成本。
Krafton的现代化之旅不仅提高了效率和运营敏捷性,还带来了宝贵的经验教训。积极利用 亚马逊云科技 托管服务和开源软件、注意潜在的副作用以及准备回滚是关键的经验总结。通过 Countdown 等计划利用 亚马逊云科技 专业知识,并与 亚马逊云科技 团队合作解决限制并进一步增强服务,也为他们的成功做出了贡献。
随着游戏行业越来越多地采用容器,Krafton的经验证明了拥抱现代化和利用 亚马逊云科技 服务(如 EKS 和 Graviton 实例)的好处。他们的历程凸显了持续改进、协作以及利用专家指导来优化云基础设施并提供卓越游戏体验的重要性。
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。