业务中台的职责思考

简介: 业务中台应该要沉淀什么样的能力?如何让需求收敛?如何让不了解你系统的人,能以较低的成本参与到你系统的共建?如何做到系统防腐?

前言

先做一下自我介绍,我是数字供应链事业部下面业财一体部门的一名后端开发。

目前负责的一个工作是升级改造付款执行组件。所谓付款执行就是将我们结算域计算出来的,应该给供应商结算的钱,打给供应商。简单的说就是设计一个打款中台。

因为一些历史原因,我们结算域有四套付款执行代码,分布在四个不同的系统中。因此经常一个功能在一个版本上线之后,另一个版本的付款执行想用得重新写一遍,因此功能复用性比较差,组件维护也比较复杂,得看四套代码才能把域内的付款执行hold起来。

运维了一段时间的付款执行组件,我经常会思考:业务中台到底要沉淀什么样的能力?

思考

作为业务中台,需求方太多了,跟着需求走的话完全没法收敛,但人力又是有限的,怎么样用有限的人力去维护无限的需求。

想要需求收敛,首先得版本归一。版本如果不归一,某一个版本的组件写的再好也没有用,因为需求方的链路不走你这个组件就没有任何复用性。但是版本归一是一个长期的,各个域联动归一的过程,事情太大,问题太多这里就不展开了。这里说说我们能做的,我们能做的就是写好自己的组件,等哪一天要归一时,你的组件拥有最强的兼容性,是最好的归一方。

这个兼容性就要求对业务流程有一个标准的抽象,使所有相关的业务都能在这个标准流程里面跑下去。

抽象出这个标准流程之后,就进入了实施层面。作为业务中台,需求肯定会很多,我们要尽量避免自己成为单点故障。因此系统设计时要让系统可扩展性强。这个可扩展性侧重点应该是扩展简单,能让一些不了解你系统的人,能够以较低的成本来参与到你系统的共建。同时你还得能对你的系统有一个比较强的品控,不要因为多人参与共建让你的系统代码迅速的腐化。

这么说可能太官方,举个生活中的例子吧。我不太会做饭,我老婆比较会做。一开始我老婆做饭,我等着饭菜端上桌。时间久了,她不乐意了,都是九年义务教育出来的,凭什么你这么秀。于是她开始慢慢的将一些洗菜、切菜、洗碗,这种是个人就能做的工作外包给我。渐渐的她又将一些焯水,油爆这些不会影响菜的口感的工作外包给我。她专注炒菜的流程,食材的放入顺序,调料的用量,火候的掌控。这样我们两个人都有了清晰的分工,同时又不影响菜品的质量,而且也减少了家庭矛盾。

我觉得这个过程是中台演进的一种思路,软件的协作方式其实跟人的协作方式是相通的。作为一个业务中台,我们应该沉淀的就是食材的放入顺序,调料的用量,火候的掌控,这些做好了一道菜的品质就不会有大的问题。像洗菜、切菜、洗碗、焯水、油爆这些工作,定好标准,外包出去就好。

设计

付款执行系统整体设计

 

98e59b573c089e3e55219b2367490db7.png

上图是我的付款执行系统的整体设计,可以看到此系统通过hsf接收付款单,通过系统的一通处理,把钱正确的付出去。然后将付款单状态变更发到消息中间件,关心付款单状态变更的系统订阅相应的topic。这样整个付款系统与其它系统完全解耦。

可以看出,此系统开放了四个spi:

1、查询打款账户spi               3、打款渠道spi

2、打款批次生成spi               4、打款控制spi

这四个spi解决了给谁打钱,以什么聚合方式打钱,用什么渠道打钱,控制哪些单子不打

这个是付款组件里面会变的东西,因此将其以spi的方式将其扩展出去,可外包给行业特种兵实现,达到共建的目的。而且这些spi由我定义好入参出参,特种兵可根据我定义的标准去实现接口,沉淀能力的同时,不会对我的整体流程造成冲击。

付款执行流程

提交打款

 

 

1cbf939273ff392d32727ac34e96cd82.png

 

打款结果处理

28c8102781dbaee09c92d1679c298d5b.png

如上图,红色的节点是我开放出去的能力,蓝色的节点是我重点沉淀的流程逻辑。行业特种兵根据自身行业特性,实现红色节点部分即可非常简单的接入付款执行系统。其只需要根据我给的入参,经过自己的逻辑处理给出我需要的出参即可。落库,重试,可靠系保证,安全性保证全由我的流程逻辑保证。

