乐趣区

关于技术:资损防控技术体系简介及实践

1 资损防控介绍

得物提供大量商品交易等服务,资金流转量大,任何因为设计缺点、零碎缺点、系统故障、人为操作、安全漏洞等因素都会引发间接或间接资金损失。资损防控就是在我的项目全生命周期内,引入多种资金剖析和管制伎俩,预防资损故障或管制资损故障影响范畴。

那么在日常工作中,具体如何发展呢?次要能够从以下三个方面来做:

1.1 机制流程建设

在业务我的项目开始时,咱们应该评定我的项目资金危险等级,比方高风险须要重点关注 & 投入,中危险须要投入多少资源,低危险又如何保障。

在我的项目资金危险评定后,产品架构设计时须要包含技术危险设计,比方幂等、分布式数据一致性、异地多活等。

而后对于高资金危险我的项目,咱们须要出专门的资金危险系分,在得物重点关注资金流、信息流以及物流的流转,比方业务的高保链路是怎么样的,有哪些资损危险点等。

接下来就是对输入的资损危险点进行布防,布防的模式次要是核查和监控,核查为主,监控作为兜底,因为后面输入的资损危险点可能会有脱漏,监控是业务异样的感知伎俩。日常咱们也能够通过混沌工程进行危险开掘 & 核查规定验证。

最初咱们需对资损危险告警进行应急,拉起应急小组排查确认危险并修复。

1.2 人员阵型建设

资损防控并不是靠某一个角色来承当,而是须要架构、研发、品质和 SRE 一起来防控并嵌入日常工作流程中,从组织架构视角,咱们须要建设至多三道防线,即研发防线,品质防线和 SRE 防线,互相兜底,合并共举达到资损防控的目标。当然各角色在我的项目各个阶段各有偏重,比方 SRE 负责业务线上稳定性,那么线上的资损防控投入绝对大一些。

1.3 多体系防控

从发现资损危险时效视角来说,能够分为实时核查(T+0)、近实时核查(T+M)、离线核查 (T+H, T+1),每种核查形式都有其适配的业务场景,并不存在代替之说,比方不落库的配置变更实用实时核查,业务定时工作实用离线核查等等。理论业务场景布防时需剖析业务特点,而后再应用适合的核查体系工具。在组织分工方面,研发偏重离线核查,测试偏重近实时核查,SRE 偏重实时核查,当然理论工作中并不用这么界限明显,本人看到的危险点,能够选用适合的工具体系。

从核查是否影响业务运行视角看,能够分为旁路核查和主路核查,旁路核查的后果对业务运行不形成影响,仅仅是危险揭示,而主路核查是有能力影响业务运行的,比方资损熔断用的就是主路核查技术,在核查告警报出后中断业务运行。目前公司已有的 A、B 平台都属于旁路核查体系。

在布防核查规定后,咱们怎么测验布防的有效性,同时因为业务迭代倒退,早前布防的核查规定须要调整核查逻辑来适配新的业务逻辑,也就是说咱们如何保鲜核查规定?这就须要混沌工程资损演练来撑持了。资损演练又分为有损演练和无损演练,比方在线上搞有损演练时常常把金额数据加 / 减 0.01,测验布防的核查规定是否发现,这样即便产生了理论资损也在演练估算能够笼罩的范畴内,但在线上搞有损演练需谨慎评估影响范畴。资损防控无损演练关键在于生产库的克隆,这样在演练时做数据篡改并不影响线上业务运行。

2 资损防控技术体系

咱们在做资损防控时,最重要的一步是危险辨认,它是资损核查布防的源头,能够这么说,如果没有危险辨认就没有接下来核查布防。危险辨认能够通过人工剖析和智能零碎推导两种形式失去,从建设倒退阶段来说,人工剖析通常是最开始采纳的形式,在这个根底上,再通过算法推导 + 专家教训倒退出智能零碎推导。上面依人工剖析视角来开展,这里举例一个简化版得物零碎的资损防控如何做。如下图所示,右边为商品交易业务链路,其中包含用户下单交易和经营配置商品:

因为交易平台落有订单交易的金额和状态,而汇金平台对接各领取渠道,是领取的理论执行者,这里就存在上下游订单金额、状态的一致性危险。

