37Games游戏平台多区域多活容灾实践-GenAI

37Games游戏平台服的多区域多活容灾实践

关键字: [亚马逊云科技中国峰会2024, Aurora for MySQL, 游戏平台服架构, 多区域容灾实践, 亚马逊云服务, 数据同步策略, 故障切换演练]

本文字数: 2500, 阅读完需: 12 分钟

导读

在本次亚马逊云科技中国峰会2024上,演讲者介绍了37Games游戏平台服的多区域多活容灾实践。他们阐述了游戏平台服的概念及架构演进,以及如何在亚马逊云科技上实现多区域容灾架构;具体解释了利用亚马逊云科技服务如CloudFront、Route 53、Aurora for MySQL和DynamoDB的全球数据库/表功能,实现跨区域数据同步和故障切换。该架构使37Games能够在15分钟内完成区域级别的故障切换,确保业务连续性,提高了系统的可靠性和灵活性。

演讲精华

以下是小编为您整理的本次演讲的精华,共2200字,阅读时间大约是11分钟。

大家好,非常感谢大家来参加这个session。我会和37Games的运维工程师张辉一起分享关于37Games游戏平台服在亚马逊云科技亚马逊云科技上是如何实现多区域容灾的。我主要会讲前面两个内容,首先介绍一下游戏平台服的概念、架构及其演进,以及在亚马逊云科技上它是如何实现多区域容灾架构。然后张辉会分享他们如何将这一架构应用到实际生产环境中,以及该架构为他们的业务带来了哪些价值。

游戏平台服务与游戏服务的最大区别在于,它不直接提供游戏内容,而是负责游戏周边业务,更像一个互联网Web、HTTP业务,负责玩家注册、登录、充值等。一个平台服务可以接入多个游戏,就像玩家使用同一个账号可以登录多款网易游戏一样,这些游戏接入的就是同一个平台服务。

全球包括中国和海外很多游戏开发者及公司都使用亚马逊云科技服务,其中绝大多数公司会将游戏平台服务部署在亚马逊云科技上。原因是游戏平台服务提供注册登录、充值等关键功能,一旦这些功能不可用将影响玩家进入游戏、影响收入和游戏声誉。同时,如果平台服务数据丢失,玩家的账号、充值记录、游戏数据都可能丢失。因此,那么多游戏公司选择将平台服务部署在亚马逊云科技上,根本原因是亚马逊云科技提供了最稳定的选择。

即便已选择亚马逊云科技这么稳定的云服务商,我们仍需讨论跨区域容灾,这涉及亚马逊云科技的”弹性”(Resilience)概念,是Well-Architected框架中非常重要的一个支柱。弹性从架构和软件设计层面提高系统稳定性,我们在之前的会议中已介绍过相关概念、实践和方法论。今天我将与张辉一起分享在实际业务中我们是如何实现弹性的。

在介绍弹性之前,我先简单说明一下游戏平台服务的架构。它与大多数互联网业务架构相似,包括接入层、应用层和数据层三层。接入层接收玩家流量,并根据策略将流量分发到不同业务模块;应用层负责实际业务逻辑,如注册、登录、充值等;数据层使用关系型数据库、非关系型数据库、内存数据库和对象存储等服务存储和缓存数据。

在实现容灾时,我们有多种选择,包括主备模式的备份和恢复、热备、温备等,但我们选择了多活架构。事实上,多活架构可以实时验证多区域业务架构的可行性,并在切换时保证服务可用,因为我们时刻都有真实业务流量在运行。

我们的多活架构与之前的三层架构类似,也是一个三层架构。在接入层,我们使用了CloudFront和Route 53的结合,根据策略将不同业务流量分发到不同区域。在应用层,只需保证不同区域部署的业务模块代码完全一致即可。最复杂的是数据层,你需要保证不同区域的数据同步、一致性,以及发生故障后的数据恢复。在这里,我们使用了多种亚马逊云科技的托管服务,包括Aurora和DynamoDB,它们都有多区域容灾功能,后面我会详细介绍。

