知识卡片

设计-构建-发布-运行的不可变链条

专业/工作 · 518.d

内容

一份代码从想法到生产要经过四个阶段:设计阶段决定用什么技术和依赖;构建阶段把代码和依赖编译打包成一个带唯一标识的不可变工件(build);发布阶段把这个 build 和某个具体环境的配置组合起来,同样必须唯一标识(用语义化版本号或时间戳),并存进中心仓库方便回滚;运行阶段才是这个 release 真正在执行环境里跑起来。整条链条禁止运行时改代码,因为那样会让运行的东西和构建阶段产出的 build 对不上。发散:这个模型把”回滚”从一件需要临时抢救的事,变成了”取出仓库里某个历史 release 重新运行”这么简单——不可变性带来的最大好处不是防止出错,而是出错之后能快速、确定地退回到已知良好状态。

参考来源

《Cloud Native Spring in Action》第2章《Cloud native patterns and technologies》