发表于 2020-12-5 23:58:19

谷歌SRE发布工程哲学第二部分

强调策略和流程

多层安全和访问控制机制可以确保在发布过程中只有指定的人才能执行指定的操作。我们主要关注的操作有如下几项∶
● 批准源代码改动——通过源代码仓库中的配置文件决定。
● 指定发布流程中需要执行的具体动作。
● 创建新的发布版本。
●批准初始的集成请求(也就是一个以某个源代码仓库版本为基础的构建请求),以及后续的 cherry picking 请求。
● 实际部署某个发布版本。
● 修改某个项目的构建配置文件。

几乎所有对源代码的修改都需要进行代码评审,这与我们日常开发工作流程是完美结合的。我们的自动化发布系统可以提供每个发布中包含的所有改动的报告,与其他的构建结果一起归档。SRE可以了解每个新发布中包含的具体改动,在发布出现问题时可以更快地进行在线调试。

持续构建与部署Google 开发了一个自动化的发布系统∶Rapid。该系统利用一系列Google内部技术执行可扩展的、密闭的,以及可靠的发布流程。下面几小节描述了Google内部的软件生命周期,以及我们是如何利用Rapid和其他相关工具管理这种周期的。
构建Blaze准2是Google的构建工具,它支持多种编程语言,如Google内部标准的 C++、Java、Python、Go以及 JavaScript。工程师利用 Blaze 定义构建目标,即构建的输出结果,例如Jar文件,同时给每个目标指定依赖关系。当进行具体构建时,Blaze会自动构建目标的全部依赖。

构建目标(二进制文件,以及对应的测试等)定义在Rapid的项目配置文件中。某个项目特有的功能开关,例如一些特有的构建标识符等,会由Rapid传递给 Blaze。所有二进制文件都支持用一个命令显示自身的构建时间、构建源代码版本,以及构建标识符,这样我们就可以很容易地将一个二进制文件与构建过程对应起来。
页: [1]
查看完整版本: 谷歌SRE发布工程哲学第二部分