我们先看接入层的多区域容灾。主要有故障转移(Failover)和多活(Multi-Active)两种选择。故障转移就是在CloudFront上配置主备Origin,当主区域发生故障时,CloudFront会检测到并自动将流量切换到备区域,这是一个故障转移过程,但备区域并非实时有流量经过。

因此我们采用了多活架构,在CloudFront后面又加了一个Route 53。与之前不同的是,CloudFront的Origin配置不是真实的业务负载均衡器,而是一个域名。我们再在Route 53上,将这个中间域名根据策略如来源IP地址或权重,分发到不同区域的负载均衡器上。这就是我们接入层的多活策略。

应用层相对简单,只需在CI/CD流程中保证两个区域的代码部署一致即可,我们直接看最复杂的数据层。

在数据层,我们会存储交易数据、会话数据等,交易数据通常使用关系型数据库。我们使用的是Aurora for MySQL,这是亚马逊云科技久负盛名的关系型数据库,采用存算分离架构,可以很好地扩展计算节点而不增加存储成本。

Aurora for MySQL有一个全球数据库功能,可以在全球不同区域备份相同的数据。比如在美东设为主区域,美西或新加坡为备区域,它可以有一个主区域和多个备区域。主区域数据落盘后,会通过存储复制而不是日志重放的方式将数据同步到备区域,以达到更快的同步效果。

除了主区域同步到备区域,备区域也可以将写操作直接写入本地端点,然后通过Aurora的写转发功能转发到主区域落盘。我在这里列出了一些关于全球数据库和写转发的参数,大家在实际使用时可以关注这些参数。

除了关系型数据库,我们还会使用非关系型数据库存储如会话数据等非交易数据,这里我们使用DynamoDB。DynamoDB最初应用于亚马逊电商业务,后来发布成云服务,是一个完全托管的无服务器数据库服务,你只需对表进行读写操作。

DynamoDB有一个全局表功能,支持在全球任何区域读写同一张表。如果不同区域同时读写,DynamoDB采用”后写入为准”的方式解决数据冲突。因此,如果要避免数据冲突,开发者可以为不同区域数据加不同的前缀。

前面我们讲了多区域容灾的架构策略、使用的服务及其特性,但这一整套架构是否真的可行?所有从事过开发和运维的人都知道,如果没有在实际生产环境中实践过,它就不是一个真正可用的容灾策略。接下来我把时间交给张辉,他将介绍37Games是如何将这套架构应用到生产环境的。

好的,我是来自37Games的张辉。王瑞老师已经讲了技术实现原理,我主要负责讲一下我们是如何在37Games落地的。无论是37Games网游、手游还是亚马逊云科技业务线,我们对故障快速恢复的要求都是一致的,任何故障都必须在15分钟内恢复。要在这么短的时间内从故障发现到解决,除了全面监控和自动化恢复措施外,最重要的一个手段就是使用多区域双活架构。

这是我们实际的简化架构图。为了验证双活架构的可用性,也就是当故障发生时,备节点可以接手业务,我们会在正常业务中通过Route 53将部分流量如加拿大、墨西哥地区或按权重1%的流量引导到备节点。其余99%流量则进入主节点。

正常情况下,主节点新加坡的用户写入会直接在那里落盘,然后通过复制同步到美国备节点。备节点美国的用户写入,会通过Aurora的写转发功能先写到新加坡主节点落盘,再同步回美国。这里会有200到800毫秒的延迟,因此我们只放了1%的流量在备节点验证其可用性。

由于通过Route 53分发,用户请求同一域名时可能会在主备节点之间漂移,会出现用户状态不一致的情况。因此我们使用了DynamoDB的全局表功能,当用户在任一节点登录时,会将会话数据写入全局表,及时同步到对方节点,从而避免漂移导致的状态不一致。

这就是我们的简单架构介绍。除了日常1%流量验证外,我们还制定了策略,每个季度都会做一次100%流量切换的演练,只有经过真实演练,才能确保备节点是可用的。

