从今天开始,我们将分享一系列“全球极限场景与创新场景使用 TiDB 的最佳实践”。本文为该专题第一篇,分享 TiDB 如何为全球著名游戏公司 CAPCOM 提供灵活、可靠、可扩展的数据库服务,保障其在线游戏的全球化运营。
CAPCOM 是一家日本游戏开发商,拥有一系列全球热门游戏,其中《怪物猎人》全球销量达到 8400 万份(截至 2022 年 7 月),《生化危机》 系列游戏更是风靡超过 25 年。
为了更好地应对游戏的全球化以及在线交付的趋势,CAPCOM 基础架构团队决定充分利用公共云服务,并在 Google Cloud Platform (GCP) 上构建新的在线游戏核心组件,这项工作的关键是要找到一款合适的数据库。
业务挑战
在线游戏玩家无论身在何处都希望获得可靠、流畅的游戏体验。在线游戏必须实时响应并发连接的动态变化,这就意味着服务器必须就近部署在玩家交互所处的国家,并且数据库必须随着数据量的变化而弹性扩展。
随着用户数量的迅猛增长以及新游戏场景、项目、活动和新游戏方式的不断增加,原始数据库经常需要处理超出预期的负载。CAPCOM 基础架构团队需要一款能够响应高度可变的工作负载并针对 GCP 环境进行优化的数据库。
基础架构团队倾向于能够提供完全托管的数据库服务,他们需要专业的数据库工程师来完成数据库故障处理和性能调优等任务,从而使得基础设施团队能够专注于自己的主要工作。
数据库选型
该团队调研了几款数据库,包括那些在 GCP 以外的云平台 (IaaS) 上运行的数据库。然而,没有一款数据库能够同时满足他们对关系型数据库以及对灵活性扩展的需求。为了更好地应对游戏的全球化以及在线交付的趋势,CAPCOM 基础架构团队决定选择 TiDB Cloud,并将新游戏的多个开发环境合并到一个 TiDB 集群中,节省了 IT 成本。
TiDB 既有高度兼容 MySQL 的接口,也有提供灵活扩展的分布式架构。TiDB 主要由三层架构组成:运行 SQL 的 TiDB 层、存储数据的 TiKV 层和协调集群的 Placement Driver,每一层都可以根据需要进行灵活的扩缩容。
基础设施团队成员 Ryohei Morita 分享了团队第一次接触 TiDB Cloud 的经历:
“我知道云原生计算基金会(CNCF)正在托管 TiKV。在收到 TiDB Cloud 的提案后,我们立即开始在内部环境中验证 TiDB 开源版本。显然,基于 TiKV 构建的托管服务具有真正的潜力来减少我们的运营工作量,我们很快决定考虑 TiDB Cloud。”
为什么选择 TiDB Cloud?
MySQL 兼容性
TiDB 高度兼容 MySQL,在 schema 结构以及 SQL 方面没有差异,因此很容易采用。基础设施团队可以轻松地在 TiDB Cloud 上创建测试应用程序。
可操作性
为了验证 TiDB Cloud 的可操作性,该团队模拟了从友商的 DBaaS 产品中迁移数据。团队通过监控仪表板上的资源和复杂查询来验证管理控制台的可用性,迁移到 TiDB Cloud 很顺利,没有任何问题。
“控制台和仪表板非常简单易用,你无需阅读文档就可以打开它们并直观地执行任务,管理服务使用起来非常简单,团队无需任何额外的培训或学习成本即可上手。 ”—— CAPCOM 基础设施团队 Ryohei Morita
性能和可扩展性
基础设施团队以每秒 1000 个请求的工作负载测试 TiDB Cloud 性能。TiDB Cloud 满足了 CAPCOM 新游戏对数据库选型的所有要求,在运行期间扩展 TiDB 的性能并不会影响游戏的质量。测试证明,TiDB Cloud 做到了一键按需扩展。
容错性
在测试中,TiDB Cloud 可靠性工程团队帮助 CAPCOM 进行了容错测试,该测试暂停了三个 TiKV 实例中的一个以模拟性能下降的极限场景,通过运行基准测试来测试自动恢复功能。
“每秒查询次数 (QPS) 暂时下降了三分之一后,服务逐渐恢复,在恢复过程中始终保持连接,游戏应用端也没有发生错误。”—— CAPCOM 基础设施团队 Ryohei Morita
响应迅速的团队
除了上述优势,PingCAP 的响应能力也是 CAPCOM 选择 TiDB Cloud 的重要原因。
“ 作为一个全球化团队,PingCAP 工程师对问题的响应速度让我们感到非常满意。在验证测试中,我们提出 TiDB Cloud 实例类型有点单一,会影响到服务部署的灵活性。PingCAP 团队立即增加了新的实例类型,这种响应速度对于其他服务提供商来说不敢想象。”—— CAPCOM 基础设施团队 Ryohei Morita
未来展望
结合评估的结果以及 TiDB Cloud 在 GCP 上的稳定性、防止供应商锁定的能力等诸多优点,CAPCOM 基础设施团队最终选择了 TiDB Cloud,并将新游戏的多个开发环境合并到一个 TiDB 集群中,节省了总体拥有成本。随着游戏需求的增加,预期的数据库访问量也将显著增加,基础设施团队计划在未来进行更大规模的测试,他们坚信 TiDB Cloud 也将满足这些测试中的所有性能预期。