37Games 游戏平台在 AWS 上的高可用容灾实践

37Games 游戏平台在 AWS 上的高可用容灾实践

💡 原文中文,约5000字,阅读约需12分钟。
📝

内容提要

37Games是一家成立于2011年的全球前20大游戏公司。本文讨论了37Games游戏平台在AWS上的部署以及跨区域主动-主动架构的实施。文章解释了游戏平台服务的架构设计以及在可用性方面面临的挑战。还介绍了多区域主动-主动架构,确保高可用性和灾难恢复。文章讨论了架构的访问层、应用层和数据层,以及流量分发和数据同步方法。强调了使用AWS服务如Route53、CloudFront、Aurora Global Database和DynamoDB Global Tables的优点。文章最后强调了通过这种架构实现的改进的可用性、容错性和灾难恢复能力。

🎯

关键要点

  • 37Games成立于2011年,是全球前20大游戏公司。
  • 本文讨论37Games游戏平台在AWS上的部署及跨区域主动-主动架构的实施。
  • 游戏平台服务负责管理玩家账号和支付流程,需注重高可用性和容灾能力。
  • 游戏平台服务架构通常采用三层架构,现多使用Kubernetes容器化部署。
  • 可用性挑战包括硬件故障、自然灾害和网络链路故障。
  • AWS托管服务的韧性特性可帮助优化架构,提高可用性。
  • 37Games平台服采用Multi Region双活设计,提升韧性和灾难恢复能力。
  • Access Tier使用Route53和CloudFront实现流量分配,确保玩家就近接入。
  • Application Tier更新CI/CD流程,保证两个Region的业务代码一致。
  • Data Tier依赖Aurora Global Database和DynamoDB Global Tables实现跨Region数据同步。
  • Aurora Global Database支持跨Region数据同步,提供低延迟读操作。
  • DynamoDB global tables提供全托管的多活读写端点,采用last-writer-wins策略解决数据冲突。
  • 容灾策略需经过测试,确保在故障时能有效切换流量和业务逻辑。
  • Aurora Global Database的failover过程包括提升secondary cluster为primary,恢复故障region。
  • 本文总结了37Games在AWS上采用的Multi-Region双活架构的优势和实践案例。

延伸问答

37Games的游戏平台在AWS上采用了什么样的架构设计?

37Games的游戏平台在AWS上采用了Multi Region双活架构,确保高可用性和灾难恢复。

Multi Region双活架构的主要优势是什么?

Multi Region双活架构提供了更高的韧性和灾难恢复能力,能够在一个Region发生故障时,另一个Region继续承载流量。

在37Games的架构中,如何实现数据同步?

数据同步依赖于Aurora Global Database和DynamoDB Global Tables,确保关系型和非关系型数据在多个Region间一致。

37Games如何处理流量分配?

流量分配通过Route53和CloudFront实现,确保玩家流量就近接入并根据策略分配到不同的Region。

Aurora Global Database的failover过程是怎样的?

当primary region发生故障时,Aurora Global Database会提升一个secondary cluster为primary,并监控故障region的恢复。

37Games在AWS上实施的架构有哪些关键AWS服务?

关键AWS服务包括Route53、CloudFront、Aurora Global Database和DynamoDB Global Tables。

➡️

继续阅读