1億人點(diǎn)贊的晚會(huì),如何做技術(shù)沉淀?
2019貓晚不僅在優(yōu)酷,還打通手淘、天貓等APP,實(shí)現(xiàn)了多屏、多端、雙向的互動(dòng),將互聯(lián)網(wǎng)晚會(huì)的互動(dòng)形態(tài)推進(jìn)到3.0時(shí)代。如晚會(huì)上跑男隊(duì)和街舞隊(duì)在一個(gè)4×8米的巨型觸摸屏上玩起了“好禮對(duì)對(duì)碰”游戲。優(yōu)酷和淘寶的網(wǎng)友在APP端也可以選擇加入某一戰(zhàn)隊(duì),游戲比分實(shí)時(shí)計(jì)入明星嘉賓的成績(jī)中,影響節(jié)目進(jìn)程。觀眾還可以通過(guò)互動(dòng)打賞給喜愛(ài)的節(jié)目“打call”,優(yōu)酷直播間63%觀看晚會(huì)的用戶參與了互動(dòng),較去年增長(zhǎng)7%。 很榮幸,我能有機(jī)會(huì)參與到雙11貓晚項(xiàng)目,借這個(gè)機(jī)會(huì)給大家分享技術(shù)在貓晚過(guò)程和思考。
?? ??
2019“貓晚”現(xiàn)場(chǎng),圖為騰格爾唱《High歌》
技術(shù)目標(biāo)如何定?
貓晚KO時(shí),總負(fù)責(zé)人說(shuō)貓晚是給天貓雙11消費(fèi)者辦的晚會(huì)及回饋,所以我們目標(biāo)不僅要給消費(fèi)者提供視覺(jué)盛宴,還要給消費(fèi)者帶來(lái)實(shí)惠,要給商家?guī)ж?雖然自古忠義不能兩全,魚(yú)與熊掌不可兼得,但是項(xiàng)目組同學(xué)即使執(zhí)手相看淚眼竟無(wú)語(yǔ)凝噎也要咬牙接下有挑戰(zhàn)的目標(biāo)?;谶@幾個(gè)方向團(tuán)隊(duì)開(kāi)始做分解,貓晚產(chǎn)品技術(shù)運(yùn)營(yíng)設(shè)計(jì)團(tuán)隊(duì)核心要承載晚會(huì)的傳播影響力、豐富有趣的互動(dòng)形式、以及進(jìn)店的引導(dǎo)和讓消費(fèi)者實(shí)惠的權(quán)益發(fā)放。 明確定位后貓晚的核心業(yè)務(wù)目標(biāo)相對(duì)就清晰了,基于業(yè)務(wù)目標(biāo)技術(shù)同學(xué)進(jìn)一步分解首要是業(yè)務(wù)目標(biāo)支撐,穩(wěn)定是底線、體驗(yàn)要保證、權(quán)益全發(fā)放、不能有資損(還有團(tuán)隊(duì)有成長(zhǎng)、系統(tǒng)有沉淀)。
?? 
業(yè)務(wù)技術(shù)大圖
所以貓晚技術(shù)目標(biāo)制定的思考路徑是,首先是看行業(yè)、看大盤(pán)、看業(yè)務(wù)、看團(tuán)隊(duì);然后分解目標(biāo),找到關(guān)鍵指標(biāo)和抓手及相關(guān)團(tuán)隊(duì);最后去量化,定有挑戰(zhàn)的指標(biāo)和倒計(jì)時(shí)的里程碑。
?? 
制定技術(shù)目標(biāo)圖
技術(shù)如何保障公平一致的體驗(yàn)?
體驗(yàn)一致是因?yàn)橥頃?huì)公域互動(dòng)主打手淘、優(yōu)酷、天貓APP,為即將到來(lái)的雙11預(yù)熱,讓用戶在看晚會(huì)時(shí)候就能邊看邊玩、邊玩邊買,所以主持人口播時(shí)候每次都會(huì)提醒打開(kāi)手機(jī)搖一搖可以在手淘、天貓和優(yōu)酷APP參與互動(dòng),這就要求多端需要同時(shí)彈起和關(guān)閉互動(dòng)、展示內(nèi)容一致、玩法一致、抽獎(jiǎng)時(shí)間一致。 基于以上幾個(gè)需求,貓晚今年的解法是第一次完全一套代碼,運(yùn)行到手淘、天貓和優(yōu)酷,在優(yōu)酷側(cè)部署的代理服務(wù)只承載轉(zhuǎn)發(fā)和適配不做其他任何業(yè)務(wù)、核心服務(wù)部署到集團(tuán)機(jī)房承載所有的互動(dòng)玩法和權(quán)益發(fā)放,技術(shù)架構(gòu)圖如下:
?? 
技術(shù)架構(gòu)圖
提到公平,為什么存在公平性的問(wèn)題?
核心原因在于因?yàn)椴豢煽沽Φ挠脩艟W(wǎng)絡(luò)延遲、現(xiàn)場(chǎng)信號(hào)延遲以及內(nèi)容生產(chǎn)制作過(guò)程中的延遲,如果技術(shù)上不處理可能存在的問(wèn)題大家互動(dòng)彈起的時(shí)間分布完全不同,那么很可能你還沒(méi)開(kāi)始游戲或者正在玩游戲,有的人已經(jīng)把那些一元購(gòu)以及終極大獎(jiǎng)替你還49999花唄的權(quán)益抽取完了,這個(gè)帶來(lái)的挫敗感和不公平感實(shí)在叔可忍嬸嬸不可忍,所以貓晚引入了以下四個(gè)機(jī)制來(lái)保障:
- 客戶端和服務(wù)端通過(guò)CSN及無(wú)線RPC網(wǎng)關(guān)輪詢對(duì)表,保障客戶端維護(hù)的時(shí)鐘和服務(wù)端一致;
- 現(xiàn)場(chǎng)布置延遲機(jī),反復(fù)實(shí)測(cè)現(xiàn)場(chǎng)延遲以及內(nèi)容制作過(guò)程中的延遲時(shí)間;
- 運(yùn)營(yíng)操作節(jié)目單事件點(diǎn)擊和主持人話口與導(dǎo)演組反復(fù)溝通及演練對(duì)齊;
- 最后根據(jù)2和3的時(shí)間delay在直播流中插入SEI,內(nèi)容消費(fèi)端再解析SEI信息,根據(jù)節(jié)目開(kāi)始時(shí)間彈起互動(dòng)。
高并發(fā)脈沖流量如何抗?
貓晚比較典型的是打底常駐流量一直有,然后每輪互動(dòng)帶來(lái)脈沖流量,針對(duì)這些場(chǎng)景貓晚這面的核心思路是以下三板斧:多輪全鏈路壓測(cè)、應(yīng)用預(yù)熱、防刷限流兜底;以上三點(diǎn)可能大家都比較熟悉每次大型活動(dòng)的默認(rèn)項(xiàng),除了以上點(diǎn)還可以聊一聊比較有晚會(huì)特色的優(yōu)化比如削峰、路由、下游保護(hù)。
1)路由
貓晚比較典型的打底流量節(jié)目單polling,所有同時(shí)在線用戶每45S都會(huì)輪詢一次,技術(shù)同學(xué)準(zhǔn)備了路由方案,默認(rèn)所有請(qǐng)求100%走無(wú)線RPC網(wǎng)關(guān),但是可以動(dòng)態(tài)下發(fā)路由比例給前端,當(dāng)無(wú)線RPC網(wǎng)關(guān)壓力較大或者即將超過(guò)目標(biāo)限流值時(shí)或者流量評(píng)估模型有問(wèn)題時(shí)可以走預(yù)案切換比例到輪詢CSN,以保障系統(tǒng)穩(wěn)定性。
總結(jié):根據(jù)流量情況動(dòng)態(tài)路由分發(fā)是兜底和保證體驗(yàn)的利器。
2)削峰&錯(cuò)峰
★ 錯(cuò)峰:
a、公私域互動(dòng)在節(jié)目進(jìn)程中叉開(kāi)投放時(shí)間,避免并發(fā)同時(shí)來(lái)臨;
b、20點(diǎn)及21點(diǎn)集團(tuán)有紅包雨,和導(dǎo)演組溝通及演練互動(dòng)錯(cuò)開(kāi)整點(diǎn)的前后幾分鐘,防止給權(quán)益平臺(tái)帶來(lái)集中壓力;
c、在私域像紅包雨、入場(chǎng)紅包、密令紅包等互動(dòng)通過(guò)中間件消息下行通道投放,降低私域服務(wù)端壓力。
★ 削峰:
a、客戶端向后臺(tái)提交數(shù)據(jù)有壓力的點(diǎn)都采用在一定時(shí)間范圍內(nèi)隨機(jī)打散算法;
b、紅包雨控制中獎(jiǎng)率,同一個(gè)用戶的多次點(diǎn)擊可以配置有效請(qǐng)求數(shù);
c、終極寶箱個(gè)數(shù)查詢提前打散異步15S預(yù)查詢,避免集中沖擊;
d、獲得終極寶箱后客戶端維護(hù)有無(wú)標(biāo)志,擋掉開(kāi)獎(jiǎng)時(shí)一部分的集中查詢。
總結(jié):削峰和錯(cuò)峰需要體驗(yàn)+業(yè)務(wù)+技術(shù)手段相結(jié)合,避免技術(shù)上過(guò)度設(shè)計(jì)和優(yōu)化,ROI低。
3)下游保護(hù)
貓晚發(fā)放核心依賴權(quán)益平臺(tái),每輪互動(dòng)結(jié)束后都會(huì)有抽獎(jiǎng)環(huán)節(jié),抽獎(jiǎng)就要調(diào)用權(quán)益平臺(tái),比如終極大獎(jiǎng)開(kāi)獎(jiǎng)時(shí)有兩個(gè)要求:
a、所有用戶都可以參與抽取,如果用戶沒(méi)抽中大獎(jiǎng)還可以抽打底獎(jiǎng)池;
b、要保證大獎(jiǎng)全部發(fā)出,否則算資損。
這里如果讓所有用戶先走全部抽大獎(jiǎng)然后不中的再來(lái)抽打底,就會(huì)兩次調(diào)用權(quán)益平臺(tái),對(duì)下游的調(diào)用直接double而且權(quán)益平臺(tái)大獎(jiǎng)獎(jiǎng)池口也無(wú)法承載這么高的流量(大獎(jiǎng)權(quán)益平臺(tái)會(huì)直接同步操作DB),無(wú)論從性能上還是從價(jià)值及成本上來(lái)看必要性都不大,基于此判斷項(xiàng)目組定了以下三個(gè)優(yōu)化action:
a、從業(yè)務(wù)規(guī)則上告訴用戶寶箱越多概率越高;
b、從應(yīng)用上直接分流寶箱較多用戶抽大獎(jiǎng)獎(jiǎng)池,寶箱較少用戶直接抽打底獎(jiǎng)池;
c、從技術(shù)上實(shí)時(shí)監(jiān)控統(tǒng)計(jì)寶箱分布情況,在前面輪次一旦發(fā)現(xiàn)寶箱分布和預(yù)期業(yè)務(wù)規(guī)則不一致,啟動(dòng)提前預(yù)案,保證大獎(jiǎng)必然全部發(fā)放。
總結(jié):下游穩(wěn)定全鏈路才能穩(wěn)定,系統(tǒng)設(shè)計(jì)時(shí)要充分考慮對(duì)下游的保護(hù)。
現(xiàn)場(chǎng)大屏和小屏聯(lián)動(dòng)花絮
這里想給大家分享一個(gè)貓晚關(guān)于預(yù)案的小花絮,提醒每個(gè)同學(xué)預(yù)案一定不能只留在預(yù)案平臺(tái)上,需要可應(yīng)急、可執(zhí)行、已演練、甚至需要準(zhǔn)備備胎的備胎。 為了讓內(nèi)容和互動(dòng)更精彩,結(jié)合更緊密,項(xiàng)目組同學(xué)提出要做雙向互動(dòng),讓用戶有更強(qiáng)的參與感,去支持自己喜愛(ài)的明星并同步參與一樣的游戲,數(shù)據(jù)實(shí)時(shí)回流現(xiàn)場(chǎng)影響最終PK結(jié)果。 做雙向互動(dòng)以前沒(méi)有先例,因?yàn)橛幸韵聠?wèn)題要解決:
a、現(xiàn)場(chǎng)環(huán)境復(fù)雜,對(duì)設(shè)備及通訊等都會(huì)有干擾;
b、鏈路長(zhǎng),可控性差,除貓晚內(nèi)部團(tuán)隊(duì)協(xié)同外還涉及導(dǎo)演組、主持人、明星等外部配合;
c、直播現(xiàn)場(chǎng)突發(fā)情況多,對(duì)應(yīng)急能力要求高。 果不其然從需求反復(fù)調(diào)整對(duì)齊,CodeReview以及全鏈路壓測(cè),手淘天貓集成,集團(tuán)技術(shù)匯報(bào),直播演練及和導(dǎo)演組對(duì)話口一路解決各種風(fēng)險(xiǎn);等項(xiàng)目組同學(xué)進(jìn)入現(xiàn)場(chǎng)后才發(fā)現(xiàn)以前的問(wèn)題只是毛毛雨,先看下時(shí)間軸和現(xiàn)場(chǎng)大屏和直播畫(huà)面示意圖:
- 9月份就開(kāi)始提前啟動(dòng)在廣州、東莞、虎門(mén)等地多次實(shí)測(cè)現(xiàn)場(chǎng)大屏效果,進(jìn)場(chǎng)前確認(rèn)完全沒(méi)問(wèn)題;
- 11.6進(jìn)入現(xiàn)場(chǎng)第一次排練就發(fā)現(xiàn)現(xiàn)場(chǎng)信號(hào)嘈雜,觸摸屏觸摸會(huì)失靈,現(xiàn)場(chǎng)每次可以給的檢修時(shí)間非常有限;
- 11.8號(hào)依然未能修好,和導(dǎo)演組溝通希望嘗試預(yù)案演練;
- 11.9號(hào)晚明星彩排吊威亞看臺(tái)同步配合操作,看臺(tái)給的機(jī)位切換,導(dǎo)致看不清大屏操作,演練效果依然不好;
- 11.10上午導(dǎo)演組一度考慮拿掉該環(huán)節(jié);
- 11.10晚上現(xiàn)場(chǎng)同學(xué)頂住壓力,完美呈現(xiàn)首次雙向聯(lián)動(dòng)。
??
??
??
??
現(xiàn)場(chǎng)和線上雙向互動(dòng)圖
?? 
大屏交互示意圖
回到現(xiàn)場(chǎng)大屏操作異常時(shí)準(zhǔn)備的預(yù)案,重點(diǎn)說(shuō)明進(jìn)場(chǎng)前技術(shù)準(zhǔn)備的只有一級(jí)預(yù)案,后面的全是隨機(jī)應(yīng)變根據(jù)現(xiàn)場(chǎng)情況和產(chǎn)品同學(xué)一起討論臨時(shí)制定的預(yù)案。
一級(jí)預(yù)案晚會(huì)前演練觸摸使用,異常檢修;
二級(jí)預(yù)案是無(wú)法檢修換大屏機(jī)器;
三級(jí)預(yù)案是大屏機(jī)器無(wú)法更換,需要看臺(tái)固定1機(jī)位,導(dǎo)播車有1人保證機(jī)位不會(huì)切換,看臺(tái)口令員和操作員配合鍵盤(pán)同步明星現(xiàn)場(chǎng)操作;
四級(jí)預(yù)案是操作員1的電腦或鍵盤(pán)異常,熱備2機(jī)器和熱備2同學(xué)操作。
總結(jié):
預(yù)案一定要可應(yīng)急、可執(zhí)行、已演練、甚至需要準(zhǔn)備備胎的備胎;
技術(shù)要有追求,多想可能的辦法,時(shí)間越緊張?jiān)揭杨A(yù)案做細(xì),做簡(jiǎn)單。
總結(jié):
一年只用一天的系統(tǒng)如何做技術(shù)沉淀?
像天貓雙11晚會(huì)類似的項(xiàng)目,平時(shí)不承載流量,沒(méi)有專門(mén)的維護(hù)團(tuán)隊(duì),隨著貓晚啟動(dòng)抽調(diào)各個(gè)團(tuán)隊(duì)來(lái)共同承擔(dān),參與到項(xiàng)目的技術(shù)同學(xué)該如何讓自己成長(zhǎng)和收獲呢?我自己總結(jié)有以下幾點(diǎn):
a、學(xué)會(huì)思考和制定技術(shù)目標(biāo);
b、鍛煉技術(shù)PM能力,不設(shè)邊界,有技術(shù)預(yù)判,識(shí)別解決風(fēng)險(xiǎn),保障目標(biāo)堅(jiān)決落地;
c、有匠心:對(duì)性能和體驗(yàn)及技術(shù)方案上需要極致、細(xì)致;
d、為后人栽樹(shù):工具、組件、產(chǎn)品、組織能力沉淀;
e、復(fù)盤(pán)能力:復(fù)盤(pán)從參與項(xiàng)目的第一天開(kāi)始,思考突破與沉淀;
f、拓寬視野:偶爾跳出專業(yè)領(lǐng)域,發(fā)現(xiàn)技術(shù)外的視角,看其他領(lǐng)域及合作團(tuán)隊(duì)的思考,學(xué)習(xí)周邊優(yōu)秀的小伙伴。































