如何构建营销活动平台(三):活动平台扩展性演进

大兔子大兔子 提交于 2019-11-27 09:57:16

前言

经过了几个月的努力,初步建立了营销平台,也承载了几个营销活动。但是也存在规划工作不充分,
代码层面要求未规范,导致后续的营销活动策划,设计,管理,开发出现了一系列的问题,包括不能快速迭代接入
新的营销活动,不能及时响应运营和市场的节奏

一期应用搭建完成接入第一个活动之后,对于规范这块要求松懈,同时由于多个项目时间排期周期赶,
多人撸代码风格不一致,导致了一系列的技术债。所谓就是先污染后治理,经过这样的经验教训之后,也总结
了几点避免类似的情况再度发生:

1.承担应用OWNER职责,制定应用开发规范,对于包规范和通用概念先行制定好规则

2.架构评审和代码REVIEW要抓牢

目标

营销活动业务的难点

(一) 活动开发的复杂性

  • 开发一个活动本身需要一定的工作量。尤其是大型的推广活动,这类型的活动对功能和性能的要求比较高

  • 活动功能众多,包括新人注册,邀请分享,红包,砍价,支付等,这些不同的参与和表现形式,也会涉及更多的后端接口通信和联调

  • 还有一个非常重要的问题,就是活动运营的安全和可靠性。因为,我们的活动,大多涉及金额,对安全风控要求很高。

(2)开发成本

  • 传统手工开发模式,普通活动也需要1周的开发周期,而典型大型活动更是需要3-4周开发周期,开发和测试工作量繁重

  • 后续如果针对节假日某些爆点营销,时间要求更紧张

希望解决的问题

  • 组件化,产品模块解耦
  • 扩展性不够强,对于不同形式的营销活动兼容性不够
  • 建设高效活动开发模式,构建一套开发规范
  • 保证营销活动的安全
  • 代码规范,类属性命名统一化,包命名规范化,异常管理,日志规范化打印

准备做

  • 规范营销体系架构,清晰每个产品再营销体系中的定位与关系
  • 在设计新的营销活动运行和管理平台时,充分考虑各种营销活动的共性,在同一活动流程,明确活动要素的前提性,尽可能实现营销活动的配置化开发和管理。减少营销活动的开发成本,快速响应市场运营的各种活动需求

活动平台架构介绍

活动平台架构图

构建高效活动运营开发模式

1.组件化

活动平台组件化

分层、复用、简化,做到活动功能组件配置组合使用

  • 统一路由组件:请求路由分发,全局异常捕获,日志打印
  • 配置活动解析引擎:不同类型的活动配置组装,关联规则集合和动作集合
  • 安全中心:风险控制,黑白名单
  • 规则引擎:规则执行检验器
  • 后台管理:运营活动设置
  • Rule条件集合:渠道状态规则,活动时间规则,活动状态规则,活动人群规则,参与次数规则等等
  • Action动作集合:发放红包,记录参与记录,通知用户等等
  • 奖励组件:红包发放
  • 通知组件:PUSH通知,短信提醒等等触达方式
  • 统计组件:数据埋点,活动效果
  • util:工具

2.核心UML图

核心UML图

核心类介绍

  • ActivityRequest:活动请求对象,所有的活动请求类都需要实现该接口
  • ActivityResponse:活动响应对象,所有活动响应对象都需要实现该接口
  • ActivityDTO:活动数据传输对象,包括活动配置,以及一些中间处理传输数据,每个活动都需要定义各自的DTO,实现该接口
  • CommonFactory:bean工厂,内部类Container作为Bean容器,存放活动相关的处理类。
  • ActivityDispatch:活动路由分发,统一的路由服务,请求主入口
  • IActivityDTOParser:ActivityDTO的解析器,主要完成DTO的组装
  • IActivityHandler:活动处理器,根据不同的FunctionCode自行定义内部方法,对应不同的FunctionCode可以派生多个子类,子类内部可以抽象定义一套模板方法,具体交由各个活动自行实现
  • IActivityResponseParser:活动响应对象解析器,主要完成Response的组装

FunctionCode 抽象流程

ACTIVITY_PARTICIPATE
参与活动
对于后续可能扩展的功能,定义好一个FunctionCode,分析功能抽象出对应的模板方法,交由子类具体实现

3.服务治理

3.1 dubbo

  • sentines接入:不被别人搞死
  • 集群容错
  • 设置调用超时时间

3.2 解耦,减少系统依赖的服务

  • 减少跟其它分布式应用的依赖

3.3 业务降级

  • 核心业务链路调用非核心服务,try catch降级,设置超时返回,转化为异步处理

3.4 监控告警

  • kibana
  • 日志监控(邮件、短信)
  • 分布式链路追踪
  • falcon
  • zabbix

后期规划

1、设计一套日志埋点组件,专门用于活动埋点统计

2、产品层面上活动运营配置化,管理后台设计,支持组合搭配,快速响应运营需求

3、安全中心建设,支持多种风控规则

有兴趣的同学可以直接去github上面下载源码哦,https://github.com/caisl/activity-platform.git

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!