虎牙直播

AWS 案例研究:虎牙直播

2019

广州虎牙信息科技有限公司(NYSE: HUYA)(以下简称“虎牙直播”)是一家以游戏为核心的直播平台,致力于成为受年轻人欢迎的技术驱动型娱乐社区。

虎牙直播
kr_quotemark

AWS 是全球云服务的先行者,提供了丰富、稳定、可靠的服务,基础设施全球覆盖。通过使用 AWS,我们用几天时间就实现了虎牙海外直播应用 Nimo TV 的部署,并且运行极其稳定。”

毛茂德

广州虎牙信息科技有限公司 基础保障部总经理 

kr_quotemark

AWS成熟稳定,是虎牙直播延伸国际业务的理想选择。”

马昭

广州虎牙信息科技有限公司海外游戏直播业务后台负责人 

应用背景

虎牙直播大举进军海外市场,是2018年才开始的。2018年5月,虎牙直播发布面向海外市场的游戏直播平台 Nimo TV,包括 PC 端和移动端应用,主要在东南亚和南美洲地区运营。

在此之前,虎牙直播在海外有一些用户,在 Amazon Web Services (AWS)有小规模的部署。正如虎牙直播2018年报中对投资者所披露,虎牙直播在海外市场,尤其是东南亚和拉丁美洲的运营经验有限,如果不能应对全球化运营的挑战,对虎牙直播的业务发展、财务状况和运营业绩都会产生重大的负面影响。其中一个挑战是,如何在广州总部有效地管理海外业务、搭建海外的IT系统和架构。

虎牙直播基础保障部总经理毛茂德介绍说,在这样的情况下,我们希望选择的云服务商具有几个条件:一是有丰富的资源,完善的Application Programming Interface(API)接口,让我们能够通过API接口,快速申请到资源;二是资源布局全球覆盖,方便我们根据业务发展形势,灵活地拓展全球市场;三是运行稳定,具有强大的故障恢复能力;四是良好的伸缩性,尤其是方便缩容,当某个地区业务发展状况不够理想时,我们能方便地清退资源。

毛茂德表示,“AWS是全球云服务的先行者,提供了丰富、稳定、可靠的服务,基础设施全球覆盖,并且网络质量高。我们的海外直播应用Nimo TV,从决定推出到正式上线只有一两个月的时间。通过使用AWS,我们只用短短几天时间就实现了Nimo TV在海外的部署,并且稳定地运营。AWS有很多功能强大的托管服务,尤其是数据库服务,得到了开发同事的喜爱。因此,AWS成为虎牙直播的首选。”

虎牙直播海外游戏直播业务后台负责人马昭从另一角度表达了选择AWS的原因。他说,“直播行业是一个高度竞争的行业,时间就是生命线。我们选择的云服务商,第一,希望它能够提高我们的开发效率,开发工具(SDK)简单、全面、好用,兼容原有代码,一套代码设计适应不同规模的用户量;第二,部署速度要快,几天之内,在全球任意地区完成部署,随时灵活地调整资源的数量,应对突发流量,而无需手动添加资源;第三,成本透明,可控,可优化,可以随时关掉闲置的资源,随时使用更新、性价比更高的资源。我们认为AWS能够很好地满足我们的需求。”“AWS有一张自己的骨干网连接海外区域,速度和稳定性都比公共互联网高。我们做过测试,在AWS海外区域的速度可以说几乎达到了互联网的极致。”马昭补充道。

利用 AWS 丰富的服务和功能

虎牙直播非常看重AWS丰富的功能,也善于利用 AWS 的各种高阶服务。目前,虎牙直播已使用20多项AWS服务。尤其突出的特点是使用 AWS LambdaAmazon Simple Queue Service (Amazon SQS)Amazon DynamoDBAmazon Aurora 等服务实现其IT架构的自动伸缩,应对各种突发流量。

在中国管理海外直播业务,最大的问题是,突发流量往往发生在北京时间的后半夜。按照经验,国家节庆日容易产生突发流量。全球不同国家、不同民族和宗教,有不同的节日。虎牙直播在一年的时间里,重点运营的海外市场已经超过十个国家,要完全掌握这些国家的节日,不是一件容易的事儿。对一些大型节庆日或许可以提前准备资源,那么网红主播上线引起的流量暴涨更是猝不及防,他们上线的时间以及发起的活动内容,通常都不可预知。

使用 AWS 打造自动伸缩的架构

