# 第八章 发布工程 发布工程(Release Engineering)是软件工程内部一个专注于构建和交付软件的学科。 ## 发布工程哲学 发布工程师的日常工作是由下列四个主要的工程与服务哲学指导的。 ### 自助服务模型 发布工程师开发工具,制定最佳实践,以便让产品研发团队可以自己掌握和执行自己的发布流程。 ### 追求速度 频繁的发布可以使每个版本之间的变更更少,这种方式使测试和调试变得简单。 ### 密闭性 构建工具必须确保一致性和可重复性,构建过程使密闭的,不应受到构建服务器上安装的第三方类库或者其他软件工程的影响。 ### 强调策略和流程 多层安全和访问控制机制可以确保发布过程中只有指定的人才能执行指定的操作。 主要关注以下操作: - 批准源代码改动----通过源代码仓库中的配置文件决定 - 指定发布流程中需要执行的具体操作 - 创建新的发布版本 - 批准初始的继承请求以及后续的cherry picking请求 - 实际部署某个发布(release)版本 - 修改某个项目的构建配置文件 ## Google的持续集成方案 参见 78-82 页。