實戰(zhàn)回顧:蘇寧金融營銷系統(tǒng)的重構之路

轉載字?聊聊架構?微信公眾號

蘇寧集團業(yè)務涉獵非常廣,主要包括:蘇寧易購,蘇寧金融,蘇寧體育,蘇寧文創(chuàng),蘇寧置業(yè),蘇寧門店等業(yè)務領域。本文所闡述的是從 2015 年至今,蘇寧金融營銷系統(tǒng)的發(fā)展歷程。蘇寧金融營銷系統(tǒng)不僅支撐了蘇寧金融營銷業(yè)務,也支撐了蘇寧易購,蘇寧體育,蘇寧門店等部分營銷業(yè)務。

一切源頭:業(yè)務發(fā)展

2015 年至今,為了適應蘇寧集團的發(fā)展,蘇寧金融營銷業(yè)務方陸續(xù)提出了很多目標。

可以總結為五大功能目標:

建立營銷活動全流程的閉環(huán)管控。

現(xiàn)有的滿減,立減,返券等促銷形式遠不夠,支持更多的營銷形式。

實現(xiàn)營銷活動數(shù)據(jù)可視化。

實現(xiàn)從活動申請、預算、結算、到效果評估的自動化。

與蘇寧易購,蘇寧體育,蘇寧門店等進行深度配合。

為了適應業(yè)務的發(fā)展,解決業(yè)務的需求,我們團隊開啟了蘇寧金融營銷系統(tǒng)重構之路。

混沌時代:蘇寧金融營銷系統(tǒng)架構 V1.0

2015 年,系統(tǒng)架構 V1.0 時代,蘇寧金融營銷系統(tǒng)包括:促銷服務、電子券服務、任務服務。

促銷服務:提供促銷活動查詢、扣減、管理、規(guī)則處理、活動配置等功能。

電子券服務:提供電子券管理、查詢、使用、退券、規(guī)則處理、活動配置等功能。

任務服務:提供判斷用戶是否滿足任務的規(guī)則,且事后發(fā)放營銷福利的功能。

經(jīng)過梳理上述系統(tǒng)的上下文,應用架構,核心功能。針對架構方面分析出如下問題:

1. 職責不清晰。

當時系統(tǒng)架構,電子券服務與促銷服務,互相調用,兩者的上下游系統(tǒng)基本一致。其實電子券服務和促銷服務都是一種營銷“實體”,它們只需要具備“實體”管理的基本功能,而且相對獨立,各自為政。

2. 缺乏統(tǒng)一的活動管理。

當時系統(tǒng)架構,電子券服務和促銷服務都包含活動管理和配置,并且分散管理。

這種情況下,無法滿足活動全流程閉環(huán)管控,活動申請、預算控制等需求。

3. 缺乏營銷數(shù)據(jù)分析。

當時系統(tǒng)架構,所有的營銷行為數(shù)據(jù)都未記錄,或者是分散記錄。

這種情況下,無法滿足營銷數(shù)據(jù)可視化,活動效果數(shù)據(jù)分析等需求。

規(guī)則引擎引發(fā)的“血案”。

規(guī)則引擎及規(guī)則資格校驗是一個計算資源消耗非常大的功能。營銷前臺、促銷服務、電子券、任務服務都包含此功能。隨著活動形式的持續(xù)增長,消耗的計算資源也持續(xù)上升。多個系統(tǒng)同時申請資源,導致資源的浪費。尤其是 818、1111 大促期間。資源申請需要與資源管理部進行博弈,有時會引發(fā)‘血案’。

大刀闊斧:蘇寧金融營銷系統(tǒng)架構 V2.0

對癥下藥

2015 年至今,針對系統(tǒng)架構問題,系統(tǒng)不斷的迭代,我們采用了很多針對性的解決方法。

1. 分工明確化。

電子券服務和促銷服務作為一種營銷“實體”,它們只需要具備“實體”管理的基本功能,而且相對獨立。在它們的上層抽出一個統(tǒng)一營銷服務,統(tǒng)一的對外服務。

2. 建設統(tǒng)一活動中心。

建設統(tǒng)一活動中心,包括:營銷活動管理、營銷活動審批、預算管控、促銷狀態(tài)管理、促銷結算等。滿足活動全流程閉環(huán)管控,活動申請、預算控制等需求。

3. 建設營銷數(shù)據(jù)中心。

建設營銷數(shù)據(jù)中心,包括:營銷行為數(shù)據(jù)都采集,存儲,分析,報表。滿足營銷數(shù)據(jù)可視化,活動效果數(shù)據(jù)分析等需求。

4. 拆分出規(guī)則引擎。

獨立的規(guī)則引擎系統(tǒng),承載上游所有促銷形式的規(guī)則計算,節(jié)省資源。

整體“藥方”

現(xiàn)在,蘇寧金融營銷系統(tǒng)架構 V2.0 時代,總體架構圖如下,蘇寧金融營銷系統(tǒng)以整體的形式一致對外服務,不再是“單干”。

圖 1:整體系統(tǒng)架構 V2.0

