一站式值班运营功能线上化实践
在一个大型复杂系统,新来的小伙伴刚接触值班时,对于一些不可避免的Data Correction支持工作,上手还是有不少成本,难度也较高。一方面是业务流程复杂,需要先理清场景和数据走向,梳理底层涉及的库表结构;另一方面,Data Correction可能不仅仅是单个表的update,还可能涉及多个表数据的状态一致性,多应用数据的联动一致性,倘若漏了其中一部分,则整体不闭环,可能会引发新的问题。有些复杂的场景下,不仅仅是简单库表的refresh,还涉及复杂的计算和分支判断,对下游进行调用回传等。
对于老手来说,虽然上手难度没那么高,但Data Correction支持工作也可能会有误操作或漏操作情况。
在此情况下,便催生一个想法:建设一个按场景集成Data Correction Tool的线上化User Interface界面化功能入口,并使用XBP审批流程进行规范化,多人Double Check,尽量规避潜在风险点。
方案
借助XBP(京东内部可配置化流程工单管理平台)流程功能,实现线上化系统运维小助手,提高值班效率,降低运营压力。
通过XBP功能,使得线上运维更加规范化、功能化,简单易用。
功能落地
运营功能规划
XBP流程规划
确认表单内容
识别每个场景所需要的字段,相同含义的字段在不同场景之间可以复用。
多场景字段复用
除了表单的文本填写,还支持EXCEL的上传。对于批量数据处理,EXCEL对于文件的加工和处理比较方便。
表单提交时将EXCEL上传云存储,生成对应的url,消费者解析url从云存储中解析到文件内容,进行批量处理。
按场景展示表单字段
通过字段显隐规则,将不同场景所需要的字段显示出来,不需要的字段隐藏不显示。
不同的处理类型,展示的必要字段不同,只展示必要的字段出来。
审批消息的监听处理
UML diagram
不同的处理类型,对应着单独的处理器。
例如,释放库存预占类型,对应着 ReleaseStockExecutor。
Coding
考虑到MQ消息的重复消费,需要做并发防重和幂等性支持。
利用分布式锁进行相同消息的防并发校验。
根据审批单号(XBP单号)生产相对稳定的UUID,处理成功的UUID会以操作流水的方式存储到数据库中,利用UUID和处理流水数据进行幂等防重。
表单数据的填写内容校验和通知提示。
利用JSF泛化调用,支持多集群处理。
处理结果无论成功还是失败,都通过消息通知给申请人。
审批失败的监控告警。
使用案例
功能使用
审批效果
消息通知
自动执行完成后,执行成功的消息通知
自动执行失败的消息通知
推荐阅读
从零开始的大模型之旅|解码大模型:技术篇1.2-训练技术概念