虎牙直播的自动伸缩架构大致是这样的。在前端接入,虎牙直播使用了AWS Lambda无服务器服务。AWS Lambda让虎牙直播可以灵活扩容,从容应对流量高峰,而且不需要配置或管理服务器,直接运行代码,以代码执行时间和代码触发次数计费,节省成本。在传统模式下,需要预估访问量,配置相应的资源。一是需要手动设置,进行流量疏导;二是遇到没有预计到的突发流量,就可能导致系统拥塞。

在消息传送方面,虎牙直播经常会触发上亿级别的消息传送。例如,当一个主播上线时,会自动给他/她的粉丝推送多条相关信息。当主播粉丝量非常庞大时,消息传送量会相应猛增。如果多位网红主播同时上线,流量瞬间暴涨20倍以上,很容易形成消息拥塞,推送卡顿或不及时。虎牙直播采用了Amazon SQS完全托管的消息队列服务,适用于微服务、分布式系统和无服务器应用程序,同样可以自动扩展,在数亿级别的消息传送时,响应速度不会出现衰减。

在数据库后台,虎牙直播使用DynamoDB存储用户的动态信息,包括支付、状态、好友关注关系等信息。通常,数据库都是系统的瓶颈。但DynamoDB 作为一个键/值和文档数据库,是一种快速灵活的 NoSQL 数据库服务,不论规模大小的环境中都能提供毫秒级性能。当流量突发的时候,数据库能够轻松应对压力。

相对静态的信息存储在Aurora上,例如用户的基础信息。Aurora 是一种兼容MySQL 和PostgreSQL的关系数据库,同时也能够自动扩容,并且因为计算和存储分离,当数据量比较大时,能够单独升级计算实例,保证计算性能。马昭分享使用经验,与MySQL相比, Aurora的性能表现是其5倍以上。虎牙直播还演练过Aurora的故障转移功能。在异常情况下,通常只需要10秒左右就能够自动实现故障转移,对终端用户没有明显的影响。虎牙直播利用Aurora的全球数据库功能,在AWS亚太(新加坡)区域部署数据库,在其它区域建立副本,提高当地用户的使用体验。

在AWS的帮助下,基础架构自动伸缩,让虎牙直播的运维人员节省时间和负担。据马昭介绍,他们的手机都是24小时开机,系统设置了二级告警。一般的告警通常表示系统已经自己解决问题,不用太担心。当听到紧急告警时,可能意味着系统崩溃,必须立即起床处理。Nimo TV运行一年来,只遇到过一次紧急告警。因为当时设置的自动扩容阈值不够灵敏,而流量爆发过快。当运维人员打开电脑准备手动处理时,已经实现了自动扩容。后来修改了设置,就能够应对更大的流量突发了。Nimo TV运行一年来,每月至少会遇到1-2次突发流量,最多可达5-6次突发流量,Nimo TV都实现了平稳运行,没有发生过运维故障。

不断尝试和利用 AWS 新服务

虎牙直播正在尝试AWS于2018年底新推出的 Amazon Neptune 图形数据库。使用Neptune进行标签的深刻搜索,以确定标签之间的关系、用户之间的关系等,比关系型数据库更具优势。搜索的结果可以应用到智能推荐和风险控制中,例如可以为用户推荐好友关注的偶像、好友的好友,也可以监测异常打赏等。

同时,虎牙直播也在了解AWS在边缘计算、异构计算方面的能力,例如利用GPU,或者AWS自研的AI芯片,帮助虎牙直播在边缘进行在线推理服务;利用 Amazon SageMaker在云上训练机器学习模型等等。未来希望利用这些功能,进一步加强虎牙直播的产品竞争力。

下一步,虎牙直播还准备使用AWS的多语言翻译服务,方便支持不同国家的用户。

获得的成效

归纳起来,使用AWS,给虎牙直播带来的好处主要有三个方面:

一是帮助虎牙直播实现了国际业务快速扩张。如果用租用数据中心自建的方式,建一个数据中心至少也要一个月。而且,虎牙直播在各个洲都有用户,要自己组建一个达到AWS这样水平的网络,对虎牙直播来说,无论时间和成本都将是一个天文数字。

二是节省了应用开发和部署的时间。通过大量使用AWS的托管服务,简化了数据库和容量的管理,减化了消息队列开发,不需要从应用层面关心用户规模,节省了大量的时间。对互联网业务来说,时间非常关键,节省时间就可以抢到市场先机。

三是可以灵活调配资源,节省成本。虎牙直播在全球多个地区开展业务,不同的地区、节日的时间不同,流量高峰不一样。使用AWS,虎牙直播可以在总体成本不变的情况下,灵活调配资源,哪里有流量高峰,可以分分钟增加资源,反之则可以迅速减少资源。如果换用自建数据中心的方式,是很难实现的。

