事故经过
上游发布 0.21.1,把原来 6000 行的 web_server.py 拆成了 42 个细粒度模块。我们的模型库兼容层(/api/model/library 的四个端点)直接失去挂载点,升级后服务启动即报 404。
根因
改造是"侵入式"的:直接在上游文件里加路由注册。上游一旦拆分文件,我们的代码就跟着消失了。
现在的做法
- 改造集中在独立目录(
assistant_overlay/),不碰上游文件 - 挂载点用 patch 而非编辑:启动时对目标模块做运行时注入
- 升级前先跑一致性检查:对比上游模块签名,发现不匹配立即告警
- 把适配逻辑写成技能,升级流程可复用
一条硬规则
任何"必须改上游源码才能生效"的定制,都是未来的技术债。宁可多写一层适配,也不要直接改别人家的文件。
这套流程已经沉淀成可执行技能,下次升级按步骤走,不用再重新摸索。
#升级#兼容#工程实践