上个月对于中国本土的电竞玩家来说,是个值得欣喜的月份。中国LPL赛区战队EDG以3:2战胜韩国LCK赛区战队DK,获得2021年英雄联盟全球总决赛S11冠军,不仅突破了自身的八强魔咒,同时也代表LPL赛区第三次举起冠军奖杯。
对于电竞赛事而言,身临其境的沉浸感对观众和选手都十分重要,但在饱受疫情摧残的当下,显然在现场观看赛事并不是一个好的选择,因此也变相推动了直播的又一次发展,数据显示,S11期间,虎牙官方直播间同时在线观赛的人数峰值创下历史新高,达到去年的2倍,而决赛当天,虎牙直播APP作为观赛的主要平台,一度攀升到Apple Store应用(下载)榜第二名。
作为一家以游戏直播业务为核心的直播平台,虎牙直播在电子竞技、真人秀、二次元、户外直播等内容上积累了丰富的经验,秉持着技术驱动娱乐的理念,将新技术应用于直播领域,例如行业内首个虚实同台的AR互动直播。2018年,虎牙直播开始进军海外市场,在当年正式推出了海外直播产品Nimo TV,在两年时间内顺利闯入东南亚、拉美、中东市场,并于去年达到了MAU (月活跃用户人数)3000万的里程碑。
与国内拥有丰富的运营经验和全面的技术积累的情况不同,拓展国外市场对于虎牙直播来说颇具挑战,其中十分重要的一个方向是搭建起支撑海外业务快速发展的数据库架构,以有效地管理海外业务。
“虎牙直播在进军海外市场的过程中,对数据库的要求主要基于以下三点:首先是成熟稳定,因为数据库的稳定性直接决定上云业务的稳定性;其次是扩展性,因为海外业务的扩展比较迅速,数据库需要跟随业务节奏进行快速扩展;最后则是需要兼容已有架构,需要将国内虎牙直播的基础平台和构件无缝部署到海外。基于这些需求,虎牙直播选择了亚马逊云科技的一系列数据库产品和服务。”虎牙海外业务平台技术负责人马昭在几日前举办的亚马逊云科技数据库服务沟通会上谈到。
从马昭的言语中不难看出对于亚马逊云科技的盛赞,事实上亚马逊云科技作为全球云服务的先行者,对外提供了丰富、稳定、可靠的服务,基础设施全球覆盖,并且网络质量高,可以为拓展海外业务提供全面且完整的数据库服务。
作为应用程序的一部分,数据在近些年来得到了前所未有的重视,也驱动着数据库技术的更新,具体包括如下几点:首先是大量的NoSQL数据产生驱动着云原生关系型数据库的出现,其次是越来越多企业希望将应用架构在开源的数据库引擎上,同时也在积极向全托管式的云数据库服务进行转型,最后则是软件架构的迭代驱动着数据库选型的变化以及数据库技术和架构的迭代。
亚马逊云科技敏锐地观察到了这些变化,从产品端解构,秉持以下五点理念对外提供数据库服务:专库专用,极致性能;无服务器,敏捷创新;全球架构,一键部署;平滑架构,加速上云以及AI赋能,深度集成。
对虎牙直播来说,亚马逊云科技所提供的数据库服务,在虎牙直播海外业务拓展过程中起到了十分重要的支撑作用。以Amazon Aurora为例,随着业务量的增加和数据内容的增加,MySQL的性能显然无法支撑虎牙直播的业务发展,因此Amazon Aurora也就顺理成章地代替了MySQL,并实现了性能提升的目标。
体来看,虎牙直播通过将本存在于MySQL上的存储交易信息、主题信息、主播开播记录及用户信息等数据迁移到Amazon Aurora上,带来了如下四个好处:
第一是性能提升。传统的MySQL如果需要提升读写性能,是需要做分库分表操作的,但同时也加大了聚合查询的难度,Amazon Aurora省去了大量的分库分表工作,使得研发人员可以更加专注在主营业务上。
第二是优秀的可扩展性。虎牙直播的海外流量变化非常迅速,需要频繁的扩容与缩容,MySQL的扩缩容涉及到数据的迁移,非常困难,反观Aurora由于采用了计算与存储分离的架构,扩缩容非常容易,为虎牙直播带来了50%的成本下降。
第三是全球同步能力。由于海外用户分布在不同的国家,所以用户之间的访问延迟比较高,而提高用户体验的前提就是数据就近访问,这是MySQL无法做到的,而Amazon Aurora的物理同步方式很好地支撑了虎牙直播数据的全球化。
第四则是维护与迁移的便利性。传统的MySQL维护和迁移涉及到复制、备份等工作,而Amazon Aurora的维护相较起来会十分简单,基本上可以实现自动化,同时还有很多的API用于接入到虎牙直播的运维体系之中,以方便监控和规划。
另外,Amazon Aurora还能完全兼容MySQL,无需做任何代码更改就可以上线,极大减少了开发人员的壁垒。
而在数据库后台,虎牙直播则使用了Amazon DynamoDB存储用户的动态信息,包括支付、状态、好友关注关系等信息。Amazon DynamoDB 作为一个键/值和文档数据库,是一种快速灵活的 NoSQL 数据库服务,不论规模大小的环境中都能提供毫秒级性能。当流量突发的时候,数据库能够轻松应对压力。
以主播开播推送的开播服务为例,主要拥有业务变化非常快、低峰与高峰数值跃动大、订阅关系不均匀、实时性较高等特点,使用Amazon DynamoDB作为订阅关系存储之后,自动扩容的特性使得无需预留机器应对流量突增带来的成本浪费,计费方式也使得虎牙直播只需要针对高峰的流量进行付费,同样节省了成本,而无服务器的架构则让虎牙直播不需要投入专门的人力关注底层存储、服务器部署等问题。
在全球同步功能方面,虎牙直播则使用了Global Tables架构以应对流量突增,“随着我们的业务扩展到各个大洲,用户之间的距离越来越远,经常需要跨洲访问,如何提升用户体验、降低物理延时也是我们需要解决的问题,于是我们就开启了内存数据库全球化的进程。我们主要使用的是Amazon ElastiCache for Redis的版本以用来存储以下两种数据,一种是传统的数据缓存,另外一种是用户和主播的状态,比如主播是否在线,主播的在线粉丝数等等,这块的数据同步是比较麻烦的,因为延迟要求很低,因此使用了亚马逊云科技的Global Datastore以提供低延迟的数据本地读取。”马昭表示。
除此之外,虎牙直播还使用了亚马逊云科技于2018年底推出的Amazon Neptune图形数据库,使用Neptune进行标签的深刻搜索,以确定标签之间的关系、用户之间的关系等,比关系型数据库更具优势。搜索的结果可以应用到智能推荐和风险控制中,例如可以为用户推荐好友关注的偶像、好友的好友,也可以进行欺诈主播和欺诈用户的监控。
马昭举了直播打赏的例子来说明亚马逊云科技数据库服务的优势所在,虎牙直播将直播打赏分为了用户扣款和主播加款两个步骤,扣款的过程要保证低时延,因此用户的数据必须要和用户的空间位置较近;另外需要保证一些实时的特效、动画将用户的充值行为进行广播,而主播加款可则通过异步方式进行,以这种解耦合的过程来操作,可以在时延极低的前提下保证用户体验。整个过程正需要依托亚马逊低延时且安全性高的核心骨干网,钱包数据和账单业务则通过Amazon DynamoDB和Amazon Aurora以及Global Tables来支持,可以做到数据本地读取以及数据本地消费,把延迟降到极低的水平。
面向未来,虎牙直播也表示以后要重点进行两方面的建设,一是在云游戏领域进行积极探索,尝试不同的数据存储和同步方式以实现对云游戏的支持,同时进行计算和存储的数据分离工作来支撑虎牙直播的服务,二是打造更加灵活的数据库弹性方式,以应对各种流量突增,同时在数据库的弹性中应用AI技术,例如预测主播和用户什么时候上线、以及流量变化等等。另外,虎牙直播也会尝试一些无服务器化的数据库应用来实现降本增效,并和亚马逊云科技一同探索使用数据库自带的机器学习工具,来实现推荐和欺诈检测等AI功能。
云计算时代,越来越多的企业在云中运行越来越多的多样化工作负载,每个工作负载都有自己的特点和需求,亚马逊云科技正在通过提供更好的性能和更低的价格的方式扩展自身的产品,围绕客户的各种需求进行创新。虎牙直播正在通过加深与亚马逊云科技在云端合作的程度,进一步释放自身在海外直播的潜力,为自身的出海业务保驾护航。
亚马逊AWS云基础与实战
进入购买