核心系統(tǒng)包括:營銷統(tǒng)一服務、促銷服務、電子券服務、任務服務、商品詳情頁促銷前置服務、營銷規(guī)則引擎、營銷規(guī)則資格校驗、營銷活動中心、營銷數(shù)據(jù)中心。

營銷統(tǒng)一服務:促銷查詢、扣減;電子券查詢、使用、退券等統(tǒng)一對外服務。

促銷服務:提供促銷活動查詢、扣減等功能。

電子券服務:提供電子券管理、查詢、使用、退券等功能。

任務服務:提供判斷用戶是否滿足任務的規(guī)則,且事后發(fā)放營銷福利的功能。

商品詳情頁促銷前置服務:應對流量較高的商品詳情頁、搜索等頁面提供的促銷查詢服務。

營銷規(guī)則引擎:提供促銷、電子券、任務等規(guī)則引擎處理服務

營銷規(guī)則資格校驗:提供促銷、電子券、任務等規(guī)則資格校驗服務

營銷活動中心:包括營銷活動管理、營銷活動審批、預算管控、促銷狀態(tài)管理、促銷結算、規(guī)則分發(fā)、促銷活動下發(fā)。

部分系統(tǒng)上下文如下:

圖 2:統(tǒng)一營銷服務系統(tǒng)上下文 V2.0

圖 3: 任務服務系統(tǒng)上下文 V2.0

圖 4: 商品詳情頁促銷前置服務系統(tǒng)上下文 V2.0

各個突破:解決問題的方法論

自蘇寧金融營銷系統(tǒng)建立以來,尤其是 2015 年開始至今,業(yè)務迅猛發(fā)展,團隊在實際系統(tǒng)運行過程中,遇到了不少麻煩,但我們的小伙伴堅忍不拔,各個突破,讓系統(tǒng)穩(wěn)定的度過每個大促節(jié)點。

1. 用戶流量上升,活動種類增加,導致規(guī)則引擎與資格校驗性能下降

2015 年,同一時間同時生效的營銷活動已經(jīng)接近 300 個。由于蘇寧集團業(yè)務復雜,涉及線上,線下。因此,業(yè)務的活動種類訴求會越來越多。另一方面,蘇寧金融與蘇寧易購合作之后,用戶訪問量爆發(fā)性增長,業(yè)務及產(chǎn)品層面上,越來越重視用戶體驗。

2015 年,蘇寧金融營銷系統(tǒng)架構 V1.0 時代,未對營銷場景做細致的區(qū)分,導致每次匹配相關規(guī)則是全量匹配,全量匹配結束后的資格校驗也是全量校驗,導致單人次請求后,系統(tǒng)過濾規(guī)則數(shù)據(jù)量較大,并且校驗次數(shù)增多,特別是大促中活動增加的情況,單次用戶請求,規(guī)則校驗平均需要執(zhí)行大約 1000 次以上方能匹配到用戶實際能夠享受的營銷活動信息。

圖 5:營銷活動規(guī)則校驗流程 V1.0

另外,規(guī)則引擎和資格校驗服務未獨立,促銷服務、電子券服務、任務服務只能不斷通過橫向擴容,提高系統(tǒng)并發(fā)能力。顯然這樣做,一方面資源浪費,另一方面當活動種類增加后,單機的計算耗時上升,橫向擴容能夠提升的并發(fā)能力有限。

現(xiàn)在,蘇寧金融營銷系統(tǒng)架構 V2.0 時代,統(tǒng)一活動中心配置營銷活動,且區(qū)分實時營銷、事后營銷(任務),同時區(qū)分線上活動、線下活動、全渠道活動。規(guī)則服務在接收營銷活動配置后根據(jù)相關配置來生成不同的規(guī)則文件,以此減少規(guī)則匹配中的數(shù)據(jù)量問題,并且根據(jù)不同類型和渠道分開存儲資格校驗數(shù)據(jù)。統(tǒng)一營銷服務和任務服務統(tǒng)一對外服務,請求數(shù)據(jù)區(qū)分系統(tǒng)、及區(qū)分線上、線下活動,降低規(guī)則匹配和資格校驗的復雜度。

當然在系統(tǒng)架構層面上,還有規(guī)則服務獨立。規(guī)則服務的資源擴容,完全根據(jù)規(guī)則的性能需求。

圖 6:營銷活動規(guī)則校驗流程 V2.0

2. 活動總數(shù)的校驗存在數(shù)據(jù)熱點問題

2016 年,蘇寧金融營銷系統(tǒng)架構 V1.0 時代,有些活動允許所有會員參與,但有總次數(shù)、金額限制。這種類型的活動,每次用戶請求必須校驗,為了避免數(shù)據(jù)不一致性,總次數(shù)、金額需要集中存儲,根據(jù) key= 活動 ID 存儲到某臺緩存設備,一旦活動訪問流量比較大,那么就會導致緩存熱點問題。還有些配置了月次數(shù)、金額;周次數(shù)、金額;日次數(shù)、金額的活動,均會出現(xiàn)緩存熱點問題。

