如何持续、正确、安全的发布?


在一个水平不一、每周例行发布的项目团队,从频繁故障,到故障基本清零——我们如何做到?秘密武器就是:发布清单。

发布清单为什么可以,先通过一个例子了解一下背后的依据,它就是电影《中国机长》。《中国机长》改编自川航3U8633事件,在执飞重庆到拉萨的过程中,突然出现了副驾驶前挡风玻璃掉落,导致失压、缺氧,副驾驶的半个身体直接飞出了机舱,驾驶舱内设备大量故障,气温低达零下40℃。在如此绝境,机长安全备降成都机场,保证了所有旅客的安全。在电影中可以看到这么一幕,当危险来临时,第二机长就迅速拿出了飞行清单,并根据清单上的提示,配合刘机长平安下降到了两万两千英尺的高度…飞机被誉为全世界最安全的交通工具的背后,是像《中国机长》里的机长和乘务员,以及世上所有航空公司的工作人员在按照清单思维来执行每一项工作任务。

回过头来再看互联网服务,互联网服务一般会因为以下两种情况出现故障:

  1. 用户或数据增长超过容量
  2. 发布

不是每个产品都有高速的增长,但是每个产品只要增加新的特性都要进行发布。因此后者导致的故障,往往会远多于前者。很多人都觉得发布是一件很容易的事情,而过于自信。但是这份自信往往是因为忽略了以下难题:

  • 记忆和注意力的谬误

    在重压之下,人们特别容易忽视一些单调的例行事项。例如:创建新增特性的数据库表

  • 麻痹大意

    • 人们会故意跳过一些明明记得的步骤。人们会一直说“以前从来就没出过这类问题”,直到真的发生了严重后果为止。
    • 小事难不到人,但是最容易被忽略的就是小事

发布需要的从来不是速度,也不只是专注,而是 持续 稳定 正确 安全 的把事情做好。其实做到这些并不简单,也不容易。话说够多了,那么具体如何做?

  1. 发布群,卷入所有利益相关者

    一个人免不了会犯错误,但许多人犯错的可能性或许会变得小一些。集体的智慧,要确保各方面的人员都可以对发布进行评估、say no

  2. 发布流程

    1、发布人员 在发布群公布发布清单,宣布发布开始

    • 相关同学(测试、开发) 需要放下手头事情,关注监控

    2、发布人员 宣布发布完成,相关同学 开始验证

    3、相关同学 宣布验证完成

    • 相关同学宣布 xx功能正常、监控正常

    4、发布人员 确认所有特性验证完毕,宣布本次发布结束

  3. 发布清单

    【发布特性】

    ​ xxx

    【影响范围】

    ​ xxx

    【发布原因】

    ​ xxx

    【发布类型】

    ​ hotfix / 新特性

    【发布服务】

    ​ xxx

    【发布步骤】

    ​ xxx

    ———————

    以上是发布清单示例,但不限于以上内容。对于复杂、影响较大的发布还可以添加“灰度策略” 、“回滚策略”。

在讲述清单的一本书《清单革命》中有一句话讲的很好:请承认人类的不完美,每个人都会犯错,在极端复杂的世界里,我们必须改变观念,因为我们别无选择。

本文作者:cyningsun
本文地址https://www.cyningsun.com/08-02-2020/release-checklist.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 CN 许可协议。转载请注明出处!