写点什么

阿里工程师带你了解 B 端垂类营销中心如何设计?

2020 年 3 月 16 日

阿里工程师带你了解 B 端垂类营销中心如何设计?

云智是阿里影业旗下的影院数字化经营管理开放平台,主要负责影院管理及影票卖品的售卖。本文以云智营销中心为例,为您揭秘 B 端垂类营销中心的高复用性、强扩展性的技术架构内幕。


一、架构设计方向

1. 营销中心设计


在业务架构设计上,将玩法通用特性进行抽象,实现营销业务和规则能力分离,静态管理和动态运行分离,营销中心可划分为能力平台和业务平台两大部分,如图 1 所示:


1)业务平台:负责营销工具生命周期的维护、资产管理和其他各种业务场景的实现;


2)能力平台:负责规则数据的标准化和规则关系的配置,将能力进行领域划分。



图 1 营销中心业务架构图


在系统架构设计上,业务平台按照业务管理视角组织数据,能力平台按照规则运行视角进行领域规划和服务暴露,如图 2 所示:


1)业务平台把业务规则按照能力平台定义出的规则模型标准化,将规则数据同步到数据库中,通过标准化定义,实现规则祛业务化;


2)能力平台对外统一暴露服务,并在优惠域进行统一参数组装,并根据对应的业务身份执行不同的脚本引擎,进而调用不同的领域服务,同时能力平台针对规则数据按照其作用范围进行领域划分,例如:负责计算的价格域、负责过滤的规则域等,针对不同工具特有规则由其对应产品扩展点实现。



图 2 营销中心系统架构图


2. 营销中心解决了那些问题?


B 端营销具有工具多,玩法复杂的特点。垂直业务上可以分为如卡、券、积分等超过 10 种营销工具,每一种工具包含立减、打折等超过 7 类玩法,每一类玩法会在不同的工具中有差异化。因此,在传统的设计思路下就会出现“烟囱式”的建设模式,如图 3 所示:



图 3 传统系统建设模式


这种“面向业务”的“烟囱式”建设方式会对业务和系统带来三大弊端:


1)重复功能建设和维护带来的重复投资。单单从开发和运维两方面成本投入的角度,对于业务都是一种显性的成本和资源浪费;


2)打通“烟囱式”系统间交互的集成和协作成本高昂。随着营销业务的发展,各“烟囱”之间不得不开始打通,涉及到大量的协同和开发成本;


3)不利于业务沉淀和持续发展。受限于之前服务设计时的通用性和业务前瞻性不足,业务领域的数据和业务被打散到不同的系统中,这样无法满足业务快速响应和模式创新的需求,同时无法从更高维度上去观察和设计整个领域。


传统建设模式的主要问题是将业务和玩法规则混杂在一起,使得玩法规则和业务耦合极强,进而导致系统复用性低,可扩展性弱。营销中心充分针对这些问题,在架构设计和结构分层上,实现了高复用性和强扩展性。


二、如何实现高复用性

营销中心在面对大量带有业务特性的数据时,主要通过模型标准化,通用领域服务平台化,平台能力自进化三种方式实现高复用性:


1)模型标准化:通过标准定义规则描述、统一计算模型,实现底层能力和逻辑祛业务化,将所有规则及商品数据按照标准模型进行重塑,即将各业务规则按照其本质拆解为条件 &动作的映射,不同类型商品按照标准模型转换,如图 4 所示;


2)通用领域服务平台化:在领域服务能力实现过程中,将通用常见的能力抽象为平台能力,如果业务玩法没有特殊设置,则可以快速复用默认的平台能力。例如打折玩法,平台将四舍五入作为默认能力,新的业务接入时可以直接使用平台提供的打折能力,无需二次开发;


3)平台能力自进化:当扩展点能力逐渐被更多业务使用时,可以将扩展点能力上升为平台通用能力,实现平台能力等级动态调整,满足业务对通用能力变化的要求,进而加强营销中心的复用性。



图 3 模型标准化示意图


三、如何实现强扩展性

营销中心的能力平台需要满足各种特性的业务玩法接入,所以在设计上我们通过产品扩展包和流程编排的方式实现强扩展性:


1)产品扩展包:当平台提供的默认能力无法满足业务需求时,则由相应的产品扩展包来扩展实现。例如打折玩法,平台将四舍五入作为默认能力,但是在折扣券业务中,要求打折后取整,平台将这类玩法的特殊处理逻辑在折扣券扩展包中实现,当折扣券计算时,平台通过工具标识,将请求路由到对应的扩展点执行相应的特殊逻辑,从而解决规则的定制化问题。图 5 为营销中心能力平台调用流程图;



