请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 229|回复: 0

发布工程的基本思想(SRE谷歌)

[复制链接]
发表于 2020-12-5 23:57:06 | 显示全部楼层 |阅读模式
发布工程师的日常工作是由下列4 个主要的工程与服务哲学指导的。

+ H3 t3 O. {  W: i. g' o
自服务模型
为了应对大规模扩张,每个团队必须能够自给自足。发布工程师开发工具,制定最佳实践,以便让产品研发团队可以自己掌控和执行自己的发布流程。虽然我们有几千个工程师和几百个产品,Google仍然能够以很快的速度发布新产品。这是因为每一个团队都可以决定多久或者什么时候来发布产品的新版本。发布过程可以自动化到基本不需要工程师干预,很多项目都是利用我们的自动构建工具和部署工具自动构建、自动发布的。发布过程是真正的自动化的,工程师仅仅在发生问题时才会进行干预。
% j/ I5 {- ^+ n; s( |3 y

0 s5 B- {1 J9 c) r
追求速度
面向用户的软件组件(例如Google搜索服务的很多组件)重新构建非常频繁,因为我们的目标是让用户可见的功能越快上线越好。我们同时也认为频繁的发布可以使得每个版本之间的变更减少。这种方式使得测试和调试变得更简单。有些团队每小时构建一次,然后在所有可用的构建版本中选择某个版本进行发布。选择过程是基于测试结果与所包含的功能列表共同得出的。还有的团队采用一种"测试通过即发布"Push On Green)的发布模型,也就是说,部署每个通过所有测试的版本(参见文献Kle14】)。
# W8 V4 V9 N) U8 Z" G* V
密闭性
构建工具必须确保一致性和可重复性。如果两个工程师试图在两台不同的机器上基于同一个源代码版本构建同一个产品,构建结果应该是相同的。准'我们的构建过程都是密闭的(hermetic),意味着它们不受构建机器上安装的第三方类库或者其他软件工具所影响。

1 f: I7 q) \1 e

* {& M. a- k: |' o9 X- Y
构建过程使用指定版本的构建工具(编译器),同时使用指定版本的依赖库(第三方类库)。编译过程是自包含的,不依赖于编译环境之外的其他服务。
/ I7 R4 P7 S, m/ G
! g, S; ?* o' X( w; o
当修复某个运行在生产环境中的软件的Bug,而需要重新构建之前的一个发布版本时,一般来说是比较复杂的。Google按照之前的源代码版本,加入一些后来提交的改动来构建新的发布来解决这个问题,这种方式被称为摘樱桃(cherry picking)。构建工具自身也是放置在与被构建的程序同一个源代码仓库之中的。因此,如果要对上个月构建的某个项目进行cherry picking,仍然会用当时的编译器版本,而不会用到这个月新的编译器版本,这样可以保证编译器功能的一致性。

: c) V, O9 k+ l2 M, ~* J




上一篇:谷歌SRE的发布工程介绍
下一篇:谷歌SRE发布工程哲学第二部分

本版积分规则

本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-1-25 10:12 , Processed in 0.149848 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表