我们是如何进行演练的呢?首先,按照演练流程,我们会将所有流量切换到备节点。由于备节点的写入需先转发到主节点再同步回来,大量写请求会导致延迟升高,对业务是不可用的。因此,我们必须同步进行数据库切换演练。

对于数据库切换,操作步骤相对简单。首先,我们会阻断主区域新加坡的写入,防止与备区域同时写入导致数据不一致,这不影响主备区域间的同步。同步完成后,我们在控制台或通过自动化脚本,调用Aurora的故障转移API,将备区域美国的Aurora重启,重启过程持续约42秒。

在这42秒内,整个业务会短暂中断,这是符合我们预期的。重启完成后,美国节点被提升为主节点,由于Web流量和数据库都已切换到美国,业务就恢复了,演练基本结束。

最后,Aurora会将原主区域新加坡从集群中剔除,并新建一个备库,进行数据同步。以我们一个300GB的业务为例,重建备库需约2.5小时。如果数据量更大,重建时间会更长,会影响到下次主备切换的时间,因为在此期间不能进行切换。

重建完成后,我们就可以按相同流程将业务切换回新加坡,完成一次完整的演练。通过这种方式,我们实现了日常1%流量验证备节点可用性,并每季度100%流量切换真实演练,从而保障了业务的双活可用性。

该架构实施以来,除了代码问题导致的不稳定外,我们基本上没有遇到由基础设施引起的重大故障。如果哪天新加坡整个地区不可用,我们可以在15分钟内将业务切换到美国,提供给用户正常访问,这是该架构最大的价值。

另外,通过Route 53的区域解析,我们可以灵活调整不同区域的流量分配权重。为了节省成本,我们目前美国只保持一个小规模集群,但我们已经容器化了,可以快速扩容。

最后,对于一些海外企业可能遇到的数据合规问题,我们也可以直接将业务全部迁移到美国,与新加坡区域隔离,提升了合规能力。

总之,该多区域多活架构利用了亚马逊云科技的多种服务和功能,实现了我们15分钟内故障恢复的目标,提高了业务连续性,也增强了合规能力,对需要高可用性的游戏及其他业务都有借鉴意义。

简要总结一下,该案例分享了37Games如何在亚马逊云科技上构建游戏平台服务的多区域多活容灾架构,利用了CloudFront、Route 53、Aurora全球数据库、DynamoDB全局表等服务,通过日常1%流量验证和每季度全量流量切换演练,实现了15分钟内故障恢复、提高了业务连续性,也增强了合规能力,是一个成功的容灾实践案例。

下面是一些演讲现场的精彩瞬间:

亚马逊云科技中国峰会2024上,演讲者介绍了游戏平台服的架构及其在亚马逊云科技上实现多区域容灾的方案,并分享了该架构在实际生产环境中的应用及价值。

亚马逊云科技中国峰会2024:介绍了CloudFront和Route 53实现多区域容灾failover的架构设计。

亚马逊云科技Aurora for MySQL的Global Database功能确保了您可以在全球不同地区拥有相同的数据备份,实现高效的数据同步和写操作转发。

亚马逊云科技中国峰会2024:DynamoDB是一个完全托管的数据库服务,支持全球任何地区读写同一张表,采用Last Write Wins策略解决数据冲突问题。

张辉分享了山西互娱如何利用亚马逊云科技多区域双活架构实现15分钟内故障恢复的目标

亚马逊云科技中国峰会2024上,演讲者详细解释了Aurora全球数据库的不同一致性级别及其对应的性能和延迟特点。

总结

亚马逊云科技为游戏行业提供了稳定可靠的多区域容灾解决方案。游戏平台服务是游戏公司的核心业务,负责玩家注册、登录和充值等关键功能。为确保业务连续性,37Games游戏平台采用了多活架构,利用亚马逊云科技服务如CloudFront、Route 53、Aurora for MySQL和DynamoDB实现跨区域数据同步和故障切换。

