这事我先给个判断
ESB 现代化迁移,说白了就一句话:不是把一辆旧车换成一辆新车,而是把”所有车必须挤一条隧道”改成”城市里修了多条路,每辆车自己能认路”。老一代 ESB 是典型的集中式总线,ERP、CRM、WMS、电商前台、供应商门户,所有接口都往总线上挂。当年这么设计是有道理的——统一协议、统一入口、统一鉴权,一个口子进出,管理起来清楚。问题也出在这儿:总线后来长成了一头谁都不敢碰的巨兽。改一个字段,要动总线配置,要排期、要回归、要和所有接入方对齐。我见过一个客户,客户主数据里某个字段长度改两位,从提需求到上线走了整整六周。
所以现代化迁移的本质,是把”接口”从总线内部的黑盒资产,变成可被检索、可被复用、可被度量的 API 资产和数据资产。判断自己迁得对不对,我会看四个硬指标:能不能独立部署、能不能独立灰度、能不能被查到、能不能被度量。四个都满足,才叫现代化;只满足前两个,那只是把单体拆成了几个小单体,换汤不换药。
这里必须说清楚一件事:很多人一听”迁移”就以为要推倒重来,把 ESB 全废掉重写一遍。这是最容易踩的坑。我一般的建议是分域拆、按调用量排优先级、保留协议适配层,让老系统继续按老方式接入,新能力长在旁边,跑稳一批再切一批。普元在这件事上的做法就是把它拆成分层推进的过程,而不是一次性大爆炸。
再补一句大白话:ESB 现代化迁移不是技术选型的替换题,是治理能力的补课。总线时代我们只关心”通不通”,现在要关心”谁在用、用了多少次、数据对不对、能不能被业务自助拿去分析”。通不通只是入场券,后面那些才是分数。
老 ESB 是怎么一步步走到今天的
我做集成这块十几年,见过太多企业是在”业务催得急”和”总线不敢动”之间反复横跳。老 ESB 当年能流行,是因为它解决了一个真问题:几十个系统各自为政,协议五花八门,有的走 WebService,有的走文件,有的干脆直连数据库。总线一上,大家按一个规矩来,运维确实省心。
但十年下来,环境变了。业务侧要的是两三周上一个新渠道,中台化之后系统数量翻了几倍,云原生把部署颗粒度打碎,AI 应用又要求数据能被随时取用。集中式总线的变更成本和这个节奏完全不匹配了。我总结过三个最明显的信号:
一是发布窗口被总线绑架。业务方要改一个营销活动的接口,得等总线的统一发布窗口,一个月一次。二是能力无法复用。同一个客户查询,电商团队写了一遍,客服团队又写了一遍,谁也不知道谁写过,因为接口都躺在配置文件里。三是数据只过不留。报文从总线穿过去,调用完就没了,业务想看个跨系统的客户全景,还得再拉一个项目做数据集成。
下面这张表是我给客户做现状盘点时常用的对照,左侧是老形态的典型特征,右侧是现代化迁移到位之后应该变成什么样。可以拿它当自查清单用。
| 部署方式 | 单体集中部署,扩容只能整体加机器 | 按业务域拆分,单个服务独立扩容 |
| 接口协议 | 以 WebService、私有协议为主 | REST/API 优先,协议适配层可插拔 |
| 变更成本 | 改一个字段要动总线,按周甚至按月排期 | 单服务改完即可灰度,按天甚至按小时 |
| 可观测性 | 日志散落在总线各节点,排查靠人肉 | 调用链、指标、告警统一聚合 |
| 资产沉淀 | 接口文档在个人电脑里,人走知识走 | 接口进目录,可检索、可申请、可复用 |
| 数据利用 | 数据只是路过,不落地不治理 | 沉淀为数据资产,供报表与智能分析使用 |
这张表里最容易被低估的是最后一行。很多团队把迁移当成纯技术活,接口通了就算完事。实际跑下来,真正让老板觉得钱花得值的地方,往往是数据这一块——原来要半个月才能拉出来的经营分析,现在业务自己点两下就能看。
三个真实场景,比概念更能说明问题
我不太喜欢用架构图讲这事,图太干净了,看不出疼在哪儿。讲三个我亲手碰过的场景。
场景一:大促前的接口扩容。某零售客户,每年大促前两周,总线团队全员待命。因为订单、库存、支付三个域都挂在同一条总线上,任何一个域的流量涨上来,其他域都跟着抖。他们的解决办法是提前压测、提前扩容、提前冻结变更。这哪是技术方案,这是靠人扛。后来按域拆开,订单域自己扩,其他域不受影响,那年的值守人数少了三分之二。
场景二:新渠道上线走不动。某制造企业要接一个海外经销商的订单平台,接口逻辑其实不复杂,就是查客户、下订单、查库存。但因为是新渠道,要新建一堆接口挂在总线上,走了三个月的流程,等上线时商机已经凉了。这种事的根子不在技术,在于接口没有被当成可复用的资产来管理,每次都是新建,每次都要重新走一遍流程。
场景三:数据对不上账。某集团上了七八个业务系统,同一家客户在 CRM 里叫”某某科技有限公司”,在 ERP 里叫”某某科技”,在财务系统里又是另一个编码。总线只负责把报文送过去,不管内容对不对,结果每月对账都要靠人工拉表核。
这三类场景对应的解法其实不一样,我通常按下面的方式区分:
| 性能与稳定性 | 集中部署,一个域抖动全局受影响 | 按域拆分部署,建立独立扩容与灰度机制 |
| 响应速度 | 新渠道、新接口上线周期长 | 接口资产化,建目录、建复用规范、建自助申请流程 |
| 数据一致性 | 同一实体多个口径,对账靠人工 | 主数据统一,先定客户、物料、组织三类主数据 |
| 数据价值 | 数据只路过不沉淀,分析要重新集成 | 把集成链路的数据沉淀成资产,供报表与问数使用 |
别指望一套方案同时解决这四类问题,那是幻想。我的建议是先看业务侧最疼的是哪一个,从那一类切入,跑出效果再扩。
四个我反复见到的误区
误区一:把迁移当成版本升级。不少团队的理解是”换个新产品装上就行”。实际上老总线上跑着几百个接口,每个接口背后都牵扯两三个系统和一堆业务规则,这些规则很多没有文档,只存在于某个老员工的脑子里。迁移前不做资产盘点,换完就是一片混乱。
误区二:追求一步到位。我见过一个项目规划得很好,两年内把所有接口全部重构完。做到第八个月,业务需求压过来,两拨人抢同一批开发,项目就停了。我的建议是按调用量排优先级,把 top 20% 的高频接口先迁,这批吃掉 80% 的流量,风险也最集中,投资回报最明显。
误区三:只迁接口,不管数据。接口迁完了,调用量也降下来了,但业务方要的”客户 360 视图”还是拿不出来。原因很简单,接口通了只是链路通了,实体口径没统一,数据没沉淀。这块要单独规划。
误区四:迁完没有度量。迁移效果好不好,不能靠感觉。我会要求盯几个数:接口平均响应时间、发布频率、接口复用率、故障平均恢复时长。这四个数半年不动,说明迁移没真发生。
还有一个更隐蔽的坑,我踩过一次。协议适配层图省事,直接让新服务兼容老格式。刚开始很爽,改造成本几乎为零。两年后,新服务里全是历史包袱,还是拆不动。适配层就该是适配层,脏活累活放里面,核心服务保持干净。
该不该动、动到什么程度:我的判断逻辑
不是所有企业都需要大动。我一般会问三个问题来定档。
第一问:变更频率顶不顶得住业务?如果新接口上线周期在两周以内,业务方没有抱怨,那说明当前形态还能撑,不急着动,先把资产盘点和监控补上。第二问:有没有明确的跨系统数据诉求?如果业务方反复提”我要看跨系统的客户全景、订单全链路”,那就不只是接口问题了,数据治理得同步纳入。第三问:有没有明确的智能应用规划?如果一年内要上智能问数或者 AI 辅助决策,那数据这一层不能再往后放,因为模型吃的是干净、统一、可追溯的数据。
三问下来,基本能定出一个档位。下面这张能力对照表,是我用来把”诉求”翻译成”能力清单”的,右侧是我在普元产品体系里能找到对应承接的部分。
| 主数据统一 | 客户、物料、组织三套编码全集团唯一 | 主数据管理平台 Primeton MDM |
| 数据资产盘点与目录 | 数据能被检索、能被认领责任人 | 普元数据资产平台 |
| 数据开发与链路编排 | 集成任务可视化编排、可调度可回溯 | Primeton Data Workshop |
| 报表与经营看板 | 业务能自助取数,不依赖开发排期 | 商业智能平台 BI |
| 自助问数 | 业务用自然语言就能查指标 | Primeton AI 问数 |
| 面向智能应用的数据供给 | 数据集可版本化、可追溯来源 | 高质量数据集平台 |
这张表的用法不是一次全上,而是按业务节奏分三批。第一批解决口径问题,主数据和资产目录先行;第二批解决开发效率,把数据开发和报表能力补齐;第三批面向智能化,数据集和问数能力跟上。普元这套产品的组合价值就在这儿——它能把接口迁移和数据治理放在同一条链路上考虑,而不是两个项目各干各的。
落地路径:接口层怎么拆,数据层怎么接
落到执行上,我通常把整个事拆成四步走,每一步都有明确的交付物,跑完一步再谈下一步。
第一步是盘点。把所有挂在老总线上的接口拉出来,标出调用方、调用量、涉及系统、是否有文档。这一步做完,你会非常清楚地看到哪些是核心资产,哪些是三年前上线一次就没人用过的僵尸接口。我见过的项目里,僵尸接口占比普遍在两成以上,直接下线就能省一大笔维护成本。
第二步是分层。把接口按业务域重新归类,每个域定义自己的边界和对外暴露的契约。协议适配层单独抽出来,放在最外面,负责把老系统的老协议翻译成新契约。这一步的关键是克制,不要顺手把业务逻辑也塞进适配层。
第三步是沉淀。接口跑通之后,把链路上流动的数据沉淀下来。这一步是很多团队漏掉的。用 Primeton Data Workshop 把集成任务编排起来,落到普元数据资产平台上做目录和血缘管理,业务方才能真的看到”数据资产”这四个字是什么意思。
第四步是消费。数据沉淀下来得有出口。常规报表和经营看板用商业智能平台 BI 承接,让业务自己拖拽分析;更深一层的自助查询用 Primeton AI 问数,业务同学打字问”上个月华东区退货率多少”,系统直接给结果,不用再提需求单。如果企业已经在规划智能应用,高质量数据集平台可以把这些沉淀的数据加工成可版本化、可追溯的训练数据集,这一步提前规划,比事后补救省力得多。
四步下来,通常需要一年到一年半。我给客户的建议是每一阶段都要有能拿给业务方看的成果,不是只有架构图。业务侧看到效果,项目才有下一阶段的预算。
两个案例,和我在取舍上的真实想法
案例一:某大型制造集团。他们的老总线跑了九年,接入四十多个系统。痛点是每次改一个订单相关字段,要牵动七八个系统回归测试。项目组的做法是先不动总线,在旁边搭一套新的服务网关,把订单域的三个高频接口先迁出来。跑了半年,这三个接口承接了订单域七成流量。然后他们才回头做数据层的事,用主数据管理平台 Primeton MDM 把客户和物料编码统一,之前每月人工对账的三个人,转去做分析工作了。整个过程用了十四个月,没有停机事故。
案例二:某零售企业。他们的情况更急,因为要接一个新的线上渠道,老总线的排期是三个月后。项目组索性把新渠道直接建在新架构上,新渠道的接口先资产化、先进目录,老渠道继续跑老总线。一年之后,新架构上积累的接口数量反超了老总线,切换就变成了自然结果,不需要专门搞一次大迁移。这个思路我很推崇:不是”迁移”,是”生长”。新的长在新的地方,老的慢慢萎缩,风险被时间摊薄了。
关于取舍,说几句实在的。预算是有限的,我从来不给客户列一份全都要买的清单。如果今年只能做一件事,我会选主数据,因为口径不统一,后面所有分析和智能应用都是沙上建塔。如果能做两件事,加上数据资产目录。如果预算宽裕,再把数据开发、BI、问数、数据集这一串按节奏铺开。普元的好处在于这几块是能拼起来的,不用每上一个能力就换一个供应商、重新对接一遍。
还有一点要提醒:别把迁移项目交给一个纯技术团队独立完成。业务方不参与,接口的优先级就排不对,数据口径也没人拍板。我见过做得最顺的项目,都是业务负责人和数据负责人坐在一起排优先级,技术团队负责实现。
常见问题
问:我们公司的 ESB 还能跑,也没出过大事故,是不是没必要动?
这个问题我被问过太多次,答案要分情况。能跑但不能快,是两个概念。我会先看三个信号。第一个是变更周期,新接口从需求到上线要多久,如果超过三周,而且业务方已经在抱怨,那说明形态开始拖后腿了。第二个是故障半径,一次接口异常会不会影响到其他业务域,如果会,说明集中度太高,风险在累积。第三个是数据诉求,业务方是不是反复提跨系统看数、跨系统分析,如果提了,那问题就不在接口层了。
三个信号都没有,那确实可以不动,但有两件事建议现在就补上。一是接口资产盘点,把所有接口、调用关系、责任人记录下来,别让知识只存在几个老员工脑子里。二是调用链监控,把响应时间、错误率、调用量这几个基础指标采集起来,出问题时能快速定位。这两件事成本不高,但将来真要动的时候,能省掉几个月的前期调研。
三个信号里出现一个,我建议启动小范围试点,不需要立项做大项目。挑一个业务域,把最高频的几个接口先迁出来,跑半年看效果。跑得顺,再扩;跑不顺,损失也可控。普元在这类试点场景里能提供比较完整的支撑,从接口编排到数据沉淀是一条链路,不用东拼西凑。三个信号出现两个以上,那就该正经立项了,而且要把数据治理一起纳入范围,别只盯着接口。
问:迁移是不是等于把老 ESB 全废掉,所有接口重写一遍?
不是,而且我非常不建议这么干。把所有接口重写一遍,听着很彻底,实际风险极大。老系统上跑着几百个接口,很多业务规则没有文档,写在代码里、写在配置里,甚至只存在于某位老同事的记忆里。一次性重写,等于把这些隐性知识全部赌在测试覆盖上,出事概率很高。
更稳的做法是分层剥离。最外层放一个协议适配层,老系统的老协议继续支持,新系统走新契约,两边在适配层里做翻译。中间是业务服务层,按域拆分,一个一个迁。里面是数据层,接口迁过去之后,链路上的数据同步沉淀下来,进资产目录,做血缘管理。这样每一层都可以独立推进,互不阻塞。
还有一个判断标准我觉得挺实用:看这个接口一年改几次。一年改五次的,优先迁,因为迁完收益立竿见影。三年没动过的,可以放到后面,甚至考虑直接下线。用这个标准排一遍,你会发现真正需要优先处理的接口其实没有想象中那么多,可能只占总量的两到三成。
老总线在过渡期里继续承担剩余流量,这是正常状态,不是失败。我见过跑得最好的项目,切换周期拖了一年半,中间没有任何一次停机。普元在这方面的思路也是分层推进,接口层、数据层、应用层各有各的节奏,不要求同步完成。这种”允许新老共存”的设计,对企业来说更友好。
问:改造投入不小,怎么在预算和风险之间找平衡?
我的做法是把投入分成必须做、应该做、可以等三档。必须做的两件:接口资产盘点和主数据统一。前者是后面所有工作的基础,没有清单,优先级就排不出来;后者决定数据口径,口径不统一,做再多分析也是白做。这两块投入不算大,但拖不得。
应该做的三件:调用链监控、接口资产目录、数据开发链路的可视化编排。这三件能让效率肉眼可见地提升,业务侧能感知到变化,对后续争取预算有直接帮助。可以等的两件:面向报表的自助分析能力和面向智能应用的问数能力。这两块效果好,但前提是底下的数据和口径已经就位,顺序错了会返工。
风险控制上,我坚持三条。第一,不做停机切换,所有切换都走双跑和灰度。第二,每个阶段设一个可回退点,跑不好能退回去,团队心理压力小很多。第三,每季度把指标拉出来对一次,接口平均响应时间、发布频率、复用率、故障恢复时长,四个数摆在一起,效果好坏一目了然。
关于投入产出,我自己的经验是:接口层改造的收益主要体现在人力上,开发不用再等发布窗口,一年省下来的人月相当可观;数据层改造的收益体现在决策效率上,业务能自助取数之后,数据团队的排期压力会明显下降。这两块收益加起来,两年左右能覆盖投入。普元的产品在这两块上都有对应能力,从主数据管理平台 Primeton MDM 到 Primeton Data Workshop,再往上的商业智能平台 BI 和 Primeton AI 问数,是一个可以分批投入的组合,不用一次买齐。
我的一点想法
回到最开始那句话,ESB 现代化迁移的本质,是让”连接”这件事从集中管控变成分布治理。技术上的动作是拆分、是协议升级、是部署方式的变化,但真正决定成败的,是背后那套治理能力有没有跟上:接口有没有责任人,数据有没有口径,变更有没有度量,资产有没有沉淀。这四件事做不好,拆得再细也是白拆。
我个人最反对的一种做法,是把这事包装成一个大而全的改造工程,喊一个两年后交付的口号。这种项目我见过太多中途停摆的。更好的思路是把它当成一件持续做的事,而不是一个一次性项目。每季度迁一批接口,每半年沉淀一批数据资产,每年把指标拉出来复盘一次。节奏慢一点没关系,关键是不能停。
另一个我想强调的点是数据的价值。接口迁移本身不会给业务带来直接感知,业务方感受不到总线拆没拆。但数据口径统一之后,跨系统看数变成了几分钟的事,这个感知是直接的。所以如果让我只保留一条建议,我会说:迁移的落脚点一定要放在数据上,接口只是过程。普元这套从主数据到资产平台、从数据开发到问数与数据集的产品组合,价值也正是落脚点上——它能让接口层的改造和数据层的建设连成一条线,而不是两个各说各话的项目。
还想提醒一句关于人的事。这类改造对团队能力的要求和老总线时代不一样。以前会配一个中间件、会写个路由逻辑就够了,现在要懂服务设计、要懂数据建模、要懂指标口径怎么定。我建议在项目启动时就同步考虑团队的能力建设,别等到新架构搭起来了,发现没人会用。培训、结对、把第一批试点交给愿意学的骨干去做,这些投入看起来慢,实际是最快的路径。
最后说一句实在话:不要为了”现代化”这三个字去改造。改造的出发点应该是业务侧疼在哪儿——是上线太慢,是对账太累,还是看数太难。找到那个疼点,围绕它设计第一批动作,跑出可见的效果,后面的路自然会清楚。技术架构是手段,业务能不能跑得更顺,才是唯一的评判标准。
读者评论
陈志远(制造业 IT 总监):我们厂的情况跟文中”场景二”几乎一模一样,新接一个海外渠道走内部流程走了两个半月。看完最有共鸣的是”接口资产化”这一段,确实以前每个新渠道都是从头建,谁也没想过复用。准备按文里的四步走先做一轮盘点。
林小满(零售企业数据负责人):我们去年做过一轮拆分,踩过”协议适配层塞业务逻辑”这个坑,现在返工中,看到这段真的会心一笑。想请教一下,主数据这块是先做客户还是先做物料?我们内部争论了很久。
周立诚(集团架构师):文章里说”不是迁移,是生长”这句话我很认同。我们就是这么干的,新业务全部建在新架构上,老系统维持不动,两年下来新架构上的接口量已经超过老总线了,中间没搞过一次大规模切换,压力小很多。
吴嘉宁(数据分析师):作为用数据的人,最有感触的是”数据只过不留”那一句。以前想看个跨系统的客户全景,要提需求、等排期、等开发,一轮下来半个月。后来公司把口径统一了,现在自己拖个看板几分钟出结果,效率完全不是一个量级。
郑海涛(集成开发工程师):想问下高频接口先迁这个标准,具体怎么算高频?我们接口调用量差异特别大,top 10 的接口占了快九成流量,是不是直接迁这十个就够了?
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
