很多团队最初选阿里云,看中的是价格、性能,或者本地化的服务响应。用了几年以后,计算、存储、数据库、消息队列和身份认证往往已经绑在一起,回头才发现自己强依赖阿里云。依赖本身没有问题,关键是知道它的边界在哪里,越过边界之后要付出多少代价。

强依赖到底指什么
强依赖是指业务离开某家云厂商的专有服务就转不起来。几个典型信号很常见:核心数据放在厂商专有的数据库或存储格式里,业务代码直接调用了不少私有 SDK,权限靠 RAM 角色的细粒度策略维护,告警、日志和审计都接在同一个控制台上。判断方法很朴素。如果明天要把整套系统搬到另一个环境,团队要花多久?答案是“几个月”,或者“没人说得清”,那基本就是强依赖了。
大促时的配额卡点
某内容电商团队在大促前两周才发现,订单链路上消息队列的单实例吞吐已经接近阈值。扩容要先提工单,再等配额审核。整条异步链路用的又是厂商专有的队列协议和客户端,临时换成开源方案意味着要改二十多个服务。团队只好压缩活动规模,把一部分流量挪到次日的时段。
复盘时大家意识到,配额上限和扩容审批周期也是依赖的一部分,应该和硬件成本一起放进容量规划。之后他们在大促前六周就提交配额申请,并给关键队列准备了备用的消息分发路径。
账单涨了三倍,谈判时没牌可打
一家中型 SaaS 公司两年内云成本涨了三倍。财务团队起初以为是单价上调,拆开账单后才发现,问题出在团队长期依赖几类高价托管服务,比如全托管的日志分析,以及一部分缓存实例。这些服务迁移成本高,每次续约谈判时,公司手里几乎没有替代选项,只能接受报价。
后来他们把日志存储迁到自建对象存储,外加开源查询引擎,又把一部分缓存改成可移植的部署方式。迁移用了大约一个季度。下一轮谈判时,团队手里有了可信的备选方案,折扣上明显多争取到了一些空间。替代方案即使最后没有全部落地,也能直接变成谈判筹码。
地域故障时,备份救不了你
一家金融科技团队把业务部署在单一地域,另一个地域保存了每日备份。一次区域级网络抖动导致服务中断超过两个小时。复盘时发现,备份确实在,但恢复脚本依赖的密钥管理服务只在主地域可用,部分镜像仓库和配置中心也绑在主地域。恢复流程写在文档里很完整,真正执行时却没法独立跑起来。
这件事说明,恢复链路没有被当成独立系统来设计和演练。团队后来把密钥、镜像和配置在多个地域做了同步,并规定每个季度至少做一次不依赖主地域控制面的恢复演练。
动手前先看五类锁定
改造之前,可以先按五个方向粗略摸一遍。
- 数据锁定,看数据是不是通用格式,能不能完整导出,导出后一致性能否保证。
- 接口锁定,看厂商 SDK 的调用分散在多少个模块里,有没有渗进领域逻辑。
- 运维锁定,看告警、日志、审计和发布流水线是否只能在一个控制台里查看或操作。
- 容灾锁定,看恢复所需的密钥、镜像和配置,能否在另一个环境里独立获取。
- 人员锁定,看关键配置和架构决策是不是只有少数人懂,人员一变动会不会导致停摆。
分阶段降依赖
降依赖通常不适合一次性大迁移,更稳的做法是按优先级一步步推进。
- 盘点,用一到两周梳理云资源和专有服务的调用关系,画出依赖图,标出每条依赖的迁移成本和业务影响。
- 隔离,在业务代码和厂商 SDK 之间加一层适配接口,把散落的调用收拢到少数入口,之后替换只需要改适配层。
- 按优先级替换,先动数据格式和备份恢复链路,它们风险最高;再处理计算、存储这类通用资源;高价值、高绑定的托管服务放在最后,评估周期通常也最长。
- 演练,定期做跨地域、跨环境的恢复演练,用真实操作验证恢复是否独立,不要只看文档。
适配层本身有性能开销和维护成本,也不是每个服务都值得解耦。边界清楚、替代难度大、又长期稳定运行的服务,直接用厂商能力往往更划算。判断时可以先问一个问题:这项依赖失效后,业务损失能不能覆盖迁移和维护的成本。
把依赖变成看得见的东西
依赖本身谈不上坏事,难的是它大多是在不知不觉中长出来的。依赖一旦可见、可评估,团队在谈价格、设计容灾和调整架构时才有选择。想开始的话,先画一张依赖图就够了。