图 5 能力平台调用流程图


2)流程编排,通过流程编排的方式,达到允许业务按照场景进行自定义功能选择的效果,实现用户自定义需要。能力平台的流程编排引擎采用 QLExpress 技术,如图 6 所示。



图 6 流程调度域服务示意图


四、总结

云智营销域从“烟囱式”架构演进成“平台化“架构,主要参考了 TMF 框架的分层、领域划分思想,使用 QLExpress 脚本引擎实现服务编排和服务调度。


在架构选型时,与 TMF 同类框架的还有 NBF 框架,相比之下,TMF 更重视业务抽象,但 TMF 中有一些分层是 B 端营销业务不需要的,所以营销中心参考 TMF 的设计思想,形成了适用于 B 端营销的 BEF 框架,上文所述的解决方案都是 BEF 的一部分。在 BEF 落地过程中,对优惠计算模型和规则模型进行了抽象,以满足对业务对象的需要。因此抽象成为了平台化的关键所在,抽象程度决定平台深度。


在流程引擎选择上,QLExpress 同类技术还有 Drools,但虑到 QLExpress 较 Drools 在性能方面有明显优势,可读性较强,开发门槛较低,营销中心最终采用了 QLExpress。


作者介绍


阿里文娱 B 端技术专家 和同


相关阅读


电影垂直行业的云智开放平台如何炼成?


2020 年 3 月 16 日 10:002066

评论

发布
暂无评论
发现更多内容

够屌!看完“大牛程序员必修16课”足足让你超越80%Java面试者!赶紧冲!

比伯

Java 编程 程序员 架构 面试

架构师系列11 微服务架构的思考

桃花原记

多线程之信号量(By C++)

赖猫

c++ 多线程

架构师训练营大作业1

邓昀垚

微服务:服务本身的设计、维护以及治理

积极&丧

美团五面+滴滴四面,复盘总结117道面试题,大厂套路展露无遗

Java架构之路

Java 程序员 架构 面试 编程语言

别找了,这份PDF是目前Java程序员最全面的学习文档,没有之一

Java架构之路

Java 程序员 架构 面试 编程语言

四面美团大众点评归来,分享一下我总结的面试题及解析:并发+spring+分布式+jvm+缓存+数据库

Java架构之路

Java 程序员 架构 面试 编程语言

一周信创舆情观察(12.14~12.20)

统小信uos

普本开发三年,每天两小时面试备战,2个月后五面阿里定级P7

Java架构之路

Java 程序员 架构 面试 编程语言

今天,我们为什么应该读懂华为人工智能?

脑极体

【Java入门】Array

HQ数字卡

Java 七日更

2020 年美国程序员收入报告出炉,字节跳动上榜

多颗糖

程序员 招聘

“关灯”看这出戏,依旧是百年至美

脑极体

skynet源码分析之网络层—Lua层

赖猫

c++ lua skynet

真香~~看完看阿里P8大牛手写的450页文档总结,我精通Java并发编程了

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第五周作业

Geek_xq

乘百度AI之风,媒体从业者们这样登上智能云端

脑极体

TypeScript | 第五章:高级类型

梁龙先森

typescript 前端 七日更

图解HTTP权威指南(二)| 连接管理

李先生

运维 HTTP SRE TCP/IP

GitHub标星78.9K的算法宝典,让你分分钟刷爆LeetCode,更有“左神”精讲视频加持,金三银四offer手到擒来

云流

程序员 面试 算法 架构师

python3参考秘籍-附PDF下载

程序那些事

Python 程序那些事 Python秘籍 Python数据分析

刨根问底,kafka到底会不会丢消息

爱笑的架构师

kafka 消息队列 Kafka知识点 消息中间件 七日更

花火交易所系统APP软件开发

开發I852946OIIO

系统开发

Hystrix-技术专题-基础运作原理

李浩宇/Alex

领域驱动落地实现

星际行者

DDD 领域驱动

刘华:戏说Docker和K8s,一文让你成为懂王

刘华Kenneth

Docker 云计算 Kubernetes DevOps k8s

关于自己的一个梦(控制)

Yuchen

情绪控制 心理 个人 控制感 自我思考

Java异常处理的9个最佳实践,看看自己是不是都用过?

geekymv

Java 异常处理

游戏自动化测试——局内战斗

行者AI

测试

架构师训练营第五周总结

Geek_xq

阿里工程师带你了解 B 端垂类营销中心如何设计?-InfoQ