因此我可以慢慢沉淀我的流程逻辑,使其可靠,稳健,同时作为一个字段提供商,提供特种兵实现spi时需要的一些入参。这样我的需求就是可收敛的,付款接入需求陡增时,我可以把开发任务分发出去,有可复用的bundle直接复用,有特殊需求的,也可以把bundle转给其他人并行实行。

目录
相关文章
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
1190 1
|
8月前
|
算法 物联网 芯片
基于STM32和51单片机的8位全彩流水灯程序模板
基于STM32和51单片机的8位全彩流水灯程序模板
|
7月前
|
人工智能 JavaScript IDE
别用"战术勤奋"掩盖"战略懒惰":AI时代的降维竞品分析
5%的产品死于"盲视"。本文不仅是一套竞品分析AI指令,更是一次从战术勤奋到战略觉醒的认知升级。教你如何利用AI构建全天候商业情报雷达,寻找巨头缝隙中的差异化生存之道,实现商业战场的降维打击。
703 7
|
消息中间件 存储 数据采集
4步实现状态机驱动的MQTT客户端,快速接入OneNet (1)
本文介绍了基于状态机驱动的MQTT客户端快速接入OneNet平台的实现方法,通过4步完成模块设计。文章以开源项目`Sparrow`为基础,引入`OneNetMqtt`业务模块,采用事件驱动模型和双层状态机设计,实现设备状态管理、消息处理及定时任务等功能。模块分为三层:`OneNetManager`负责核心逻辑,`OneNetDevice`管理设备信息,`OneNetDriver`处理Socket与MQTT通信。验证结果显示设备连接、数据上报及下线功能正常,稳定性良好。该设计简化了复杂条件判断,增强了系统灵活性与可扩展性,适用于实际项目参考。文末提供源码获取方式,助力读者实践与学习。
792 118
|
文字识别 算法 API
飞桨x昇腾生态适配方案:04_模型精度对齐
本文详细介绍了模型在不同硬件(如GPU与NPU)间迁移时的精度对齐方法,包括前向和反向对齐的具体步骤。前向对齐通过模块化对比计算结果(如平均值、最大最小值等),确保误差在合理范围内;反向对齐则聚焦于梯度差异,利用二分法定位问题算子。同时,文章结合PPHGNet_small和MultiHead等具体模块代码,说明了如何打印输出并分析中间结果。此外,还探讨了私有格式、梯度异常及特殊shape等可能影响精度的因素,并提出相应解决策略。整体流程清晰,为跨硬件模型迁移提供了实用指导。
747 10
|
12月前
|
安全 算法 BI
《HarmonyOSNext 应用/元服务上架全攻略:从签名到过审的保姆级指南,让你一次跑通不踩坑!》
本文为HarmonyOS应用/元服务上架提供详细指南,涵盖签名到过审全流程。首先在AGC创建项目与应用,接着通过DevEco Studio生成密钥和CSR文件,申请发布证书与Profile。然后配置签名并编译打包,最后提交至AppGallery Connect审核。附避坑指南,助你顺利上架。
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
867 9
|
机器学习/深度学习 数据采集 资源调度
【机器学习】逻辑回归:原理、应用与实践
逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学方法,尽管其名称中含有“回归”二字,但它实际上是一种用于解决二分类或多分类问题的线性模型。逻辑回归通过使用逻辑函数(通常为sigmoid函数)将线性模型的输出映射到概率空间,从而预测某个事件发生的概率。本文将深入探讨逻辑回归的理论基础、模型构建、损失函数、优化算法以及实际应用案例,并简要介绍其在机器学习领域的地位和局限性。
1385 2
|
SQL 分布式计算 大数据
湖仓融合:MaxComputee与Hologres基于OpenLake的湖上解决方案
本次主题探讨湖仓融合:MaxCompute与Hologres基于OpenLake的湖上解决方案。首先从数据湖和数据仓库的历史及业界解决方案出发,分析湖仓融合的两种思路;接着针对国内问题,介绍阿里云如何通过MaxCompute和Hologres解决湖仓融合中的挑战,特别是在非结构化数据处理方面的能力。最后,重点讲解Object Table为湖仓增添了SQL生态的非结构化数据处理能力,提升数据处理效率和安全性,使用户能够在云端灵活处理各类数据。