趁着过年几天,在简书上把之前做过的“业务安全系统”简单梳理一下。
对于一个互联网公司而言,业务发展的不同阶段,对“业务安全”有着不同的目标和需求。自己已经在互联网物流行业(车货匹配)走过了近2年的时间,车货匹配对“业务安全”的目标和需求可以简单概括为:
1. 从业务功能角度
- 保障核心业务安全
“货主发货、司机找货”的场景中,货主发布的货源信息,司机的期望是拉货的需求真实的,信息的内容是规范的(不含敏感词等);而货主的期望是承接运单的司机是真实的,可靠的,有真正拉货需求的,从而保障交易
“反机器人爬货、恶意骚扰”的场景中,系统可以识别是机器人在对平台进行浏览货源信息,并进行屏蔽、蜜罐;
“司机与货主投诉”的场景中,提供接口让用户对货源交易中的不公平、不公正情况进行投诉,并离线分析投诉的可靠性、真实性
- 保障运营活动安全
“车货匹配的业务运营活动”场景中,有过“发多少次货”送“多少”积分、拨打“某类”货源送多少“积分”等。因此,防止“薅羊毛”也是一个很重要的需求
2. 从系统架构角度
- 业务安全系统需要是独立的,可降级的(在线的生产系统部分)。核心车货匹配系统(优化排序服务、搜索服务、货源服务等)与业务安全系统有着接口调用的耦合度,因此为了保障核心系统可靠,业务安全系统需要集成到统一的RPC管理框架及应用配置管理系统中,以实现统一的熔断、限流及业务/系统开关控制
- 业务安全系统需要有汇聚“业务安全”相关的各类大数据,围绕大数据存储系统,之上构建一套集抽取、转换,分析的系统及报表系统(离线的系统),可以让数据分析师、产品经理追溯数据(下钻、上卷等)。并可以离线地训练各类机器学习模型(增加、修改模型),对每个用户的行为数据进行事后离线甄别和事中的实时甄别
- “实时的甄别用户行为” 需要一套规则引擎,以达到产品经理可以随时根据离线学习的模型及业务规则进行线上规则改进,并且系统服务不重启
- 其他的诸如与用户中心系统对接、统一配置中心系统对接,就不赘述了。
再来说说业务安全系统的架构吧
先上张架构图
根据系统的调用场景,将系统服务分为“在线”的供核心系统实时调用的系统及“离线”的用户行为分析系统服务(其中,大数据实时计算平台和业务安全规则引擎服务完成事中的规则判定)
1. 在线部分
- 业务安全业务接口层,提供在用户发货、找货时判定用户是否属于某类嫌疑用户或者应该禁用的行为
- 业务安全惩罚中心服务,维护各类被惩罚、投诉的用户信息及惩罚配置
2. 离线部分
- 实时计算平台+业务安全指标转换与增强服务+业务安全规则匹配引擎,构成了离线的对用户行为指标实时统计及规则匹配的过程,离线(近实时的)对用户行为进行监测、惩罚
- 业务安全大数据分析平台,提供事后的用户行为数据分析,可以拓展各类模型,对用户行为进行学习分类。同时,对数据进行转换、聚合(构建用户行为数据维度的大宽表),供BI系统和指标监控系统分析读取。
~分割线~
今天先开个头,其实随着业务不断快速发展,业务安全系统也需要在信息校验、用户货源真实性鉴别、恶意行为识别等方面继续丰富和完善。后续有空继续对系统中的各个技术点进行总结。