闲鱼把各种玩法做成了一个平台:哆啦A梦
作者:閑魚技術(shù)-齊悟
玩法平臺(tái)背景
????在閑魚內(nèi)我們把供給用戶的閑魚紅包、支付寶紅包、包郵券、寶卡等統(tǒng)稱為用戶權(quán)益。是閑魚用戶運(yùn)營的重要策略,在拉新、留存、促活、裂變等方面都展現(xiàn)了其重要價(jià)值。在阿里內(nèi)部管理權(quán)益的平臺(tái)是拉菲,拉菲對(duì)外提供概率抽獎(jiǎng)和領(lǐng)獎(jiǎng)兩種能力。各個(gè)業(yè)務(wù)使用方根據(jù)自己的訴求結(jié)合拉菲的能力,定制自己業(yè)務(wù)側(cè)玩法,基于此建立了閑魚權(quán)益玩法平臺(tái)——哆啦A夢(mèng)。
痛點(diǎn)分析
????早期閑魚的營銷活動(dòng)有兩個(gè)重要特點(diǎn):低頻、人工,閑魚是c2c的二手交易平臺(tái),營銷活動(dòng)本身就不多,每年不超過10次。每次營銷活動(dòng)玩法都是簡(jiǎn)單的抽獎(jiǎng)玩法,給中獎(jiǎng)用戶發(fā)獎(jiǎng),需要運(yùn)營同學(xué)逐個(gè)聯(lián)系然后發(fā)放權(quán)益。隨著業(yè)務(wù)發(fā)展集團(tuán)有了權(quán)益相關(guān)的平臺(tái),其中包括wlp、mrp、拉菲到最終統(tǒng)一的權(quán)益平臺(tái)拉菲2,權(quán)益平臺(tái)的目的就是收斂集團(tuán)內(nèi)的權(quán)益,簡(jiǎn)單的理解平臺(tái)不生產(chǎn)權(quán)益、只是權(quán)益的搬運(yùn)工。隨著業(yè)務(wù)的豐富,平臺(tái)也有了更豐富的權(quán)益包括支付寶紅包、淘寶單品優(yōu)惠券、淘寶店鋪優(yōu)惠券、淘寶滿減券、閑魚紅包、包郵券等。閑魚也更關(guān)注業(yè)務(wù)玩法產(chǎn)生了大轉(zhuǎn)盤、翻牌子、九宮格等玩法。隨著閑魚業(yè)務(wù)的發(fā)展在玩法側(cè)有了更多訴求產(chǎn)生了百幣奪寶、PK賽、排行榜、簽到領(lǐng)幣等更復(fù)雜的玩法。同時(shí)也暴露出了越來越多的問題。
????開發(fā)側(cè)遇到的問題:
??????a.開發(fā)周期長,活動(dòng)業(yè)務(wù)層并不復(fù)雜,但每次活動(dòng)都要考慮系統(tǒng)安全性、穩(wěn)定性、數(shù)據(jù)一致性問題。
??????b.發(fā)現(xiàn)和定位問題難,缺少監(jiān)控和對(duì)賬體系,導(dǎo)致活動(dòng)中難以及時(shí)發(fā)現(xiàn)問題,往往是后知后覺。
????運(yùn)營側(cè)遇到的問題:
??????a.配置流程復(fù)雜,從前端頁面配置到活動(dòng)規(guī)則配置分散在多個(gè)系統(tǒng)。
??????b.溝通成本高,開發(fā)側(cè)概念不統(tǒng)一,每次運(yùn)營對(duì)接不同的開發(fā)都要接受一套概念。
??????c.活動(dòng)效果無法實(shí)時(shí)關(guān)注,往往都是活動(dòng)后才開始跑效果數(shù)據(jù)。
????測(cè)試側(cè)遇到的問題:
??????a.測(cè)試成本高,在測(cè)試時(shí)需要構(gòu)造多個(gè)測(cè)試用例條件的賬戶,用來測(cè)試不同情況,此時(shí)往往需要開發(fā)共同配合。
??????b.反饋鏈路長,黑盒測(cè)試時(shí)遇到問題,但是不清楚具體問題是什么,該如何保持現(xiàn)場(chǎng)復(fù)現(xiàn)。
????對(duì)于開發(fā)來最難以接受的事情莫過于重復(fù),如果再給我一次機(jī)會(huì),我一定要搞一個(gè)玩法平臺(tái),就這樣閑魚玩法平臺(tái)來了。根據(jù)上面總結(jié)的問題,給玩法平臺(tái)一期定下了三個(gè)目標(biāo):
????1.沉淀能力可復(fù)用,拒絕重復(fù)開發(fā),把可復(fù)用的能力沉淀
????2.運(yùn)營易用,為運(yùn)營提供可配置平臺(tái),可自己完成活動(dòng)配置上線
????3.快速發(fā)現(xiàn)、定位、反饋問題,為測(cè)試提供測(cè)試工具
玩法平臺(tái)1.0
????一個(gè)平臺(tái)怎么也要有個(gè)名字,大家剛開始希望可以給力的解決閑魚玩法中遇到的問題,所以起了一個(gè)黑土味的名字——奧利給,后面想了想玩法平臺(tái)主要追逐的是玩法,哆啦A夢(mèng)的口袋里面什么都可以變出來,與玩法平臺(tái)剛好契合,所以后面又改為——哆啦A夢(mèng)。
業(yè)務(wù)架構(gòu)
????哆啦A夢(mèng)的業(yè)務(wù)目標(biāo)就是收斂閑魚內(nèi)的所有權(quán)益相關(guān)的玩法,所以很多玩法都是基于已有的系統(tǒng)建立的。如下圖所示是哆啦A夢(mèng)的整個(gè)業(yè)務(wù)架構(gòu)主要分了三個(gè)層次,最底層是外部依賴、中間層是系統(tǒng)核心、最上層是業(yè)務(wù)。
????外部系統(tǒng)依賴:哆啦A夢(mèng)結(jié)合業(yè)務(wù)規(guī)則與這些已有的系統(tǒng)能力,開發(fā)了多種業(yè)務(wù)玩法。其中任務(wù)系統(tǒng)是玩法的一個(gè)重要依賴,其提供了父子任務(wù)、組合任務(wù)、有序任務(wù)等任務(wù)編排的能力;人群系統(tǒng)是進(jìn)行用戶身份驗(yàn)證的重要依賴,其提供了人群動(dòng)態(tài)增加、刪除、驗(yàn)證的能力;用戶行為系統(tǒng)是進(jìn)行用戶行為采集與反饋的系統(tǒng),其提供了行為編排與實(shí)時(shí)反饋的能力。個(gè)性推薦系統(tǒng)是對(duì)不同用戶提供個(gè)性化的權(quán)益系統(tǒng);對(duì)賬系統(tǒng)保證系統(tǒng)數(shù)據(jù)的一致性;用戶通知系統(tǒng)提供實(shí)時(shí)觸達(dá)通知能力。
????系統(tǒng)核心層:哆啦A夢(mèng)用活動(dòng)的概念把拉菲玩法和業(yè)務(wù)規(guī)則進(jìn)行封裝,運(yùn)營只需要通過簡(jiǎn)單的配置即可完成活動(dòng)配置,同時(shí)哆啦A夢(mèng)在活動(dòng)進(jìn)行中提供了日志采集、流量監(jiān)控、數(shù)據(jù)對(duì)賬、數(shù)據(jù)報(bào)表的基礎(chǔ)能力保障活動(dòng)的穩(wěn)定安全運(yùn)行。
????業(yè)務(wù)層:前端提供了多種玩法組件,運(yùn)營同學(xué)配置完活動(dòng)后可以直接選擇可使用的玩法組件,給用戶呈現(xiàn)不同的玩法。
解決方案
運(yùn)營配置平臺(tái)
????配置平臺(tái)主要面向運(yùn)營同學(xué),目標(biāo)是運(yùn)營可以不依賴開發(fā),通過配置平臺(tái)就可以完成一個(gè)活動(dòng)上線,在哆啦A夢(mèng)中一次營銷稱為一個(gè)活動(dòng),在一個(gè)活動(dòng)中會(huì)有多種業(yè)務(wù)規(guī)則,每個(gè)業(yè)務(wù)規(guī)則中對(duì)應(yīng)一個(gè)拉菲權(quán)益,舉個(gè)例子:運(yùn)營做一次營銷活動(dòng)分別為閑魚的男性用戶發(fā)放一種權(quán)益,為女性發(fā)放一種權(quán)益,為未知性別用戶發(fā)放一種權(quán)益,那么該活動(dòng)中將會(huì)對(duì)應(yīng)三個(gè)業(yè)務(wù)規(guī)則,分別是男性、女性、未知性別。一個(gè)用戶抽取權(quán)益時(shí),首先判斷其性別,然后獲取對(duì)應(yīng)規(guī)則下的權(quán)益。當(dāng)一個(gè)用戶符合多個(gè)規(guī)則時(shí),將會(huì)利用規(guī)則決策來決定用戶具體獲取哪個(gè)規(guī)則下面的權(quán)益。
????業(yè)務(wù)決策有兩種方式一種是按照權(quán)重進(jìn)行規(guī)則決策,一種是算法決策;算法決策目的是權(quán)益效率最大化。
開發(fā)基礎(chǔ)鏈路
????營銷活動(dòng)基礎(chǔ)鏈路主要關(guān)心的是流量和安全,流量是對(duì)整個(gè)系統(tǒng)性能的一個(gè)考驗(yàn),安全是對(duì)整個(gè)活動(dòng)業(yè)務(wù)規(guī)則的考驗(yàn)。流量包含正常流量和非法流量,正常流量需要關(guān)注活動(dòng)開始瞬時(shí)流量和活動(dòng)的峰值流量,做好系統(tǒng)擴(kuò)容和限流保證活動(dòng)期間服務(wù)器不被打掛,非法流量需要關(guān)注類似爬蟲的機(jī)器流量,需要在進(jìn)入業(yè)務(wù)層前進(jìn)行攔截,防止干擾正常的用戶。其中安全側(cè)包含業(yè)務(wù)邏輯和非業(yè)務(wù)邏輯,業(yè)務(wù)邏輯包括周期內(nèi)限制中獎(jiǎng)次數(shù),業(yè)務(wù)規(guī)則條件等,非業(yè)務(wù)邏輯需要著重關(guān)注黑灰產(chǎn)的非法用戶,其中包括同人賬號(hào)、同設(shè)備賬號(hào)、同IP賬號(hào)等,防止活動(dòng)權(quán)益被刷。解決方案如下:
其中霸下校驗(yàn)是集團(tuán)提供的流量清洗工具,包含DDoS攻擊防護(hù)、CC攻擊防護(hù)、Web攻擊防護(hù)、批量機(jī)器行為防御;限流校驗(yàn)接入是集團(tuán)提供的可以設(shè)定單機(jī)流量和總流量,超過閾值則采用拒絕訪問的限流平臺(tái);安全校驗(yàn)接入集團(tuán)的RMB系統(tǒng),對(duì)同人賬號(hào)、同設(shè)備、同IP的賬號(hào)進(jìn)行防控;單用戶并發(fā)校驗(yàn)利用全局分布式鎖,保證同一個(gè)賬號(hào)只能有一個(gè)請(qǐng)求進(jìn)入業(yè)務(wù)邏輯層,防止同用戶并發(fā)產(chǎn)生問題;活動(dòng)碼校驗(yàn),其中活動(dòng)碼是根據(jù)活動(dòng)、時(shí)間、用戶三個(gè)維度生成,利用Base64簡(jiǎn)單加密和解碼進(jìn)行驗(yàn)證;實(shí)時(shí)對(duì)賬主要關(guān)注業(yè)務(wù)規(guī)則,對(duì)每一個(gè)中獎(jiǎng)用戶進(jìn)行實(shí)時(shí)的規(guī)則校驗(yàn),防止規(guī)則編碼漏洞。小時(shí)離線對(duì)賬主要關(guān)注數(shù)量級(jí),防止運(yùn)營側(cè)的配置錯(cuò)誤導(dǎo)致獎(jiǎng)品的超發(fā)。
測(cè)試工具
????測(cè)試工具是面向測(cè)試同學(xué)的,需要解決兩個(gè)問題:第一能快速的構(gòu)造符合測(cè)試用例的用戶,第二:快速發(fā)現(xiàn)、定位、反饋問題。
????其中測(cè)試用例是依據(jù)運(yùn)營設(shè)置的營銷規(guī)則產(chǎn)生的,如果能靈活的給測(cè)試用戶添加或者跳過規(guī)則校驗(yàn)即可滿足測(cè)試同學(xué)的邀請(qǐng),本文采用的是白名單的方法去解決構(gòu)造用戶測(cè)試用例,當(dāng)用戶需要校驗(yàn)規(guī)則時(shí)添加到校驗(yàn)的白名單,當(dāng)用戶需要跳過校驗(yàn)時(shí)候則提交跳過的白名單,當(dāng)不添加白名單時(shí)走正常的業(yè)務(wù)校驗(yàn)邏輯。
????發(fā)現(xiàn)問題方案本文采用的是通過在服務(wù)中打異常日志并日志監(jiān)控系統(tǒng)完成,定位問題時(shí)日志打的越細(xì)越能快速的定位問題,但同時(shí)日志越細(xì)代表打的日志就越多,這對(duì)系統(tǒng)開銷又很大,所以如何做取舍是個(gè)關(guān)鍵的問題,本文在解決這個(gè)問題上,產(chǎn)出了詳細(xì)日志和粗略日志兩套日志方案,首先把整個(gè)抽獎(jiǎng)流程分為如下幾個(gè)步驟如下圖所示:
對(duì)于線上的正常用戶只需要打印最終成功日志和異常日志即可這里采用的是粗略日志,對(duì)于測(cè)試用戶打印每個(gè)步驟的詳細(xì)日志這里采用的是詳細(xì)日志。最終解決方案流程圖如下:
????首先測(cè)試用戶在調(diào)用抽獎(jiǎng)接口前,可以通過掃碼的方式加入白名單,在調(diào)用抽獎(jiǎng)接口的流程中進(jìn)行規(guī)則校驗(yàn)時(shí),會(huì)對(duì)該用戶進(jìn)行白名單校驗(yàn),白名單用戶是個(gè)復(fù)雜對(duì)象里面包含了是否校驗(yàn)各個(gè)規(guī)則,通過校驗(yàn)后最終調(diào)用抽獎(jiǎng)接口。同時(shí)利用Spring的AOP能力在調(diào)用抽獎(jiǎng)的每個(gè)階段都進(jìn)行日志的打印,在打印的時(shí)候先校驗(yàn)是否是白名單用戶,如果是白名單用戶則打印每個(gè)步驟的詳細(xì)入?yún)⒊鰠?#xff0c;如果是正常線上用戶則只需打印異常節(jié)點(diǎn)和最終的結(jié)果節(jié)點(diǎn)即可。為了提高校驗(yàn)白名單的性能,白名單用戶信息是存儲(chǔ)在內(nèi)存中的,多臺(tái)機(jī)器的白名單配置同步利用的是Diamond(外部zookeeper同樣具有該能力)。
業(yè)務(wù)效果
上面簡(jiǎn)單的介紹了整個(gè)系統(tǒng)的業(yè)務(wù)架構(gòu)和一些主要問題的解決方案,下面主要展示一下使用哆啦A夢(mèng)平臺(tái)承接的幾種玩法:
| 用戶通過任務(wù)列表頁到達(dá)具體任務(wù)頁面,完成任務(wù)后就可以得到對(duì)應(yīng)的獎(jiǎng)勵(lì),在閑魚的閑魚幣場(chǎng)景就使用了這種玩法模式,通過完成任務(wù)獲取閑魚幣 | 運(yùn)營營造兩個(gè)隊(duì)伍,讓用戶分別支持各自的隊(duì)伍,哪個(gè)隊(duì)伍勝利,哪個(gè)隊(duì)伍就會(huì)獲取對(duì)應(yīng)的獎(jiǎng)勵(lì),在高達(dá)跑活動(dòng)中使用的就是該玩法 | 用戶通過任務(wù)積累抽獎(jiǎng)次數(shù),然后進(jìn)行抽獎(jiǎng),在二次元活動(dòng)中使用的就是該玩法 |
玩法平臺(tái)持續(xù)探索
????本文通過對(duì)日常營銷活動(dòng)中遇到的問題進(jìn)行整理,針對(duì)這些問題提出相應(yīng)的解法,進(jìn)而形成一個(gè)業(yè)務(wù)側(cè)的玩法平臺(tái)。限于篇幅限制本文主要介紹了系統(tǒng)的整體架構(gòu)和幾個(gè)重點(diǎn)解決的問題,對(duì)于系統(tǒng)中沉淀出的玩法、測(cè)試工具的實(shí)現(xiàn)細(xì)節(jié)、安全體系單獨(dú)進(jìn)行分享。后面規(guī)劃中期望可以把玩法和玩法平臺(tái)解耦開,作為一種玩法能力對(duì)外輸出。
原文鏈接:https://developer.aliyun.com/article/775991?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的闲鱼把各种玩法做成了一个平台:哆啦A梦的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁王旭:开源协作如何提升业界的安全?
- 下一篇: Git2.29让Git成功“牵 手”Ge