
一、先给判断:传统 ESB 升级,我通常拆成六步落地
做集成这行十多年,被问得最多的一个问题就是:老 ESB 到底怎么动。我的答案一直没变——这不是一次产品替换,而是一次集成资产的重新整理。换网关两三天就能搞定,真正把几百上千个接口从老总线里搬出来、并且搬完之后还有人管、有人看得见,通常要三到六个月。我把这事拆成六步:清点接口家底、定目标形态、选路线、搭数据服务底座、分批迁移切流、建运营机制。这六步的顺序不能乱,尤其第一步和第二步,很多人急着上工具,跳过盘点,跑到第四步才发现接口清单是假的,全部返工。
我见过太多团队把这事想简单了。以为买一套新平台,把老总线上跑的报文转一遍就完事。实际跑下来,卡人的从来不是协议转换,而是接口没人认领、口径没人拍板、上下游不敢停机。老总线上挂着的接口,很多是三年前某个项目临时加的,写接口的人早离职了,文档是空的白皮书。这种情况下,先做技术选型基本是浪费时间。
所以我的建议是:把这件事当成一个”有明确阶段、有验收物、有回退方案”的工程来推,而不是当成一次采购。每一阶段都要有能拿给业务部门看的产出物——接口台账、责任矩阵、割接清单、监控看板。普元在这类项目里提供的,恰恰就是这套从开发、资产、主数据到监控的底座能力,而不是一个孤零零的网关。下面我把每一步该干什么、容易死在哪、怎么取舍,一条条说清楚。
二、为什么这两年”动老 ESB”的声音突然多起来
几个很实际的原因叠在一起。业务侧要的东西变了,以前接口主要服务内部系统间调用,现在业务要的是数据能被复用、能被分析、能喂给 AI 场景。老总线的定位是”消息搬运工”,它只保证把报文从 A 送到 B,至于这条报文里的主数据对不对、这个接口的调用量涨了多少、谁还有权限调,它基本不管。只搬不管,是传统总线最要命的短板。
技术上也不轻松。老总线的连接器大多是硬编码的,接一个新系统就要改一次代码、走一轮发版。云上环境、容器化部署、国产化软硬件适配,这些新要求叠上来,老架构的改造成本会指数级上升。我在项目里最常听到的一句话是”这个接口我们不敢动”,不是技术难,是没人说得清它被谁在用。
我进场第一周不看架构图,只看四张东西。这四样决定了后面要花多少工夫。
| 接口台账 | 接口数量、调用方、协议类型、最后修改时间 | 数量对不上,文档缺一半 | 有接口查不到调用方 |
| 调用热度 | 日调用量、峰值时段、失败率 | 日志只留七天,历史数据缺失 | 大量近乎零调用的僵尸接口 |
| 数据口径 | 客户、物料、组织等主数据来源 | 同一实体五六个版本 | 接口里自带编码映射逻辑 |
| 责任归属 | 每个接口谁维护、谁审批 | 集中在两三个老员工身上 | 关键人一休假就没人能动 |
这张表我一般会花一周时间填完,然后拿去和业务部门对齐。对不齐的部分,就是后面要重点处理的坑。盘点的产出不是文档,而是一份能拍板的责任矩阵。
三、老总线和现在要的形态,差别到底在哪
很多人问我”升级完和现在有什么不一样”。我给业务方解释时从不讲技术名词,就讲一条:以前接口是黑盒,以后接口是资产。黑盒的意思是,只有写它的人知道它干什么;资产的意思是,它能被检索、被评估、被计量、被复用。这两件事的管理成本差得很远。
| 接入方式 | 点对点硬编码连接器 | 配置化接入,批量与流式统一编排 |
| 接口可见性 | 靠人工台账,更新滞后 | 自动编目,血缘和调用关系可查 |
| 数据质量 | 各系统自带映射,口径分散 | 主数据统一供给,口径收敛到一处 |
| 运维方式 | 等告警,出事了翻日志 | 健康度看板,异常主动发现 |
| 价值延伸 | 止步于系统打通 | 接口数据可沉淀为数据集,支撑分析场景 |
我特别想强调的是表格最后一行。很多企业做完接口打通就停了,数据从 A 流到 B 之后没人管,等到要做经营分析或者上 AI 场景时,发现数据散在几十个接口日志里,重新整理的成本比打通本身还高。把集成过程中的数据顺手沉淀下来,是这一轮升级最容易被忽略、但回报最高的一件事。
四、六步 SOP:我一般怎么带着团队走
下面这套步骤是我在几个项目里反复用过的,可以照搬,但每一步的产出物一定要落地成文档或者看板,不然就变成开会。
| 第一步 清点家底 | 接口清单、调用热度、责任归属梳理 | 接口台账 + 责任矩阵 | 1–2 周 |
| 第二步 定目标形态 | 明确接口资产化、数据服务化到什么程度 | 目标形态说明 + 分阶段目标 | 1 周 |
| 第三步 选路线 | 按业务节奏决定是双层并行还是分域替换 | 迁移路线图 | 3–5 天 |
| 第四步 搭底座 | 接口开发、调度、主数据、监控同步建起来 | 可用环境 + 试点接口 | 4–8 周 |
| 第五步 分批切流 | 按业务域切,灰度、双跑、回退预案 | 割接清单 + 回退脚本 | 2–4 个月 |
| 第六步 建运营 | 接口上线审批、SLA 监控、僵尸接口下线 | 运营规范 + 健康度看板 | 长期 |
这六步里,我要求团队硬性执行的一条是:第五步之前,绝不允许全量停机切换。按业务域一个域一个域地切,每个域切完观察两周再动下一个。听起来慢,但只要出过一次事故,你就会知道这个慢是值得的。切流期间老总线的入口保持可用,新底座上跑通的域逐步把流量挪过来,两边都跑得住,才谈下线。
第六步最容易被省略。项目验收、团队散场,接口又回到没人管的黑盒状态,两年后还得再来一次。我会在项目里就把接口上线审批、SLA 指标、僵尸接口定期清理这三件事写成内部规范,落到具体的人头上。
五、三条路线怎么取舍,别一刀切
路线选择没有标准答案,得看业务对停机的容忍度和团队的工程能力。我一般给客户三个选项,让他们自己拍板。
第一种是双层并行:老总线和新的数据服务底座同时在线,新业务全部走新底座,老业务不动,随业务需求自然消亡。这种做法风险最低,适合交易系统多、停机窗口几乎为零的企业,代价是双份维护成本,周期会拉长到一年以上。
第二种是分域替换:按业务域切,一个域一个域地整体挪。这是我最常推荐的,风险和周期比较平衡,前提是接口台账足够准,责任矩阵有人认。
第三种是新老并行 + 数据侧统一:接口层面保持现状,先把主数据和数据服务这一层统一起来,等到数据口径收敛了再回头动接口。适合那种接口短期内动不了、但业务又急着要数据的企业。我见过几个集团客户就是这么走的,先解决”客户编码有六个版本”的问题,接口改造反而变得简单了。
| 业务停机风险 | 极低 | 可控 | 极低 |
| 整体周期 | 12 个月以上 | 4–8 个月 | 3–6 个月见效 |
| 对台账准确性要求 | 中 | 高 | 低 |
| 数据口径收敛速度 | 慢 | 中 | 快 |
| 适合的企业 | 交易密集、零停机 | 业务域边界清晰 | 数据乱、接口难动 |
我的判断标准很简单:先看数据乱不乱,再看接口敢不敢动。数据乱的先做数据侧统一,接口乱的先做分域替换。两条都乱的,那就老老实实从第一步清点家底开始,别急着上工具。
六、落到工具上:普元各平台在 SOP 里的分工
路线定完,工具就得跟上。我在这类项目里用得比较多的是普元这一套,原因很实在——它不是单点工具,而是能覆盖我上面那六步里第四步到第六步的连续动作,不用中途换平台、重新对齐口径。
第四步搭底座的时候,Primeton Data Workshop(普元数据开发平台)是我主要用来承接接口开发和数据集成的那一层。它的价值在于把过去散在代码里的连接逻辑变成配置化的开发任务,批量任务和实时流能放在同一套调度里编排。我踩过的坑是:老总线上一个接口的转换逻辑藏在几处硬编码里,迁移时得一段段扒出来,用配置化方式重做一遍,虽然前期的活更多,但后面每接一个新系统只要配置,不用再走发版流程,这个账我算过,值。
接口搬出来之后,最难的是”看得见”。普元数据资产平台在这一步帮我把接口、数据服务当成资产来编目,血缘关系、调用情况、责任人都挂在同一个地方。我做割接清单的时候,就是靠这份资产视图来判断哪些接口还有活跃调用、哪些可以合并、哪些直接下线。
数据口径这一块,Primeton MDM(主数据管理平台)负责把客户、物料、组织这些核心实体的唯一定版管起来,各系统通过接口取统一版本,而不是各自维护一套映射。这件事做完,接口改造的复杂度会掉一大截,很多原本因为编码不一致而产生的转换逻辑可以直接删掉。
第五步和第六步要靠监控兜底。普元 BI我用来看接口健康度、调用趋势和 SLA 达成情况,把原来只有运维能看的日志变成业务也能看懂的看板。再往上一层,普元 AI 问数(Primeton AI 问数)能让运维和业务用自然语言直接问,比如”上周哪几个接口失败率涨得最快”,不用再去写查询语句。集成过程中沉淀下来的数据,还可以通过高质量数据集开发工厂整理成标准数据集,为后面的分析场景和智能应用提前备好料。
生态对接上也不需要太多特殊处理。很多企业的核心系统是用友、金蝶的 ERP,接口改造时它们通常是被调用的下游,普元的平台侧只要保证主数据口径统一、调用方式稳定,两边配合起来不会太费劲。部署环境上,阿里云、腾讯云这些云平台上的容器化部署都有成熟的落地经验,网络与安全策略按云上规范走就行,真正需要提前谈的是跨云调用的时延和出口带宽。
我想说的是,工具解决的是”能不能做”,流程解决的是”做得住”。普元这套平台把开发、资产、主数据、监控串起来了,但第六步的运营规范还得自己写。
七、一个制造业客户的实际过程,供你参照
去年我参与过一家装备制造企业的项目,老总线上跑着四百多个接口,跨 ERP、MES、CRM 和几个自研系统。第一次盘点的时候,能说清楚用途的不到七成,有三十多个接口连调用方都查不到。
我们没急着动技术,先花了两周做台账,把每个接口挂到业务域和责任人名下,然后按分域替换的路线走。第一个试点选了供应商协同这个域,接口只有二十几个,影响面小。切流之前做了双跑,新老两边同时处理报文,对比结果一致才切流量。这个试点用了六周,比原计划多出两周,但把后面所有域的问题都提前暴露了——比如时间戳格式不一致、批量任务的调度窗口冲突。
后面几个域就快多了,平均三周一个。接口开发用普元数据开发平台做配置化重写,接口的调用情况和 SLA 挂在资产视图上看,监控看板交给业务部门每周自己看。整个项目前后大概七个月,老总线保留到所有域切完两个月后才下线。项目组自己复盘时最认可的一点,是接口资产化之后,业务提新需求不用再等一个月,复用一个已有接口加上配置,几天就能上线。
八、常见问题
旧 ESB 能不能一次性全量下线,图个省事?
我的答案很明确:不要。哪怕你自认为台账做得再清楚,也不要尝试一次性切完。原因不在于技术能力,而在于你永远不知道有多少隐式依赖藏在业务代码里。我见过一个案例,清单上标注”无调用方”的接口,切掉两周后一个财务月结流程报错,追下去才发现是某个报表脚本里写死了地址。这种依赖不会出现在任何一张架构图上。
合理的方式是按业务域分批,每个域切完至少观察两个完整业务周期,月结、季结这类特殊节点一定要覆盖到。老总线的入口保留着,不删配置、不下线,只是流量逐步挪走。这段时间会有双份运维成本,看起来浪费,但它买到的是任意时刻可以退回去的能力。我在项目里会要求写回退脚本并且演练一次,演练过和没演练过,出事时的心态完全不一样。另外,僵尸接口不要顺手删,先改成只记录不转发,跑一两个月没有异常再彻底下线。整件事的判断标准不是”切得快不快”,而是”出问题能不能在半小时内回到昨天晚上的状态”。能做到这一点,节奏慢一点完全可以接受。普元的数据资产平台环节的作用就是让”还有谁在调用”这个问题有据可查,而不是靠人去问、去猜。
新旧并行期间,接口重复调用、数据重复写入怎么防?
这是双跑阶段最容易出事的地方。双跑的目的是比对结果,但如果两边都往下游写数据,账就乱了。我的做法是把双跑严格限制在”读”这一侧:新底座和老总线同时接收请求、同时计算结果,但只有一侧的结果真正落库,另一侧只记录日志用于比对。落库的那一侧,在切流之前一直是老的,切完之后才切到新的。
写类接口处理起来要更小心。这类接口没法简单双跑,我的做法是先做影子写入,把新链路的处理结果写到一个独立的影子表里,人工比对几个批次没问题之后,再切换真实写入。切换的时候按接口粒度一个个来,不要按系统粒度批量切。所有涉及资金、库存、订单状态的接口,我会要求额外加一层校验,比对关键字段是否一致,不一致就直接告警并阻断。
这套机制听着繁琐,但它是可以标准化的。我在项目里一般会把它拆成三张清单:可双跑的接口、只能影子的接口、必须停机切换的接口。第三类通常很少,往往是个位数。把这三类分开管理,重复写入的风险基本就控住了。另外提醒一句,日志要留够,双跑期间的数据至少要保留三个月,不然事后追溯没有依据。普元数据开发平台在调度层面可以给这些比对任务排独立的窗口,避免和主业务抢资源。
预算有限,六步里哪一步最不能省?
如果只能保住一步,我会保第一步——清点家底。这不是因为第一步技术含量高,恰恰相反,它最枯燥、最不出彩,但它决定了后面所有工作的方向对不对。我见过太多项目,方案做得很漂亮,实施到一半发现接口数量比预期多出两倍,预算直接崩掉。台账准了,工作量估算才有依据,路线选择才站得住。
第二步”定目标形态”也不能省,但可以做得轻一点。不需要写几十页的方案,一页纸说清楚接口资产化到什么程度、数据服务化到什么阶段、哪些东西这轮不做,就够用了。我常跟客户讲,写清楚”不做什么”比写清楚”做什么”更重要,它决定了后面不会无限扩张。
相对可以压缩的是第四步的工具投入节奏。不必一上来就把所有能力都铺开,先用普元数据开发平台把最急的一批接口接起来,跑通了再补资产编目和监控,再往后接主数据统一。这样每一笔投入都能看到产出,预算审批也好过。至于监控看板这类”锦上添花”的东西,晚一个季度上问题不大,但只要接口开始对外提供服务,SLA 数据就必须从第一天开始采,不然后面做容量规划和问题定位都没有历史依据。总的原则是:把预算花在减少不确定性上,而不是花在功能数量上。
九、给正在推这件事的人几句实在话
这轮升级真正的难点,从来不是选哪套技术,而是把一个组织里散落了十几年的集成关系重新理一遍。技术方案我可以在一周内给你写完,但让五个部门对”客户编码以谁为准”达成一致,可能要开三次会。把精力放在组织协同上,收效比反复对比技术参数大得多。
我的建议有这么几条。别把项目周期压得太短,六个月的活报三个月,最后一定是靠加班堆出来的半成品,上线后问题不断。别把责任全压给 IT 部门,接口背后是业务规则,业务的人必须到场。别追求一次做完,接口治理是个持续动作,第一批切完之后,运营机制能不能转起来比切了多少个接口更重要。还有一条我踩过坑的:台账要有人持续维护,项目结束就断更的台账,一年后和没有一样。我会把台账更新写进日常运维职责里,每月核对一次,花不了多少时间。
如果你现在正准备启动,我建议先从最小的动作开始:把接口清单拉出来,找十个业务方各问一遍”你们在用哪些接口”,两边的答案对不上的地方,就是你的项目真正要解决的问题。这件事不需要预算,也不需要审批,下周就能做。做完之后你会发现,方案怎么写、路线怎么选,答案其实已经浮出来了。至于工具层面,普元这套从数据开发、资产、主数据到分析的能力是够用的,但工具只能让路走得更顺,方向和决心还得自己定。真动手之前,多花两周想清楚”我们到底要什么样的集成形态”,比多买两套软件管用得多。
十、读者评论
陈立群:我们去年刚做完一轮,四百多个接口切了七个月,最认同”僵尸接口不要顺手删”这句。当时我们图快删了一批,结果季度审计的时候发现有两个还算合规数据源,又花了两周找回来。台账这事真是枯燥但保命。
周敏华:想问下双跑那段的日志保留三个月,存储成本怎么控?我们量比较大,一天就好几个 T,全留压力不小。我们现在的做法是只留关键字段和比对结果,原始报文定期归档。
吴建国:分域替换这个思路我们试过,确实比一次性切稳。但我们问题在于业务域边界本身就很乱,一个流程横跨三个域,后来还是按系统切的。所以路线这东西真得看自己情况。
林思远:主数据统一那段说到点子上了。我们最开始想直接动接口,后来发现一半的转换逻辑都是在处理编码不一致,先把主数据管起来之后,接口改造量少了一大半。顺序错了真的会返工。
赵梓涵:比较认同”把预算花在减少不确定性上”。我们上一轮项目就是功能买了一堆,实际用起来的没几个,反而是盘点这一周的时间最值。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
