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