大体量数据迁移成难题,亚马逊云科技如何让迁移能效两不误

news2024/12/26 23:22:50

逼真的人物设定,精美的主题布局,沉浸式的互动体验,交互式的多元场景……一系列虚拟与现实高度契合又相互映射的设定,成就了“元宇宙”游戏世界的无穷魅力。GVERSE开发的Blockman Go平台就是有着相当大体量的UGC(用户生产内容)平台之一。面对GVERSE的海量数据、目标对象琐碎、大体量的数据库迁移需求,亚马逊云科技团队设计了以Amazon DynamoDB、Amazon Aurora等服务为核心的迁移方案,并专门设计了多套定制化技术方案,引入专业的项目管理持续跟进,使得所有数据在7小时内迁移完成。

7f7e1d87ab3447319f5faae9bedd0b9b.png

 

机会:时间紧、任务重的数据库迁移需求

随着开发门槛的降低,沙盒游戏以其不可比拟的交互性,或许将成为打开“内容创作3.0时代”的钥匙。GVERSE开发的Blockman Go平台允许玩家自行开发多个不同类型的游戏供其他玩家游玩,同时也提供丰富的社交互动功能,是一个UGC平台。但与此同时,这类平台也存在一些独有的问题。

GVERSE技术合伙人及技术总监郑恒国指出,UGC平台类游戏与常见的网游相比,具有覆盖玩家层面广、数据量大且琐碎等特点,对服务器的配置提出了相当大的考验。GVERSE此前就与亚马逊云科技有广泛接触,使用其动态CDN、网络加速及大数据等服务,过程中亚马逊云科技全球多节点的广泛布局和良好稳定性等特点,都给他留下了深刻的印象,因此,本次数据库迁移选择了继续与亚马逊云科技合作。

 

解决方案:定制化策略解决1450张

大中小表迁移难题

Amazon DynamoDB迁移,拆分表格类别,割切当天数小时内完成迁移

由于Amazon DynamoDB具有自动伸缩功能,能够可靠地扩展到数百万个并发用户请求,同时确保不超过10毫秒的一致低延迟,因此GVERSE主要运用Amazon DynamoDB+Amazon Lambda方案来完成迁移工作。

对于Amazon DynamoDB的迁移,亚马逊云科技对解决方案做了深入研究,发现GVERSE的表格数据量极大且数量繁多,涉及到共计1450张大小不同的表,此规模在整个世界范围内都相当罕见。其中,用户表格含有全量用户数据,导入导出时间预估7小时,而如果采用传统“Double-Write”双写方法,耗时可能长达数个月。此外,由于客户产品的UGC属性,每个开启的小游戏都会单独存放在一张表格中,整个平台有1000多个小游戏(由游戏玩家创建),但活跃度不一,因此出现了表数量大、小表众多的挑战。更为棘手的是,为了保障用户体验,GVERSE要求割切当天数小时内完成数据库迁移,这就使迁移任务变得更加艰巨。

面对这项挑战,亚马逊云科技经过多次讨论和项目验证,提出了定制化的最终迁移解决方案:对最大表格采用CDC方案(Change Data Capture,变更数据捕捉)进行复制,对于剩余的表格分批次分类别进行迁移,小表先行,再针对不同类别的表格采用Amazon CLI命令行分批进行Amazon DynamoDB S3 export与Amazon DynamoDB S3 Import方式迁移,最终在割切当天完成了这项“Mission Impossible”(不可能完成的任务)。

MySQL迁移,全托管服务,让客户省时省力

GVERSE的MySQL数据库大小约为2T,考虑到管理便捷性,选择使用Amazon Aurora作为承载。Amazon Aurora的全托管特性能大幅度节约运营维护成本,其自动执行标准化数据库集群和复制的特性,解决了数据库配置和管理方面的最大问题。

Amazon S3迁移,数据在线传输解决方案,解决细碎文件难题

UGC游戏平台“玩家自行编写游戏、自行选择游戏游玩”的特点,决定了平台上存在大量游戏和离散的玩家行为信息,导致部分数据桶存有海量40K以下小文件,此前使用的CRR(Cross-Region Replication,跨区域复制)方法不再具有效率优势。亚马逊云科技选择用Amazon Data Transfer Hub (DTH)解决方案对这部分数据进行迁移,它具有多数据来源支持、无服务器结构(无前期成本、按用量付费)、直观易用等外部特征,尤其适合从多个不同IDC或云端,传输大量不同类型、不同大小的文件到亚马逊云科技原生服务。DTH的启用让超过6亿个碎文件实现轻松迁移,工期从CRR方法1个月工期缩短至3天,完美匹配了客户需求。

安全产品加固,保障客户信心

为了让玩家无风险地以UGC方式制作和生成游戏,迁移完成后亚马逊云科技还为GVERSE部署了Amazon Guarduty RDS Protection,Amazon Inspector,Amazon Security Hub和Amazon WAF等安全产品,从基础设施保护等方面确保用户数据安全。此举有效消除了潜在风险,让客户对所有业务运行在亚马逊云科技上充满信心。

 

