优势
50%
开发环境成本降低30%
生产工作负载成本降低概览
Scopely 的《星际迷航舰队司令部》是一款大型多人在线游戏,已成功运营将近 7 年,累积游戏时间超过 15 亿小时。但是,为玩家提供卓越体验需要的不仅仅是引人入胜的体验,还需要一个能够平衡性能与成本效率的基础设施。Scopely 希望提高可用性,最大限度地降低运营复杂性,以及提供卓越的玩家体验。为了实现这些目标并为其在线游戏《星际迷航舰队司令部》设计稳健强大的架构,该公司开始转而采用 Amazon Web Services(AWS)。通过战略性地优化其基础设施,Scopely 不仅降低了成本,还让其工程团队能够更加专注于创新,而不是将精力耗费在运营上。
关于 Scopely
Scopely 成立于 2011 年,是一家全球互动娱乐公司和移动优先游戏开发商。该公司涉及制作了各种多样化的游戏组合,包括《星际迷航舰队司令部》、《大富翁围棋!》、《漫威神威战队》和《Stumble Guys》。
机会 | 利用 Amazon ECS 为《星际迷航舰队司令部》玩家提高可用性
Scopely 成立于 2011 年,是一家全球互动娱乐公司和移动游戏开发商。该公司的游戏组合包括《大富翁围棋!》、《漫威神威战队》和《Stumble Guys》。在推出《星际迷航舰队司令部》时,Scopely 利用 Amazon Elastic Container Service(Amazon ECS)作为其容器平台,在 Amazon Elastic Compute Cloud(Amazon EC2)竞价型实例上部署工作负载。虽然 ECS 提供了完全托管式编排服务,让开发人员能够高效部署、管理和扩展容器化应用程序,但竞价型实例也为容错工作负载提供了经济高效的计算层,并且相较于 EC2 按需定价,其可提供高达 90% 的折扣。借助这种方法,Scopely 只需为其使用的计算容量付费(按秒计费),同时通过竞价大幅降低基础设施成本。随着《星际迷航舰队司令部》越来越受欢迎,玩家需求激增,尤其是在黑色星期五等活动流量高峰期间,Scopely 的团队遇到了一些运营挑战。手动将工作负载从竞价型实例转移为按需型实例以维持可用性,这一流程变得越来越复杂且耗时。因此促使该团队重新审视和优化架构,进而做出一系列改进,包括开发自动化且可扩展的解决方案,以动态平衡按需型实例和竞价型实例的容量。
解决方案 | 生产工作负载成本降低 30%,同时提高可靠性
Scopely 依靠 Amazon EC2 Auto Scaling 来根据需求调整计算容量。为了进一步优化其性能,他们采用了基于属性的实例类型选择(ABIS),使其自动扩缩组能够在最新的 EC2 实例类型可用后立即无缝采用这些类型。通过可自定义的价格保护阈值,Scopely 可以精细地控制成本节省与可用性之间的平衡,从而使团队能够做出更明智的数据驱动型计算投资决策。
为了避免在竞价型容量转换到按需型容量期间出现手动干预,Scopely 使用 AWS Lambda 开发了一个自定义解决方案,而 Lambda 使他们能够运行代码,且无需考虑服务器或集群。该解决方案可帮助他们动态调整竞价型和按需型实例之间的自动扩缩组分布。该团队还定义了诸多属性(例如最低 CPU 和内存要求),现在可以监控自动扩缩组的容量问题,并在需要时自动切换为按需型实例。此外,Scopely 还为延迟敏感型工作负载创建了专门的自动扩缩组,以确保它们不会与其他服务争夺容量。
利用上述自动化功能,Scopely 现在可以在容量可用时无缝过渡回竞价型实例,从而最大限度地提高成本效率。这种自动化由两个 Lambda 函数提供技术支持:一个函数可自动检测未完成的竞价型容量事件并逐步调整自动扩缩组的组成,以包括更多的按需型实例;而另一个函数则会每 30 分钟运行一次,以逐步将按需使用量缩减到零,从而使系统恢复为 100% 的竞价型实例。
自实施这一自动化解决方案以来,Scopely 在容量转换期间已无需任何手动干预。Scopely 首席 DevOps 工程师 Nicolás Piechocki 表示:“通过自动扩缩组的自定义 Lambda 自动化和基于属性的实例类型选择,我们可以在极少的运营开销的情况下自动执行竞价型实例管理,同时保持几乎相同的成本优势。”
凭借这一势头,Scopely 将注意力转向优化 Amazon ECS 中的任务置放策略,即从分布置放转换为 binpack 置放。虽然分布策略会将容器分散在多个 EC2 实例上,以最大限度地提高可用性,但 binpack 置放可以更高效地整合任务,进而减少资源碎片化和浪费。
为了进一步简化计算资源分配,Scopely 采用了 Amazon ECS 容量提供商,从而可根据实时容量要求自动扩展 EC2 实例。以前,只有当任务因容量约束而失败时,才会被动触发扩展。借助容量提供商提供的 ECS 托管扩展,该公司现在可以在 1 分钟内扩展其自动扩缩组,从而确保更快的响应速度并改善工作负载置放。(参见图 1.Amazon EC2 上适用于 Amazon ECS 的 Scopely 架构。)
这些优化产生了可衡量的影响:将开发环境成本降低了 50%,生产工作负载成本降低了约 30%。Nicolás Piechocki 表示:“我们需要尽可能经济高效地运行所有内容,同时还要提供流畅的玩家体验。”“通过使用 Amazon ECS 并优化我们的基础设施,我们已经实现了这种平衡,或者说,相较于 3 年前,我们已更接近成功目标。”
结果 | 通过自动化基础设施管理增强玩家体验
借助 Amazon ECS 和竞价型实例,Scopely 证明即使是完全成熟的游戏也可以实现进一步的效率提升并达到新的领域高度。利用全面的 AWS 基础设施,Scopely 可以获得与全球一些最复杂的公司相同的强大且稳健的功能,进而助力规模扩展,同时消除先前需要持续人工干预的技术障碍。
现在,该公司已实现成本降低,最大限度地减少了运营开销并增强了玩家体验,Scopely 开始将注意力转移至未来的改进上。下一个计划将侧重于使用原生 AWS 功能实施全面的运行状况检查,这些功能不仅旨在监控服务的正常运行时间,还要监控各种基础组件(例如,数据库、网络连接和其他系统依赖项)的实际运行状况。
Nicolás Piechocki 表示:“在开发中,您想要快速失效机制,因为您希望能更快恢复。我认为这将是我们的下一个重大计划(即开展运行状况检查和了解服务状态),这样我们就可以快速替换组件、适当扩展、转移资源或根据警告信号发出警报。”
Amazon EC2 上适用于 Amazon ECS 的 Scopely 架构
通过 Amazon EC2 Auto Scaling 组的基于属性的实例类型选择,我们可以在极少的运营开销的情况下自动执行竞价型实例管理,同时保持几乎相同的成本优势。
Nicolás Piechocki
Scopely 首席 DevOps 工程师找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量。