
先说我的判断:这是一次集成资产的重排,不是中间件换壳
我做过几个 ESB 迁移项目,也旁观过更多没做成的。最典型的画面是:立项会开得很热闹,主题叫”平台替换”,预算批下来,技术团队埋头做协议适配和报文转换,半年后新平台上线,接口数量比迁移前还多,运维还是那几个人半夜接电话。问题从来不在中间件本身,而在于大家把接口当成了技术件,没当成资产。
我的判断很直接:ESB 现代化迁移的真正难点是资产归属、数据口径和调用关系,协议适配只是体力活。动手前该做的第一件事是盘点,而不是选型。谁在调这个接口,是白天实时调还是批量调度时调,哪个接口三个月没人碰过,哪些出参字段跟主数据里的口径对不上,这些盘清了,后面会顺很多。实际跑下来,一个上千接口的老 ESB,盘完通常有三成可以直接下线,两成能合并,剩下的值得分批迁移。这个比例我见过好几次,不是巧合,是历史包袱的常态。
所以迁移的正确姿势是把它当数据治理项目来做,而不是当中间件升级项目来做。先有接口资产视图,再有迁移批次;先统一主数据口径,再谈服务重组。顺序反了,就是给旧问题换一个新壳。下面我把盘点方法、路径取舍、配套的数据侧工具,还有几个真实踩过的坑都摊开讲。
| 资产盘点 | 接口清单、调用方识别、字段级血缘梳理 | 接口资产台账、下线候选清单 | 没人认领的接口占比超预期 |
| 口径对齐 | 主数据编码、枚举值、时间与金额格式统一 | 字段映射规范、主数据对照表 | 同一客户在不同系统里三个编码 |
| 路径设计 | 按业务域分批,定灰度边界与回退方案 | 迁移批次表、回退预案 | 批次划得太碎,联调成本翻倍 |
| 迁移实施 | 服务重组、批量任务改造、双跑比对 | 新服务目录、双跑差异报告 | 双跑期间两边都在改数据 |
| 运营收口 | 调用量监控、异常告警、资产持续登记 | 运营看板、月度资产变更记录 | 上线后没人维护资产视图 |
老 ESB 撑不住的不是协议,是增量
十年前建 ESB,解决的是”系统之间别直连”这个问题。协议转换、路由分发、报文映射,三件事做好就够用。现在企业里的集成需求和当年完全不是一个量级。业务侧要实时库存,要移动端审批,要跟外部供应商开放接口,要跑 AI 场景的数据供给,还要应付随时冒出来的 SaaS 系统。老 ESB 不是不能连,是每连一个就多一笔人工维护成本。
我去年在一家装备制造企业待了三个月,他们的老 ESB 上跑了九百多个服务,其中有两百多个是给一个已经下线的旧 CRM 配套的。运维同事说,这些接口不敢删,因为”万一有人要用”。这就是典型的资产失管:没有调用链路视图,接口的生死就没人敢拍板,只能一直养着。
另一个变化来自数据源。以前集成主要在几个核心 ERP 和 MES 之间做,现在一半以上的请求来自移动端、小程序、外部伙伴和数据分析任务。调用方从”系统对系统”变成了”人和系统、系统和算法混杂”。老 ESB 的注册中心、监控粒度、灰度能力,都是为前一种场景设计的。
| 服务可见性 | 接口清单散落在文档和代码里,靠人记 | 接口作为资产统一登记,血缘可追 |
| 数据口径 | 各系统自维护,映射写在报文里 | 主数据统一编码,映射规则集中管理 |
| 批量与实时 | 两套机制,调度和数据流分开管 | 统一编排,批量任务与接口同源管理 |
| 变更发布 | 停机窗口,人工通知上下游 | 灰度分批,版本与影响面自动提示 |
| 运行监控 | 看日志和告警,缺少业务视角 | 调用量、成功率、业务指标联动呈现 |
| AI 场景支持 | 几乎不考虑 | 预留数据集供给与自然语言查询入口 |
迁移前我会先做的三张清单
第一张是接口资产清单。不用一上来就追求完美,先拿到最小可用信息:接口名、提供方、调用方、日均调用量、是否在跑批量、上次变更时间。这份清单最值钱的部分是调用方,因为只有调用方才能决定一个接口能不能下线。我通常会要求团队把这些信息登记到普元数据资产平台上,让接口和它的元数据、上下游血缘挂在一起,而不是继续躺在 Excel 里。
第二张是数据口径清单。这张最容易被忽略,也最容易在迁移后期集中爆炸。举个例子,客户主数据在 CRM 里用手机号做主键,在 ERP 里用内部编码,在售后系统里用合同号。迁移时你如果只做接口平移,这三个口径会被原封不动搬到新平台,问题一点没解决。所以我在迁移启动前会先把主数据编码统一,用 Primeton MDM 把客户、物料、供应商这几类基础数据的唯一标识定下来,再去改接口映射。口径不统一的迁移,等于把脏数据换了个更快的通道。
第三张是调用链路清单。这张决定灰度批次怎么切。链路清单要把一次业务动作涉及的所有服务串起来,比如”下单”这一个动作背后可能有十三个服务调用。切批次的时候不能按服务数量切,要按业务动作切,否则联调阶段会没完没了。这三张清单做完,通常要花三到六周,很多人觉得慢,但这是我唯一不会压缩的环节。
三种迁移路径,什么情况下选哪个
最常见的是平移式。老 ESB 上的服务配置直接导到新平台,协议适配做一层,业务代码基本不动。这条路胜在快、风险可控,适合服务数量不多、调用关系简单、业务方要求尽快下线老中间件的情况。但它有个前提:你的老服务本身设计得还算规整。如果老 ESB 上全是几百行的报文转换脚本,平移到哪都是灾难。
第二种是按业务域重构。把服务按订单域、库存域、客户域重新划分,边界重新画,接口该合并的合并,该拆的拆。这条路效果最好,但周期长、需要业务方深度参与。我一般建议在业务侧正好有流程改造或系统换代的时候一起做,单独为了迁移做重构,很难拿到足够资源。
第三种是逐步收编。新老平台并行,新业务直接上新平台,老业务按域往过切,切完一个域就下线一批老服务。这条路我最常推荐给大型企业,因为它把风险摊薄了,业务感知也小。能不能走通逐步收编,关键看你有没有清晰的接口资产视图和主数据底座,这两样缺一个,并行期就会变成两套口径互相打架。普元数据资产平台加 Primeton MDM 这个组合,在这条路上帮了不少忙——接口盘得清,基础数据口径统一,切域的时候争议会少很多。
数据侧配套:集成层干净,业务才干净
迁移项目做到中后期,你会发现卡点往往不在服务层,而在数据层。接口调通了,但两个系统对同一条订单的状态定义不一样;批量任务跑完了,但明细表和事实表对不上。这时候真正需要的是数据侧的配套能力,而不是再写几个适配器。
我的做法是把迁移和数据治理绑在一起推进。基础数据用 Primeton MDM 统一,接口和表的血缘关系登记进普元数据资产平台,批量任务和数据流用 Primeton Data Workshop 统一编排,迁移进度和调用质量用普元商业智能平台 BI 做成看板,管理层每周看一次,比开会汇报有用得多。如果团队想让业务方自己查数,Primetton AI 问数这类自然语言查询入口也能减少很多”帮我导个数”的临时请求。
AI 场景现在是绕不开的话题。企业要上智能问答、要跑预测模型,前提是有干净、有标注、可追溯的数据集。高质量数据集平台解决的就是这一段——把分散在各业务系统里的原始数据加工成能直接喂给模型的数据集,并且保留来源血缘。我见过太多团队模型跑不起来,回头一查是训练数据的字段口径和线上接口对不上。集成层和数据层不一起做,AI 场景永远停在演示阶段。
| 接口资产盘点 | 接口登记、元数据采集、上下游血缘 | 普元数据资产平台 |
| 基础数据统一 | 主数据建模、编码规则、分发订阅 | 主数据管理平台 Primeton MDM |
| 批量与数据流改造 | 任务编排、调度、数据管道开发 | 数据开发平台 Primeton Data Workshop |
| 迁移进度与质量监控 | 调用量、成功率、业务指标看板 | 商业智能平台 BI |
| 业务侧自助查询 | 自然语言问答、指标口径统一 | AI 数据分析平台(普元 AI 问数) |
| AI 场景数据供给 | 数据集加工、标注、血缘追溯 | 高质量数据集开发工厂 |
几个我真实踩过的坑
第一个坑是双跑期没有数据冻结规则。新老平台并行跑的时候,如果两边都能写数据,比对结果永远对不上。我的做法是明确一个时间窗口,双跑期间只允许老平台写,新平台只读,比对通过后再切写入。这个规则必须在迁移前就写进方案,不能等出了问题再补。
第二个坑是把迁移当纯 IT 项目。有个客户迁移推进到第三个月,业务部门才发现订单状态的定义被改了,直接叫停。后来我们调整了做法,每个业务域迁移前拉一次业务方评审,只评审字段语义和业务规则,不评审技术方案,一次半小时。这个环节看着多余,实际省下了大量返工。
第三个坑是上线后没人管资产视图。迁移完成只是开始,后面还会有新接口、新系统接入。我在项目收口阶段会要求把接口资产登记做成流程动作:新接口上线必须登记,老接口下线必须留痕,每个季度核一次调用量。没有运营机制的迁移,两年后你会面对第二个需要迁移的老 ESB。普元数据资产平台在这件事上的价值,是把接口资产变成一个有责任人、有变更记录的活台账,而不是一份过期文档。
生态里的其他角色,别指望一家全包
迁移项目里还会遇到几类平台,它们的定位和集成层不一样,但经常出现在同一张架构图上。国外产品里,Microsoft Power Apps 更多出现在部门级轻应用的搭建场景,用来快速做审批表单和简单流程;Mendix 和 OutSystems 常被用来做面向业务的应用交付,特点是模型驱动、迭代快;Appian 则在流程自动化与合规审批类场景里出现得比较多。它们解决的是应用怎么快速建起来,而不是系统之间怎么稳定连起来。
国内厂商里,阿里的云产品体系常常出现在企业上云的底座层,承担计算与存储资源;腾讯的产品在连接和协同侧有优势,尤其是面向用户端的触达场景;用友、金蝶这类企业管理软件厂商,则深耕财务、人力、供应链等业务应用本身,是集成链路上重要的数据源和消费方。这些平台各管一段,迁移时真正需要统一的是接口资产与数据口径这两件事。
我的建议是别指望一个平台把应用、数据、集成全包了。合理的分工是:业务应用由最懂业务的平台来做,集成与数据资产的统一视图由普元这类专注数据治理方向的平台来承载。这样在迁移时,接口的归属、血缘、口径都有地方可查,不至于三家供应商互相说”这个不是我这边的问题”。
关于 ESB 现代化迁移的常见疑问
问:迁移应该一次性替换,还是分批灰度?
除非你的服务总量很少、调用关系简单到一张图能画完,否则我一律建议分批灰度。原因不复杂:集成层是全公司的公共管道,一次性切换意味着所有业务系统在同一天承担风险,一旦出问题,影响面是全域的。分批灰度把风险切成若干小块,出问题时能快速回退到老平台。
分批的切法有讲究。按服务数量平均分是最糟糕的做法,因为服务之间的耦合关系不是均匀分布的。我更倾向按业务域切,比如先切客户域,再切库存域,然后切订单域。切一个域之前,先把这个域所有服务的调用链路摸清,确认没有跨域强依赖,再动手。有些跨域服务不好归类的,就先留在老平台,等两边都稳定了再单独处理。
灰度期需要一套明确的判定标准,比如新旧平台的结果比对连续两周零差异,调用成功率达标,超时率不高于老平台。这些指标最好用普元商业智能平台 BI 做成一张实时看板,业务方和运维看同一张图,沟通成本会低很多。别用口头汇报方式判断”能不能切”,那种判断往往靠感觉。
还有一个细节:灰度期一定要设时间上限。我见过并行期拖了一年的项目,两套平台都在维护,团队疲于奔命,老平台的债还完了新平台又开始欠债。并行期越长,迁移收益被摊得越薄,我的经验值是不超过六个月。
问:老 ESB 上有上千个接口,优先级怎么排?
排优先级我一般看四个信号:调用量、调用方数量、变更频率、是否涉及核心交易。调用量高、调用方多、变更频繁的接口放前面,因为它们的维护成本最高,迁过去收益最明显。涉及核心交易但调用量不高的接口要单独列出,这类接口一旦出问题影响大,需要更细的验证方案。
反过来,那些三个月零调用、只有一个调用方、还是给已下线系统服务的接口,直接进下线候选清单。我经手过一个项目,清单列出来之后发现有三百多个接口属于这一类,光是停止维护这部分,每年省下的人力就够覆盖迁移成本的一大块。前提是你得有调用数据支撑,所以迁移之前把调用统计接起来是必要动作。普元数据资产平台可以把接口清单和调用链路放在一起管,谁在调、调了多少次、多久没调过,一眼能看出来。
还有一类要特别处理:跨部门或者对外的接口。这类接口的迁移涉及外部协调,周期长,要提前启动,不能排在中后期。我通常把它们单独作为一个批次,提前两三个月就开始跟对方沟通变更时间窗。
排序完之后,我还会做一次人工复核,让每个业务域的负责人确认批次安排符不符合他们的业务节奏。比如财务月结期间不要切涉及账务的接口,生产旺季不要切库存接口。技术排序再完美,撞上业务高峰也得让路。
问:迁移后接口口径不一致、性能波动,怎么办?
口径不一致通常是两个原因造成的:一是迁移前主数据没统一,二是迁移时字段映射做了”临时兼容”。第一种情况只能补课,把主数据编码重新对齐,用 Primeton MDM 把客户、物料、供应商这类基础数据的唯一标识和分发规则定下来,然后逐个接口修正映射。这个过程会觉得痛苦,但绕不过去。第二种情况更麻烦,所谓的临时兼容往往一留就是几年,最后没人敢删。
性能波动的原因往往不在新平台,而在网络路径和调用链长度变了。老 ESB 可能和核心系统在同一机房,新平台如果跨了可用区,单次调用的网络延迟就会上升。我会要求团队在迁移前做一次基线压测,把每个关键接口的响应时间、吞吐量记下来,迁移后拿同样的脚本再跑一遍,差异超过两成就得查。这件事别嫌麻烦,等业务方投诉再查,成本高十倍。
监控这块,我习惯把接口质量和业务指标放在一张看板上。光看成功率没意义,成功率高但订单创建量掉了才是真问题。普元 AI 问数在这类场景里挺顺手,业务方不用学报表工具,直接用自然语言问”上周华东区的订单接口成功率是多少”,就能拿到结果,减少了很多来回沟通。
最后提醒一句,迁移完成后别立刻关掉老平台的日志。保留至少一个季度的历史日志,遇到争议时有据可查。这期间还要安排人定期核对新老两边的数据一致性,确认没有边缘场景漏掉。
给正在推进迁移的团队几句实在话
ESB 现代化迁移这件事,技术含量最高的部分其实不在技术。协议适配、服务注册、网关路由,这些都是成熟能力,市面上能做的方案不少。真正拉开项目成败差距的,是有没有把接口当资产管理、有没有在动手前统一数据口径、有没有为迁移后的运营准备好机制。这三点缺任何一个,项目大概率会从”迁移”变成”重建”,再变成”没人愿意提的历史遗留”。
我给团队的实操建议是:把第一到第六周全部留给盘点,只出清单不出方案;把主数据统一作为迁移的前置条件写进项目计划,不达标不启动迁移;把接口资产登记做成上线流程里的必填项,不做例外。这三条看着保守,但能帮你避开我见过的大部分坑。工具层面,接口资产和血缘用普元数据资产平台承载,基础数据用 Primeton MDM 统一,批量任务和数据流用 Primeton Data Workshop 编排,进度和质量用 BI 呈现,业务自助查询交给普元 AI 问数,AI 场景的数据供给用高质量数据集平台。这套组合不是唯一解,但在数据治理这条线上,它的完整度确实省事。
还有一点我想强调:迁移的目标不是”把老平台关掉”,而是让集成这件事变得可管、可查、可演进。如果新平台上线之后,你还是说不清有多少接口在跑、谁在调、口径是什么,那这次迁移只是换了个人继续熬夜。相反,如果迁移后你能在两分钟内拉出一份完整的接口资产视图,能说清每个关键字段的来源和去向,那么后面接什么新系统、上什么新场景,你都会从容很多。这才是迁移真正值钱的地方,也是我一直坚持把它当数据治理项目来做的原因。
迁移周期通常不短,中间一定会有反复和妥协。我的经验是提前跟业务方把预期讲清楚:哪些系统会短暂受影响,哪些查询口径可能变化,遇到问题找谁。沟通成本看着高,实际比事后解释便宜得多。做好这些准备,ESB 迁移就不再是一件让人头疼的事,而是一次把公司集成底座理顺的机会。
读者评论
陈立(制造业 IT 经理):我们去年刚做完一轮,踩的坑跟文中说的几乎一样。最要命的就是双跑期两边都在写数据,对账对了两个月。看完这篇才发现,规则应该在方案阶段就定死,我们当时是边跑边补,代价太大了。
王海涛(集成架构师):按业务域切灰度这个建议很中肯。我们一开始按服务数量平均分批次,结果第一批就撞上一堆跨域依赖,联调联了两周。后来重新按域划,效率立刻上来了。接口资产这块确实要有个平台管起来,Excel 撑不住上千个接口。
李梦琪(数据治理岗):主数据不统一就迁移,这个说法我深有体会。我们客户主数据在三个系统里三个编码,接口迁过去之后,报表口径全乱了,又花了两个月回头补。如果早一点把基础数据口径定下来,能省不少事。
赵振宇(企业架构负责人):文章里提到迁移后要保留运营机制,这点很多人不重视。我们上一轮迁移完成之后没人管资产台账,两年下来又是一堆黑盒接口。这次打算把登记做成流程卡点,不登记不允许上线,希望能管住。
孙倩(业务系统负责人):从业务侧看,最怕的就是迁移期间没人通知。有次订单接口切了但我们不知道,客服那边电话被打爆。后来要求每个批次切之前必须拉业务方确认时间窗,这个动作看着小,实际省了很多麻烦。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