业务成果:专业的人做专业的事,

迁移与能效两不误

郑恒国表示,此前Blockman Go的数据服务部署在不同平台,新增游戏内容、版本测试以及配置管理等都需要开发两套系统来进行适配。游戏数据库统一迁移到亚马逊云科技之后,只需一套方案便可解决。另外,由于不再跨平台传输数据,在免除传输风险的同时也显著优化了数据同步成本。如果公司是采取传统的IDC服务,运维团队可能需要5~10人,如今只需1人即可。郑恒国指出,整体来看,应用亚马逊云科技服务之后,工作效率有大约20~30%提升。

郑恒国也对迁移过程中亚马逊云科技团队的专业能力和服务精神做出了高度评价。鉴于项目管理流程方法的特殊性,亚马逊云科技专门为GVERSE发起了由客户团队与Amazon DynamoDB专家组成的项目专责团队,为项目提供管理协助以降低实施风险。对于每一个专属定制化处理方案,具体实施前亚马逊云科技专家团队都会驻场留守,进行现场测试与沟通,确保客户在理解方案的基础上认可方案,知其然亦知其所以然,保障方案的顺利部署。

迁移完成后,GVERSE得以拥有高弹性、长期稳定、安全合规的服务保障,这对于一个面向海外、面向全世界玩家的公司尤其关键。郑恒国提到,网络游戏场景可能面对的峰值场景,尤其对GVERSE这样业务分布在多个不同国家与地区、需要采取分布式架构处理业务,DAU骤增导致的处理复杂度会呈指数级增加。亚马逊云科技解决方案解放了基础设施对GVERSE的掣肘,将其主要精力放在拓展海外市场、更好地服务玩家方面,无需担忧数据的安全与稳定,专注于企业创新进程中。

郑恒国表示:“亚马逊云科技帮助网游厂商解决了机器运维、网络优化和安全合规方面的问题,其良好的服务使我们无需在不擅长领域付出时间和精力,让网游厂商能够更专注于业务创新工作,我认为亚马逊云科技是一家很厉害的公司。”

未来,GVERSE希望继续与亚马逊云科技合作,深入学习Amazon DynamoDB成本优化方法,使用ARM架构提升性能等,共同在降本增效这条路上做更多探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/583188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优秀的开源测试工具和框架推荐:精选十大神器!

目录 引言 Katalon Studio Selenium Appium JMeter SOAP UI Robot Framework Watir JUnit Robotium Citrus 结语 引言 你是一位测试从业者,时刻关注着最新的测试工具和框架。但在众多的选择面前,你是否感到困惑和无从下手? 别担…

Android音视频开发1:Android Studio安装

1.JDK安装,至少安装JAVA 1.7 对比项目 Android iOS 开发语言 Java Objective-c,Swift 系统开放性 Android源代码开放,开放性更好 封闭操作系统,开放性较差 系统安全性 源代码开放,安全性较差 封闭操作系统&…

电力电子课设|数控产生PWM波|使用51单片机输出占空比可调PWM波(按钮控制、数码管显示)速成教程

我们学校电气专业开始做电力电子的课设了,小组选了一项制作硬件电路的任务,里面有要求采用数控方式实现DC-DC电压变换的输出电压调节,数控在电路中的体现就是用单片机输出可调占空比的PWM作用于IRF520模块,实现电压的变化&#xf…

chatgpt赋能python:Python不等于0:为什么Python成为SEO的热门选择?

Python不等于0:为什么Python成为SEO的热门选择? 如果你正在寻找一门适合SEO的编程语言,Python可能就是你的不二选择。Python在SEO行业越来越流行,因为它具有许多与SEO相关的功能和特点。通过本文,我们将会介绍Python为…

Flutter调优--深入探究MediaQuery引起界面Rebuild的原因及解决办法 | 京东云技术团队

前言 我们可以通过MediaQuery.of(context)方法获取到一些设备和系统的相关信息,比如状态栏的高度、当前是否是黑暗模式等等,使用起来相当方便,但是也要注意可能引起的页面rebuild问题。本文会介绍一个典型的例子,并深入源码来探讨…

chatgpt赋能python:用Python下载MP3的方法

用Python下载MP3的方法 如果你想从互联网上下载MP3,那么你可以使用Python来实现这个任务。在本文中,我们将介绍如何用Python编写程序来下载MP3,同时还将分享一些有用的工具和资源。 Python中使用的库 要下载MP3,你需要使用Pyth…

接口测试简介以及接口测试用例设计思路

接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的&#x…

如何快速入门高性能计算?五个实用学习建议分享

高性能计算 (High-Performance Computing,HPC)是指通过计算机技术实现高速运算,对大规模科学计算、数据分析、复杂制造等领域的研究与应用提供支撑。目前,HPC已经广泛应用于医学、天文、材料科学、地球科学、气象科学、…