在正常情况下,主节点(新加坡)处理99%的流量,1%流量引导至重叠节点(美国)进行实时验证。一旦主节点发生故障,可在15分钟内将全部流量切换至重叠节点,确保业务连续运行。该架构不仅提供了区域级别的多活容灾能力,还增强了合规性,满足了游戏公司对高可用性和数据安全的需求。

通过与亚马逊云科技紧密合作,37Games成功构建了高度可靠的多区域容灾架构,为玩家提供了稳定的游戏体验,同时保护了关键业务数据,充分展现了亚马逊云科技在游戏行业的卓越解决方案。

内容概要:本文档是一份针对全国大学生电子设计竞赛(NUEDC)的“保姆级”实战指导手册,系统涵盖赛题解析与方案库、模块化代码与电路实现、以及测试报告范例三大核心部分。手册深入剖析了电赛七大赛题类别及其命题规律,强调“基本要求+发挥部分”的结构特点、指标逐年收紧趋势及测量与控制复合型题目的增加。通过数控直流电流源和频率特性测试仪两个典型案例,展示了从系统方案设计、关键器件选型到软硬件实现的完整路径。同时,提供了基于STM32 HAL库的ADC采样、PWM生成、OLED显示、无线通信等常用模块的详细电路原理与驱动代码,并辅以测试报告范例和评分标准解析,帮助参赛者规范撰写高质量设计报告。; 适合人群:参加全国大学生电子设计竞赛的本科生及指导教师,尤其适合有一定单片机和电路基础、希望在短时间内高效备赛并提升获奖概率的团队。; 使用场景及目标:①帮助参赛者快速掌握电赛命题规律与主流技术方案,精准应对电源类、控制类、仪器仪表类等高频赛题;②提供可复用的模块化代码与电路设计,加速硬件搭建与软件开发进程;③指导撰写符合评审标准的设计报告,强化误差分析与测试数据呈现,提升综合得分。; 阅读建议:建议按照“赛题分析→方案设计→模块实现→报告撰写”的流程顺序阅读,重点学习典型案例的整体设计思路与关键器件选型依据。对于代码与电路部分,应在实际开发板上动手验证,结合示波器、逻辑分析仪等工具进行调试。撰写报告时,务必参考文中测试表格与误差分析模板,确保数据完整、分析定量,避免因报告不规范而失分。;
内容概要:本文系统介绍了基于投资组合CVaR(条件风险价值)对象的金融投资组合优化方法,重点阐述了利用Matlab代码实现CVaR风险度量下的资产配置优化过程。相较于传统VaR仅衡量特定置信水平下的最大损失,CVaR进一步评估超出该阈值的平均尾部损失,具有更好的数学性质如凸性和次可加性,更适用于构建可优化的数学模型。文中详细讲解了CVaR优化模型的理论基础、目标函数设计、约束条件设置以及Matlab金融工具箱中PortfolioCVaR类的具体应用步骤,并结合实证案例演示了如何加载资产数据、设定预期收益率与风险偏好、执行优化求解及分析有效前沿,帮助投资者在控制极端下行风险的前提下实现最优资产配置。; 适合人群:具备一定金融工程、数量经济学或风险管理背景,熟悉Matlab编程环境,正在从事量化投资、资产配置建模、金融产品设计等相关工作的研究人员、高校师生及金融机构从业人员。; 使用场景及目标:①用于金融机构构建高阶风险管理导向的投资组合,提升对尾部风险的防控能力;②支持学术研究中对不同风险度量模型(如VaR与CVaR)在组合优化中表现差异的实证比较;③辅助教学实践中开展现代投资组合理论与高级风险控制技术相结合的编程实训课程。; 阅读建议:建议读者结合Matlab平台动手复现文中的代码示例,深入理解CVaR优化模型的构建逻辑与求解流程,并尝试调整资产数据、置信水平和约束条件以观察优化结果的变化,从而掌握其在真实投资决策中的灵活应用技巧。
标题基于SpringBoot的学生读书笔记共享平台设计研究AI更换标题第1章引言介绍学生读书笔记共享平台的研究背景、意义、国内外研究现状、论文方法以及创新点。1.1研究背景与意义阐述学生读书笔记共享平台在当前教育环境下的重要性。1.2国内外研究现状分析国内外学生读书笔记共享平台的研究进展与现状。1.3研究方法及创新点概述本文的研究方法与平台设计的创新点。第2章相关理论总结和评述与SpringBoot及读书笔记共享平台相关的理论。2.1SpringBoot框架介绍阐述SpringBoot框架的特点、优势及其在Web开发中的应用。2.2读书笔记共享平台相关理论介绍读书笔记共享平台的设计原则、功能需求及用户体验理论。2.3数据库设计与优化理论简述数据库设计的基本原则及优化策略。第3章平台设计详细介绍基于SpringBoot的学生读书笔记共享平台的设计方案。3.1平台架构设计平台的整体架构,包括前端、后端及数据库的设计。3.2功能模块设计阐述平台的主要功能模块,如用户管理、笔记上传、笔记分享等。3.3数据库设计介绍数据库的设计方案,包括表结构、索引及关系设计。第4章平台实现详细描述平台的具体实现过程,包括技术选型、开发环境搭建等。4.1技术选型与开发环境介绍开发平台所采用的技术栈及开发环境配置。4.2关键代码实现展示平台实现过程中的关键代码片段,如用户登录、笔记上传等功能的实现。4.3平台测试与优化平台的测试过程及优化策略,确保平台的稳定性和性能。第5章平台应用与分析对平台的应用效果进行分析,包括用户反馈、使用数据等。5.1用户反馈收集与分析收集用户反馈,分析用户对平台的满意度及改进建议。5.2使用数据分析通过数据分析工具,分析平台的使用情况,如用户活跃度、笔记分享量等。5.3对比方法分析对比其他类似平台,分析本平台的优势与不足。第6章结论与展望总结本文的研究成果,并对未来研究方向
上市公司人工智能技术应用水平主要用于衡量企业在人工智能技术研发、应用部署、业务融合以及战略布局方面的程度 学术界主要采用以下方法测度上市公司人工智能技术应用水平: 第一,人工智能专利测度法:基于企业技术创新产出视角,通过识别上市公司专利申请或授权信息中的人工智能相关专利,利用企业年度人工智能专利数量衡量其人工智能技术研发能力与技术积累水平 第二,年报文本分析法:基于企业信息披露视角,通过构建人工智能关键词词典,提取上市公司年度报告、管理层讨论与分析(MD&A)等文本中人工智能相关词汇出现频次,并对词频进行对数化处理,以衡量企业人工智能技术关注程度和应用水平 第三,机器人渗透度测度法:主要从智能化生产应用角度出发,利用行业层面的工业机器人安装密度,并结合企业所在行业特征、就业结构等信息,推算企业层面的自动化和人工智能技术渗透程度 第四,综合指数法:从人工智能投资、专利、关键词词频、机器人应用、人工智能项目等多维度构建指标体系,构建综合指数 第五,智能化投资测度法:基于人工智能软件投资额、人工智能硬件投资额之和占总资产的比例来衡量企业人工智能基础设施建设和技术应用水平 参考李果和白云朴(2024)、闫文影和陈雨生(2026)的研究思路,本文从企业人工智能技术实际投入角度衡量上市公司人工智能应用水平。具体而言,基于上市公司年度报告财务附注信息,通过关键词识别方法提取人工智能相关软件投资和硬件投资,并将二者加总形成企业人工智能投资规模,进一步以人工智能投资额占企业总资产的比例衡量企业人工智能技术应用水平 一、数据介绍 数据名称:上市公司人工智能技术应用水平 数据范围:上市公司企业 时间范围:2007-2025年 样本数量:78325条 数据来源:上市公司年报 二、数据指标 年份 股票代码 股票简称 行业名称 行业代码 省份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值