如用户购买的商品在加入营销流动,交易平台会查问商品经营平台具体流动逻辑,比方营销流动的估算、优惠券应用的限次逻辑,这里可能存在流动估算、优惠券应用的业务型危险。

经营人员配置某次营销流动,在圈品、价格等要害参数上呈现错配、漏配等配置型危险。

下面所说的危险通常须要在剖析 PRD、技术实现文档或代码 CR 后能力辨认进去,接下来看看咱们如何进行布防。

2.1 T+1/T+ H 核查

在整个资金防控体系的演进过程中,离线核查应该说是业界最先倒退进去的核查伎俩,最后与很多银行一样,是靠人力做以后的金额跟全天总账的对账,之后通过主动的形式,将全量数据库表导出后做计算来进行核查。目前在得物次要是通过 ODPS 来实现 T +1、T+ H 离线核查,它的劣势是不影响业务生产库,并且因为是定时调度运行,所以对于业务定时工作等需较长时间数据回溯的场景比拟适配。

2.2 T+ M 核查

通过数据库 Binlog 能够实现分钟级的资损核查,这种核查形式对于业务上下游一致性危险有十分好的发现能力,日常配合混沌工程的无损演练能力,对于未笼罩到资损危险也能够很好的揭示进去,所以 T + M 核查实用于涉数据库字段的一致性危险、盖帽等业务场景。

2.3 T+ 0 核查

随着业务的倒退,对于资损核查也提出更高要求,咱们须要倒退出实时核查能力。比方能够通过业务插桩的形式来实现同步 / 异步触发,同时实时监听业务执行音讯,而后数据路由至具体业务域执行核查逻辑,这种核查形式属资损防控畛域的重武器,实用于业务型危险、配置型危险,同时满足简单业务核查场景。目前 SRE 曾经在建设 T + 0 实时核查零碎。

2.4 资损演练

资损演练能够验证布防的核查规定有效性,又能够用来开掘未笼罩到资损危险,所以资损演练是资损防控体系很重要的一环。资金无损演练有以下三个关键点:

资损防控落地的规定都是针对业务数据来执行的

资损防控无损演练的数据来自生产环境

无损演练数据与生产环境数据本质是隔离的

下图为初步的资金无损演练计划:

3 得物业务实际

作为反对得物业务的 SRE 主导了得物履约资金平安保障工作,因为得物履约的业务链路长,危险敞口大,咱们认真思考了业务稳定性及其资损危险并实际了前述的相干资损防控理念。

3.1 高保链路梳理

出价、下单、领取、发货、结算、营销、逆向 7 个业务域定义出高保业务链路,输入资损点、变更点、新增表及字段以及相干监控点。

3.2 工具选型

依靠现有工具平台进行布防,老本最优解。

3.3 规定布防

资损防控通过核查规定落地,同时业务监控配置告警规定,通过混沌工程演练验证规定有效性。

3.4 观测告警

a. 应急响应

b. 主动巡检

i. 每天主动巡检重要指标推送到对应的工作群

3.5 演练

a. 对相干规定进行保鲜

b. 未裸露危险开掘

3.6 实时核查体系建设

a. 业务插桩先旁路核查,后可阻断核查。

4 总结 & 瞻望

在得物落地资损防控期间,作为 SRE 始终在宣导的理念:资损防控须要研发、测试、SRE 三方相互协作,三道防线互相兜底,合并共举达到资损防控的指标。将来,资损防控咱们重点关注以下 3 个方面:

危险剖析 – 目前咱们次要还是基于专家教训,后续咱们将通过数据染色,血统剖析,做到自动化的危险输入。

多体系防控 – 欠缺资损防控体系建设,形象通用防控能力与可扩大的精细化防控能力,做到核查工具体系与业务场景相适配。

资损演练 – 在大规模的业务体系之下,纯靠人去做攻打,其实是不太事实的,必须得靠智能化、数据化的形式去驱动。同一个故障,咱们让它在成千盈百个零碎下面去重放,这样咱们就能够十分高效地去实现大规模危险的开掘,验证危险防控规定的有效性以及已布防规定的保鲜。

* 文 / Yuerong

本文属得物技术原创,更多精彩文章请看:得物技术官网

未经得物技术许可严禁转载,否则依法追究法律责任!

退出移动版