現(xiàn)在,蘇寧金融營銷系統(tǒng)架構 V2.0 時代,緩存設備申請一主兩從多組方式,并且設置 slave 參與讀模式減少讀取熱點,而且通過類型及渠道的緩存分組,提高系統(tǒng)整體的緩存服務能力。

圖 7:數(shù)據(jù)熱點解決方案 V2.0

3. 面向會員的 6 個唯一資格校驗問題

2016 年,蘇寧金融營銷系統(tǒng)架構 V1.0 時代,參與營銷活動的會員的唯一校驗,活動參與次數(shù)限定到個人。手機號、帳號、設備、身份證、銀行卡、銀行綁定手機號。

針對此種校驗,單次請求數(shù)據(jù) 6 個唯一條件都需要一一進行判斷,這樣就對同一個活動增加了跟緩存交互次數(shù)。活動越多、應用跟緩存交互次數(shù)越多,耗時就越長,系統(tǒng)性能必然降低。同時為了保證相關唯一校驗的可靠性,系統(tǒng)在處理中還對唯一數(shù)據(jù)入庫處理,增加了系統(tǒng)負擔。

現(xiàn)在,系統(tǒng)架構 V2.0 時代,通過合并請求,同一個活動相關的唯一性查詢進行合并,減少跟緩存的請求次數(shù),且應用的緩存采用持久化策略。

4. 活動存儲數(shù)據(jù)已經(jīng)約 1 億

2017 年,蘇寧金融營銷系統(tǒng)架構 V1.0 時代,做了分表處理,由于營銷活動較多,用戶使用較多。促銷活動雖然做了歷史數(shù)據(jù)規(guī)整處理,但仍然存在單表數(shù)據(jù)量過大問題,導致對表操作產(chǎn)出性能瓶頸;尤其是撤銷支付功能。撤銷支付功能為了能取消用戶占用資格,還需要對用戶占用的資格數(shù)據(jù)進行回退,那么撤銷操作會涉及歷史表,而歷史表數(shù)據(jù)量非常大,已經(jīng)約 1 億,因此影響到整體的性能。

現(xiàn)在,蘇寧金融營銷系統(tǒng)架構 V2.0 時代,活動業(yè)務數(shù)據(jù)進行業(yè)務分庫分表操作(大約分為 10 個庫,約 2000 張表),通過這樣的分配減少單表數(shù)據(jù)量,提高數(shù)據(jù)庫并發(fā)處理能力。

圖 8:數(shù)據(jù)存儲分片方案 V2.0

底盤扎實:完善的基礎設施

2015 年至今,蘇寧金融營銷系統(tǒng)重構,居于微服務架構思路。對于微服務架構,有人認為是銀彈,有人認為是焦油坑。

認為是焦油坑的人,一般都陷入微服務架構的幾個坑,第一,服務數(shù)量太多,團結效率下降;第二,調用鏈路太長,性能下降;第三,調用鏈太長,問題定位困難;第四,沒有自動化支持,無法快速交付。總之,基礎設施不健全。

幸運的是,對于蘇寧金融團隊來說,微服務架構被認為是銀彈。這得歸功于蘇寧金融研發(fā)團隊小伙伴們,提供了完整的基礎設施,公共組件,基礎服務,中間件;解決了微服務的坑。

簡單介紹下蘇寧具備的微服務基礎設施:

自動化測試:蛙測

自動化部署(持續(xù)交付):蘇寧開放云

配置中心:SCM

接口框架: 魔客平臺

API 網(wǎng)關:金融一站式網(wǎng)關

服務發(fā)現(xiàn)、服務路由、服務容錯、服務調用:RSF

服務監(jiān)控:穆加、紫金大盤

服務跟蹤:穆加

服務安全:金融開放平臺

展望未來

2017 年 -2018 年初蘇寧提出了數(shù)據(jù)驅動經(jīng)營戰(zhàn)略。蘇寧金融營銷系統(tǒng)也沿著這個思路發(fā)展,規(guī)劃系統(tǒng)的發(fā)展方向,未來規(guī)劃包含:營銷流程全閉環(huán),營銷過程實時數(shù)據(jù),智能報表,營銷數(shù)據(jù)挖掘,營銷活動推薦,營銷活動預算自控。

圖 9 展望未來

作者介紹

王清平,蘇寧金融研發(fā)中心資深架構師,精通微服務架構模式,熟悉 Java 領域技術架構。在廣告、營銷、電商領域的技術研發(fā)、架構設計等方面擁有多年實戰(zhàn)經(jīng)驗,擅長提升系統(tǒng)的高可用,高性能,擴展性等能力。現(xiàn)在主要負責蘇寧金融會員及互聯(lián)網(wǎng)研發(fā)中心的應用架構與技術架構工作。

王海民,蘇寧金融研發(fā)中心高級技術經(jīng)理,主要負責蘇寧金融會員及互聯(lián)網(wǎng)研發(fā)中心的營銷部門工作。具有營銷、電商、支付、金融等相關領域 10 年以上工作經(jīng)歷;擅長互聯(lián)網(wǎng)產(chǎn)品服務端應用技術架構。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內(nèi)容