ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

平台化十年:从烟囱式架构到业务中台的演进与落地实践

平台化十年:从烟囱式架构到业务中台的演进与落地实践 回到十年前身边做技术的朋友聊到“平台化”绝大多数人会先想到两个字“折腾”。那一阵子大家都在做微服务拆分、搞服务治理、重建一套又一套的基础设施但真正把“平台”这个词说清楚的人寥寥无几。十年后再看当初那些折腾出来的平台有的成了业务增长的发动机有的沦为了内部演示的PPT还有的直接演变成了一个新的软件项目反过来又变成了下一个需要被治理的对象。我这些年一直做平台相关的架构与落地工作经历过从零搭平台、推倒重来、组织合并、产品化失败、差点被业务团队“弹劾”的种种阶段。这篇文章不打算讲理论也不打算给一套标准答案更不打算说“平台化就一定能救你”。我想把这段时间里总结出的思路、踩过的坑、反复验证过的习性以一个参与者的角度完整展开。无论你是正在筹备平台化转型的技术负责人还是刚接手一个平台项目的工程师又或者只是想搞清楚“平台化”这三个字为什么能在一家公司里反复出现十年——这篇文章应该都能给你一些实在的参考。1. 从“堆系统”到“搭平台”一个十年的认知转变1.1 烟囱式架构为什么注定都会是负担十年前最常见的企业技术格局是怎样的一句话系统之间像一个个竖起来的烟囱。财务一套系统、业务一套系统、办公协同一套系统每个系统各自有自己的账号体系、数据库、流程引擎甚至各自的机房和运维团队。数据要互通靠的是定时任务、文件导入导出、点对点接口严重的时候还要靠业务员在两个系统之间手动搬运数据。这套模式在系统数量少、业务节奏慢的时候没什么问题因为每一套系统都足够独立独立意味着好采购、好交付、好验收。但一旦系统数量上来问题就全暴露了。首先是账号体系割裂——一个人可能要记五六个登录口令管理员做一次人员入离职就要跑七八个系统去维护权限其次是数据口径打架——同一个订单业务系统里的金额和财务系统里的金额经常对不上每逢月末对账凌晨四点还在打电话互相问数再然后是重复建设——五个系统有五个不同的权限模型、五个不同的审批流组件、五套不同的文件存储逻辑每一套都在加班加点开发每一套都只维护在某个“很懂这个业务”的老程序员脑子里。这种烟囱式架构本质上不是架构问题是管理问题。平台化的第一个动机通常不是性能也不是技术栈而是组织内系统和部门之间的断裂实在让人无法忍受了。1.2 中台浪潮是良药还是短效止痛剂2018年到2020年那几年“中台”这个词几乎成了很多公司技术部的一针强心剂。中台的逻辑其实非常好理解既然各个业务线都需要商品、订单、会员、支付这些能力那不如把公共服务抽取成一层独立的组织和技术实体统一建设、统一运营、统一接入这样各业务线就不需要从零造轮子了。理想很丰满落地的时候差别很大。我见过真正成功的中台也见过一地鸡毛的中台还见过中台变成一个“大后台”只管自己写代码、不管业务线的抽象情况。差别在哪差别不在架构设计得有多漂亮而在组织激励和协作模式是否真的改变了。做得好的中台往往有一个非常清晰的服务边界和SLA——中台团队把自己当作“内部商业化产品”来运营有明确的需求入口、迭代节奏、排期承诺和版本升级计划业务线接入中台是自助式的而不是靠中台团队的人肉支持。做得差的中台往往会变成几个尴尬的叠加需求全靠业务线找关系插队服务稳定性全凭中台团队心情接口文档永远滞后于代码业务线每次用自己的“方言”描述需求中台每个月出一大堆 PPT 证明自己很有价值。所以我不太喜欢简单地说“中台是伪命题”或者“平台化是万能药”。中台的真正问题不是要不要做而是做成什么形态如果是做成一个集中式审批中心、一个内部 IT 外包团队还是会走向失败如果是做成一套能力平台加上清晰的接入标准、自助化工具链和价值度量体系那它就是平台化进程里非常重要的一步。1.3 平台化进化的三种形态对比平台本身也有生命周期。我把这十年的平台演进粗粗分成三种形态它们不是互斥的很多时候是在一家公司里叠加存在的。第一种是“工具型平台”出现得最早。典型的例子是代码托管平台、统一构建平台、统一日志平台、统一发布平台。这个阶段平台化解决的是“工程师日常动作的一致性”问题谁做都一样效率高了出错率降了。这一层平台往往是最容易被接受的因为它不碰业务只改善工作方式。第二种是“业务能力型平台”也就是通常说的业务中台。它把业务领域里可复用的部分沉淀成服务比如统一用户中心、统一订单中心、统一商品中心、统一消息中心等等。这个阶段最难因为它要动的是“数据”和“业务流程”牵扯的利益方最多。第三种是“生态型平台”在这个阶段平台不再是单纯的一个系统而是一种规则内外部的开发者都能通过平台提供的接口、数据、工具和规则自主构建和迭代自己需要的应用。生态型平台通常要有很强大的开发工具链比如低代码、开放 API、订阅服务、应用市场等。它不是靠行政命令驱动的而是靠“接入平台比自建更好、更快”的方式自然生长起来的。这三种形态其实对应了平台化从“节省时间”到“创造价值”再升级到“定义规则”的过程。一家公司如果十年里只做了第一种形态会觉得自己一直在搞基建永远在“支撑别人”只有走到第二种、第三种形态平台化才真正从后台走向了业务价值的中心。2. 平台化背后的三个底层逻辑2.1 复用的生意一次建设多次变现所有平台的商业逻辑本质上都可以归结为一条把不变的、通用的能力沉淀出来用一次建设成本去服务多个业务场景让边际成本不断下降。比如一个企业里的统一权限中心如果五个独立的业务系统各做一套权限逻辑建设成本可能是五倍维护成本很可能是十倍因为每个团队都要持续改需求、修Bug而考核成本更是无法量化。平台的思路是把“用户管理、权限模型、审批流、审计日志”这些共性能力抽象出来做成一个标准服务各个业务系统只需要集成它。这样一来新业务系统上线的时候基础和骨架已经有了开发量骤减。但这里有一个大家很容易忽略的点复用的前提是抽象的正确性。如果平台团队一开始就把某一条业务线的特殊逻辑误当成通用逻辑抽象出来以后硬要其他业务线接受那就会变成“平台三定律”第一条——你以为你在复用其实你在重度定制。做平台的团队必须有意识地抵抗“第一个客户需求就是通用需求”的冲动要有能力把需求拆成“领域通用”和“场景特定”两层前者沉淀进平台后者留给业务线自己实现或者通过扩展点接入。2.2 沉淀是路劲依赖治理是生死线平台化做得越久沉淀就越多服务、数据模型、接口、脚本、配置、容器镜像、低代码组件……这些都是财富但也是一把双刃剑。一旦沉淀的货太多、太杂、没有治理规则平台就会变成一个新的“烟囱”——只不过这次是“胖烟囱”挤住了所有东西。我在实际推进平台化时最花心思的不是搭服务而是定规则。比如接口怎么命名、版本怎么管理、破坏性变更怎么发通知、废弃接口怎么下线每一条都要像高速公路的交规一样清晰。没有治理的平台就像一条没有信号灯的高速公路车多的时候一定堵车速快的时候一定容易出事。治理要治理到什么颗粒度才算合适我的经验是四个字够用就好。治理太轻等于没治治理太重则会扼杀创新。比如接口文档强制必须写但不强求所有人都用同一种奇怪的注释规范每个服务必须登记负责人和依赖关系但不强制每个人都在一个巨大的怪物页面上填写二十个表单。治理的本质是降低未来维护的复杂度而不是给现在增加流程负担。2.3 能力分层技术底座、业务中台、统一接入一套成熟的平台体系在我的经验里通常会分成三个清晰的能力层。最底层是技术底座包括基础设施、容器编排、中间件、监控告警、日志链路、配置中心和发布流水线。这一层是“地基”它讲究的是稳定性、可扩展性和自动化水平业务团队对它的感知应该是“透明”的——不需要关心 Pod 怎么调度不需要关心集群怎么扩容。中间层是业务中台也就是刚才提到的各种业务中心比如用户、订单、商品、客服、支付等。这一层是“承重墙”它要保证业务语义的统一和数据模型的一致同时也要给上层留出足够的扩展空间。最上层是统一接入层包括 API 网关、低代码平台、工作流引擎、统一门户等。这一层是“门面”业务方、生态伙伴、甚至客户开发者的绝大多数交互都通过这一层完成。它的体验好不好直接决定了平台化成果在“用户感受”上到底好不好。有了清晰的三层分层平台化推进的时候才不会乱。否则就会出现壝病缠身的问题——业务需求来了找技术底座兜底技术底座升级了又怕业务不能用最后每一层都不安分互相纠缠。3. 十年平台化的五个关键阶段与实操经验3.1 起步期的“能跑就行”平台化刚开始的时候最容易犯的错就是想一口吃成胖子。我记得我们最初讨论平台方案的时候光是技术选型的评审会就开了快一个月每个团队都有自己偏好的中间件、数据库、网关、框架争执到后来甚至有人拿 C 要不要进微服务架构来说事。现在回头看起步阶段最务实的做法只有一条把跑通最小闭环作为第一目标。不要纠结于一次把所有的能力都抽象出来也不要在前端选型、网关协议这些细节上过度纠缠。先挑一个高频、共性强的场景比如统一登录、统一鉴权快速做出第一个版本并接入一两个真实业务线拿到一次真实的反馈比任何漂亮的架构文档都有价值。这个阶段我强烈建议以小团队为基础最好由几条核心业务线的负责人和独立的技术骨干组成“平台原型小组”而不是建立一个专门的大部门。小团队跑得快试错成本低而且更容易让业务线感觉“平台是我们一起搞出来的”而不是“空降的中央组织”。3.2 中期的“规则对抗碎片”平台原型跑通后通常很快会迎来第二个阶段接入方变多、需求变杂、标准开始受到挑战。这个阶段最大的敌人是“碎片化”——有人要接入一个只存在某个老业务里的特殊状态机有人要求平台接口返回额外几个字段有人甚至希望平台能直接帮自己把数据落到本地数据库里。面对这些需求平台团队的态度必须从“尽量友好”切换到“守住核心契约”。我在这个阶段养成了一个习惯凡是需求先问一句“这个能力是通用的还是某一特定场景的”如果通用平台收下如果特定平台拒绝或者让业务侧通过扩展机制来实现。这个标准一旦模糊后面就会像滚雪球一样每个接入方都会觉得“既然别人可以改那我为什么不能改”最后平台接口变成一锅粥。同时中期也是制定规范的黄金窗口。代码评审、接口评审、发布规范、文档规范、变更通知规范都要在这个阶段逐步立起来。别怕规则多规则在人多的时候是保护大家不至于撞车的护栏而不是束缚。3.3 成熟期的“标准化是效率放大器”当平台承载的流量和场景足够多、接入方足够广的时候它的价值就不再单纯来自“服务本身”而来自“标准化的杠杆效应”。举个例子。一个统一配置中心如果能做到“配置下发、灰度发布、变更审计”三件事标准化那它每接入一个新的业务系统就自动帮这个系统省掉了配置管理这一整套重复建设如果再把配置模板沉淀成一份份“最佳实践模板”那新团队入职之后直接被引导使用模板就能避开自己乱试踩坑的过程。一个平台到成熟期最值得反复打磨的就是这些“模板化、自动化、自助化”的能力。标准化做到极致是什么样是业务方在界面上自助申请一个资源、自助开通一个中间件、自助发布一个服务不需要找平台团队任何一个人。不是平台团队的人变懒了而是把有限的人力都集中在平台本身的演进上。3.4 平台化的度量指标怎么定平台价值如何度量这是最容易引起争吵的地方。有人建议看接入数量有人建议看接口调用量有人建议看研发效率提升多少。我的体会是度量指标一定要分成两个维度一个是平台直接被消费的情况一个是平台对业务带来的最终影响。第一类指标是“平台KPIs”包括接入系统数、活跃调用方数量、接口可用性、服务SLA达标率、稳定运行时长、事故响应时长、平台工单解决时长等等。这些指标看的是“平台自身健壮度”。第二类指标是“业务价值指标”这一部分需要和业务团队共同定义相对比较难。比较有效的方法是选取一个典型业务场景从“需求到上线”的全链路时长对比。比如某新项目需要包含用户中心、订单中心、消息推送如果全都自建可能需要12周接入平台后可能只需要4周。把这个差异量化出来比任何抽象的战略汇报都有说服力。建议每个季度做一次平台价值回顾不是简单看数字而是把数字背后的业务故事讲出来。数字会撒谎但业务故事不会。3.5 平台化的“三不碰”红线经历多了之后我愿意把平台化的红线简化为三条。第一不碰业务专属逻辑。平台做的是通用能力一旦某个共性服务被特定业务逻辑绑架它就不再是平台而是某个业务的专属后台。哪怕这个业务线非常强势你也得守住这条线。第二不碰数据所有权。平台可以统一数据通道但不能把数据的所有权和管理责任从业务线手里偷走。业务线应该仍然拥有自己那部分数据的解释权和最终决定权平台负责提供统一规范的存储、流通和访问能力而不是变成数据权力的黑洞。第三不碰技术选型垄断。平台往往会影响甚至决定公司的技术栈但必须避免“只要是平台推荐的就必须用”这种绝对化。合适的场景里给业务侧保留选择空间弹性一点长远更有生命力。这三条红线不是我空想出来的都是拿真金白银的教训换来的。每一次踩线后面都要花好几倍的成本去纠正。4. 演进过程中的常见问题与排查心得4.1 “重复造轮子”与“轮子没人造”的矛盾平台化最常被吐槽的就是桌子上的两个极端业务团队抱怨“平台什么都能做就是不来做我现在要的”平台团队则抱怨“业务方总是反复自造轮子不按套路出牌”。这个矛盾的根源往往是“信任”和“成本”的问题。业务方不接入平台通常不是不认可平台的价值而是接入成本太高——学习成本高、改造量大、等待时间长那“自己造轮子”当然比“正在排队等平台”更合理。平台方抱怨业务反复造轮子往往是因为平台的接入体验还不够顺滑、公共能力还不够完全覆盖高频场景。解决这个问题没有捷径。一方面要持续降低接入门槛提供成熟的SDK、丰富文档、模板代码和自动化工具另一方面要有意识地做出几个标杆案例让业务团队看到“接入平台不但不慢反而比自己写更快”。标杆案例一多业务态度自然会转变。4.2 平台团队和业务团队的博弈怎么破在组织上平台团队很容易沦为“内部乙方”业务提需求平台排期两边对进度表天天拉扯。说白了平台团队如果不能拿出“能够自我迭代、主动发现业务痛点”的能力就很容易被业务牵着鼻子走长期被动。我在内部总结过一句玩笑话“平台团队要像是一个外部的优秀产品团队只是你们的产品经理不是写PRD而是写架构和白皮书。”要破这个博弈最有效的方法还是拉通目标。把平台目标和业务目标绑在一起考核比如“移动端秒开率”“新业务上线平均周期”“线上故障平均恢复时长”这些指标既影响业务团队也影响平台团队。这么一来平台团队就不只是内部供应商而变成了共同经营者。业务团队在抱怨“平台太慢”的时候也会意识到如果自己不参与共建问题一样会砸到自己头上。4.3 平台工具选型的取舍经验工具选型这块我的心得更偏向实用主义。首先尽量不要在开局阶段就引入大量重型商业产品先用简单可靠的开源方案验证流程和安全边界其次任何工具都必须具备“数据可导出性”和“可视化监控能力”否则你在平台上运行得越久底下的依赖就越黑再次优先选择有活跃社区、企业案例多、且团队内部有人拿得动的工具而不是先进但没人会的工具。还有一个非常实际的建议在任何平台工具落地之前先问自己这个问题——“如果这个工具挂了我们能不能在四小时内恢复核心可用性”如果不能那这个工具的交付方案里就必须同步包含一个详细的应急预案。我在平台化过程中见过太多工具很强、但出事的时候没人会修的尴尬局面。4.4 老系统怎么平滑接入平台老系统是平台化进程中绕不过的硬仗。它可能跑着十年的核心逻辑数据库链路错综复杂文档缺失严重甚至负责人已经离职只剩下一两个“知其然不知其所以然”的维护者。对老系统我坚决反对推倒重来。稳妥的路线是“先做接入、再做改造、后做下沉”。第一步先把老系统的鉴权接入统一权限平台把账号打通把操作日志接到统一日志平台第二步把老系统和新平台之间的数据交互改造成标准API让老系统不再是黑盒第三步才考虑是否把某些通用逻辑下沉到平台中心。每走一步都量力而行同时保留回退方案。老系统改造最忌讳的是“一次切换”。凡是追求一步到位的十有八九会在线上故障和业务投诉中被折磨得半死。平滑演进慢慢剪掉那根根深蒂固的老藤才是我见过成功率最高的方式。5. 写在最后平台化本质上是组织能力的沉淀这十年的平台化演进最后留给我最深的印象并不是某一套漂亮的技术架构也不是某一次性能调优多么快而是它在组织里一点点塑造出的一种“协作秩序”。平台化的本质是让组织内部的协作成本从“人拉人”变成“标准拉着人”让能力的沉淀不再依赖某几个关键人物能不能记住整个系统的细节而是依赖一套被大家都认可的规则和工具。如果你所在的团队正打算开始平台化之旅我的建议很简单别贪大从一个小场景跑起来别憋大招优先做标杆案例别只仰望技术把组织协作的边界也一并设计进去。平台不是一个终点平台是一种能力它是让团队能够持续高效地交付业务价值的基础设施。十年走下来平台化解决了许多具体项目的问题但平台的演化本身其实永远没有完全“竣工”的那一天。我仍然会在每一个新阶段里找到和它相处的新方式。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进