雲智是阿里影業旗下的影院數位化經營管理開放平台,主要負責影院管理及影票賣品的售賣。本文以雲智營銷中心為例,為您揭秘 b 端垂類營銷中心的高復用性、強擴充套件性的技術架構內幕。
1. 營銷中心設計
在業務架構設計上,將玩法通用特性進行抽象,實現營銷業務和規則能力分離,靜態管理和動態執行分離,營銷中心可劃分為能力平台和業務平台兩大部分,如圖 1 所示:
1)業務平台:負責營銷工具生命週期的維護、資產管理和其他各種業務場景的實現;
2)能力平台:負責規則資料的標準化和規則關係的配置,將能力進行領域劃分。
在系統架構設計上,業務平台按照業務管理視角組織資料,能力平台按照規則執行視角進行領域規劃和服務暴露,如圖 2 所示:
1)業務平台把業務規則按照能力平台定義出的規則模型標準化,將規則資料同步到資料庫中,通過標準化定義,實現規則祛業務化;
2)能力平台對外統一暴露服務,並在優惠域進行統一引數組裝,並根據對應的業務身份執行不同的指令碼引擎,進而呼叫不同的領域服務,同時能力平台針對規則資料按照其作用範圍進行領域劃分,例如:負責計算的**域、負責過濾的規則域等,針對不同工具特有規則由其對應產品擴充套件點實現。
2. 營銷中心解決了那些問題?
b 端營銷具有工具多,玩法複雜的特點。垂直業務上可以分為如卡、券、積分等超過 10 種營銷工具,每一種工具包含立減、打折等超過 7 類玩法,每一類玩法會在不同的工具中有差異化。因此,在傳統的設計思路下就會出現「煙囪式」的建設模式,如圖 3 所示:
這種「面向業務」的「煙囪式」建設方式會對業務和系統帶來三大弊端:
1)重複功能建設和維護帶來的重複投資。單單從開發和運維兩方面成本投入的角度,對於業務都是一種顯性的成本和資源浪費;
2)打通「煙囪式」系統間互動的整合和協作成本高昂。隨著營銷業務的發展,各「煙囪」之間不得不開始打通,涉及到大量的協同和開發成本;
3)不利於業務沉澱和持續發展。受限於之前服務設計時的通用性和業務前瞻性不足,業務領域的資料和業務被打散到不同的系統中,這樣無法滿足業務快速響應和模式創新的需求,同時無法從更高維度上去觀察和設計整個領域。
傳統建設模式的主要問題是將業務和玩法規則混雜在一起,使得玩法規則和業務耦合極強,進而導致系統復用性低,可擴充套件性弱。營銷中心充分針對這些問題,在架構設計和結構分層上,實現了高復用性和強擴充套件性。
營銷中心在面對大量帶有業務特性的資料時,主要通過模型標準化,通用領域服務平台化,平台能力自進化三種方式實現高復用性:
1)模型標準化:通過標準定義規則描述、統一計算模型,實現底層能力和邏輯祛業務化,將所有規則及商品資料按照標準模型進行重塑,即將各業務規則按照其本質拆解為條件 & 動作的對映,不同型別商品按照標準模型轉換,如圖 4 所示;
2)通用領域服務平台化:在領域服務能力實現過程中,將通用常見的能力抽象為平台能力,如果業務玩法沒有特殊設定,則可以快速復用預設的平台能力。例如打折玩法,平台將四捨五入作為預設能力,新的業務接入時可以直接使用平台提供的打折能力,無需二次開發;
營銷中心的能力平台需要滿足各種特性的業務玩法接入,所以在設計上我們通過產品擴充套件包和流程編排的方式實現強擴充套件性:
1)產品擴充套件包:當平台提供的預設能力無法滿足業務需求時,則由相應的產品擴充套件包來擴充套件實現。例如打折玩法,平台將四捨五入作為預設能力,但是在折扣券業務中,要求打折後取整,平台將這類玩法的特殊處理邏輯在折扣券擴充套件包中實現,當折扣券計算時,平台通過工具標識,將請求路由到對應的擴充套件點執行相應的特殊邏輯,從而解決規則的定製化問題。圖 5 為營銷中心能力平台呼叫流程圖;
2)流程編排,通過流程編排的方式,達到允許業務按照場景進行自定義功能選擇的效果,實現使用者自定義需要。能力平台的流程編排引擎採用 qlexpress 技術,如圖 6 所示。
雲智營銷域從「煙囪式」架構演進成「平台化「架構,主要參考了 tmf 框架的分層、領域劃分思想,使用 qlexpress 指令碼引擎實現服務編排和服務排程。
在架構選型時,與 tmf 同類框架的還有 nbf 框架,相比之下,tmf 更重視業務抽象,但 tmf 中有一些分層是 b 端營銷業務不需要的,所以營銷中心參考 tmf 的設計思想,形成了適用於 b 端營銷的 bef 框架,上文所述的解決方案都是 bef 的一部分。在 bef 落地過程中,對優惠計算模型和規則模型進行了抽象,以滿足對業務物件的需要。因此抽象成為了平台化的關鍵所在,抽象程度決定平台深度。
在流程引擎選擇上,qlexpress 同類技術還有 drools,但慮到 qlexpress 較 drools 在效能方面有明顯優勢,可讀性較強,開發門檻較低,營銷中心最終採用了 qlexpress。
作者介紹:
阿里文娛 b 端技術專家 和同
阿里演算法工程師招聘
崗位要求 qualifications 1 本科以上學歷 碩士博士優先。具有很強的邏輯分析能力,對資料敏感。2 具有一定的資料建模實踐經驗,紮實的程式設計基礎,精通至少一門程式語言。熟悉r語言優先。3 熟悉常用機器學習演算法,對資訊檢索 自然語言處理 影象處理 語音處理等相關領域的應用問題有大量實踐...
前端工程師應該了解的演算法
程式 資料結構 演算法,演算法是真的不重要嗎?單頁應用 mvvm 框架 資料視覺化 地圖 遊戲,都要用到演算法,所以說我們前端工程師只是 身處其中而不自知 而已。第乙份工作是做多級聯動選擇器 終於寫了個純真 ip 庫卻被鄙視 我常來面試別人的題目 eventbus 實現 面掛經驗 lru cache...
工程導論 1 2 3章「關於工程師的初步了解」
1 從古至今如何定義乙個如何定義工程這個概念詞?2 如何了解工程與科學發展的關係?圍繞這三個問題來解決工程師這個概念。問題一 什麼是工程?正如課本的第一頁的第一句話說到 工程的歷史是人類適應自然,改造自然的歷史 在歷史的推演過程中,會遇到自然災害或人為災害的影響,人們在創造預防措施的過程,創造措施的...