【cmake 学习】cmake判断当前所处系统(CMAKE_SYSTEM_NAME)

目录 1、使用内置变量判断 2、使用变量 CMAKE_SYSTEM_NAME 判断 1、使用内置变量判断 cmake 内置了许多用于表示系统的变量,如 UNIX、WIN32、LINUX、IOS等。假设当前系统为Linux系统,那么 LINUX 变量的值为 1。 更多变量可以参考:cmake-v…

最近距离 | EXCEL中批量查找与原点最近距离的目标点

一 需求 企业送餐、物流、通勤、选址等经常会遇到这样的需求,仓储地是固定的,客户下单后由于客户的地址具有随机性,需按照地理位置分布结合仓储位置进行分析,按距离近及远合理分配仓储,以便节省配送成本。 本文就以这…

深度学习AI编译器-MLIR简介

1、什么是MLIR MLIR:Multi-Level Intermediate Representation 多级中间表达 LLVM下的子项目编译器基础框架统一IR格式,提高通用性和可复用性自带Tensor类型,目前主要用于深度学习领域 中间表达 IR(Intermediate Representatio…

Day55【动态规划】392.判断子序列、115.不同的子序列

392.判断子序列 力扣题目链接/文章讲解 视频讲解 本题目可以用双指针法来做 class Solution { public:bool isSubsequence(string s, string t) {// pointer to s, pointer to tint ps 0, pt 0; for (pt 0; pt < t.size(); pt) { // 遍历t&#xff0c;在t中按顺序寻找…

Kali-linux Gerix Wifi Cracker破解无线网络

Gerix Wifi Cracker是另一个aircrack图形用户界面的无线网络破解工具。本节将介绍使用该工具破解无线网络及创建假的接入点。 9.3.1 Gerix破解WEP加密的无线网络 在前面介绍了手动使用Aircrack-ng破解WEP和WPA/WPA2加密的无线网络。为了方便&#xff0c;本小节将介绍使用Geri…

数字图像处理①基于ADMM的全变分去噪算法

文章目录 1. Problem2. 仿真结果3. MATLAB算法4. 源码地址参考文献 1. Problem 在图像处理中&#xff0c;图像信号总会因为各种原因受到噪声的干扰&#xff0c;其中高斯噪声就是典型的干扰类型之一。 针对图像去噪的模型有很多种&#xff0c;其中全变分模型被认为是最有效的模…

北醒Modbus协议在Python下实现功能配置

目录 实验目的测试环境Python库需求Benewake(北醒) TF雷达接口及通讯协议说明接口定义Modbus通信协议说明功能码说明 接线示意图库安装说明例程运行与测试 实验目的 实现485接口系列雷达Modbus协议在Python上实现功能配置。 本例程界面分为主菜单、测距子菜单、配置子菜单&…

社区团购-v.1.6.0更新

likeshop社区团购系统发布新版本1.6.0&#xff0c;主要更新如下&#xff1a; 新增&#xff1a; 小程序-登录引导用户填写头像和昵称 小程序-热更新代码弹窗 后台-正版检测、版本检测 后台-页面装修支持拖拽排序 后台-订单管理增加导出功能 修复&#xff1a; 后台-关联团…

本地化部署AI语言模型RWKV指南,ChatGPT顿时感觉不香了。

之前由于ChatGpt处处受限&#xff0c;又没法注册的同学们有福了&#xff0c;我们可以在自己电脑上本地化部署一套AI语言模型&#xff0c;且对于电脑配置要求也不是非常高&#xff0c;对它就是RWKV。 关于RWKV RWKV是一个开源且允许商用的大语言模型&#xff0c;灵活性很高且极…

Linux之搭建环境

文章目录 1 FileZilla软件2 Linux搭建samba文件共享服务器&#xff0c;实现基于Linux和Windows的共享文件服务2.1 smaba的安装与基本应用2.2 samba的账号权限配置 1 FileZilla软件 在跟着正点原子教程安装后&#xff0c;出现如下问题 解决方法如下 参考文章解决FileZilla连接…

游戏配音怎么弄的?分享三个游戏配音制作方法

随着时代的发展&#xff0c;人们对于配音的要求也越来越高&#xff0c;除了传统的文字配音外&#xff0c;现在又出现了游戏配音。其实游戏配音也是有一定门槛的&#xff0c;并不是人人都可以做得好的。但是如果你想要拥有一位自己喜欢的游戏角色&#xff0c;那么你就要学会游戏…

MyBatis 快速入门(上)

文章目录 一. MyBatis 是什么?二. 学习 MyBatis 的意义三. MyBatis 学习四. 创建 Mybatis 查询4.1 创建数据库和表4. 2 MyBatis 环境搭建1. 添加 MyBatis 框架支持image-202305052040340772. 设置 MyBatis 的配置信息2.1 设置数据库连接的相关信息2.2 MyBatis 的xml 保存路径 …