虎牙直播是一家以游戏为核心的直播平台,现在已经成长为备受年轻人欢迎的,包含泛娱乐、真人秀、二次元、户外等内容的综合性互动平台。
2018年,虎牙直播在美国纽交所上市,标志着虎牙全面推进海外业务。数据显示,2018年12月,虎牙直播海外产品月活用户已经达到千万级,产品成功登陆东南亚及拉美地区,2019年正式进入西班牙语市场。时至今日,虎牙的海外业务已经成长到一定规模。
近日,我们与虎牙海外业务平台技术负责人马昭以及虎牙海外业务负责人郭再荣进行了交流,了解到虎牙直播背后的重要技术支撑:亚马逊云科技数据库服务。
数据其实是应用程序的一部分,而应用架构本身的变化则驱动着整个数据库技术和生态发生变化。随着互联网、移动互联网应用开发浪潮的崛起,大量的NoSQL数据产生,它驱动着云原生关系型数据库的出现,越来越多的用户希望把自己的应用架构在一个开源的数据库引擎上,并且拥抱现代化应用,让开发人员专注于应用和数据。另外,软件架构的迭代和转型,也在驱动着数据库选型的变化以及数据库技术和架构的迭代。
而亚马逊云科技数据产品的核心设计理念正是打动虎牙的重要原因。亚马逊云科技大中华区产品部总经理 顾凡为我们解读了亚马逊云科技数据库产品的四个核心设计理念:
无服务器、敏捷创新。无论是针对键值型的数据还是关系型数据,还是时序、文档类数据,都可以以无服务器的形式对外开放给客户,亚马逊云科技的核心服务让客户能够借助这些无服务器式的服务,真正实现不需要再去管理或者配置服务器,按量去进行缩放,真正为价值付费。Amazon Aurora Serverless V2能够提供瞬间扩展能力,在不到一秒的时间内,将几百个事务扩展到数十万的级别,做到真正的生产可用。
全球架构、一键部署。在亚马逊云科技的产品里面,有一组能够提供全球数据库能力的数据库服务,包括Amazon Aurora关系型数据库Global Database,包括Amazon DynamoDB、NoSQL数据库、Amazon ElastiCache内存数据库以及文档数据库Amazon DocumentDB,都能够利用亚马逊云科技的骨干网络提供比互联网更稳定的网络支撑,以一键部署的方式,帮助客户实现几千公里跨区域数据库灾备,故障恢复大概能在一分钟之内完成,同时跨区域的数据复制延迟通常小于一秒。
平滑迁移、加速上云。今天已经有超过45万的数据库通过亚马逊云科技的数据库迁移服务实现了到亚马逊云科技云平台的迁移。亚马逊云科技希望客户能够通过Amazon DMS(Amazon Database Migration Service)进行自助式的云迁移。
AI赋能,深度集成。今天机器学习已经成为驱动数据创新的重要方式,但关系型数据库已经不能满足机器学习的应用。亚马逊云科技专门构建了针对于图的数据结构,能够存储物品、人物、各种事物之间关系的数据库Amazon Neptune,其中Neptune ML功能允许数据工程师不需要掌握机器学习的技能,就可以直接从图数据库里导出数据、转换格式、训练模型并发布,并且调用现成的模型在数据库里实现推理,进行欺诈检测、物品推荐等应用。
虎牙直播作为一种典型的应用,对于数据库提出了很高的要求,尤其是在虎牙进军海外的时候,数据库策略更是直接影响公司整体业务的拓展。
虎牙海外业务平台技术负责人马昭说到:“虎牙旗下主要有两款产品,一款是虎牙直播,一款是我们的海外应用Nimo TV。我们的业务在全球化过程中,对数据库产生的第一个要求就是成熟稳定,这也是我们对数据库的基本要求,因为数据库的稳定性直接决定着我们云上业务的稳定性,我们不希望数据库经常出问题。第二,海外业务扩展比较迅速,所以我们对数据库的扩展性也提出了一些要求,要能跟上我们的节奏,能快速进行扩展。第三,需要我们的数据库能够兼容已有的架构,因为我们在出海之前已经有了国内虎牙了,所以很多基础的平台和基础的构件其实已经可以部署海外了,我们基本可以做到无缝上线。”
“基于以上几个需求,我们对整个数据库体系做了重新审视与重新设计。从关系型数据库的角度来说,因为我们之前一直使用MySQL,随着业务量的增加以及数据内容的增加,MySQL的性能已经不能满足我们的要求,通过内部研究与测试,最终我们使用Amazon Aurora替换了传统的MySQL,达到了性能提升的目的。”
马昭:“目前Nimo在海外已经有超过三千万MAU的用户,因为用户量越来越大,在IT架构方面带来的挑战还是蛮大的。首先就是全球化运营的挑战,因为海外时差的原因,我们覆盖的国家又很多,需要去做24小时的运维,难度很高。其次流量高峰经常会出现在我们睡觉的时候,如果在全球去部署大量的人力去做这种24小时的值班,其实是很耗成本的。所以从运维的角度上来说,我们会去做很多的自动化工具,包括使用亚马逊云科技的一些工具来实现运维的自动化。我们也结合了AI团队的一些技术,做各种流量预测以及主播、用户上线的预测,利用多维度的AI技术实现全线的自动扩缩容,我们的目标就是无人化地运维。”
在直播行业中,流量并发是很常见的。在传统模式下,需要预估访问量,配置相应的资源。但因为基本上没有什么规律,所以非常难预测和预留资源,如果预留资源少了,大波流量来了可能导致系统拥塞。如果预留了很多资源,就会造成巨大的浪费。
虎牙直播利用亚马逊云科技的一系列服务打造了自动伸缩的架构。
前端接入部分,虎牙直播使用了Amazon Lambda无服务器服务。Amazon Lambda让虎牙直播可以灵活扩容,从容应对流量高峰,而且不需要配置或管理服务器,直接运行代码,以代码执行时间和代码触发次数计费,节省成本。
在消息传送方面,虎牙直播经常会触发上亿级别的消息传送。例如,当一个主播上线时,会自动给他/她的粉丝推送多条相关信息。当主播粉丝量非常庞大时,消息传送量会相应猛增。如果多位网红主播同时上线,流量瞬间暴涨20倍以上,很容易形成消息拥塞,推送卡顿或不及时。虎牙直播采用了Amazon SQS完全托管的消息队列服务,适用于微服务、分布式系统和无服务器应用程序,同样可以自动扩展,在数亿级别的消息传送时,响应速度不会出现衰减。
在数据库后台,虎牙直播使用DynamoDB存储用户的动态信息,包括支付、状态、好友关注关系等信息。通常,数据库都是系统的瓶颈。但DynamoDB 作为一个键/值和文档数据库,是一种快速灵活的 NoSQL 数据库服务,不论规模大小的环境中都能提供毫秒级性能。当流量突发的时候,数据库能够轻松应对压力。
亚马逊云科技成熟稳定、易扩展、兼容性强的数据库架构和服务,成为其获得虎牙青睐的原因。
马昭说:“对于我们这种海外直播场景,最重要的就是全球的跨洋的核心骨干网,对我们的海外业务是非常关键的,要做到用户的低延迟访问,核心骨干网的力量是非常重要的,这也是我们最看重亚马逊云科技的一点。对于全球化的业务来说,服务的各个区域、各个核心机房、服务的一致性也可以得到保障。”
关于亚马逊云科技与虎牙直播的合作,虎牙海外业务负责人郭再荣也对未来进行了展望。他表示:“亚马逊云科技一直走在科技创新的前沿,同时我们也会结合自己的业务形态去做一些新的技术尝试,比如AI数据库,打击黑产或者训练大样本的用户画像等,我们都会跟亚马逊云科技做一些新技术的合作和尝试。另外,亚马逊云科技本地的工程师团队也能给我们带来一些行业内的新技术,对我们来说也是一种借鉴。所以总的来说,我们和亚马逊云科技会继续做一些创新,走得更快一点、更远一点。”
关键词: 虎牙直播