给大家科普一下九天娱乐(2022已更新(今日/知乎)
关注云报洞察深一度
虎牙直播是中国领先的游戏直播平台之一,也是中国第一家上市的游戏直播公司,旗下产品主要包括游戏直播平台“虎牙直播”,以及海外的游戏直播平台Nimo TV。在业务发展过程中,虎牙直播始终秉承“技术驱动娱乐”的理念,将大量创新技术应用于直播领域,比如在行业中首个实现虚实同台的AR互动直播。在深耕国内业务的同时,虎牙直播也加大了海外业务的扩展,2018年正式推出了海外直播产品Nimo TV,由此顺利进入东南亚、拉美、中东等地区。数据库迈向现代化“在业务全球化的过程中,我们对数据库提出了更高的要求。”虎牙直播海外业务平台技术负责人马昭介绍说,首先是成熟稳定,这是对数据库最基本的要求,因为数据库的稳定性直接决定着上云业务的稳定性;其次,由于海外业务扩展比较迅速,所以数据库在灵活性和可扩展性上必须跟上业务扩张的节奏;最后,云上的数据库要无缝兼容已有的架构,海外业务要与国内业务平滑对接。基于上述需求,虎牙直播重新审视并设计了其数据库体系。虎牙直播之前一直在使用关系型数据库是MySQL。随着业务量和数据量的增加,MySQL的性能已经不能满足业务处理的需求。经过测试和比较,虎牙直播最终采用Amazon Aurora替换了MySQL,实现了数据库性能的显著提升。Amazon Aurora在虎牙直播的应用比较广泛,存储了大量交易信息、主题信息、主播的开播记录,以及海量用户信息等。这些原先都存储在MySQL中的数据,如今全部迁移到了Amazon Aurora中,带来了四个方面的明显改变。首先是性能的提升。传统MySQL为提升读写性能,需要做分库分表操作。分库分表虽然可以提升性能,但是使得合查询变得非常困难。而Amazon Aurora的好处是,省去了大量的分库分表工作,让研发人员可以专注在主营业务上。其次,Amazon Aurora的易扩展性让人印象深刻。在海外,虎牙直播的流量变化非常迅速,需要数据库频繁地扩缩容。MySQL的扩缩容必须迁移数据,难度相对较高。而Amazon Aurora采用了计算与存储分离的架构,扩缩容非常方便,基本可以做到自动扩缩容,从而为虎牙直播带来了50%以上成本的缩减。再次,虎牙直播业务的全球化发展正处于关键时期,它需要一个同样具有全球化部署、应用和运维能力的数据库。Amazon Aurora的全球同步能力,使得分布于不同国家的用户都能享受到低延迟的便利,改善数据就近访问的体验。最后,便于维护与迁移。MySQL的维护和迁移通常比较繁琐,需要很多DBA做复制、备份等操作。而Amazon Aurora的维护工作则相对简单很多,基本上都可以自动化完成。另外,Amazon Aurora还提供了大量API,方便接入公司的运维体系,实现统一监控与规划。虽然很多客户认同云数据库的种种优势和便利,但从云下迁移到云上,很可能因为技术、人员、经验等方面的原因,导致在迁移过程中会遇到一些未知的风险。“用Amazon Aurora替代传统MySQL的整个过程还是相对比较顺利的。”马昭介绍说,“因为我们采用了微服务架构,而且迁移过程是逐步实施的。很多新服务上线的时候,会直接采用Amazon Aurora,同时原有的一些业务还会运行在MySQL数据库中,逐步替换和转化。”因为Amazon Aurora完全兼容MySQL,无需做任何代码更改就可以上线。虎牙直播的研发人员对此驾轻就熟,所以在迁移过程中没有遇到什么障碍和壁垒。从容应对流量突增直播业务的一大特点就是流量会有波峰波谷,这一点在虎牙直播的海外业务中体现得尤为明显。因为要服务的国家很多,而虎牙直播又很难准确地统计所有国家的节日或何时哪个国家的大主播会上线,所以突发的流量对虎牙直播的海外业务造成了巨大压力。怎么办?虎牙直播利用Amazon DynamoDB轻松解决了流量突增的问题。以“推送”为例。所谓推送就是面向粉丝的开播推送。虎牙直播的用户会订阅某个主播的某个频道,当这个主播要在频道上开播的时候,他的粉丝就会收到一条推送信息,提示该主播上线了,请粉丝赶快进入房间。这种开播推送服务有几个特点:第一,业务变化非常迅速;第二,波峰与波峰之间数值的跃动非常大,通常会有几十倍的突增;第三,非常难预测和预留资源,基本无规律可循,容易导致资源不足或因预留过多而浪费资源;第四,订阅量分布不均匀,有些主播只有几十个粉丝,而有些主播的粉丝高达百万,这对后台的存储提出了严峻的挑战;第五,实时性要求非常高。为满足上述需求,虎牙直播设计了一套独特的架构,并采用Amazon DynamoDB作为订阅关系的存储。Amazon DynamoDB的优势主要体现在:能够实现自动扩容,无需预留很多机器去应对流量突增;计费方式非常友好,可以按实际使用的流量付费,有效控制了成本;Amazon DynamoDB基于无服务器架构,虎牙直播的技术人员根本不必关心其底层服务器、存储的技术细节或者出现技术故障怎么办,只要关注业务运营即可,从而大大节省了人力;Amazon DynamoDB同样具有全球化的部署与运营能力,使用Global Tables即可轻松应对十倍以上的流量突增情况。全球部署一键搞定“如今,我们的业务已经扩展到各大洲,用户之间的距离也越来越远,经常需要跨洲访问。提升用户体验,降低物理延时是我们必须解决的问题。”马昭介绍说,“于是,我们开启了内存数据库全球化的进程。”在内存数据库方面,虎牙直播主要使用的是Amazon ElastiCache for Redis的版本,一方面,用来存储传统的数据缓存;另一方面,用来存储用户和主播的状态,比如主播在不在线、主播的粉丝有多少在线等。“用户和主播的状态信息比较特殊,数据同步相对比较麻烦,而且要求低延时。因此,我们采用了 Global Datastore。Global Datastore是Amazon ElastiCache for Redis中的一项功能,可提供快速、可靠、安全的完全托管式跨区域复制。采用Global Datastore,旨在提供低延迟的数据本地读取。”马昭介绍说。亚马逊云科技通过一系列能够提供全球数据库能力的数据库服务,包括Amazon Aurora关系型数据库的Global Database、Amazon DynamoDB、NoSQL数据库、Amazon ElastiCache内存数据库和文档数据库Amazon DocumentDB等,基于亚马逊云科技分布于全球的骨干网络,提供比互联网更稳定的网络支撑,并以一键部署的方式,帮助行业客户实现几千公里跨区域的数据库灾备,故障恢复大约能在一分钟之内完成,跨区域的数据复制延迟通常小于1秒。谈到在合作中最看重亚马逊云科技的一点,马昭强调,在海外直播场景中,最依赖的还是亚马逊云科技在全球的核心骨干网,它可以保证用户的低延迟访问以及稳定性、可靠性和安全性。AI应用由外而内由浅及深作为行业领先者,虎牙直播在采用新技术方面理念也比较超前,希望通过自身不断摸索与尝试,找到一条通过新技术促进业务发展的有效途径。采用Amazon Neptune图数据库,就是虎牙直播在存储和搜索多维度关系方面做出的有益探索。“传统关系型数据库很难满足我们多维度关系的查找需求。而在采用Amazon Neptune图数据库后,查找的难题就是迎刃而解了。”马昭补充说道,“另外,我们还将Amazon Neptune用于标定欺诈主播和欺诈用户。假设我们标定某个主播为欺诈主播,只需用一条Amazon Neptune的语句,就能把与这个欺诈主播利益相关链条上的所有主播和用户全部找出来。这对于我们平台的风险把控是非常有利的。””AI赋能,深度集成是亚马逊云科技做云上数据库产品的核心理念之一”,亚马逊云科技大中华区产品部总经理顾凡表示:”应用现代化的思路就是用数据驱动创新。今天,我们已经在许多场景下已经无数次地证明,机器学习的方式能够有效地助力业务创新。“亚马逊云科技将图数据库与机器学习进行强强组合的一个代表就是Amazon Neptune。从2021年8月开始,中国区域的用户也可以使用Amazon Neptune所带的Neptune ML功能,数据工程师无需掌握机器学习的技能,也能直接从Amazon Neptune图数据库中导出数据,进行转换格式,训练模型并发布。用户采用Gremlin语句便可以调用训练成的模型,在数据库中实现推理,进行欺诈检测,或进行物品推荐。在AI方面,雅虎直播已经初步实现了基于AI的自动扩容,以及简单的预测功能,但是目前还没有直接用到在数据库内部与机器学习技术的结合。”现阶段,我们的AI基本上都是在外部做的,也就是在数据库之外的集群上实现的。但是未来,我们希望也能用到这种数据库内部嵌入的人工智能与机器学习技术,以便实现各种推荐,以及对欺诈的检测等。“马昭如是说。专库专用不谋而合”在数据爆炸式增长、微服务架构与DevOps愈发流行的今天,一个数据库包打天下的时代已经一去不复返了。“顾凡表示,”针对不同的应用场景、不同的数据类型和不同的数据访问特点,我们为要用户和开发者提供专门构建的数据库工具。而用户和开发者也要先搞清自己究竟要完成一个什么样的任务,再从专门构建的工具中挑选一个最顺手的。归纳起来就一句话,专库专用。“虎牙直播海外业务构建数据库体系的思路与亚马逊云科技倡导的“专库专用”不谋而合。针对不同的业务场景,使用不同的数据库,解决不同的业务问题,这让虎牙直播受益匪浅。谈到未来数据库应用的扩展计划,马昭表示:”我们未来会做更多无服务器化的尝试,以降低运维人员的工作压力;同时将打造更加灵活的数据库弹性方式,包括更多地采用AI技术,以应对各种流量突增情况,预测主播和用户的上线、流量的变化等;在游戏方面,将尝试不同的数据存储和同步方式,加强对云游戏的支持;还会进一步实现计算与存储的数据分离,更好地支撑直播服务,降本增效。“