“AWS是全球云服務(wù)的先行者,提供了豐富、穩(wěn)定、可靠的服務(wù),基礎(chǔ)設(shè)施全球覆蓋。通過使用AWS,我們用幾天時間就實現(xiàn)了虎牙海外直播應(yīng)用Nimo TV的部署,并且運行極其穩(wěn)定。”廣州虎牙信息科技有限公司基礎(chǔ)保障部總經(jīng)理毛茂德如是說。
關(guān)于虎牙直播
廣州虎牙信息科技有限公司(NYSE: HUYA)(以下簡稱“虎牙直播”)是一家以游戲為核心的直播平臺,致力于成為受年輕人歡迎的技術(shù)驅(qū)動型娛樂社區(qū)?;⒀乐辈碛谐^2600款游戲的直播,覆蓋全品類游戲內(nèi)容,全年直播電競賽事超過360場。在游戲直播的成功基礎(chǔ)上,虎牙直播已發(fā)展為包含泛娛樂、真人秀、二次元、戶外等內(nèi)容的綜合性互動平臺。2018年5月,虎牙直播成功在美國紐交所上市,股票在一個月內(nèi)漲幅超過400%,市值超過百億美元,成為直播行業(yè)新的里程碑。
虎牙直播于2018年初宣布在東南亞上線海外產(chǎn)品Nimo TV。最新數(shù)據(jù)顯示,2018年12月,虎牙直播海外產(chǎn)品月活用戶已經(jīng)達(dá)到千萬級,產(chǎn)品成功登陸東南亞及拉美地區(qū),2019年正式進(jìn)入西班牙語市場。
01
應(yīng)用背景
虎牙直播大舉進(jìn)軍海外市場,是2018年才開始的。2018年5月,虎牙直播發(fā)布面向海外市場的游戲直播平臺Nimo TV,包括PC端和移動端應(yīng)用,主要在東南亞和南美洲地區(qū)運營。
在此之前,虎牙直播在海外有一些用戶,在 Amazon Web Services (AWS)有小規(guī)模的部署。正如虎牙直播2018年報中對投資者所披露,虎牙直播在海外市場,尤其是東南亞和拉丁美洲的運營經(jīng)驗有限,如果不能應(yīng)對全球化運營的挑戰(zhàn),對虎牙直播的業(yè)務(wù)發(fā)展、財務(wù)狀況和運營業(yè)績都會產(chǎn)生重大的負(fù)面影響。其中一個挑戰(zhàn)是,如何在廣州總部有效地管理海外業(yè)務(wù)、搭建海外的IT系統(tǒng)和架構(gòu)。
虎牙直播基礎(chǔ)保障部總經(jīng)理毛茂德介紹說,在這樣的情況下,我們希望選擇的云服務(wù)商具有幾個條件:一是有豐富的資源,完善的Application Programming Interface(API)接口,讓我們能夠通過API接口,快速申請到資源;二是資源布局全球覆蓋,方便我們根據(jù)業(yè)務(wù)發(fā)展形勢,靈活地拓展全球市場;三是運行穩(wěn)定,具有強(qiáng)大的故障恢復(fù)能力;四是良好的伸縮性,尤其是方便縮容,當(dāng)某個地區(qū)業(yè)務(wù)發(fā)展?fàn)顩r不夠理想時,我們能方便地清退資源。
毛茂德表示,“AWS是全球云服務(wù)的先行者,提供了豐富、穩(wěn)定、可靠的服務(wù),基礎(chǔ)設(shè)施全球覆蓋,并且網(wǎng)絡(luò)質(zhì)量高。我們的海外直播應(yīng)用Nimo TV,從決定推出到正式上線只有一兩個月的時間。通過使用AWS,我們只用短短幾天時間就實現(xiàn)了Nimo TV在海外的部署,并且穩(wěn)定地運營。AWS有很多功能強(qiáng)大的托管服務(wù),尤其是數(shù)據(jù)庫服務(wù),得到了開發(fā)同事的喜愛。因此,AWS成為虎牙直播的首選。”
虎牙直播海外游戲直播業(yè)務(wù)后臺負(fù)責(zé)人馬昭從另一角度表達(dá)了選擇AWS的原因。他說,“直播行業(yè)是一個高度競爭的行業(yè),時間就是生命線。我們選擇的云服務(wù)商,第一,希望它能夠提高我們的開發(fā)效率,開發(fā)工具(SDK)簡單、全面、好用,兼容原有代碼,一套代碼設(shè)計適應(yīng)不同規(guī)模的用戶量;第二,部署速度要快,幾天之內(nèi),在全球任意地區(qū)完成部署,隨時靈活地調(diào)整資源的數(shù)量,應(yīng)對突發(fā)流量,而無需手動添加資源;第三,成本透明,可控,可優(yōu)化,可以隨時關(guān)掉閑置的資源,隨時使用更新、性價比更高的資源。我們認(rèn)為AWS能夠很好地滿足我們的需求。”“AWS有一張自己的骨干網(wǎng)連接海外區(qū)域,速度和穩(wěn)定性都比公共互聯(lián)網(wǎng)高。我們做過測試,在AWS海外區(qū)域的速度可以說幾乎達(dá)到了互聯(lián)網(wǎng)的極致。”馬昭補(bǔ)充道。
02
利用AWS豐富的服務(wù)和功能
虎牙直播非常看重AWS豐富的功能,也善于利用AWS的各種高階服務(wù)。目前,虎牙直播已使用20多項AWS服務(wù)。尤其突出的特點是使用AWS Lambda、Amazon Simple Queue Service (Amazon SQS)、Amazon DynamoDB、Amazon Aurora等服務(wù)實現(xiàn)其IT架構(gòu)的自動伸縮,應(yīng)對各種突發(fā)流量。
在中國管理海外直播業(yè)務(wù),最大的問題是,突發(fā)流量往往發(fā)生在北京時間的后半夜。按照經(jīng)驗,國家節(jié)慶日容易產(chǎn)生突發(fā)流量。全球不同國家、不同民族和宗教,有不同的節(jié)日?;⒀乐辈ピ谝荒甑臅r間里,重點運營的海外市場已經(jīng)超過十個國家,要完全掌握這些國家的節(jié)日,不是一件容易的事兒。對一些大型節(jié)慶日或許可以提前準(zhǔn)備資源,那么網(wǎng)紅主播上線引起的流量暴漲更是猝不及防,他們上線的時間以及發(fā)起的活動內(nèi)容,通常都不可預(yù)知。
03
使用AWS打造自動伸縮的架構(gòu)
虎牙直播的自動伸縮架構(gòu)大致是這樣的。在前端接入,虎牙直播使用了AWS Lambda無服務(wù)器服務(wù)。AWS Lambda讓虎牙直播可以靈活擴(kuò)容,從容應(yīng)對流量高峰,而且不需要配置或管理服務(wù)器,直接運行代碼,以代碼執(zhí)行時間和代碼觸發(fā)次數(shù)計費,節(jié)省成本。在傳統(tǒng)模式下,需要預(yù)估訪問量,配置相應(yīng)的資源。一是需要手動設(shè)置,進(jìn)行流量疏導(dǎo);二是遇到?jīng)]有預(yù)計到的突發(fā)流量,就可能導(dǎo)致系統(tǒng)擁塞。
在消息傳送方面,虎牙直播經(jīng)常會觸發(fā)上億級別的消息傳送。例如,當(dāng)一個主播上線時,會自動給他/她的粉絲推送多條相關(guān)信息。當(dāng)主播粉絲量非常龐大時,消息傳送量會相應(yīng)猛增。如果多位網(wǎng)紅主播同時上線,流量瞬間暴漲20倍以上,很容易形成消息擁塞,推送卡頓或不及時。虎牙直播采用了Amazon SQS完全托管的消息隊列服務(wù),適用于微服務(wù)、分布式系統(tǒng)和無服務(wù)器應(yīng)用程序,同樣可以自動擴(kuò)展,在數(shù)億級別的消息傳送時,響應(yīng)速度不會出現(xiàn)衰減。
“AWS成熟穩(wěn)定,是虎牙直播延伸國際業(yè)務(wù)的理想選擇。”
——廣州虎牙信息科技有限公司海外游戲直播業(yè)務(wù)后臺負(fù)責(zé)人馬昭
在數(shù)據(jù)庫后臺,虎牙直播使用DynamoDB存儲用戶的動態(tài)信息,包括支付、狀態(tài)、好友關(guān)注關(guān)系等信息。通常,數(shù)據(jù)庫都是系統(tǒng)的瓶頸。但DynamoDB 作為一個鍵/值和文檔數(shù)據(jù)庫,是一種快速靈活的 NoSQL 數(shù)據(jù)庫服務(wù),不論規(guī)模大小的環(huán)境中都能提供毫秒級性能。當(dāng)流量突發(fā)的時候,數(shù)據(jù)庫能夠輕松應(yīng)對壓力。
相對靜態(tài)的信息存儲在Aurora上,例如用戶的基礎(chǔ)信息。Aurora 是一種兼容MySQL 和PostgreSQL的關(guān)系數(shù)據(jù)庫,同時也能夠自動擴(kuò)容,并且因為計算和存儲分離,當(dāng)數(shù)據(jù)量比較大時,能夠單獨升級計算實例,保證計算性能。馬昭分享使用經(jīng)驗,與MySQL相比, Aurora的性能表現(xiàn)是其5倍以上?;⒀乐辈ミ€演練過Aurora的故障轉(zhuǎn)移功能。在異常情況下,通常只需要10秒左右就能夠自動實現(xiàn)故障轉(zhuǎn)移,對終端用戶沒有明顯的影響。虎牙直播利用Aurora的全球數(shù)據(jù)庫功能,在AWS亞太(新加坡)區(qū)域部署數(shù)據(jù)庫,在其它區(qū)域建立副本,提高當(dāng)?shù)赜脩舻氖褂皿w驗。
在AWS的幫助下,基礎(chǔ)架構(gòu)自動伸縮,讓虎牙直播的運維人員節(jié)省時間和負(fù)擔(dān)。據(jù)馬昭介紹,他們的手機(jī)都是24小時開機(jī),系統(tǒng)設(shè)置了二級告警。一般的告警通常表示系統(tǒng)已經(jīng)自己解決問題,不用太擔(dān)心。當(dāng)聽到緊急告警時,可能意味著系統(tǒng)崩潰,必須立即起床處理。Nimo TV運行一年來,只遇到過一次緊急告警。因為當(dāng)時設(shè)置的自動擴(kuò)容閾值不夠靈敏,而流量爆發(fā)過快。當(dāng)運維人員打開電腦準(zhǔn)備手動處理時,已經(jīng)實現(xiàn)了自動擴(kuò)容。后來修改了設(shè)置,就能夠應(yīng)對更大的流量突發(fā)了。Nimo TV運行一年來,每月至少會遇到1-2次突發(fā)流量,最多可達(dá)5-6次突發(fā)流量,Nimo TV都實現(xiàn)了平穩(wěn)運行,沒有發(fā)生過運維故障。
04
不斷嘗試和利用AWS新服務(wù)
虎牙直播正在嘗試AWS于2018年底新推出的Amazon Neptune圖形數(shù)據(jù)庫。使用Neptune進(jìn)行標(biāo)簽的深刻搜索,以確定標(biāo)簽之間的關(guān)系、用戶之間的關(guān)系等,比關(guān)系型數(shù)據(jù)庫更具優(yōu)勢。搜索的結(jié)果可以應(yīng)用到智能推薦和風(fēng)險控制中,例如可以為用戶推薦好友關(guān)注的偶像、好友的好友,也可以監(jiān)測異常打賞等。
同時,虎牙直播也在了解AWS在邊緣計算、異構(gòu)計算方面的能力,例如利用GPU,或者AWS自研的AI芯片,幫助虎牙直播在邊緣進(jìn)行在線推理服務(wù);利用Amazon SageMaker在云上訓(xùn)練機(jī)器學(xué)習(xí)模型等等。未來希望利用這些功能,進(jìn)一步加強(qiáng)虎牙直播的產(chǎn)品競爭力。
下一步,虎牙直播還準(zhǔn)備使用AWS的多語言翻譯服務(wù),方便支持不同國家的用戶。
05
獲得的效益
歸納起來,使用AWS,給虎牙直播帶來的好處主要有三個方面:
一是幫助虎牙直播實現(xiàn)了國際業(yè)務(wù)快速擴(kuò)張。如果用租用數(shù)據(jù)中心自建的方式,建一個數(shù)據(jù)中心至少也要一個月。而且,虎牙直播在各個洲都有用戶,要自己組建一個達(dá)到AWS這樣水平的網(wǎng)絡(luò),對虎牙直播來說,無論時間和成本都將是一個天文數(shù)字。
二是節(jié)省了應(yīng)用開發(fā)和部署的時間。通過大量使用AWS的托管服務(wù),簡化了數(shù)據(jù)庫和容量的管理,減化了消息隊列開發(fā),不需要從應(yīng)用層面關(guān)心用戶規(guī)模,節(jié)省了大量的時間。對互聯(lián)網(wǎng)業(yè)務(wù)來說,時間非常關(guān)鍵,節(jié)省時間就可以搶到市場先機(jī)。
三是可以靈活調(diào)配資源,節(jié)省成本?;⒀乐辈ピ谌蚨鄠€地區(qū)開展業(yè)務(wù),不同的地區(qū)、節(jié)日的時間不同,流量高峰不一樣。使用AWS,虎牙直播可以在總體成本不變的情況下,靈活調(diào)配資源,哪里有流量高峰,可以分分鐘增加資源,反之則可以迅速減少資源。如果換用自建數(shù)據(jù)中心的方式,是很難實現(xiàn)的。
虎牙直播的海外業(yè)務(wù)全部部署在AWS上,包括用戶系統(tǒng)、用戶關(guān)系系統(tǒng)、后臺邏輯推理系統(tǒng)等,所使用的AWS云服務(wù)包括Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (S3)、Amazon VPC、AWS Auto Scaling、Amazon CloudFront、Amazon Simple Notification Service (SNS)、Amazon SQS、Elastic Load Balancing、Amazon DynamoDB、Amazon Relational Database Service (Amazon RDS)、Amazon Aurora、Amazon ElastiCache、Amazon Elasticsearch Service等。
虎牙直播使用了AWS企業(yè)級支持服務(wù)。每個季度,AWS支持團(tuán)隊都會與虎牙直播的團(tuán)隊一起,對使用情況進(jìn)行一次檢視,看看是否有不合理的使用成本,提出改進(jìn)建議。每周都會有支持人員到現(xiàn)場了解虎牙直播在使用中遇到的問題。支持人員會組織全球電話會議,跟全球的團(tuán)隊、包括研發(fā)團(tuán)隊一起討論使用場景方面的問題。對虎牙直播提交的問題工單(Case),支持人員也會及時跟蹤處理進(jìn)展。因此馬昭認(rèn)為,AWS的企業(yè)級支持服務(wù)非常有價值。
云計算時代,IT人足不出戶就可以運籌全世界的業(yè)務(wù),這也是AWS希望帶給客戶的價值?;⒀乐辈ツ軌蛟诙潭桃荒陼r間內(nèi),就在海外市場創(chuàng)造佳績,與他們充分利用AWS、善于利用AWS是分不開的。希望虎牙直播的案例為更多的企業(yè)帶來啟示。