锁定是怎么形成的
供应商锁定来自三处:数据只能以专有格式导出、业务逻辑深度依赖专有 API 的语义、以及部署与运维绑定了专属运行时特性。锁定的关键不是有没有,而是有没有失控——用更快的交付或更低成本换取一定锁定常常是理性的,前提是锁定程度被记录、收益被说明、退出路径被验证过。
基本信息
| 评估 | 数据导出能力、专有 API 依赖深度、迁移工作量与周期 |
|---|---|
| 缓解 | 优先标准协议;保留数据导出与离线副本;接口包一层适配层 |
| 决策 | 锁定换取的收益(速度、成本)写入 ADR 权衡记录 |
| 复核节奏 | 按合同周期或年度复核:收益是否仍覆盖换绑风险 |
典型使用场景
- 云服务选型:托管消息队列、托管数据库与自建方案对照
- SaaS 接入:CRM、工单、监控与日志服务的数据归属评估
- 专有协议评估:服务网格、认证网关是否支持标准协议
- 合同评审:数据导出条款、迁出协助与服务水平约束
- 架构评审:为高锁定组件标注风险并制定降级与替代预案
锁定维度自查
| 维度 | 低锁定做法 | 高锁定信号 |
|---|---|---|
| 数据 | 标准格式导出、保留离线副本 | 只能经供应商工具导出 |
| 接口 | 标准协议或兼容层 | 深度依赖专有 API 语义 |
| 部署 | 可迁移的容器与 IaC 描述 | 依赖专属运行时特性 |
| 计费 | 用量透明、可横向对比 | 定价结构复杂难对比 |
退出演练要点
退出演练要点
1. 抽样导出:按标准格式导出真实数据子集并校验完整性
2. 离线恢复:在自建环境导入并跑通核心查询与事务
3. 接口替换:把专有调用替换为等价标准实现,统计改动量
4. 计时:记录整个演练耗时,作为真实迁移工作量的参考
# 演练比退出文档可靠:能跑通才算有退出路径使用要点
- 把锁定程度与换取的收益写进架构决策记录,供后续评审对照
- 对高锁定项定期复核:收益是否仍覆盖换绑风险
- 接口包一层薄适配层,把专有语义收敛在少数模块里,降低替换成本
- 核心数据保留可离线恢复的副本,避免导出能力单点依赖供应商工具
退出演练比退出文档更可靠:定期验证数据导出的完整性与可用性,把演练耗时与发现问题记录成量化依据。
为规避锁定而选择能力明显不足的方案,会把风险从“换绑成本”转移到“业务跑不动”,这类取舍同样要写进决策记录并说明理由。