Skip to content
Tech

为什么我的数据库模式迁移会在检查已部署服务能否兼容之前就执行?

83

机会

当您向生产数据库推送模式变更时,迁移会在任何工具验证当前运行的服务版本能否读写新结构之前就执行。被删除的列或被重命名的字段会在旧 Pod 完成排空之前到达数据库,回滚能恢复模式,但无法恢复新版本在此期间写入的数据。ORM 工具从差异生成 SQL,但对部署拓扑、并发服务版本或实时读写模式一无所知。团队依靠记录在 Wiki 和口耳相传中的扩展-收缩规范来弥补这一不足,而非通过工具强制执行。仅去年一年,一次顺序错误的操作就引发了多服务级联故障,造成有据可查的 450 万美元事故。

为什么重要

能够建模实时服务拓扑的预检兼容性检查,将把部署中风险最高的步骤变成您在点击应用之前就能推理清楚的事情。

我如何评估机会

机会评分是我的个人判断,而非量化指标:痛苦程度、发生频率,以及当前解决方案的匮乏程度。分数越高,意味着我认为越值得去构建。

严重性9/10

出现时造成的痛苦程度。

频率8/10

人们实际遇到它的频率。

空白空间7/10

当前针对它的优质工具有多匮乏。

更多值得解决的问题