知识卡片

密闭构建保证可重现性

普通读书笔记卡 · 1581

内容

可靠的发布流程要求构建过程是密闭的:不依赖构建机器上偶然安装的第三方库或工具版本,而是把 编译器、依赖库的具体版本都锁定在构建配置里,让构建结果只由源代码版本决定,与构建机器无关。 这一点在cherry pick——用旧源码版本加补丁重新构建历史发布——时尤为关键:密闭构建保证用的 还是当时的编译器版本,避免工具链漂移引入新的不确定性,这与[[物理与逻辑服务器解耦的调度自由度]] 是同一种解耦思路的延伸。

参考来源

- 位置:《SRE:Google运维解密》第8章《发布工程》"密闭性"一节(源文件:_epub-src/OEBPS/Text/0008_0006.xhtml) - 结论依据:原文定义密闭构建不受构建机器上第三方类库或工具影响、使用指定版本的编译器与依赖库,并以cherry picking历史版本时仍沿用当时编译器版本为例说明其价值。 - 原始内容:“我们的构建过程都是密闭的(hermetic),意味着它们不受构建机器上安装的第三方类库或者其他软件工具所影响……如果要对上个月构建的某个项目进行cherry picking,仍然会用当时的编译器版本,而不会用到这个月新的编译器版本。”