虎牙直播在全球多个地区开展业务,不同的地区、节日的时间不同,流量高峰不一样。使用 AWS,虎牙直播可以在总体成本不变的情况下,灵活调配资源,哪里有流量高峰,可以分分钟增加资源,反之则可以迅速减少资源。如果换用自建数据中心的方式,是很难实现的。

虎牙直播在全球多个地区开展业务,不同的地区、节日的时间不同,流量高峰不一样。使用AWS,虎牙直播可以在总体成本不变的情况下,灵活调配资源,哪里有流量高峰,可以分分钟增加资源,反之则可以迅速减少资源。如果换用自建数据中心的方式,是很难实现的。虎牙直播的海外业务全部部署在AWS上,包括用户系统、用户关系系统、后台逻辑推理系统等,所使用的AWS云服务包括 Amazon Elastic Compute Cloud (Amazon EC2)Amazon Simple Storage Service (S3)Amazon VPCAWS Auto ScalingAmazon CloudFrontAmazon Simple Notification Service (SNS)、Amazon SQS、Elastic Load Balancing、Amazon DynamoDB、Amazon Relational Database Service (Amazon RDS)、Amazon Aurora、Amazon ElastiCacheAmazon Elasticsearch Service 等。图2是虎牙直播基于 AWS 的应用架构示意图。

图2:虎牙直播应用架构示意图
图2:虎牙直播应用架构示意图

虎牙直播使用了 AWS 企业级支持服务。每个季度,AWS支持团队都会与虎牙直播的团队一起,对使用情况进行一次检视,看看是否有不合理的使用成本,提出改进建议。每周都会有支持人员到现场了解虎牙直播在使用中遇到的问题。支持人员会组织全球电话会议,跟全球的团队、包括研发团队一起讨论使用场景方面的问题。对虎牙直播提交的问题工单 (Case),支持人员也会及时跟踪处理进展。因此马昭认为,AWS 的企业级支持服务非常有价值。云计算时代,IT人足不出户就可以运筹全世界的业务,这也是 AWS 希望带给客户的价值。虎牙直播能够在短短一年时间内,就在海外市场创造佳绩,与他们充分利用 AWS、善于利用 AWS 是分不开的。希望虎牙直播的案例为更多的企业带来启示。

虎牙直播客户视频

虎牙直播利用AWS快速延伸国际业务(5:19)

虎牙直播基于AWS系统架构示意图


关于虎牙直播

广州虎牙信息科技有限公司(NYSE: HUYA)(以下简称“虎牙直播”)是一家以游戏为核心的直播平台,致力于成为受年轻人欢迎的技术驱动型娱乐社区。虎牙直播拥有超过2600款游戏的直播,覆盖全品类游戏内容,全年直播电竞赛事超过360场。在游戏直播的成功基础上,虎牙直播已发展为包含泛娱乐、真人秀、二次元、户外等内容的综合性互动平台。2018年5月,虎牙直播成功在美国纽交所上市,股票在一个月内涨幅超过400%,市值超过百亿美元,成为直播行业新的里程碑。虎牙直播于2018年初宣布在东南亚上线海外产品Nimo TV。最新数据显示,2018年12月,虎牙直播海外产品月活用户已经达到千万级,产品成功登陆东南亚及拉美地区,2019年正式进入西班牙语市场。

为什么使用 AWS

  • 丰富的服务和功能
  • 资源布局全球覆盖
  • 极佳的稳定性和灵活性

使用的AWS服务

AWS Lambda

AWS Lambda 是一项无服务器事件驱动型计算服务,该服务使您可以运行几乎任何类型的应用程序或后端服务的代码,而无需预置或管理服务器。

了解更多 »

Amazon SQS

Amazon Simple Queue Service (SQS) 是一种完全托管的消息队列服务,可让您分离和扩展微服务、分布式系统和无服务器应用程序。

了解更多 »

Amazon DynamoDB

Amazon DynamoDB 是一种完全托管式、无服务器的 NoSQL 键值数据库,旨在运行任何规模的高性能应用程序。

了解更多 »

Apache MXNet

Amazon Aurora 提供内置的安全性、几乎连续的备份、无服务器计算、最高 15 个只读副本、自动多区域复制以及与其他 AWS 服务的集成。

了解更多 »


开始使用

各行各业中所有规模的公司都在使用 AWS 对其日常业务进行转型。联系我们的专家,立即踏上您的 AWS 云之旅。