首页/开发/CI/CD 与发布速查/不可变基础设施与发布
发布策略60 条

不可变基础设施与发布

服务器不原地打补丁,而是整体替换:镜像或虚机模板作为制品构建与版本化;发布=替换实例,回滚=用上一版制品重新拉起。

CI/CD 与发布速查开发更新于 2026-10-12
原则改动产生新制品,不修改运行中的实例
制品容器镜像、虚机模板等版本化产物
发布新实例替换旧实例
回滚重新部署上一版本制品

替换式发布

替换式发布
docker build -t registry.example.com/app:1.9.0 .
kubectl set image deployment/app app=registry.example.com/app:1.9.0
与配置注入配合:环境差异走配置与密钥,制品本身保持同一份。

易错点

  • 热修直接改生产实例:下次替换后修复消失,问题复发
  • 制品不版本化:回滚时找不到上一版的确切内容

数据来源与参考

  • Chad Fowler《Trash Your Servers and Burn Your Code》(2013)
  • 12factor.net《Build, release, run》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