文章 · 2024-12-31

云厂商解耦的文件中台

该项目为业务系统提供统一的文件服务,使上传、下载和临时访问不再直接依赖具体云厂商。

单一应用的文件上传并不复杂,但当多个系统都直接使用 Ceph 的地址、密钥和接口后,迁移到 OBS 或 OSS 就需要逐个修改、测试和发布。存量文件迁移、旧链接兼容和失败回退也会成为独立风险。

项目将“每个应用分别连接存储”的方式,改造为由文件中台统一管理的共享能力。

职责与关键工作

我负责架构方案与关键落地路径,工作范围包括:

同时推进统一 SDK、监控和故障处理规范,使方案具备接入、运行观察和迁移能力。

统一服务边界

对于接入方,文件服务像一个统一窗口。应用告诉平台“我要上传这个文件”或“请给我一个十分钟内有效的下载地址”,平台再根据配置选择实际存储位置。

业务系统不再负责拼接地址、计算签名或处理厂商特有错误。以后更换存储时,改动主要发生在平台适配层,而不是扩散到每个应用。

但统一接口并不意味着假装所有厂商完全相同。例如,某家支持的特殊元数据功能,另一家可能没有。我先做能力对照:

这样做避免了“代码看起来兼容,真正运行时结果却不一样”。

存量文件迁移

迁移不是把一个地址换成另一个地址。它同时涉及正在产生的新文件和已经存在多年的旧文件。

我的方案是先让统一客户端接管入口,同时保留旧存储;然后逐步把新写入切到新平台。历史文件按小批次复制,每个文件用校验值确认内容没有变化,并记录进度和失败原因。引用关系、访问权限和 CDN 行为也需要一并验证。

在新平台稳定之前,旧路径不会立刻删除。这意味着迁移可以暂停、重试或回退,而不需要用一次高风险切换来赌结果。

结果与架构价值

这项工作降低了业务系统与云厂商的绑定。以后增加或更换存储服务时,不需要组织大量应用同时改造;密钥管理更集中,故障也可以按业务问题、平台问题或厂商问题快速区分。

更重要的是,它把存储迁移从一次不可控的大动作,变成可以分批执行、逐步验证、随时止损的平台操作。

接口设计、安全控制、厂商差异、存量数据和回退方案要同时成立,平台边界才能在真实迁移和生产流量里站得住。

© 2026 Yuxu Ge ·